Calibrated Confidence Scores: What Calibration Means

⏱️ 4 min read 🤖 AI & ML

A confidence score is "calibrated" when it matches reality: among all the times a model says 0.7, the thing it's predicting should actually happen about 70% of the time. That's a precise, checkable statistical property — and it's different from a model simply being able to produce a number that looks like a confidence score. This distinction is central to how TypeSafe AI positions Jev, whose Noul (yes/no probability) and Score question types are trained specifically for calibration via RLCD.

Quick answer: A calibrated 0.7 means "right about 70% of the time, at this confidence level, across many predictions" — it's a measurable property you can check by bucketing predictions and comparing predicted probability to observed frequency. A chat LLM's stated confidence ("I'm about 80% sure") is not trained to have this property and frequently doesn't — it's an inferred, self-reported number the model produces as text, not a probability tied to any calibration objective.

What does it mean for a confidence score to be calibrated?

Take every prediction a model made with confidence 0.7. If the model is well-calibrated, roughly 70% of those predictions should have turned out correct. Do the same check at 0.9 and roughly 90% should be correct. A model can be highly accurate but poorly calibrated (always right, but its "confidence" numbers are noise), or well-calibrated but not very accurate (its 0.6 really does mean 60%, but 60% isn't very useful for your decision). They're separate properties, and calibration is the one that's easy to overlook.

Why is a calibrated 0.7 more useful than an LLM's stated confidence?

Because you can act on it systematically. If a score is calibrated, you can set a threshold ("auto-approve anything above 0.9, route 0.5–0.9 to a human, reject below 0.5") and trust that the threshold means roughly what it says across your whole volume of decisions. A chat LLM asked "how confident are you?" is generating a plausible-sounding number as part of a text response — it's not the output of a training process that specifically rewarded calibration, and research on LLM confidence has repeatedly found it doesn't reliably track actual correctness. TypeSafe AI's stated rationale for training Jev with RLCD (Reinforcement Learning for Calibrated Decisions, as opposed to RLHF for chat models or RLVR for verifiable tasks) is specifically to optimize for this property on Score and Noul outputs. See RLCD explained for how that training objective differs from RLHF and RLVR.

How do I check whether a confidence score is actually calibrated?

Bucket your predictions by confidence (e.g., 0.0–0.1, 0.1–0.2, ... 0.9–1.0), and within each bucket compute the fraction that were actually correct. Plot predicted confidence against observed accuracy — a perfectly calibrated model sits on the diagonal. This is usually visualized as a reliability diagram, and summarized numerically with metrics like Expected Calibration Error (ECE), which averages the gap between predicted confidence and observed accuracy across buckets, weighted by how many predictions fall in each.

# Simplified calibration check
buckets = group_predictions_by_confidence(predictions, n_buckets=10)
for bucket in buckets:
    predicted_conf = bucket.mean_confidence
    observed_acc   = bucket.fraction_correct
    gap = abs(predicted_conf - observed_acc)  # contributes to ECE

Do this on your own data before trusting any vendor's calibration claim — including TypeSafe AI's. Their reported accuracy figures (Jev at 67.8% on their own four-workflow benchmark) are vendor-reported and have not been independently reproduced, and calibration on that benchmark is a separate, unverified claim from accuracy on it.

Does high accuracy imply good calibration?

No. A model that's right 90% of the time but says "0.99 confident" on every prediction is inaccurate about its own uncertainty even though its accuracy is high — it's overconfident. Conversely, a model that hedges everything toward 0.5 might be well-calibrated on average but useless for decision-making because it never commits. You want both accuracy and calibration, and they have to be measured separately.

Common pitfalls

A few mistakes come up repeatedly when teams work with confidence scores:

Pro Tip: Before wiring any confidence score — from Jev, from an LLM, from a classical ML model — into an automated decision (auto-approve, auto-escalate), run it through a reliability diagram on held-out data from your own workload first. A model can be well-calibrated on a vendor's benchmark and poorly calibrated on your distribution.

← Back to AI & ML Tips