Skip to main content
These examples walk through actual NAV calculations using the midprice-v1 methodology. Each example uses realistic numbers and can be replicated with a spreadsheet and public market data from Polymarket.
Every number below is computed using 8-decimal-place precision with round-half-up, matching the production system exactly. If you follow along in a spreadsheet, your results should match within rounding tolerance.

Example 1: Equal-Weighted Index with 5 Active Markets

A macro-themed series tracking 5 economic prediction markets, all actively trading with two-sided order books. Series Composition:
1

Compute midprices

For each market, average the best bid and best ask:
Each midprice represents the market’s implied probability for that event occurring.
2

Normalize weights

Since the raw weights already sum to 1.00, normalized weights equal the raw weights:
3

Compute Raw NAV

Multiply each normalized weight by its market’s midprice and sum:
4

Compute Index Level

Assume the series launched with an inception Raw NAV of 0.55000000:
The index has gained approximately 6.7% from inception.
Interpretation: The weighted-average implied probability across all 5 markets is about 58.7%. The highest-confidence market is “Fed cuts by June” at 82.5%, while the lowest is “Unemployment above 4.5%” at 36%. The index is up ~6.7% from inception, meaning the aggregate probability of these events has increased since the series launched.
The markets in this example are illustrative, so live prices will differ. To verify a real published value, pick a live series, fetch the current best bid and best ask for each of its constituents, and follow the Independent Verification Guide – your result should match the published Raw NAV within the tolerances documented there.

Example 2: Index with Resolved Markets

A 4-market series where two markets have already settled – one won, one lost. Series Composition:
1

Apply resolution prices

  • Market 1: The tracked outcome (YES) won – settlement price = $1.00
  • Market 2: The tracked outcome (YES) lost – settlement price = $0.00
  • Markets 3 and 4 remain active and use live midprices from the order book
2

Normalize weights

All four markets participate in the computation regardless of resolution status.
3

Compute Raw NAV

4

Interpret the result

The Raw NAV of 0.45 reflects the mix of settled outcomes and remaining active markets:
  • The winning market (#1) contributes its full weight (0.25) to the NAV
  • The losing market (#2) contributes nothing (0.00)
  • The two active markets contribute based on their current implied probabilities
Resolved markets remain in the index with their settlement prices. They are not removed. This means a losing market at $0.00 permanently drags the index down by its weighted share, while a winning market at $1.00 permanently supports it. This is by design – the index tracks the full history of outcomes.
What if both resolved markets had won?
The NAV would be 0.70 instead of 0.45 – a significant difference driven entirely by the resolution outcomes.

Example 3: Staleness – Missing Price Data

What happens when the system cannot fetch a current price for one of the underlying markets. Scenario: A 4-market series where Market #3’s price fetch fails after three retries. All markets have equal weight (0.25 each).
1

Apply fallback for Market #3

The system attempted to fetch Market C’s order book three times with exponential backoff. All attempts failed (e.g., API timeout or network error).Fallback rule: Use the last successfully fetched price. Market C’s previous midprice was 0.41, so that value is used.
2

Compute Raw NAV

3

Flag the computation as stale

Because Market C used a fallback price, the entire computation is marked as stale. This flag is visible in the published data.If Market C’s actual price had moved (say, from 0.41 to 0.48), the true NAV would be:
The difference (0.6575 vs 0.6400) is 0.0175, or about 2.7% – entirely attributable to the stale data.
A stale NAV should be interpreted with caution. The published value may be higher or lower than reality, depending on how the affected market’s price has moved since the last successful fetch. Once the price feed recovers, subsequent computations will use fresh data and the staleness flag will clear.
When does staleness trigger?

Example 4: Tracking Index Level Over Time

How the Index Level tracks performance from inception to present, and how it relates to Raw NAV. Scenario: A series launches with an inception Raw NAV of 0.4200. Over six weeks, market prices shift:
1

Index Level at inception

At launch, the Index Level is always 100.00 – this is the base value.
2

Index Level after a gain (Week 1)

Raw NAV increased from 0.4200 to 0.4350 (underlying probabilities rose):
The index is up 3.57% from inception.
3

Index Level after a decline (Week 2)

Raw NAV dropped to 0.3980 (some underlying probabilities fell):
The index is down 5.24% from inception. Note: the drawdown from Week 1 to Week 2 is even larger – from 103.57 to 94.76, a decline of 8.5% week-over-week.
4

Full recovery and beyond (Week 6)

By Week 6, Raw NAV has risen to 0.4760:
The index is up 13.33% from inception. Over that span the index swung from 94.76 (Week 2 low) to 113.33 (Week 6).
Key properties of the Index Level:
The Index Level tracks theoretical index performance, gross of any costs. Within the private Alpha Program, participants’ realized values are measured by NAV per Share, which accounts for real holdings, uninvested cash, and fees. See NAV Per Share for details on this distinction.

Formula Reference

For quick reference, all formulas used in these examples:

NAV Methodology

Full methodology specification with verification guide.

NAV Per Share

How the published NAV translates to your share value.