Qonto Q3 QA recalibration
Final verdict
Qonto’s pre-cutover Q3 evaluations are sufficiently calibrated to the post-cutover evaluator. Stop broad re-evaluation here.
After the final replay wave, the weekly overall scores align with the immediate post-cutover range:
| Week starting | Overall score | Calls | Non-calls |
|---|---|---|---|
| July 13 | 42.17 | 21.43 | 48.91 |
| July 20 | 44.29 | 29.56 | 49.95 |
| July 27 | 43.42 | 29.46 | 49.61 |
| August 3 | 41.80 | 29.38 | 46.79 |
| August 10 | 42.83 | 28.40 | 49.96 |
| August 17 | 44.49 | 31.07 | 50.20 |
| August 24 | 43.18 | 31.11 | 48.70 |
July 20 and July 27 now sit directly inside the August range. Their call scores match August 3–24, and July non-call scores match August 10–24. The lower September scores should be treated as a subsequent performance or population-mix trend, not evidence that more pre-cutover criteria require blanket replay.
Scope
- Customer: Qonto EU
- Rails organization ID:
33 - Scorecard: Stellar Support Scorecard, ID
57 - Original target: Qonto’s Tone of Voice, criterion ID
433 - Original criterion public ID:
scorecard_criterion_GDjBm1KqvloXhEx9x7dJlkz2 - Pre-cutover period: July 1 through August 4, 2026, Europe/Paris
- Working cutover boundary: August 5, 2026 at 00:00 Europe/Paris
- Included population: completed, active, effective AI evaluations
- Initial prioritization excluded evaluations containing an auto-failed criterion because changing an ordinary criterion would not change their zero overall score
- Critical Errors remained out of scope pending confirmation from Qonto
Why this happened
The original signal appeared as a sharp score change around early August, most visibly on calls. Internal meeting notes showed that the QA model/provider migration was underway around the same boundary:
- A planned Bedrock-to-OpenAI move was discussed on August 6.
- Complexity-based QA model routing shipped around August 10.
- By August 13, evaluation workflows had switched from Bedrock to OpenAI.
The exact cutover timestamp was not documented, but the timing and criterion-level discontinuities strongly support a model-calibration change rather than a sudden improvement in agent performance.
Tone of Voice was real but did not explain the full bump. Once TOV was replayed, a weighted criterion/channel decomposition showed that Solve the Request on calls had the greatest expected impact per replay. It carried 30% of the scorecard and retained a roughly 15-point pass-rate gap against the stable post-cutover baseline.
Population
| Local date bucket | Calls | Non-calls | Total |
|---|---|---|---|
| July 1–5 | 345 | 894 | 1,239 |
| July 6–12 | 412 | 1,849 | 2,261 |
| July 13–19 | 561 | 1,830 | 2,391 |
| July 20–26 | 676 | 1,909 | 2,585 |
| July 27–August 4 | 852 | 2,387 | 3,239 |
| Total | 2,846 | 8,869 | 11,715 |
Prioritization findings
The residual-gap analysis separated aggregate chart impact from impact per replay:
- Solve the Request, calls — best impact per replay. There were 1,027 eligible current passes from July 13 through August 2.
- Solve the Request, non-calls — largest aggregate remaining population, but lower expected movement per replay.
- Be Efficient for the Client, non-calls — meaningful mainly in the final two July weeks.
- Be Efficient for the Client, calls — real but much smaller after the first replay batch.
- Understand the Request — a visible pass-rate discontinuity but a smaller score contribution because the criterion is worth 10%.
- Tone of Voice — small residual contribution after the completed TOV waves.
The observed reruns validated this ordering:
- Be Efficient call passes moved by −3.24 points in the selected cohort.
- Solve Request call passes moved by −16.14, −19.85, and −20.18 points across the three waves.
Replay log
| Run | Population | Count | Result |
|---|---|---|---|
01a0fce8-003c-7bd4-a6e3-20e8733d2e5c | July 27–August 4 calls; TOV; no initial auto-fail | 500 | 59.07 → 54.48 (−4.59); 0 failed/conflicted |
01a0fd20-2259-7167-938f-9dda2aaacc85 | July 20–26 untouched calls; TOV wave 1 | 500 | 56.37 → 53.07 (−3.30) |
01a0fd20-82da-7c9c-9642-ea907b3919f1 | July 20–26 untouched calls; TOV remainder | 24 | 34.17 → 33.75 (−0.42) |
01a0fd21-f426-733c-9233-27dce3eb9aa0 | July 13–19 untouched calls; TOV | 319 | 53.53 → 53.78 (+0.25) |
01a0fd21-f871-71bd-8a81-87368852a99a | July 6–12 untouched calls; TOV | 235 | 44.47 → 45.30 (+0.83) |
01a0fd21-fb9b-78be-b822-330a5c90e27e | July 1–5 untouched calls; TOV | 191 | 43.06 → 44.61 (+1.55) |
01a1052f-e709-757d-bc63-f1dc87384878 | July 27–August 4 non-calls; TOV passes | 500 | 60.74 → 55.48 (−5.26); 0 failed/conflicted |
01a1077c-9867-716d-a553-c4874a37633c | July 27–August 4 non-calls; remaining TOV passes | 500 | 58.40 → 53.17 (−5.23); 0 failed/conflicted |
01a108fb-f217-7b43-85dc-b7fcba35e9b7 | July 27–August 4 non-calls; final TOV passes | 499 | 58.79 → 54.42 (−4.37); 0 failed/conflicted |
01a10917-e6d7-7e7f-a89a-594ce3c5a298 | July 20–26 non-calls; TOV passes | 500 | 59.66 → 54.38 (−5.28); 0 failed/conflicted |
01a1095f-d990-7e98-9746-2635117c6185 | July 20–26 non-calls; remaining TOV passes | 500 | 59.22 → 54.42 (−4.80); 0 failed/conflicted |
01a1097b-7363-706f-9456-6927120001db | July 13–August 2 calls; Be Efficient passes | 500 | 63.66 → 60.42 (−3.24); 0 failed/conflicted |
01a10997-0824-7298-9aee-d602e48ed40b | July 13–August 2 calls; Solve Request passes, wave 1 | 500 | 59.72 → 43.58 (−16.14); 0 failed/conflicted |
01a109b6-7748-7f7f-8746-7b2b64c27dae | July 13–August 2 calls; Solve Request passes, wave 2 | 500 | 62.36 → 42.51 (−19.85); 0 failed/conflicted |
01a109d5-b984-7af9-a695-69676257bb2d | July 13–August 2 calls; final Solve Request passes | 27 | 61.11 → 40.93 (−20.18); 0 failed/conflicted |
All 1,027 eligible Solve Request call passes from July 13 through August 2 were replayed successfully.
TOV first-batch detail
The initial deliberately sensitive TOV batch contained 500 calls from July 27 through August 4 with no auto-failed result. It included 473 TOV passes and 27 partials, selected round-robin across day and agent strata and covering 189 agents.
- Overall score: 59.07 → 54.48
- 218 evaluations decreased, 277 were unchanged, and 5 increased
- Original passes: 214 stayed Pass, 230 became Partial, 28 became Fail, and 1 became Auto-fail
- Original partials: 17 stayed Partial, 9 became Pass, and 1 became Fail
Across the six initial call TOV runs, 1,769 non-auto-failed calls moved from 53.30 to 51.39. Including earlier runs, all 1,928 effective non-auto-failed calls from July 1 through August 4 were covered.
Decision and follow-ups
- Do not continue broad pre-cutover re-evaluation based solely on the lower September trend.
- Leave auto-failed calls deprioritized; changing ordinary criteria does not change their zero overall score.
- If a future discrepancy reappears, compare against the immediate August 3–24 post-cutover baseline before using later months.
- Preserve the run IDs above for auditability.