DOC GK-014 TYPE ENGINEERING LOG SUBJECT JEVBENCH CORRECTED ΔECE 0.264

Confident
where people
disagree.

TypeSafe AI describes the probabilities its Jev decision model returns as calibrated. I tested that on the hardest kind of question: ones that careful people genuinely disagree about. On 750 sentence pairs where annotators split, Jev was 80.7% confident on average while 46.8% of annotators picked its answer. One threshold, fixed before any scored call, and the paper lists every deviation from the plan. Paper: DOI 10.5281/zenodo.22971491. Code: jevbench, MIT. Independent study, not affiliated with or endorsed by TypeSafe AI.

CHAOSNLI · 100 PEOPLE LABEL EACH PAIR · ILLUSTRATIVE CLEAR PAIR 90 / 10 CONTESTED PAIR 45/35/20 SCORED AGAINST THE SHARE OF ANNOTATORS WHO PICKED THE MODEL'S LABEL IF CONFIDENCE DRIVES "ACT IF P ≥ 0.9", IT HAS TO DROP WHERE PEOPLE SPLIT.
FIG 14.1 · Splits drawn for illustration, not taken from the data. No ChaosNLI sentence text appears on this page or in the repository.

SEC. 01

The claim, and the question it skips

Most public tests of Jev used coin flips, dice or tasks with one correct label. Real inputs often do not have one: two careful people read the same pair of sentences and disagree. If a model's confidence is going to decide what software does on its own, the question that matters is simple. When people genuinely disagree, does the confidence go down?

ChaosNLI answers the hard part of that for me. It has 3,113 natural language inference pairs, each labelled by 100 people. I took the 750 pairs with the lowest annotator entropy and the 750 with the highest, equal counts on purpose, and scored each prediction against the share of the 100 annotators who picked Jev's label rather than against a single majority answer.

25 SEPTEMBER 2026 · UTC 06:29:11 PLAN HASH SUBMITTED TO OPENTIMESTAMPS 07:01:59 FIRST SCORED CALL 07:14:16 FIRST BITCOIN BLOCK 968519 TRACKS: ΔECE ≥ 0.09, P < 0.05 · HOLDS: 0.09 REJECTED, ≤ 0.02 · ELSE INCONCLUSIVE BITCOIN PROVES THE PLAN EXISTED BY 07:14, HOURS BEFORE ANALYSIS. NOT BEFORE THE FIRST CALL.
FIG 14.2 · 33 minutes is the submission, not the proof. The first block that commits to the plan came 12 minutes after the run started.

SEC. 02

One test, fixed in advance

Before any scored request, the preregistration fixed the metric, the analysis and the verdict rule. The result tracks disagreement if the bias-corrected gap in calibration error between contested and clear pairs is at least 0.09 with p under 0.05. It holds if a gap of 0.09 is rejected and the corrected gap is at most 0.02. Anything else is inconclusive, and the plan committed to publishing whichever way it went, including a null and including a result that supports TypeSafe's claims.

Every amendment to that plan is dated 22 to 24 September and was made on simulated and fixture data, before any paid scored run. The frozen plan's hash was submitted to OpenTimestamps at 06:29:11 UTC on 25 September, and the scored run began at 07:01:59.

I have been saying the plan was anchored in Bitcoin 33 minutes before the first scored call. Checking the proof for this log, that is not quite what it shows.

The 33 minutes is the time from submitting the hash to the timestamp servers. The proof only becomes independent once a Bitcoin block commits to it, and the first of the three blocks in the proof, 968519, was mined at 07:14:16 UTC: 12 minutes after the first scored call. What the proof does establish is that the plan existed within 12 minutes of the first call, hours before the raw responses were sealed for analysis at 13:39 UTC. The preregistration record on Zenodo was also deposited after data collection, and says so in its own description.

100 SIMULATED, PERFECTLY CALIBRATED MODELS · NOMINAL RATE 5% NAIVE ΔECE ~1 IN 10 BIAS-CORRECTED 0.051 5% NOMINAL FLAGGED AS "WORSE ON HARD ITEMS" WHEN NOTHING IS WORSE
FIG 14.3 · The comparison itself is biased, so the correction was locked in before any real data existed.

SEC. 03

The trap in comparing calibration

Binned calibration error is biased even for a perfectly calibrated model, and comparing it between two groups is biased toward finding a difference. In a simulation of 100 perfectly calibrated models, the naive comparison flagged about 1 in 10 as worse on hard items at a nominal 5% rate. A study that skipped this would have found the effect it was looking for whether or not it existed.

The preregistration requires a parametric correction and publishes the raw number beside the corrected one. With the correction, the false positive rate came back to 0.051. It is a form of consistency resampling (Bröcker and Smith 2007; Vaicenavicius et al. 2019), extended with a Beta-Binomial model of how annotators sample labels. I credited that lineage properly only in version 1.1; SEC. 07 has the details.

