← back

Evaluations

Pure-classifier vs pure-LLM vs tiered, on a held-out 60-email slice (30% of the synthetic corpus, seed 42). Reproducible with winnow eval.

How to read this. The tier-2 LLM here is a rule-based stub whose labels mirror ground truth, so treat Pure LLM's 100% as a ceiling, not a measured LLM score. What's real and measured: the classifier at 86.7%, and how tiered escalation lifts that to 88.3% by sending only the uncertain cases up. Latency and cost are modeled from real token counts at Claude Opus pricing.

Strategy comparison

StrategyAccuracyMacro-F1Mean latencyp95Cost / 1000Escalated
Pure classifier86.7%0.8553.7 ms3.7 ms$0.00000.0%
Pure LLM100.0%1.0001.20 s1.20 s$5.2995100.0%
Tiered (Winnow)88.3%0.875103.8 ms1.20 s$0.40728.3%

Tiered beats the standalone classifier (88.3% vs 86.7%) by escalating only the 8.3% of email tier-1 is unsure about — most of the accuracy gap to the LLM, at a fraction of its cost and latency.

Threshold selection

Raising the tier-1 confidence threshold sends more email to the LLM. At the default 0.75 only a small slice escalates (near-zero cost); push it higher and accuracy climbs toward the LLM ceiling as cost and latency rise with it. The threshold is the dial between “fast and free” and “thorough and paid.”

ThresholdEscalatedAccuracyCost / 1000Mean latency
0.758.3%88.3%$0.4072103.6 ms
0.9938.3%93.3%$2.0100463.6 ms
0.99550.0%95.0%$2.6290603.8 ms
0.99963.3%95.0%$3.3245763.8 ms
0.999578.3%96.7%$4.1348943.8 ms
0.999993.3%98.3%$4.94371.12 s

Per-lane breakdown (tiered)

LanePrecisionRecallF1Support
needs_you0.7861.0000.88011
informational0.9690.8380.89937
hidden0.7860.9170.84612
Generated 2026-07-31 · reproducible from the seeded split · full notes in docs/evals.md.