Skip to main content
Measure: Forward Belief Volatility (FBV) Methodology Version: fbv-v1.2 · Clock Version: clock-v1.0 · De-vig: devig-proportional-v1 Last Updated: August 2026
This page is the methodology of record for the Belief Volatility family. Every quantity below is computed from publicly observable prediction-market prices and a versioned release-curve artifact. Each published record carries the release share it was computed with, so any published value can be re-derived from that record alone. Start with the Glossary if a term is unfamiliar.

1. What it measures

A prediction market prices an event. It does not price the movement of that event’s probability. Equity markets solve this with options: implied volatility is read off an option chain. Prediction markets have no option chain, so a volatility measure has to be built from the contract prices themselves. Belief Volatility answers one question: how much is this probability expected to move over the next N days? It is quoted in probability points. A 30-day reading of 37.6 means the outcome probabilities are expected to travel about 37.6 points, root-mean-square, over the next thirty days. It is not directional. It says nothing about which outcome is likelier or which way prices will move – only about the magnitude of the movement.

2. The variance budget

The foundation is an identity, not a model. For a binary contract that settles at 0 or 1, the price is a martingale under the pricing measure. A martingale that starts at p and must end at 0 or 1 has a total expected quadratic variation fixed by where it starts:
This is the variance budget. It is the entire amount of movement the contract has left between now and settlement. It is not estimated – it is read directly off the current price. Two consequences worth internalising:
  • A contract at 50c has the largest possible budget (0.25). A contract at 2c has almost none (0.0196). Certainty is quiet by construction.
  • The budget shrinks as the market makes up its mind, regardless of how much time is left.

3. The information clock

The budget says how much movement remains. It does not say when. Splitting the budget across calendar time is the one place this methodology estimates rather than derives. We call that allocation the information clock. For a tenor τ, the clock reports the share of the remaining budget expected to be released within the next τ days:
The published clock, clock-v1.0, is fitted on a panel of 4,152 resolved prediction markets (2023–2026). Shares are estimated in buckets of time-to-settlement, then published as a monotone log-linear interpolation in ln(days-to-settlement), anchored at Â(τ|τ) = 1. The interpolation is not cosmetic. A raw step function jumps at bucket edges, and a predictable jump is predictable drift – exactly what a forward measure must not contain. The loader rejects a clock artifact that is discontinuous, non-monotone, or otherwise incoherent. The clock is a versioned artifact. Every published record names the clock_version it was computed under and carries the release share it used, so a value stays re-derivable under the curve that produced it. A refit is a methodology change and is governed accordingly (§9).

4. From budget to a quoted number

Combining the two:
where W is the variance budget. The bare ticker always means the 30-day tenor. MIDVOL is MIDVOL-30 everywhere – in the API, the data dictionary, chart exports and any published copy. FBV-R is published as a secondary field labelled “remaining uncertainty (to resolution)”. It is never the headline: it carries no information beyond the prices themselves, and it declines mechanically into the event. Readings are not annualised. A 30-day reading is a 30-day reading. Annualising a measure whose budget is fixed and depleting would imply a stationarity that does not exist here.

5. Composite series over a partition

Some questions are not binary. Control of Congress has five mutually exclusive outcomes, and a measure of “how uncertain is control of Congress” has to cover the whole outcome map. For a partition of n ≥ 3 mutually exclusive, jointly exhaustive outcomes with de-vigged prices p_1..p_n summing to 1:
Expectations are additive, so this needs no correlation estimate. One property is disclosed rather than hidden: because the probabilities must sum to 1, movement between two legs is counted in both. A pure shuffle of mass between two outcomes registers as movement twice. That is intended – the composite measures total movement of the outcome distribution, not of any single scalar. The hostile reading of this (“you double-count substitution”) is correct, and we state it rather than wait to be asked. The composite clock is the budget-weighted mixture of the per-leg clocks:
What ships today: a common clock, disclosed on every value. The mixture above is implemented, but the clock is currently fitted per category rather than per leg. Every leg of the congressional partition carries the elections curve and differs only through its own days-to-settlement, so with a common settlement date the per-leg shares coincide and the mixture reduces to a single Â(τ). That is why the worked example in §6 can use one number and still be exact. This is not left to be discovered. Every published value carries this disclosure verbatim:
This value assumes [the listed legs] release variance on a common election-night schedule. A Senate runoff, recount, or certification dispute would concentrate mass in a later window not modelled here; per-leg clocks are not yet separately estimated.
The assumption is material and we would rather state it than defend it later. Legs are genuinely not clock-homogeneous – the House is typically called on election night, while Senate control turned on post-election runoffs in two of the last three cycles. Differentiated per-leg clocks, carrying explicit runoff and certification mass, are specified and belong to the event-window measure (MIDVOL-E), which is deferred until that estimation lands. Until then the label above travels with every reading rather than a differentiation claim we have not earned.

Secondary diagnostics

Two quantities are published beside the headline, deliberately not folded into it:

Auditability

The headline satisfies a Pythagorean identity against its own legs, published and checked at runtime:
Every published record carries the per-leg values, so the headline can be re-derived from the same page it appears on.

6. Worked example

A 2026-07-31 snapshot of the congressional balance-of-power partition, de-vigged:
Per-leg FBV-R: 49.6 · 11.4 · 49.3 · 33.8 · 7.3 points. Pythagorean check: √(49.57² + 11.41² + 49.27² + 33.83² + 7.33²) = 78.82 At 95 days to settlement under clock-v1.0, Â(30) = 0.2293, giving:
Secondary diagnostics: W̃ = 0.777, effective outcomes = 2.64.

