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 atp and must end at 0 or 1 has a total expected quadratic variation
fixed by where it starts:
- 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:
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: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 ofn ≥ 3 mutually exclusive, jointly exhaustive outcomes with de-vigged prices
p_1..p_n summing to 1:
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:6. Worked example
A 2026-07-31 snapshot of the congressional balance-of-power partition, de-vigged: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:
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:- Input freshness – maximum snapshot age, and maximum skew across the legs of one record. Stale or mixed-snapshot legs never enter a single reading.
- 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).
- Arbitrage bound – across
nseparate 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 isarb_tolerance_ticksmultiplied 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. - Book-sum disclosure – the pre-de-vig mid sum is compared against an overround band. Since
fbv-v1.2this discloses in both directions and never rejects: acrossnseparate markets a mid sum below 1 carries no arbitrage content, and gating on it withheld arbitrage-free books. - 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.
- 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.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 incrementedrevision. 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:- Take the de-vigged price vector from the record’s per-leg fields.
- Compute
W = Σ p_k(1 − p_k). - Take
Â(τ)from the record’s ownsharefield 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. FBV-τ = 100 · √(W · Â(τ)).
 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.