WhichJudge / decision

Consumer complaint routing

Replace compares Jev with 4o-mini only

The only row here that is not academic gold: a regulator runs this routing live and the consumer writes the narrative. Jev 83.8% beats Mini 77.4% by 6.4pt (Holm p=0.0002). TF-IDF scores 85.6%, ns against Jev and significant against Mini; the 2026 model ties Jev at 83.8%. Narratives average about 960 characters, past the cost crossover, so Jev is the cheaper API by the widest margin on the board: $33.42 against $78.59 per million decisions.

Replaces: LLM classifier routing inbound financial complaints to a product queue
Gold: CFPB Consumer Complaint Database via a CC0 mirror - CFPB Consumer Complaint Database, 8 product queues, n=500, seed=11
Labels: credit_reporting / debt_collection / cards / bank_account / mortgage / money_transfer / loans / student_loan

ModelAccuracy95% CILatency (p50 unless stated)Cost per 1M decisions
Jev jev-1.13.083.8%[80.3% - 86.8%]712 ms$33.42
gpt-4o-mini-2024-07-1877.4%[73.5% - 80.8%]960 ms$78.59
gpt-5.4-mini-2026-03-1783.8%[80.3% - 86.8%]822 msunpriced (506.0 tok/call)
Laya (self-hosted, convaiinnovations/laya)57.0%[52.6% - 61.3%]970 ms local cpu, no network$0 API, compute not priced
gpt-6-luna (OpenAI Decisions API)83.0%[79.5% - 86.0%]802 ms, one client, region unset, includes network$54.61 (list $0.10 per 1M input tokens, 2026-10-09)
@cf/cloudflare/clef (Cloudflare Workers AI)82.2%[78.6% - 85.3%]1429 ms, one client, region unset, includes network$153.76 (list $0.24 per 1M input tokens, 2026-10-09)
@cf/cloudflare/clef-flash (Cloudflare Workers AI)77.0%[73.1% - 80.5%]621 ms, one client, region unset, includes network$57.66 (list $0.09 per 1M input tokens, 2026-10-09)
TF-IDF + LR (train n=63,789)85.6%[82.3% - 88.4%]288 us mean per row, batched$0

McNemar Jev vs Mini: jev, p=1.72e-05 (42 Jev-only correct, 10 Mini-only correct). TF-IDF vs Jev: ns.

Quit line

At >=0.9: 92.1% on 78.6% of complaints, 8.3pt above ungated. ECE 0.094 means do not repeat the confidence to anyone as a probability; it does not stop you thresholding on it.

Auto slice: at Jev confidence ≥ 0.9, 92.1% accurate on 78.6% of traffic, which is +8.3pt against 83.8% ungated. That threshold is the strongest one still covering at least half the traffic, picked by rule from the measured gates.

Calibration: ECE 0.094 (max bin gap 0.298). ECE says whether the confidence can be read as a probability. It does not say whether gating helps: thresholding only needs the model to rank its own answers, so a badly calibrated task can still gate well. High ECE costs you the right to quote the number, not the right to threshold on it.

Verify this

Frozen samples d6d9ae005e10, schema cd991970d17b. receipts/cfpb_queue_route.json here is the slim copy: per call, the id, gold, prediction, confidence, latency and the SHA-256 of the request and response. The full request and response bodies are in the repository at results/receipts/cfpb_queue_route.json .

git clone https://github.com/RadRebelSam/whichjudge.dev
python3 scripts/verify_run.py   # recounts this table from the receipts, no API key
python3 scripts/run_eval.py     # hits the APIs again with your own keys

Independent bench, not affiliated with TypeSafe AI. Public gold labels, n=500, not a procurement study. All 11 decisions · source and data · contact@radrebeldeveloper.com

build e6d1f683a4 · this row from run 1 of 1, 2026-09-21T06:23Z