Skip to Content
Internal docs are powered by Nextra Docs Theme.
Incidents2026Qonto evaluation coverage

Qonto Evaluation Coverage - Week of 2026-06-22

Scope

  • Customer: Qonto
  • Organization ID: 33
  • Week: 2026-06-22 through 2026-06-28 in Europe/Paris
  • UTC query window: 2026-06-21 22:00:00 through 2026-06-28 22:00:00
  • Cohort: active, human, evaluable Qonto employees with a team
  • Evaluation target: 5 chat/email tickets per week per agent, 3 call tickets per week per agent
  • Starting focus: 79 of 380 teamed/evaluable employees had zero active completed AI evaluations

This note is the focused investigation log for the week of 2026-06-22. The first section explains the 79 agents with zero evaluations. Later sections should cover the other quota-miss buckets, especially agents who had some evaluations but did not reach the chat/email or call targets.

An eligible candidate pair means one (employee, conversation) pair where:

  • conversation_agents.employee_id = employee.id
  • conversation_agents.eligible_for_qa_evaluation = true
  • the conversation was resolved in the 2026-06-22 week
  • the conversation had ticket_status = resolved

Recommendations and impact

The first list contains configuration choices for Qonto. The second list contains Rulebase-owned fixes.

Customer recommendations

1. Review the strict chat/email eligibility policy

For agents who missed the 5/week chat/email target, the largest exact blocker was Qonto’s custom AI/freeform eligibility policy. These are not Rulebase ingestion failures; they are policy outcomes from Qonto’s configured eligibility instructions.

Based on a production rerun on 2026-07-02 for the week of June 22:

RecommendationEstimated impactNotes
Decide whether to relax Qonto’s chat/email eligibility policyUp to 243 additional target-filling chat/email evaluations for 114 under-target agents1,228 resolved QA-eligible chat/email candidate pairs were stopped by AI/freeform policy. The largest policy theme was the single-agent / multiple-agent rule. See full details.

2. Stop waiting for linked tickets to close

Today, some resolved tickets are not evaluated because another related ticket is still open. Turning this off would allow Rulebase to evaluate the resolved ticket without waiting for every linked ticket in the same customer issue to close.

Based on the week of June 22:

RecommendationEstimated impactNotes
Evaluate resolved tickets even when related tickets are still openUp to 191 additional target-filling chat/email evaluations for 101 under-target agentsIn the zero-evaluation group, 27 eligible resolved tickets were blocked by this rule. Across all chat/email under-target agents, 559 candidate pairs were blocked. See full details.

3. Extend the evaluation lookback window

Today, some tickets are skipped because the customer opened them more than 30 days before they were resolved. This can miss long-running tickets even when the agent resolved them during the target week.

Based on a production rerun on 2026-07-02 for the week of June 22:

RecommendationEstimated impactNotes
Raise the window to 90 daysUp to 45 additional target-filling chat/email evaluations for 33 under-target agentsCaptures 52 of 60 outside-window chat/email candidate pairs in the under-target group. See full details.
Raise the window to 100 daysUp to 47 additional target-filling chat/email evaluations for 34 under-target agentsCaptures 55 of 60 outside-window chat/email candidate pairs in the under-target group. See full details.
Raise the window to 120 daysUp to 48 additional target-filling chat/email evaluations for 35 under-target agentsCaptures 56 of 60 outside-window chat/email candidate pairs in the under-target group. Capturing all 60 would require 396 days because of one very old ticket. See full details.

Rulebase follow-ups

1. Fix call ticket channel detection before sampling

Today, some tickets clearly look like calls, but the channel value used by the coverage rules is blank. This is a Rulebase-side classification issue: those tickets can miss Qonto’s existing call sampling rule even though they are call conversations.

Based on the week of June 22:

RecommendationEstimated impactNotes
Backfill and fix the missing call channel valueRestores call sampling eligibility for affected call tickets; in Costas A.’s zero-evaluation case, 5 eligible call tickets were skipped by samplingThis is wider than one agent: 1,451 Qonto call tickets in the week of June 22 had a blank channel value, and 95 more appeared in the partial week of June 29. See full details.

2. Watch call coverage after the source-channel fix lands

Some call evaluations were manually marked inactive during cleanup, so the next week after rulebase-co/rulebase#7855  is merged and the call source-channel backfill is run should be treated as a monitoring week rather than a clean before/after read.

What to watch:

  • Newly backfilled call tickets should enter Qonto’s existing call coverage rule instead of sitting outside sampling.
  • Active completed call evaluations should rise with the fixed source-channel data.
  • If sampling counters show agents at the call target but active completed call evaluations are still low, investigate inactive completed call rows and sampling-counter reconciliation before treating the remaining gap as low ticket volume.