7. Price inputs and de-vigging

Inputs are depth-weighted mid prices from the venue’s order book, subject to the freshness and depth gates in §8. Raw prices across a partition do not sum to 1 – the difference is the venue’s spread. We normalise proportionally (devig-proportional-v1) so the vector sums to exactly 1. Sensitivity to that choice is published rather than assumed away: against additive and power alternatives, the observed spread at a 1.024 overround is about 0.6 points. De-vigging is a versioned methodology parameter, not a gate. Changing it is a methodology change.

8. Publication gates – reject, never clamp

A value that fails a quality check is withheld, not adjusted. There is no clamping, no smoothing, no carrying-forward of a stale number under a current timestamp. A withheld reading is labelled as withheld, and the last published reading is labelled as last published. Gates fall into six groups:
  1. Input freshness – maximum snapshot age, and maximum skew across the legs of one record. Stale or mixed-snapshot legs never enter a single reading.
  2. Per-leg informativeness – spread relative to the leg’s own mid, absolute depth at touch, an impact test budgeted in headline points, and a check that the mid is not within one tick of 0 or 1 (a leg that has effectively resolved carries no forward movement).
  3. Arbitrage bound – across n separate binary markets the only no-arbitrage constraints are Σ eff_bid ≤ 1 ≤ Σ eff_ask. A breach of the buy-all bound rejects when it is established at size — a breach resting only on quotes below a published size floor is disclosed instead, because a dust order at the touch is not an executable edge. The sell-all side flags. Tolerance is arb_tolerance_ticks multiplied by the coarser of the coarsest leg’s tick and a floor, arb_tolerance_min – a breach smaller than one tick is not expressible on the venue’s own price grid, and the floor stops a venue reporting an implausibly fine tick from driving the gate to a resolution we have no reason to trust.
  4. Book-sum disclosure – the pre-de-vig mid sum is compared against an overround band. Since fbv-v1.2 this discloses in both directions and never rejects: across n separate markets a mid sum below 1 carries no arbitrage content, and gating on it withheld arbitrage-free books.
  5. Cross-book consistency – the partition-implied marginal for a chamber is compared against the separately traded contract for that chamber. Divergence beyond tolerance flags; further divergence suspends. The implied correlation between chambers carries its own stability band.
  6. Numerical identity – the de-vigged vector must sum to 1 within tolerance, and the Pythagorean identity must close. These catch our own arithmetic, not the venue’s.
Every gate parameter is published. GET /volatility/series carries a gates block with each threshold – the family-level scalars, the per-check flag and suspend tolerances, and the points-squared tolerance the Pythagorean check actually applies. Any published gate status can therefore be re-derived from published numbers: if a reading is flagged, you can check the tolerance that flagged it.
Two structural thresholds are fixed by the methodology rather than configured, and so are stated here instead: a composite requires n ≥ 3 outcomes, and it requires at least three legs passing the depth test. Falling below either withholds the composite for that reading while the per-outcome records continue. Withholding is not retirement. A reading can be withheld and recover on the next one. Retirement is permanent, requires the condition to persist across a sustained run of readings rather than a single one, and is disclosed as its own publication state — see §9. A flagged reading still publishes. Flagging discloses a condition; it does not suppress the value. The distinction travels with the record.

9. Versioning, corrections and governance

Versioning is prospective only. A methodology or clock change applies from the moment it takes effect. Published history is never restated, never back-filled, and never recomputed under a new convention. Where a version boundary falls inside a chart, the line breaks and the new version is named at the break. Corrections are appended, never rewritten. If a published value was wrong, the correction is published at the same instant with an incremented revision. The erroneous record stays exactly as it was published. Consumers take the highest revision for a given instant. Methodology changes carry notice. A change to a gate parameter, the tenor set, the de-vig convention, the clock, or the estimator is a noticed change under the benchmark governance policy, recorded in the governance log.

10. What this is not

Stating the boundaries plainly, because a number quoted without them will be misread:
  • Not a VIX-equivalent. It is not annualised, and the scale is probability points, not percent. A reading of 37.6 and a VIX of 37.6 have nothing to do with each other.
  • Not directional. It does not forecast which outcome wins, or which way prices move.
  • Not a confidence interval for any single contract.
  • Not a forecast of realised movement under the real-world measure. The budget is a pricing-measure quantity; the clock is fitted on realised release patterns. Treating the two as interchangeable is a working assumption, not a result.
  • Not investable. Belief Volatility series are benchmark data products. There is no fund, no share class, and no money path behind them.

11. Reproducing a published value

Every published record is self-contained – it carries both inputs, so no external lookup is needed:
  1. Take the de-vigged price vector from the record’s per-leg fields.
  2. Compute W = Σ p_k(1 − p_k).
  3. Take Â(τ) from the record’s own share field for that tenor. The record carries the release share it was actually computed with, so a historical value re-derives under the curve that produced it rather than today’s.
  4. FBV-τ = 100 · √(W · Â(τ)).
The release-curve artifact itself – the full  surface across every time-to-settlement, rather than the single point a given record used – is not currently served at a public URL. That means published values are reproducible, but a forward value for a date or tenor we have not published is not independently computable. Making the artifact publicly downloadable per clock_version is tracked work, not a claim we are making today. Each record carries the methodology_version, clock_version and devig_version it was computed under, so a historical value reproduces under the convention that produced it rather than today’s.

Further reading

  • Research paper – the full derivation, prior art and empirical validation. Submitted; it will be linked here once it is live.
  • Benchmark governance – how methodology changes are noticed.
  • Governance log – the dated record of every change.
  • MCP server – programmatic access.