# Belief Index Data Dictionary

Snapshot date: 2026-07-09 · Schema version: 1.0

Point-in-time datasets of Belief Index levels – rules-based benchmarks of
market-implied event probabilities, computed from prediction market data and
recorded live at each valuation window since inception. Methodology:
https://docs.beliefsystems.xyz/indices/nav-methodology

## Files

| File                                        | Contents                                                                             |
| ------------------------------------------- | ------------------------------------------------------------------------------------ |
| `belief-index-series.csv`                   | Series reference – the full universe, including resolved and terminated series       |
| `belief-index-levels_{TICKER}.csv`          | One row per valuation window (native 30-minute cadence) per series                   |
| `belief-index-compositions_{TICKER}.csv`    | Basket membership and target weights per composition version, with effective windows |
| `belief-index-reconstitutions_{TICKER}.csv` | Completed reconstitutions with chain-linking arithmetic                              |
| `manifest.json`                             | Machine-readable snapshot metadata: row counts, coverage, SHA-256 checksums          |

## belief-index-series.csv

| Column                | Type      | Definition                                                                                                           |
| --------------------- | --------- | -------------------------------------------------------------------------------------------------------------------- |
| `series_id`           | string    | Stable series identifier (join key across all files)                                                                 |
| `ticker`              | string    | Series ticker used in filenames                                                                                      |
| `name`                | string    | Series display name                                                                                                  |
| `status`              | enum      | `ACTIVE`, `RESOLVED` (all constituents resolved; wind-down), `TERMINATED` (series closed), `ARCHIVED`                |
| `maturity_type`       | enum      | `FIXED` (resolves and ends) or `PERPETUAL` (maintained via scheduled reconstitution)                                 |
| `inception_at_utc`    | timestamp | First valuation window; index level rebased to `base_index_level` here                                               |
| `base_index_level`    | decimal   | Index level at inception (100.00000000 unless stated)                                                                |
| `inception_raw_nav`   | decimal   | Raw basket value at inception (current chain-link segment; see reconstitutions)                                      |
| `resolved_at_utc`     | timestamp | When the series fully resolved (empty if not resolved)                                                               |
| `terminated_at_utc`   | timestamp | When the series terminated (empty if live)                                                                           |
| `mirror_of_series_id` | string    | **If non-empty, this series is a mechanically derived inverse of the referenced series.** See "Mirror series" below. |
| `composition_version` | string    | Current composition version                                                                                          |
| `methodology_version` | string    | Current methodology version                                                                                          |

## belief-index-levels\_{TICKER}.csv

| Column                        | Type      | Definition                                                                                                                                                                       |
| ----------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `timestamp_utc`               | timestamp | Valuation window timestamp (see "Timestamps" below)                                                                                                                              |
| `series_id` / `series_ticker` | string    | Series identity                                                                                                                                                                  |
| `computation_id`              | integer   | Stable identifier of the underlying computation record (citable; quote it in support requests)                                                                                   |
| `raw_nav`                     | decimal   | Probability-weighted basket value, bounded [0, 1]. **Discontinuous at reconstitutions** – it re-bases when the basket changes. Use `index_level` for continuous series analysis. |
| `index_level`                 | decimal   | Published index level, rebased to 100 at inception and chain-linked across reconstitutions so composition changes never create artificial jumps                                  |
| `stale`                       | boolean   | True if **at least one** constituent used a carried-forward price at this window. Coarse flag – use `fresh_markets` / `total_markets` for degree.                                |
| `fresh_markets`               | integer   | Count of constituents priced from live order book data at this window (empty for early records where the breakdown was not stored)                                               |
| `total_markets`               | integer   | Count of constituents in the basket at this window (empty as above)                                                                                                              |
| `partially_resolved`          | boolean   | At least one constituent has resolved; its settlement value is folded into the level                                                                                             |
| `fully_resolved`              | boolean   | All constituents resolved; the level reflects settlement values                                                                                                                  |
| `composition_version`         | string    | Composition in force at this window – join to the compositions file                                                                                                              |
| `methodology_version`         | string    | Methodology in force at this window                                                                                                                                              |

