How we measured · methodology and preregistration

How we measured decision model accuracy on ProofWriter

What the models were asked, which problems they saw, how answers were scored, what the numbers cannot tell you, and the predictions we wrote down before any model answered, each marked held or failed.

The dataset: ProofWriter

ProofWriter (Tafjord, Dalvi and Clark, 2021) is a multi-hop deductive reasoning dataset from AI2, published under CC BY 4.0. Each problem is a short theory of facts and rules in English and a statement to judge against it.

Version
V2020.12.3, official test splits: depth-0, depth-1, depth-2, depth-3, depth-5, NatLang
Gold answers
every selected label recomputed by hard_decisions.solver; zero disagreements. Our solver reproduces every published test label, on both tasks, with zero disagreements.
Pool
108,440 open-world test questions, from which the open-world sample is drawn
Synthetic
The theories are generated from templates, some reworded by people (the NatLang set). Models may have seen the dataset in training.

The sample: 1,800 problems per task, 3,600 in all

Running every model on the full test set is not practical, so the harness draws a sample with a fixed seed (0). Items are spread evenly over proof depth and the correct answer first, so deep proofs and the unknown answer are never starved the way a uniform draw would starve them; inside each cell, items are chosen to cover the other properties and spread across theories. A bigger sample with the same seed only adds items, so answers already collected stay valid.

Open world: true, false or unknown: items per depth and answer

DepthtruefalseunknownTotalAvailable in the pool
010010010030055,428
110110110030229,409
210110110130312,534
31011011013036,694
41011011013032,380
5101101872891,995

Closed world: true or false: items per depth and answer

DepthtruefalseTotalAvailable in the pool
015015030055,079
115015030028,872
215015030012,839
31501503006,922
41501503002,523
51501503002,101

ProofWriter publishes no separate depth-4 split; depth-4 items come from the splits built for deeper theories.

The two tasks

The same kinds of theory under two rules for what cannot be proved. Every model got exactly this question and these options, in this order.

Open world: true, false or unknown

Using only the facts and rules in the text, is the statement true, false, or unknown? A statement is true if it can be derived from the facts and rules, and false if its negation can be derived. If neither the statement nor its negation can be derived, it is unknown. A rule applies only when all of its conditions are established; 'not' in a condition requires the negation to be stated or derived.

  • true: The statement follows from the facts and rules.
  • false: The negation of the statement follows from the facts and rules.
  • unknown: Neither the statement nor its negation follows from the facts and rules.

Closed world: true or false

Using only the facts and rules in the text, is the statement true or false? Assume that anything which cannot be derived from the facts and rules is false: a positive statement is true only if it can be derived, and a statement with 'not' is true when the unnegated statement cannot be derived. A rule applies when all of its conditions hold; 'not' in a condition holds when the unnegated condition cannot be derived.

  • true: The statement holds under the closed-world assumption.
  • false: The statement does not hold under the closed-world assumption.

One request per problem, the same for every model

Each model answered each problem once, with the problem's text, the task's question and its options. Nothing was retried into a valid answer.

An answer that is not exactly one of the options is scored as wrong and kept in the record as given. Across every scored run so far there were 0 such answers.

Scoring

Accuracy
The share of problems answered correctly, with a 95% interval: the range the score would fall in if we drew the problems again (a percentile bootstrap, 1,000 draws, seed 0).
Floors
Chance (one over the number of options) and the best constant guess: always giving the most common correct answer in that slice.
Recall and macro-F1
Recall is the share of items with a given correct answer that the model got right; macro-F1 averages the F1 of each answer, so a model cannot score well by ignoring one.
Paired differences
Two models on exactly the same items: the difference in accuracy, with its own 95% interval. Narrower than comparing two separate intervals.
Breakdowns
Accuracy by 12 properties of the problems: proof depth, gold answer, theory kind, negation in the theory, negated statement, question strategy, paraphrased rules, theory's deepest proof, theory length, number of rules, number of facts, proof size. Only depth is controlled.
Repeatability
Each model answers every item a second time; we report agreement, Gwet's AC1 and Cohen's kappa. Details.