3. Audit chat/email evaluations that completed but did not count

Some chat/email candidate pairs reached a completed evaluation state, but still did not count as active completed chat/email evaluations for the target agent in the effective week.

Based on a production rerun on 2026-07-02 for the week of June 22:

Follow-upEstimated impactNotes
Audit completed-but-not-counting chat/email evaluationsCategory-capped impacts: 38 inactive completions, 10 completed requests not active for this agent, 6 same-agent completions outside the effective week or active window, and 1 other-agent completionThese rows are exact but not additive without a combined per-agent cap. See full details.

4. Review chat/email no_agents_sampled rows

Some requests passed earlier gates, but no agent was selected when the evaluation started. For agents who were still under the chat/email target, this should be checked against sampling counter state and agent partition selection.

Based on a production rerun on 2026-07-02 for the week of June 22:

Follow-upEstimated impactNotes
Review no_agents_sampled for chat/email under-target agentsUp to 26 additional target-filling chat/email evaluations for 22 agents89 resolved QA-eligible chat/email candidate pairs landed in this bucket. See full details.

Zero active completed AI evaluations

Zero-evaluation definition: no active, completed AI qa_agent_evaluations in the week.

Why the 79 zero-evaluation agents had no AI evaluations

Primary reasonEmployeesEligible candidate pairs
No resolved handled conversations440
AI/freeform ineligible1246
Resolved handled conversations, but none eligible for QA80
Linked tickets still open620
No customer response417
Outside evaluation window311
Not sampled18
Request completed, but not as an active completed eval for this agent11

The highest-impact finding is that 52 of the 79 zero-evaluation employees had no QA-eligible resolved candidate conversations at all:

  • 44 had no resolved handled conversations in the week.
  • 8 had resolved handled conversations, but every conversation-agent link was eligible_for_qa_evaluation = false.

For the remaining 27 employees, the largest downstream blocker was Qonto’s AI/freeform eligibility policy.

Samples below are representative rows, mostly sorted by candidate or handled volume. Conversation URLs are examples, not exhaustive.

No resolved handled conversations

These employees were active/evaluable and teamed, but had no resolved conversations attached through conversation_agents in the week. There are no example conversation URLs for this bucket because there were no resolved handled conversation links in the week.

Employee prefix idNameTeamResolved handled pairsQA-eligible candidate pairsExample conversation URLs
employee_NmgBWKqeAdB1iReJOzpPb42nYassine M.PS FL FR (Anaelle)00-
employee_e7zRmPE5ADwWuR90Z2MYp98QTheophane WeberAM BL FR (Julie)00-
employee_DqyQzkwoZ7q5fB0dlm68npR5Samir MK.AM FL FR (Julie)00-
employee_1k6RxVWDArYzcLjWZ7Kq3PdQMelek A.ECT FL FR00-
employee_dQEoj4rVl6kXIJwvOxe3aJb0Kevin M.L.Frontline team ES00-

AI/freeform ineligible

These employees had eligible resolved candidate conversations, but their candidate tickets were primarily rejected by Qonto’s AI/freeform eligibility instructions. The dominant themes seen in this bucket are Qonto-specific policy checks: multiple human agents on the same customer conversation, no meaningful two-way exchange, outbound-call exclusions, and authentication/identity flows where the underlying issue was not handled.

Employee prefix idNameTeamResolved handled pairsQA-eligible candidate pairsPairs in this bucketExample conversation URLs
employee_1k6RxVWDArYzcLamZ7Kq3PdQAlessandra T A.Frontline Team IT231811conversation_yE6wl1eRk5kf4KKoXaqO4o9b , conversation_gwN1a2pBr5EfOO84XdxGyj5M , conversation_KdyaEjbY6LgCjk6bBkGxpvzJ 
employee_da0gxRM6Oe3kh1dyAnP5z1KBMansour W M.AM FL FR (Axelle)775conversation_gjrAxVDX9n2iv9j6B6dv8bQl , conversation_NQ7xnGAXldqtaAbQX8pgyJKd , conversation_PzJ7xaQR38vUo7ZxY3AwL481 
employee_g5j74RKGZVEbFgqeOXN10P2YYouness MK.AM FL FR (Julie)1264conversation_PreWlJZBQVKtq0wERV49AbLw , conversation_noWeAqvRPgWSmrGjBLlQxGPz , conversation_Z9jo5GvBb5ZfbD4xXm30MbPV 
employee_oa2Q1GvRl0xYH42gl36wKNykNenad SavicPS FL DE (Filip)1044conversation_59kvLMoYjn1ip40PYExr8ng0 , conversation_vEWjxweXG41CZaqNBrlMyVnJ , conversation_PreWlJZBQVKtqa8JRV49AbLw 
employee_61GqnDYoZaQNtWLXZXQzw8K5Redouane H M.AM FL FR (Axelle)211conversation_plwyx6eYAyDF0V9kYANJQWkd 

