Support operations diagnostic
Generated 23 September 2026 from 5,375 classified tickets. Demonstration run on a public dataset of customer support messages, not client data.
Annual saving $151,928, or 29% of current spend.
Every ticket is assigned one contact reason. Reasons are ordered by monthly volume.
Cost today against cost at the target level of self-service, by reason.
| Contact reason | Tickets | Minutes | Self-service now | Target | Routing accuracy | Achievable | Cost now | At target | Saving |
|---|---|---|---|---|---|---|---|---|---|
| Account access | 1,094 | 6 | 18% | 70% | 98% | 69% | $4,208 | $2,286 | $1,923 |
| Refunds | 841 | 8 | 16% | 60% | 87% | 52% | $4,371 | $2,840 | $1,531 |
| Invoices | 740 | 5 | 21% | 80% | 100% | 80% | $2,342 | $1,149 | $1,193 |
| Account changes | 776 | 6 | 17% | 65% | 93% | 60% | $3,020 | $1,843 | $1,177 |
| Shipping address | 727 | 5 | 20% | 75% | 100% | 75% | $2,327 | $1,224 | $1,103 |
| Order changes | 687 | 7 | 13% | 50% | 96% | 48% | $3,213 | $2,197 | $1,016 |
| Order status and tracking | 757 | 4 | 21% | 80% | 97% | 78% | $1,948 | $1,094 | $854 |
| Policy questions | 616 | 4 | 22% | 85% | 100% | 85% | $1,569 | $803 | $766 |
| Payment failures | 374 | 9 | 10% | 40% | 100% | 40% | $2,291 | $1,662 | $629 |
| Complaints and feedback | 742 | 14 | 3% | 10% | 98% | 10% | $7,574 | $7,069 | $505 |
| Ordering help | 409 | 8 | 10% | 40% | 83% | 33% | $2,232 | $1,766 | $466 |
| Payment inquiries | 370 | 4 | 22% | 85% | 100% | 85% | $943 | $480 | $462 |
| Delivery and shipping options | 339 | 4 | 22% | 85% | 98% | 84% | $864 | $449 | $414 |
| Account closure and ownership | 331 | 10 | 5% | 20% | 100% | 20% | $2,360 | $2,043 | $317 |
| Subscriptions | 368 | 3 | 23% | 90% | 100% | 90% | $718 | $414 | $304 |
| Held for review | 93 | 6 | 0% | not classified | $444 | $444 | $0 | ||
| Asking for a human | 735 | 5 | 0% | 0% | 100% | 0% | $2,744 | $2,744 | $0 |
| Total | 10,000 | 15% | 56% | $43,167 | $30,507 | $12,661 |
Readable rules run first and always win. Only tickets the rules cannot match reach a language model running locally, and weak matches are held back for a person rather than guessed.
Handling a ticket and handling it correctly are different measures. Rules label most tickets, and of everything they label plus everything the model labels, 88.1% would be correct from rules alone. Adding the local model raises that to 95.8%, with 0.9% held back for a person. Measured on 5,375 tickets held back from all rule writing and example selection.
The three reasons with the most value on the table, each one high volume with routing accuracy strong enough to automate against.
| Contact reason | Tickets a month | Routing accuracy | Monthly saving |
|---|---|---|---|
| Account access | 1,094 | 98% | $1,923 |
| Refunds | 841 | 87% | $1,531 |
| Invoices | 740 | 100% | $1,193 |
Together these three are worth $4,647 a month of the $12,661 available, and none of them touch the queues where customers most need a person.
Every figure in this report rests on the inputs below. The client-supplied ones are replaced with measured numbers in the first week of an engagement. All of them are listed so that any one of them can be challenged.
| Input | Value | Source |
|---|---|---|
| Tickets a month | 10,000 | Client ticket volume for the last full month |
| Agent cost an hour | $32.00 | Client payroll or outsourcer invoice |
| Overhead multiplier on agent cost | 1.40 | Covers tooling, supervision, quality assurance and shrinkage |
| Fully loaded cost a minute | $0.75 | Calculated from the two figures above |
| Cost of an automated resolution | $1.00 | Vendor pricing for per-resolution support automation |
| Self-service today | 15% | Client deflection reporting |
| Tickets classified for this report | 5,375 | Measured in this analysis |
| Example phrasings given to the model | 10 per intent | Training split only, never the tickets used for scoring |
| Similarity needed before the model labels a ticket | 0.45 | Your call: raise it to automate less and misroute less |
The code, the rules a client can edit, and a record of every decision including the ones that turned out wrong, are published at github.com/threejay20/ticket-diagnostic. If you want this run against your own tickets, start here.