Ask a model for an explicit probabilistic model of a few propositions, in a fresh session each time. Score what it wrote in three ways: against what happened, against what it wrote in other sessions, and against what it will write later, after more time or more reasoning. Every score is a proper scoring rule on stated numbers. Nothing is sampled.
Five sessions, each handed a tuple of propositions and returning a model over them. Wherever two tuples share a proposition, the two models can disagree. Those overlaps are the coherence loss. Each session is also scored on outcomes when its propositions resolve.
Three families of forecasts, one machinery. Beliefs about the world. Agreement between beliefs stated in different sessions. Beliefs about how the beliefs will change. All three are scored by proper rules, so honesty is the optimum at every level.
Inside one emitted model everything adds up by construction. Between two sessions nothing does. So the whole coherence loss is agreement on shared propositions, and the accuracy loss is the ordinary proper score of each session's model on reality. Edit session 3 below and watch both.
Bold propositions are shared with another session. Outcomes so far: C resolved true, F resolved false, the rest open. The log-score uses only resolved ones; the coherence loss uses all overlaps.
With network fragments the shared object is the marginal on the overlap, computed by exact inference, and the disagreement is the squared distance between two small probability tables instead of two numbers. Same loss.
A list of numbers has no built-in coherence; everything must be trained. A structured object has coherence inside it for free and leaves only cross-session agreement to train. The useful axis is how easy it is to ask for a part and compare parts.
| Structure | Coherent by itself | Asking for parts | Marginalising | When to use |
|---|---|---|---|---|
| List of (proposition, probability) | No | Trivial | None needed | Baseline; the current benchmark format. |
| Bayesian network fragment | Yes | Natural | Exact, cheap for small parts | Default. Structure is not compared across parts, only the distribution it induces. |
| Clique marginals on a junction tree | Yes iff separators agree | The cliques are the parts | Free | Best fit for "different parts each time": local agreement implies a global joint. |
| Weighted scenarios (K complete worlds) | Yes | Natural | Free | Most LLM-friendly to elicit; expressiveness capped at K. |
| Credal sets (intervals) | Yes if non-empty | Natural | LP | When the model should be allowed to say "0.4 to 0.6". |
| Probabilistic circuits | Yes, logic exact | Natural | Linear time | Strongest for checking, hardest to verbalise. |
Local is not global. Three pairwise-consistent marginals over {A,B}, {B,C}, {C,A} can admit no joint over {A,B,C}. Pairwise overlap agreement certifies a global joint only when the tuple cover has the running-intersection property (a junction tree). Otherwise add occasional larger "glue" tuples, and report the projection loss, min over one joint Q of Σ D(Pi, Q(Ui)), on a held-out set small enough to solve exactly.
A rational belief path is a martingale: today's belief equals the expectation of tomorrow's. That is not an extra output. It is enforced by scoring the belief at t₁ against the belief at t₂ with a proper rule, as if t₂ were the outcome. Proper rules are minimised by the conditional mean, so t₁ moves toward the average of t₂, not toward any single t₂. Spread is allowed. Bias is not. The simulator below runs 400 synthetic markets through a forecaster with adjustable flaws.
one market mean of b₂ given b₁ martingale line. Hedging pulls the t₁ belief toward 0.5, so the binned mean leaves the diagonal: t₂ beliefs are predictably more extreme than t₁. The loss sees that and pushes t₁ out. Set hedging to 0 and the curve sits on the line no matter how wide the scatter.
For a martingale, total squared movement equals uncertainty resolved. Movement above the bound is over-reaction, below it is sluggishness (Augenblick and Rabin's test). The reaction slider scales the t₂ update. Hedging at t₁ also shows up here, as sluggishness, because the later beliefs are more extreme than the earlier ones. With both sliders neutral the bars match. Neither bar needs a resolution; both come from the model’s own belief paths.
| Target for b(t₁) | Available | Teaches |
|---|---|---|
| resolution | months later, some markets | calibration |
| price or own belief at t₂ | immediately, all markets | calibration and no predictable drift |
| own belief at higher effort | immediately, no data needed | the same across reasoning instead of time |
Train the property, not the length. The model emits its structure at several effort levels. Each level is scored against the mean of the next level up, using a frozen teacher copy and no gradient through the target. The top level alone touches reality, coherence and the anchor. Low-effort answers become unbiased previews of high-effort answers, and the slope of accuracy against budget becomes a measured quantity.
Arrows are rewards, pointing from the target to the level being trained. Nothing pulls the top level toward the bottom; the asymmetry is what makes reasoning worth doing. Without the top row the ladder collapses to a constant.
Eight high-effort runs on the same tuple, their mean, and the low-effort answer. The reward is −(low − mean)². Widen the spread: the reward does not change. Only the gap to the mean matters, which is exactly the martingale condition from Chapter 3 with reasoning tokens in place of calendar time.
"How much will I move after a day?" and "how much more accurate will I be after a day?" are the same number. For a martingale, expected squared movement equals expected Brier improvement. So the model states, per horizon, its expected squared change, and is scored on it once the horizon passes. The curve must be non-decreasing and can never exceed the uncertainty left, b(1 − b).
At resolution all remaining uncertainty is resolved, so the last point should sit on the bound. Typical move after a horizon is √m: at m = 0.01 the model expects to be within about ±0.10 tomorrow.
stated m(Δ) bound b(1−b). Scored later with −(m − realised Δb²)², a proper rule for an expectation. On the effort axis the model controls its own later belief, so the later output must receive only its own accuracy and coherence rewards, never a reward for matching the prediction. On the time axis, score against the market price and the issue disappears.
Hundreds of open markets at any time t are one large coherence problem with real structure, a proxy resolution at every later date, and a baseline to beat: the price vector's own arbitrage gaps.
| Market pattern | Constraint it yields |
|---|---|
| Multi-outcome market | Σ p = 1 |
| Same event, two platforms or phrasings | p₁ = p₂ |
| "By date D" family | p(D₁) ≤ p(D₂) |
| Threshold family (above X) | monotone in X |
| Nested events (primary, general) | p(general) ≤ p(primary) |
| Conditional market | p(Y∧X) = p(Y|X)·p(X) |
| Mutually exclusive pair | p(A∧B) = 0 |
Remembered and new events both belong in training. A proper score elicits honest credence either way, including half-remembered outcomes, and a mixed set with the date in the prompt fits the confidence habit on the right distribution. Two rules still hold: report two accuracy numbers, recall on pre-cutoff markets and forecasting on post-cutoff ones, since both matter and they measure different things; and watch survivorship (fast-resolving markets over-represented), thin markets with stale prices, and ambiguous resolution criteria.
Every row is a proper score on the marginals of the emitted structure. Rows 1 and 2 are the two losses you started with. Rows 3 to 6 need no outcomes at all.
| # | Reward | Target | Needs outcomes | Trains |
|---|---|---|---|---|
| 1 | log p(outcome) | resolution | yes | accuracy, calibration |
| 2 | −‖Pi(I) − Pj(I)‖² | another session | no | coherence |
| 3 | −(b(t₁) − b(t₂))² | later price or belief | no | martingale updating |
| 4 | −(blow − mean bhigh)² | frozen higher-effort teacher | no | anytime improvement |
| 5 | −(m(Δ) − realised Δb²)² | own later belief or price | no | self-knowledge |
| 6 | −λ·KL(prev ‖ now) | previous checkpoint | no | anchor against collapse |
Failure modes to design against. Collapse: rows 2 to 5 alone are satisfied by constant beliefs; row 1 or 6 must always be present. Self-fulfilment: stop-gradient on every later output used as a target. Goodhart on effort: never reward tokens, edge counts or structure size directly; richer structures must win through rows 1 and 2. Degenerate coherence: all-0.5 passes many checks; row 1 breaks the tie.