MEAN CONFIDENCE vs SHARE OF ANNOTATORS WHO AGREE · CHOICE FORMAT CLEAR · CONFIDENCE 91.5% CLEAR · AGREE 84.4% CONTESTED · CONFIDENCE 80.7% CONTESTED · AGREE 46.8% CORRECTED ΔECE 0.264 · 95% INTERVAL 0.244 TO 0.278 · BAR WAS 0.09 · TRACKS
FIG 14.4 · The signal is there and the scale is off. Confidence fell 11 points where agreement fell 38.

SEC. 04

The result

On clear pairs Jev was close to calibrated: 91.5% confident on average, with 84.4% of annotators picking its answer. On contested pairs it was 80.7% confident while 46.8% of annotators agreed. Calibration error rose from 0.076 to 0.339.

MeasureValueVerdict
Corrected ΔECE, Choice format0.264 (95% interval 0.244 to 0.278, p ≤ 1/2001)Tracks
Corrected ΔECE, Noul format0.076 (interval 0.060 to 0.090)Inconclusive
AUROC, confidence ranking contested pairs0.744Descriptive

That clears the preregistered bar of 0.09 by a wide margin. The error is overconfidence, and it is the kind that matters most if a threshold like "act if p is at least 0.9" decides what happens without a person.

SAME CALLS, TWO FORMATS · CORRECTED ΔECE 0.00 0.02 HOLDS 0.09 TRACKS NOUL 0.076 CHOICE 0.264
FIG 14.5 · Inconclusive stays inconclusive. 0.076 is between the thresholds, and it is not rounded up.

SEC. 05

Same question, different answer

Jev can be asked the same thing two ways: Choice, one multiple choice question, or Noul, three yes or no questions. Choice shows the gap clearly. Normalised Noul probabilities from the same calls land at 0.076, between the thresholds, so the preregistered verdict for that arm is inconclusive. TypeSafe's own documentation says the two formats need not agree, and here they do not. Reporting only the arm that cleared the bar would have been easy and wrong.

The other half of the story is less damning. Use Jev's confidence to guess which pairs are contested and it works reasonably well, with an AUROC of 0.744. Confidence does go down where people split. It just does not go down nearly enough.

ONE TEMPERATURE, T = 11.94 · ECE CONTESTED 0.339 → 0.044 CLEAR NOW 0.198 ONE KNOB, TWO PROBLEMS. A SUPERVISED BART-MNLI SHOWS THE SAME PATTERN, LARGER.
FIG 14.6 · The obvious fix moves the error rather than removing it.

SEC. 06

One knob cannot fix both

The obvious repair is temperature scaling: one number that rescales every probability. The best single setting, T = 11.94, takes contested pairs from 0.339 to 0.044 and makes clear pairs worse, at 0.198. A deployment cannot fix contested inputs this way without breaking the clear ones it was already getting right.

It is also not a Jev-specific defect. A supervised BART-MNLI model, trained on exactly this task, shows the same pattern with larger errors in both groups. The practical advice that follows is plain: treat the confidence as a ranking of how contested an input is, and set thresholds on your own labelled data.

WHAT WAS WRONG, AND WHERE IT IS DISCLOSED bug in my BART baseline clientFIXED, RE-RUN, IN PAPER secondary analysis search limitCORRECTED, IN PAPER related work and method lineage missingADDED IN V1.1 two CI checks still redOPEN, EXPLAINED "anchored 33 minutes before" overstatedCORRECTED HERE
FIG 14.7 · None of these changed a result. All of them would have been cheaper to leave out.

SEC. 07

What was wrong, and what I would say louder

A bug in my BART baseline client. I found it, fixed it and re-ran the baseline. A secondary analysis also had a search limit that was corrected after data collection. Both are in the paper's list of deviations rather than quietly patched.

Missing related work. Version 1.1, three days after the first release, adds five papers I should have cited, including Baan et al. 2024 on human label variation, and credits consistency resampling as the basis of the bias correction. No data, numbers or conclusions changed.

Two CI checks are still red. The citation checker needs the full git history and misreads one file hash in the preregistration changelog as a commit id, and the workflow linter reports findings in the CI configuration. Neither touches the analysis, the unit tests pass, and the README explains both near the top.

What I would say louder: the timing claim in SEC. 02. Submitted 33 minutes before is true, anchored 33 minutes before is not, and the version on my own site said the second one. One task, one dataset and one model version, jev-1.13.0, is also all this study covers. Newer versions may behave differently, and it measures agreement with people, not some deeper truth. TypeSafe provided $5 of API credit, the run cost about $0.41, and I sent them the paper before publishing.

DOC GK-014 · JEVBENCH · MIT, paper CC BY 4.0 · corrected ΔECE 0.264, verdict tracks Previous log: GK-013 · DODGE →