Resolved handled conversations, but none eligible for QA

These employees had resolved conversations attached through conversation_agents, but none of those conversation-agent links were QA eligible. The Kaba spot check showed mostly internal note parts rather than customer-facing chat/email/call parts, which explains why eligible_for_qa_evaluation stayed false.

Employee prefix idNameTeamResolved handled pairsQA-eligible candidate pairsExample conversation URLs
employee_da0gxRM6Oe3kh150AnP5z1KBKaba C M. - (M)AM FL FR (Axelle)290conversation_GN4DOW6XDWLsxdl7Yl3L81vx , conversation_JNkrywaRxkNF09gnB27nOp8q , conversation_5mEGxnoRwqNHKbKbXpeKaJjg 
employee_NGVy6MQbO31bUPRBA1Enr7vLJihane N M. - (M)AM FL FR (Axelle)90conversation_NEpqV6ZXZqmHe7QQYnK0b2or , conversation_pmQMAW2Y19zte92PYG5ne3Zj , conversation_bwLn1Z8Rn28tNr9lRQozA27e 
employee_dDvBjL10lprBTdv0Z4kJQKzVRihab A.ECT FL FR30conversation_gwN1a2pBr5EfaaxKXdxGyj5M , conversation_lEkdn4mRen6igxLVY95WVz1A , conversation_oAv5WabYaejsL8ZkYwLkyGq6 
employee_d2z9RaWKZWrPTw88OvbGNqPrFred M.AM FL FR (Axelle)30conversation_Z8oVG14X587UnbzQYLMy7K6A , conversation_PgW2mJzBqEGI2Jn1Bdo3EOMK , conversation_yE6wl1eRk5kf4v5oXaqO4o9b 
employee_DpVW8no3AJnyCNj2AqRQMyv5Momo A. A.Frontline Team IT20conversation_0rpo9ZqB41wUQrWlRyD4KaNM , conversation_lEkdn4mRen6iempeY95WVz1A 

Linked tickets still open

These employees had eligible resolved candidate conversations, but the primary reason no evaluation was produced was that related linked tickets were still open.

Employee prefix idNameTeamResolved handled pairsQA-eligible candidate pairsPairs in this bucketExample conversation URLs
employee_dEjB1DpmA8m8txD3l6a0g2G4Thouraya A.ECT FL FR952conversation_qWpgQ92YV4vC4OVJB8kVN4xj , conversation_aLd5bzZXKg8SxvoaXKnEv236 
employee_mKLajqPVOMDBC8orlM97by6vBluett L.Frontline team ES553conversation_KdaMlx7YmzehKrOxX8qPo1jw , conversation_jb1VkA6YEKlSJndLB7g25QN8 , conversation_egDP1O6YWzwhvLNGRMN4kjKW 
employee_M7yz8wV2Zqy3IzKpZgxEn5YdYassine E MK.PS FL FR (Gabrielle)442conversation_8e2aVKQY7NmfAxkgRvWZGlJy , conversation_gwN1a2pBr5Efar01XdxGyj5M 
employee_92WKJDNxZgGWfvY9ZRkEp0BrSergio A.Frontline Team IT6332conversation_ZjK27yWRMgJSlg2VXPzbmdka , conversation_M2pxrAKYN2Gt49bvYZln4k6j 
employee_LQxakwn2Oxb9Uy9aAypB6re0Julien SempePS BL FR (Anaelle)222conversation_KdyaEjbY6LgCD5d8BkGxpvzJ , conversation_5lmMNGWYdGDHQWLyRzPQ4eVx 

Note: Thouraya A. had a tie between AI/freeform ineligible and linked tickets still open, with two candidate pairs in each bucket. The existing 79-agent breakdown places this employee in linked tickets, giving the documented 12 AI/freeform employees and 6 linked-ticket employees.

No customer response

These employees had eligible resolved candidate conversations, but the requests were skipped because the conversation did not have a qualifying customer response.

