midprice-v1
Last Updated: February 2026
This document provides the complete specification of how Belief Index computes its published index levels. The methodology is designed to be transparent and independently verifiable – anyone with a spreadsheet and access to public market data can replicate any published level.
Overview
Themidprice-v1 methodology computes the index value using the arithmetic midpoint of best bid and best ask prices from the Polymarket order book. This approach provides a simple, transparent, and deterministic price discovery mechanism.
The computation produces two outputs:
Step-by-Step Computation
Step 1: Determine Market Prices
For each market in the series, a price must be determined. The source depends on whether the market is still active or has resolved.- Active markets
- Resolved markets
- Fallback behavior
Step 2: Normalize Weights
Raw weights from the series composition are normalized so they sum to exactly 1.0:Worked example: weight normalization
Worked example: weight normalization
Step 3: Compute the Raw Index Value
The raw index value is a weighted average of all market prices:Worked example: full raw index value calculation
Worked example: full raw index value calculation
Step 4: Compute Index Level
The Index Level provides a rebased representation starting at a base value of 100, making it easy to track percentage performance over time:- inception_raw_nav is the raw index value at the first successful computation for this series
- 100 is the base index level (analogous to setting any price index to 100 at its starting date)
Worked example: Index Level calculation
Worked example: Index Level calculation
Step 5: Chain-Linking (Perpetual Series)
When a Perpetual series changes composition through reconstitution,raw_nav changes mechanically – different markets, different weights, different numbers. To keep the published Index Level continuous across the change, the series is chain-linked: a new inception_raw_nav is computed so that the first post-reconstitution Index Level equals the level immediately before the event (the chain-link anchor).
100 x (raw_nav / new_inception_raw_nav) under the new composition. The evaluation is a single Decimal expression at 8 decimal places.
Worked example: chain-linking across a reconstitution
Worked example: chain-linking across a reconstitution
inception_raw_nav is set once at inception and never changes.
Precision
All calculations use controlled precision to ensure consistency and reproducibility:Staleness
A computation is marked stale when all three conditions are met:- Any underlying market price fetch failed
- A fallback (last-known) price was used instead
- The series is not fully resolved
Resolution Handling
Markets within a series resolve independently as their underlying events occur. The series continues operating with a mix of resolved and active markets until all markets have settled.How partial resolution works
How partial resolution works
Terminal index value
Terminal index value
- Definitive – not subject to further change
- Not stale – there is no data quality concern since all prices are settlement prices
- Binary by component – each market contributed either $1.00 or $0.00
Known Limitations
Themidprice-v1 methodology is designed for simplicity and transparency. These design choices come with known trade-offs that data users should understand.
Theoretical vs. Executable Pricing
The midprice is a theoretical value. It does not account for:- Trading fees (typically 0.5-2% on underlying markets)
- Slippage for market-sized orders
- Market impact of hypothetical replication trades
Liquidity Variance
Markets within an index may have vastly different liquidity profiles, yet carry equal weight:Static Weighting
Current indices use fixed weights assigned at composition time:- Weights do not adjust for changes in liquidity
- No automatic rebalancing based on market conditions
- A market that becomes illiquid after inclusion continues to receive its full weight
No Correlation Adjustment
Markets within a series may be correlated (e.g., multiple Federal Reserve-related events). The methodology treats each market as independent and does not discount for information overlap. This may overstate the diversification benefit of holding multiple related markets.Independent Verification Guide
One of the core design principles of Belief Index is that anyone can independently verify a published level using only public data and a spreadsheet. This section provides a step-by-step process.What You Need
Step-by-Step Verification
Get the series composition
- The list of underlying markets (by question/title)
- The tracked outcome for each market (YES or NO)
- The raw weight assigned to each market
Look up each market on Polymarket
- Best bid – the highest price someone is willing to pay for the tracked outcome token
- Best ask – the lowest price someone is willing to sell the tracked outcome token
Reading the Polymarket order book
Reading the Polymarket order book
- Bids (buy orders): Sorted with the highest bid at the top. This is the best bid.
- Asks (sell orders): Sorted with the lowest ask at the top. This is the best ask.
Compute midprices
Normalize weights
Compute the raw index value
Compute Index Level (optional)
Compare to the published value
Common Verification Issues
My number doesn't match – what should I check?
My number doesn't match – what should I check?
- Timing: The index value is computed at a specific moment. If you fetch prices even a few minutes later, markets may have moved. Try to fetch prices as close to the published computation time as possible.
- Wrong outcome token: Make sure you are looking at the order book for the tracked outcome (YES or NO) as specified in the series composition, not the opposite side.
- Resolved markets: If a market resolved between computations, the system uses the settlement price ($1.00 or $0.00), not the last trading price.
- One-sided book: If a market shows only bids and no asks (or vice versa), the midprice cannot be computed. The published index value may be using a cached price for that market and will be flagged as stale.
- Precision: Use at least 8 decimal places in your calculations. Rounding intermediate results too aggressively can compound into noticeable differences.
Can I automate this verification?
Can I automate this verification?
Future Methodology Versions
All methodology changes are tracked via a version string recorded with each computation. Any methodology change will be announced in advance and clearly documented.What would future versions change?
What would future versions change?
- Liquidity-weighted midpoint (
midprice-v2): Would reduce the influence of thinly-traded markets on the aggregate index value by weighting each market’s contribution by its order book depth. - Volume-weighted average price (
vwap-v1): Would use actual executed trade prices rather than quoted prices, reflecting real market activity. - Time-weighted average price (
twap-v1): Would smooth prices over a rolling window, reducing the impact of short-term volatility or manipulation.
midprice-v1 is intentionally simple and transparent.