WhichJudge / decision

Prompt-injection screen

Neither compares Jev with 4o-mini only

Jev 80.5% against Mini 74.5% is a significant 6.0pt win (Holm p=0.036), and it does not matter: Jev misses 39.0% of injections, Mini 51.0%, the 2026 model 40.0%, all at 0.0% false positives. TF-IDF at 90.5% beats both APIs. A security gate is judged on what gets through, and every model here lets 39% or more through.

Replaces: LLM guard deciding whether untrusted input may reach an agent
Gold: deepset/prompt-injections - deepset/prompt-injections, train + test, multilingual, n=200 (rows left after v1), n=200, seed=11
Labels: injection / legitimate

ModelAccuracy95% CILatency (p50 unless stated)Cost per 1M decisions
Jev jev-1.13.080.5%[74.5% - 85.4%]797 ms$18.09
gpt-4o-mini-2024-07-1874.5%[68.0% - 80.0%]1107 ms$28.91
gpt-5.4-mini-2026-03-1780.0%[73.9% - 85.0%]1058 msunpriced (175.0 tok/call)
Laya (self-hosted, convaiinnovations/laya)63.5%[56.6% - 69.9%]356 ms local cpu, no network$0 API, compute not priced
gpt-6-luna (OpenAI Decisions API)72.0%[65.4% - 77.8%]814 ms, one client, region unset, includes network$22.72 (list $0.10 per 1M input tokens, 2026-10-09)
@cf/cloudflare/clef (Cloudflare Workers AI)79.0%[72.8% - 84.1%]966 ms, one client, region unset, includes network$58.69 (list $0.24 per 1M input tokens, 2026-10-09)
@cf/cloudflare/clef-flash (Cloudflare Workers AI)68.0%[61.2% - 74.1%]648 ms, one client, region unset, includes network$22.01 (list $0.09 per 1M input tokens, 2026-10-09)
TF-IDF + LR (train n=461)90.5%[85.6% - 93.8%]39 us mean per row, batched$0

McNemar Jev vs Mini: jev, p=0.00596 (14 Jev-only correct, 2 Mini-only correct). TF-IDF vs Jev: tfidf.

Quit line

At >=0.9: 86.3% on 84.0% of rows, 5.8pt above ungated. Recall of injections on the covered rows barely moves, so raising the bar hands the misses to a human instead of catching them.

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

Calibration: ECE 0.137 (max bin gap 0.47). 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 7288f7ddd121, schema 6c6520e72c9f. receipts/prompt_injection.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/prompt_injection.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=200, 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