What the numbers cannot tell you

At about 300 items per depth, a depth's accuracy is uncertain by roughly ±5 points; at about 100 items per depth and answer, roughly ±10. Only large differences are resolvable at that level.

Run records

Every run the harness has recorded with its manifest: when, how many requests at once, on what machine and how busy it was. Earlier runs predate the manifests.

ModelTaskPurposeStartedFinishedAnsweredAt onceMachineLoad average at start
Kev-4BClosed worldscored run2026-10-01 12:19 UTC2026-10-01 12:58 UTC1,800 of 1,8001Apple M1 Max, 32 GBnot recorded
Kev-9BClosed worldscored run2026-10-01 15:34 UTC2026-10-01 16:18 UTC1,800 of 1,8001Apple M1 Max, 32 GB12.73 / 13.39 / 11.19
Kev-9BOpen worldscored run2026-10-01 14:43 UTC2026-10-01 14:44 UTC20 of 201Apple M1 Max, 32 GB7.95 / 7.82 / 8.05
Kev-9BOpen worldscored run2026-10-01 14:44 UTC2026-10-01 15:34 UTC1,780 of 1,7801Apple M1 Max, 32 GB7.72 / 7.82 / 8.04
JevClosed worldrerun (timing, retest)2026-10-01 12:04 UTC2026-10-01 12:09 UTC1,800 of 1,8001Apple M1 Max, 32 GBnot recorded
JevOpen worldrerun (timing, retest)2026-10-01 11:58 UTC2026-10-01 12:04 UTC1,800 of 1,8001Apple M1 Max, 32 GBnot recorded
Kev-0.8BClosed worldrerun (timing, retest)2026-10-01 16:32 UTC2026-10-01 16:36 UTC1,800 of 1,8001Apple M1 Max, 32 GB5.2 / 5.56 / 6.33
Kev-0.8BOpen worldrerun (timing, retest)2026-10-01 16:28 UTC2026-10-01 16:32 UTC1,800 of 1,8001Apple M1 Max, 32 GB5.84 / 5.5 / 6.55
Kev-4BClosed worldrerun (timing, retest)2026-10-01 13:56 UTC2026-10-01 14:21 UTC1,800 of 1,8001Apple M1 Max, 32 GB11.14 / 8.15 / 7.02
Kev-4BOpen worldrerun (timing, retest)2026-10-01 13:29 UTC2026-10-01 13:56 UTC1,800 of 1,8001Apple M1 Max, 32 GB7.26 / 6.97 / 7.22
LayaClosed worldrerun (timing, retest)2026-10-01 14:28 UTC2026-10-01 14:34 UTC1,800 of 1,8001Apple M1 Max, 32 GB7.12 / 8.46 / 8.5
LayaOpen worldrerun (timing, retest)2026-10-01 14:21 UTC2026-10-01 14:28 UTC1,800 of 1,8001Apple M1 Max, 32 GB10.03 / 9.27 / 8.55
GPT-6 LunaClosed worldrerun (timing, retest)2026-10-01 15:57 UTC2026-10-01 16:27 UTC1,800 of 1,8001Apple M1 Max, 32 GB7.88 / 8.32 / 8.96
GPT-6 LunaOpen worldrerun (timing, retest)2026-10-01 15:30 UTC2026-10-01 15:57 UTC1,800 of 1,8001Apple M1 Max, 32 GB15.51 / 10.17 / 9.47

Check it yourself

Every score on this site is computed from the saved answers, offline, without calling a model. The harness rebuilds them and this site from the same files:

hd verify          # recompute every ProofWriter gold label with the independent solver
hd replay          # rescore every saved answer: studies/*.jsonl
hd report          # write RESULTS.md
cd site && npm run build    # rebuild this site from studies/, engines.yaml and the run manifests

Every number is also in one data file.

Preregistered predictions: which held and which failed