Employee prefix idNameTeamResolved handled pairsQA-eligible candidate pairsPairs in this bucketExample conversation URLs
employee_MPm3NaYoOzyPI4pzl8RWdLVGJudith Mulleras GonzalezBackline Team ES1396conversation_oAv5WabYaejs65E0YwLkyGq6 , conversation_E5JmjpvY01dUpJKPX30KoaVP , conversation_zyWpJ86R2y4FbgMNBD1q5gdN 
employee_8myn9VjPAN73CL4jlbrEJaN2Maxime Le LouarnPS BL FR (Anaelle)543conversation_KdaMlx7YmzehNkWnX8qPo1jw , conversation_KdaMlx7Ymzeh2DW7X8qPo1jw , conversation_plwyx6eYAyDFLA14YANJQWkd 
employee_V6yw4YG8ORxmHLkDApDRaWe1Uros MarkovicAM BL DE (Vojislav)222conversation_PgW2mJzBqEGIxD8NBdo3EOMK , conversation_0rpo9ZqB41wU5zAORyD4KaNM 
employee_DpVW8no3AJnyCYGEAqRQMyv5Martina JaruschewskiAM BL DE (Vojislav)222conversation_jb1VkA6YEKlSJGJ9B7g25QN8 , conversation_yE6wl1eRk5kfPAVLXaqO4o9b 

Outside evaluation window

These employees had eligible resolved candidate conversations, but the requests were skipped as outside the evaluation window.

Qonto’s current evaluation_ticket_started_window_days is 30. The gate uses the ticket start time (started_at, falling back to external_created_at) relative to the time the QA cron writes the request/skip. For these eight skipped candidate pairs, the oldest ticket was Eya A.’s conversation_bwLn1Z8Rn28tE59MRQozA27e : it started on 2026-03-12 14:14:58 UTC and was skipped on 2026-06-24 12:03:48 UTC, 103.91 days later.

Minimum setting that would have let all eight pass when they were skipped last week: 104 days. If changing the setting after the fact and immediately replaying normal eligibility on 2026-07-02, the same oldest ticket is already 111.54 days old, so the immediate replay minimum is 112 days. A practical setting with some buffer is 120 days.

Employee prefix idConversationTicket started at UTCFirst outside-window skip at UTCAge at skipMinimum window days
employee_DpVW8no3AJnyCRveAqRQMyv5conversation_bwLn1Z8Rn28tE59MRQozA27e 2026-03-12 14:14:582026-06-24 12:03:48103.91104
employee_g5j74RKGZVEbFga4OXN10P2Yconversation_57oV61vXv5NfMMNMY4lKkE2r 2026-03-30 17:53:362026-06-23 09:46:1984.6685
employee_4qdo1VQzZyrbTDpWAX8kyN5Lconversation_plwyx6eYAyDFrZMZYANJQWkd 2026-04-13 01:54:152026-06-22 06:30:0470.1971
employee_4qdo1VQzZyrbTDpWAX8kyN5Lconversation_NEpqV6ZXZqmHpElVYnK0b2or 2026-04-20 12:39:262026-06-23 07:00:1163.7664
employee_4qdo1VQzZyrbTDpWAX8kyN5Lconversation_wp24ZDMYL73ia1LGRl9xg6jk 2026-04-20 09:33:092026-06-22 11:15:1063.0764
employee_4qdo1VQzZyrbTDpWAX8kyN5Lconversation_egDP1O6YWzwhJGG3RMN4kjKW 2026-04-23 08:24:152026-06-23 11:30:3061.1362
employee_4qdo1VQzZyrbTDpWAX8kyN5Lconversation_ZjK27yWRMgJSWMpmXPzbmdka 2026-04-26 13:03:552026-06-23 12:30:2057.9858
employee_g5j74RKGZVEbFga4OXN10P2Yconversation_8e2aVKQY7Nmf75EqRvWZGlJy 2026-04-27 09:22:352026-06-23 09:46:1557.0258
Employee prefix idNameTeamResolved handled pairsQA-eligible candidate pairsPairs in this bucketExample conversation URLs
employee_4qdo1VQzZyrbTDpWAX8kyN5LKristina CebotarevPS BL DE (Filip)1585conversation_ZjK27yWRMgJSWMpmXPzbmdka , conversation_wp24ZDMYL73ia1LGRl9xg6jk , conversation_egDP1O6YWzwhJGG3RMN4kjKW 
employee_g5j74RKGZVEbFga4OXN10P2YSandra KukoljacAM BL DE (Dimitrije)322conversation_8e2aVKQY7Nmf75EqRvWZGlJy , conversation_57oV61vXv5NfMMNMY4lKkE2r 
employee_DpVW8no3AJnyCRveAqRQMyv5Eya A.ECT FL FR111conversation_bwLn1Z8Rn28tE59MRQozA27e 

