Cost-Aware Abstention for LLM-Based IT Ticket Classification
Organizations: Independent Researcher United States
Abstract
Wrong automatic routing of an IT support ticket can cost more than human triage. We evaluate cost-aware abstention as an offline, cost-conditional readiness assessment: select a routing policy on calibration data under explicit costs, then evaluate that frozen policy once on held-out test data. On a public 47,837-ticket, eight-class corpus, we compare four trained non-LLM classifiers with four large language models under zero- and few-shot prompting. Under the illustrative cost model (c_ok, c_triage, c_wrong) = (0, 1, 5), TF-IDF with logistic regression and a threshold of 0.60 selected on calibration reduces test cost from 0.763 to 0.472, a 38.1% relative reduction (paired ratio-bootstrap 95% CI [35.7%, 40.4%]), while lowering wrong routes from 15.3% to 3.5%. Frozen calibration-selected policies also beat both always-route and always-defer on held-out test data in 14 of 16 settings in a post-hoc cost-parameter analysis. The strongest prompted configuration reaches 0.477 accuracy on a stratified 1,000-ticket test subset, versus 0.879 for fine-tuned DistilBERT on the same tickets. Isotonic lowers expected calibration error without reliably improving discrimination: GPT-4o-mini few-shot has one confidence value before and after recalibration and correctness AUROC 0.500. We therefore report correctness AUROC and tie-aware risk-coverage area alongside ECE. At the analytically derived break-even probability 0.80, seven prompted configurations defer all tickets; Haiku few-shot routes only 19/1,000. An LLM-only agreement control and margin/entropy rejection baselines further separate calibration from discrimination. The findings are scoped to this dataset, prompt design, model endpoints, and illustrative costs; the work is an evaluation framework, not a new abstention algorithm or universal deployment certification.
Figures & tables
| Property | Value |
|---|---|
| # tickets | 47,837 |
| # classes | 8 |
| Train / Calib. / Test | 33,486 / 4,784 / 9,567 |
| Median ticket length (chars) | 175 |
| Class imbalance (max/min) |
| Baseline (on 1,000-ticket subsample) | Acc. | Macro-F1 | ECE-raw |
|---|---|---|---|
| TF-IDF + LR | 0.847 | 0.842 | 0.111 |
| TF-IDF + Linear SVM | 0.867 | 0.869 | 0.056 |
| TF-IDF + Random Forest | 0.804 | 0.791 | 0.172 |
| DistilBERT (fine-tuned) | 0.879 | 0.883 | 0.043 |
| Model | Setting | Acc. | Macro-F1 | ECE r | ECE i | AUROC r | AUROC i | AURC r | AURC i |
|---|---|---|---|---|---|---|---|---|---|
| TF-IDF + LR | classical | 0.847 | 0.842 | 0.107 | — | — | — | — | — |
| TF-IDF + Linear SVM | classical | 0.863 | 0.864 | 0.046 | — | — | — | — | — |
| TF-IDF + Random Forest | classical | 0.818 | 0.806 | 0.182 | — | — | — | — | — |
| DistilBERT (fine-tuned) | classical | 0.877 | 0.874 | 0.041 | — | — | — | — | — |
| Claude Haiku 4.5 | few-shot | 0.477 | 0.459 | 0.386 | 0.035 | 0.664 | 0.659 | 0.417 | 0.430 |
| GPT-4o-mini | few-shot | 0.459 | 0.450 | 0.541 | 0.021 | 0.500 | 0.500 | 0.541 | 0.541 |
| Model | Setting | ECE M9 | ECE M8 | AUROC M9 | AUROC M8 |
|---|---|---|---|---|---|
| Claude Haiku 4.5 | few-shot | 0.148 | 0.210 | 0.692 | 0.590 |
| GPT-4o-mini | few-shot | 0.205 | 0.239 | 0.707 | 0.593 |
| Qwen2.5-7B-Instruct | few-shot | 0.196 | 0.238 | 0.708 | 0.603 |
| Llama-3-8B-Inst.-Lite | zero-shot | 0.193 | 0.209 | 0.750 | 0.658 |
| GPT-4o-mini | zero-shot | 0.271 | 0.305 | 0.800 | 0.694 |
| Claude Haiku 4.5 | zero-shot | 0.251 | 0.283 | 0.814 | 0.721 |
| Policy | Reduction % | Cov. % | Acc. % | |
|---|---|---|---|---|
| always_route | 0.763 | — | 100.0 | 84.7 |
| [email protected] | 0.510 | 33.1 | 81.0 | 92.1 |
| [email protected] | 0.472 | 38.1 | 70.5 | 95.0 |
| [email protected] | 0.494 | 35.2 | 60.1 | 96.8 |
| [email protected] | 0.556 | 27.2 | 48.7 | 98.2 |
| [email protected] | 0.673 | 11.8 | 33.7 | 99.4 |
| Baseline | Reduction % | 95 % CI | Wr. % | |||
|---|---|---|---|---|---|---|
| TF-IDF + LR | 0.60 | 0.763 | 0.472 | 38.1 | 3.5 | |
| TF-IDF + Linear SVM | 0.70 | 0.687 | 0.434 | 36.7 | 3.7 | |
| TF-IDF + Random Forest | 0.60 | 0.910 | 0.571 | 37.3 | 2.1 | |
| DistilBERT (fine-tuned) | 0.90 | 0.615 | 0.396 | 35.5 | 3.3 |
| 2 | 5 | 10 | 20 | |
|---|---|---|---|---|
| 0.5 | [email protected] / 0.220 / 27.9% | [email protected] / 0.293 / 41.4% | [email protected] / 0.342 / 31.6% | [email protected] / 0.374 / 25.2% |
| 1.0 | [email protected] / 0.298 / 2.4% | [email protected] / 0.482 / 36.9% | [email protected] / 0.586 / 41.4% | [email protected] / 0.684 / 31.6% |
| 1.5 | [email protected] / 0.306 / % | [email protected] / 0.606 / 20.6% | [email protected] / 0.789 / 47.4% | [email protected] / 0.934 / 37.7% |
| 2.0 | always_route † / 0.305 / 0.0% | [email protected] / 0.698 / 8.5% | [email protected] / 0.963 / 36.9% | [email protected] / 1.173 / 41.4% |
| Score | Reduction % | 95 % CI | Cov. % | ||
|---|---|---|---|---|---|
| Top probability | 0.65 | 0.482 | 36.9 | 65.2 | |
| Top-two margin | 0.43 | 0.467 | 38.8 | 68.5 | |
| Inverse entropy | 0.44 | 0.507 | 33.6 | 68.3 |
| Setting | Prompt | Max tok. | Acc. | Macro-F1 | Parse err. |
|---|---|---|---|---|---|
| zero-shot | v1 | 64 | 0.345 | 0.245 | 0.000 |
| zero-shot | v2 | 128 | 0.250 | 0.197 | 0.000 |
| few-shot | v1 | 64 | 0.245 | 0.271 | 0.185 |
| few-shot | v2 | 128 | 0.320 | 0.289 | 0.000 |
Selective Prediction
Selective prediction lets models answer only when sufficiently reliable, trading coverage for lower error through abstention, referral, or extra evidence gathering.
See all 287 papers