Before any model answered an item, we wrote down what we expected. Each prediction is quoted word for word and checked against the scored results, by the rule stated beside it.

14 of 22predictions held so far. 1 partly held, 14 held, 4 failed, 1 mixed, 2 pending; 1 made no claim. A pending prediction waits for results that are still being run or scored; it is never guessed.

How to read a verdict

Held
The data meets the stated rule.
Failed
The data does not.
Partly held / mixed
One part or one task held and another failed.
Pending
The results it needs are not scored yet.

The preregistration states the predictions in words. Where it does not say how a word like "falls" is tested, the rule we applied is written beside the verdict, and it is the same for every model.

Jev: Predictions

  1. Partly heldPrediction 1

    Jev's accuracy falls as proof depth rises, on both tasks. Depth 0 is clearly above depth 5, with intervals that do not overlap on OWA.

    • Rule: depth 0 clearly above depth 5 on each task (95% intervals do not overlap), and no deeper level clearly above a shallower one.
    • OWA: depth 0 97.7% [96.0–99.3], depth 5 81.0% [76.5–85.5], intervals apart.
    • CWA: depth 0 99.3% [98.3–100.0], depth 5 89.3% [85.7–92.3], intervals apart; but depth 5 (89.3%) is clearly above depth 4 (76.3%).
  2. HeldPrediction 2

    On OWA, Jev's recall on unknown is the lowest of the three classes at depth 3 and above.

    • Rule: at each of depths 3, 4 and 5 on OWA, Jev's recall on unknown is the lowest of the three classes. (Recall by depth and class is counted from the saved answers.)
    • Depth 3: true 86.1%, false 80.2%, unknown 73.3%; lowest is unknown.
    • Depth 4: true 80.2%, false 79.2%, unknown 56.4%; lowest is unknown.
    • Depth 5: true 93.1%, false 92.1%, unknown 54.0%; lowest is unknown.
  3. FailedPrediction 3

    By depth 5, Jev is within 10 points of its own best-constant floor on at least one task (that is, it has largely stopped using the rules).

    • Rule: at depth 5, Jev's accuracy is within 10 points of the best constant guess on at least one task.
    • OWA: 81.0% against a best constant of 34.9%, +46.0 points above it.
    • CWA: 89.3% against a best constant of 50.0%, +39.3 points above it.
  4. FailedPrediction 4

    Negation in the theory (theory_negation = negation) lowers accuracy relative to no negation.

    • Rule: accuracy with negation in the theory is below accuracy without it.
    • OWA: with negation 87.5% [85.4–89.7], without 80.3% [77.7–83.1]: clearly higher with negation, the opposite of the prediction.
    • CWA: with negation 93.7% [92.1–95.3], without 85.2% [82.8–87.5]: clearly higher with negation, the opposite of the prediction.
  5. HeldPrediction 5

    Paraphrased rules (NatLang) are no easier than templated ones.

    • Rule: paraphrased rules are not clearly easier (their interval is not wholly above the templated one).
    • OWA: paraphrased 78.1%, templated 86.1%.
    • CWA: paraphrased 76.7%, templated 94.0%.
  6. No claimPrediction 6

    No claim about the other axes (length, rule count, proof size, strategy) beyond reporting them; they correlate with depth, so those breakdowns are descriptive.

    • Reported, not predicted: see the breakdown pages.

Kev-0.8B: Amendment 1: Kev

  1. HeldPrediction 1

    Kev's accuracy falls with proof depth on both tasks.

    • Rule: depth 0 clearly above depth 5 on each task (95% intervals do not overlap), and no deeper level clearly above a shallower one.
    • OWA: depth 0 70.3% [65.3–75.7], depth 5 50.9% [45.3–56.7], intervals apart.
    • CWA: depth 0 68.0% [62.7–73.3], depth 5 51.7% [46.0–57.3], intervals apart.
  2. HeldPrediction 2

    Kev is below Jev overall on both tasks (paired interval excludes zero).

    • Rule: the paired interval for Jev minus Kev-0.8B lies above zero on both tasks.
    • OWA: Jev minus Kev-0.8B +30.3 points [+27.7 to +32.7] on 1,800 items.
    • CWA: Jev minus Kev-0.8B +33.5 points [+30.7 to +36.3] on 1,800 items.
  3. HeldPrediction 3

    On OWA, Kev's unknown recall is its lowest class recall.

    • Rule: on OWA, recall on unknown is the lowest of the three classes.
    • Kev-0.8B recall on OWA: false 89.6%, true 58.2%, unknown 11.9%; lowest is unknown.