## belief-index-compositions\_{TICKER}.csv

One row per (composition version, constituent).

| Column                | Type      | Definition                                                                                                                                                          |
| --------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `composition_version` | string    | Version identifier (joins to the levels file)                                                                                                                       |
| `effective_from_utc`  | timestamp | When this composition took effect (series inception for the genesis version)                                                                                        |
| `effective_to_utc`    | timestamp | When it was superseded (empty = current)                                                                                                                            |
| `condition_id`        | string    | Constituent market identifier (stable venue-level condition ID)                                                                                                     |
| `outcome`             | enum      | Which side the index tracks: `YES` or `NO`                                                                                                                          |
| `question`            | string    | Constituent market question at composition time                                                                                                                     |
| `weight`              | decimal   | **Target weight at composition time.** Realized per-window weights drift with prices between reconstitutions; target weights are re-applied at each reconstitution. |

## belief-index-reconstitutions\_{TICKER}.csv

One row per completed reconstitution. These fields make the chain-linked
splice independently verifiable: within a segment,
`index_level = base_index_level x (raw_nav / inception_raw_nav)`; at a
reconstitution the anchor level `chain_link_anchor` is carried across so the
published level is continuous while `raw_nav` re-bases.

| Column                                                | Type      | Definition                                                                |
| ----------------------------------------------------- | --------- | ------------------------------------------------------------------------- |
| `event_id`                                            | string    | Reconstitution event identifier                                           |
| `composition_version_from` / `composition_version_to` | string    | Versions before/after                                                     |
| `gate_activated_at_utc`                               | timestamp | Start of the reconstitution gate (level publication suspends; see "Gaps") |
| `completed_at_utc`                                    | timestamp | When the new composition took effect                                      |
| `old_inception_raw_nav` / `new_inception_raw_nav`     | decimal   | Chain-link segment bases before/after                                     |
| `chain_link_anchor`                                   | decimal   | Index level carried across the splice                                     |
| `base_index_level`                                    | decimal   | Base level of the new segment                                             |
| `added_markets` / `removed_markets`                   | list      | Constituents added/removed, encoded `condition_id:outcome` joined by `;`  |

## Semantics

**Gaps.** A missing window means no computation was published – reconstitution
gate, integrity halt, or outage. Levels are **never interpolated** and gaps are
never backfilled. Reconstitution-gate gaps are attributable via
`gate_activated_at_utc` → `completed_at_utc` in the reconstitutions file.

**Restatement policy.** As-published values are never rewritten. If a
correction is ever required it is published as a new, labeled entry in the
`changelog` array of `manifest.json` – the affected rows are identified, not
silently replaced. The snapshot pipeline enforces this: generation fails if
any historical row differs from the previously published snapshot.

**Timestamps.** All timestamps are ISO-8601 UTC with a `Z` suffix.
`timestamp_utc` is the actual computation execution time at a ~30-minute
cadence; it is **not aligned to a :00/:30 grid**. Align or bucket before
joining against grid-aligned data.

**Mirror series.** Series with a non-empty `mirror_of_series_id` are
mechanically derived inverses of their primary (same constituents, opposite
outcomes). **Do not treat a mirror pair as two independent observations** in
cross-sectional statistics.

**History depth.** Every series is recorded live from its inception – the
archive grows at each valuation window and cannot be backfilled, because
prediction market order books are not otherwise archived. Per-series coverage
(first/last observation, row counts) is in `manifest.json`.

**Levels are not execution prices.** Index levels are theoretical values
computed from observable order book midprices; they include no spread,
slippage, or market impact. See
https://docs.beliefsystems.xyz/risk/risk-factors

## Format conventions

- UTF-8, comma-separated, header row, RFC 4180 quoting
- Decimals serialized as fixed-point strings (8 decimal places)
- Booleans: `true` / `false`
- Missing values: empty string