Not sampled

This employee had eligible candidate conversations, but the primary reason was sampling-rule gating rather than eligibility.

Employee prefix idNameTeamResolved handled pairsQA-eligible candidate pairsPairs in this bucketExample conversation URLs
employee_MYbKEVJWlnP2izrNZL0Nvea3Costas A.PS FL FR (Gabrielle)1085conversation_QqLdbxaR8r0t6nZnXV8y42K6 , conversation_noWeAqvRPgWSmPObBLlQxGPz , conversation_pmQMAW2Y19zteAggYG5ne3Zj 

Call tickets missing source channel

Costas A.’s not-sampled tickets exposed a broader call-channel issue. The five affected tickets were call conversations, but their source channel was blank. Qonto’s call coverage rule looks for source channel call, so these tickets did not match the call rule even though they were calls.

This is a widespread issue for Qonto and it is still occurring. The weekly counts below use conversations with a call channel type; checking for at least one actual call part produced the same missing-source counts.

Week startingCall ticketsBlank/unknown source channelShare blank/unknownNotes
2026-06-298999510.6%Partial week through July 1; 42 were created on July 1.
2026-06-223,7661,45138.5%Same week as this coverage investigation.
2026-06-157,3245,82579.5%Peak observed week.
2026-06-0810,8045,06046.8%First large spike.
2026-06-0111,7401281.1%Baseline before the spike.
2026-05-259,5521091.1%Baseline before the spike.

The affected value is blank, not the literal value unknown: the production check found zero source_channel = unknown rows in these weekly buckets.

Request completed, but not as an active completed eval for this agent

This employee had one eligible candidate where the evaluation request completed, but it did not result in an active completed AI agent evaluation for this specific subject employee in the report window.

Employee prefix idNameTeamResolved handled pairsQA-eligible candidate pairsPairs in this bucketExample conversation URLs
employee_DpVW8no3AJnyCNoBAqRQMyv5Ana AndricAM BL DE (Vojislav)1211conversation_KvqxdzbRJveCOQQdRpyeoZaO 

Partial coverage: chat/email under target

After the 79 zero-evaluation agents, the next major coverage issue is partial coverage: agents who received some AI evaluations but still missed one or both weekly targets.

The original 2026-07-01 CSV showed 178 agents missing the chat/email target with a 647-evaluation gap. A direct production rerun on 2026-07-02 shows 177 agents and a 645-evaluation gap, so one agent appears to have gained two chat/email evaluations since the export.

For the week starting 2026-06-22, using the current production rerun:

MetricAgents / evaluations
Active/evaluable teamed agents380
Agents with zero AI evaluations79
Agents with some evaluations but not both targets295
Agents meeting both targets6
Agents missing the chat/email target177
Missing chat/email evaluations vs 5/week target645

The chat/email gap is smaller than the call gap, but still material. Of the 177 agents who missed the chat/email target:

Chat/email outcomeAgentsMissing evaluations
Zero chat/email evaluations82410
1-4 chat/email evaluations95235

Those 177 agents had 2,523 resolved QA-eligible chat/email candidate pairs across 125 agents. 52 of the 177 under-target agents had no resolved QA-eligible chat/email candidate pairs in the week. 97 had at least five such candidate pairs but still missed the 5/week chat/email target.

Exact blocker breakdown for the unresolved chat/email target gap:

BlockerRaw candidate pairsAgentsTarget-capped impact
AI/freeform ineligible1,228114243
Linked tickets still open559101191
No customer response1795179
No agents sampled892226
Ticket reopened / request cancelled734146
Outside evaluation window603649
Completed inactive for this agent543038
Request completed, but not active for this agent121010
No eligible agents found at request time989
Same agent completed outside this effective week or inactive window666
No agent response544
No matching scorecard555
Request failed444
Not sampled323
Conversation completed for another agent111

Target-capped impact means the row is capped by each agent’s remaining chat/email target gap. For example, if an agent needed two more evaluations and had ten blocked tickets in the row, the impact is counted as two. These rows are not additive across recommendations because the same agent’s remaining gap can be filled by more than one blocker category.

AI/freeform policy themes within the 1,228 AI/freeform-blocked candidate pairs:

AI/freeform themeRaw candidate pairsAgentsTarget-capped impact
Single-agent / multiple-agent rule84198200
No meaningful two-way exchange2326998
Outbound-call exclusion573643
Verification/authentication/identity exclusion362527
Explicit tag exclusion545
Other AI/freeform reason573538
Last updated on