GPT-6 Luna: Amendment 2: LLM classifiers

  1. HeldPrediction 1

    Luna's accuracy falls with proof depth on both tasks.

    • Rule: depth 0 clearly above depth 5 on each task (95% intervals do not overlap), and no deeper level clearly above a shallower one.
    • OWA: depth 0 93.3% [90.3–96.0], depth 5 46.0% [40.1–51.6], intervals apart.
    • CWA: depth 0 98.0% [96.3–99.3], depth 5 44.7% [38.7–50.3], intervals apart.
  2. FailedPrediction 2

    On OWA, Luna's unknown recall is its lowest class recall.

    • Rule: on OWA, recall on unknown is the lowest of the three classes.
    • GPT-6 Luna recall on OWA: false 50.9%, true 58.3%, unknown 83.4%; lowest is false.
  3. HeldPrediction 3

    With reasoning off, Luna does not beat Jev at depth 5 on OWA (the paired interval does not exclude zero in Luna's favour).

    • Rule: at depth 5 on OWA, the paired interval for Jev minus Luna does not lie wholly below zero.
    • Depth 5, OWA: Jev minus Luna +34.9 points [+27.3 to +42.9] on 289 items.
  4. MixedPrediction 4

    Paraphrased rules lower Luna's accuracy less than they lower Jev's.

    • Rule: on each task, Luna's accuracy drop from templated to paraphrased rules is smaller than Jev's. (No interval was preregistered for this difference, so it is a point comparison.)
    • OWA: Luna drops +12.9 points, Jev drops +8.0: failed.
    • CWA: Luna drops +8.4 points, Jev drops +17.3: held.

Kev-4B and Kev-9B: Amendment 3: Kev-4B and Kev-9B

  1. FailedPrediction 1

    Accuracy rises with size: Kev-4B is above Kev-0.8B overall on both tasks (paired interval excludes zero).

    • Rule: Kev-4B is above Kev-0.8B overall on both tasks, with a paired interval that excludes zero.
    • OWA: Kev-4B 53.6%, Kev-0.8B 53.6%.
    • CWA: Kev-4B 58.8%, Kev-0.8B 55.8%.
    • Kev-4B is not ahead on OWA, so its interval cannot exclude zero in its favour there.
  2. HeldPrediction 2

    Kev-4B and Kev-9B stay below Jev overall on both tasks.

    • Rule: the paired interval for Jev minus each larger Kev lies above zero on both tasks.
    • OWA: Jev minus Kev-4B +30.3 points [+27.4 to +32.9] on 1,800 items.
    • CWA: Jev minus Kev-4B +30.5 points [+27.9 to +33.1] on 1,800 items.
    • OWA: Jev minus Kev-9B +25.3 points [+22.7 to +27.8] on 1,800 items.
    • CWA: Jev minus Kev-9B +25.5 points [+23.0 to +27.8] on 1,800 items.
  3. PendingPrediction 3

    Kev-9B is not reliably above Kev-4B (paired interval includes zero) on at least one task.

    • Kev-9B and Kev-4B are both scored, but the harness has not computed their paired interval.

Repeatability: Amendment 4: test-retest repeatability

  1. PendingPrediction 1

    Kev and Laya agree with themselves on at least 99.5% of items on both tasks (local, fixed weights).

    • Rule: every Kev and Laya rerun agrees with its first run on at least 99.5% of items, on both tasks.
    • Kev-0.8B on OWA: 100.0% agreement.
    • Kev-0.8B on CWA: 100.0% agreement.
    • Kev-4B on OWA: 100.0% agreement.
    • Kev-4B on CWA: 100.0% agreement.
    • Laya on OWA: 100.0% agreement.
    • Laya on CWA: 100.0% agreement.
    • No scored rerun yet for: Kev-9B on OWA, Kev-9B on CWA.
  2. HeldPrediction 2

    Jev's AC1 is at least 0.90 on both tasks (observed: 0.958 on both, before this amendment).

    • Rule: Jev's AC1 is at least 0.90 on both tasks. (The amendment notes this was already observed when it was written.)
    • OWA: AC1 0.958 [0.948–0.969], agreement 97.2%.
    • CWA: AC1 0.958 [0.944–0.971], agreement 97.9%.
  3. HeldPrediction 3

    Where answers change, they change more at depth 3 and above than at depth 0 to 2, for every engine with at least 20 changes.

    • Rule: for every model with at least 20 changed answers, the share that changes is higher at depths 3 and above than at depths 0 to 2.
    • Jev on OWA: 4.5% of answers changed at depths 3 to 5 (40 of 895) against 1.1% at depths 0 to 2 (10 of 905).
    • Kev-0.8B on OWA: 0 changes, under the 20 the rule needs.
    • Kev-4B on OWA: 0 changes, under the 20 the rule needs.
    • Laya on OWA: 0 changes, under the 20 the rule needs.
    • GPT-6 Luna on OWA: 12.8% of answers changed at depths 3 to 5 (115 of 895) against 7.7% at depths 0 to 2 (70 of 905).
    • Jev on CWA: 3.3% of answers changed at depths 3 to 5 (30 of 900) against 0.9% at depths 0 to 2 (8 of 900).
    • Kev-0.8B on CWA: 0 changes, under the 20 the rule needs.
    • Kev-4B on CWA: 0 changes, under the 20 the rule needs.
    • Laya on CWA: 0 changes, under the 20 the rule needs.
    • GPT-6 Luna on CWA: 12.2% of answers changed at depths 3 to 5 (110 of 900) against 6.6% at depths 0 to 2 (59 of 900).

Luna confidence probe: Amendment 6: can GPT-6 Luna's log-probabilities serve as a confidence?

  1. HeldPrediction 1

    Luna's ECE exceeds 0.15 on both tasks.

    • Rule: Luna's expected calibration error is above 0.15 on each task.
    • OWA: ECE 0.316.
    • CWA: ECE 0.318.
  2. HeldPrediction 2

    At least half of Luna's wrong answers are stated at 95% or more, on both tasks.

    • Rule: at least half of Luna's wrong answers are stated at 95% or more, on each task.
    • OWA: 75.5% of 660 wrong answers.
    • CWA: 80.6% of 633 wrong answers.
  3. HeldPrediction 3

    Luna's AUROC is lower than Jev's on both tasks.

    • Rule: Luna's AUROC is below Jev's on each task, on the same items.
    • OWA: Luna 0.662, Jev 0.849.
    • CWA: Luna 0.679, Jev 0.858.
  4. HeldPrediction 4

    On most responses, Luna discloses fewer than all of the task's options.

    • Rule: on more than half of the responses, fewer than all of the task's options are disclosed.
    • OWA: 1,764 of 1,800 responses disclose fewer than all 3 options.
    • CWA: 1,455 of 1,800 responses disclose fewer than all 2 options.

The frozen design

Fixed before any model answered.

What would count against us

Accuracy flat across depth (prediction 1 false), or unknown recall not the lowest (prediction 2 false), is reported as such.

Caveats stated in advance

ProofWriter is synthetic and templated, and models may have seen it in training. Interval widths at 100 to 150 items per depth are about plus or minus 8 to 10 points per class-balanced stratum, so only large differences are resolvable at the depth-by-label level. Breakdowns are descriptive, not causal.