# 🎯 Prediction Markets as Arrow–Debreu Securities: Evidence from Polymarket **UQO Working Paper No. 8** — *State Prices, No-Arbitrage Bounds and Macroeconomic News in Blockchain-Based Contingent Claims* [![Paper](https://img.shields.io/badge/paper-PDF%20(44%20p.)-b31b1b?logo=latex&logoColor=white)](paper/main.pdf) [![Python](https://img.shields.io/badge/python-3.12%2B-3776AB?logo=python&logoColor=white)](pyproject.toml) [![Data](https://img.shields.io/badge/data-Polymarket%20Gamma%2FCLOB%20·%20FRED%20·%20Yahoo-4051b5)](data/raw/README.md) [![Reproducible](https://img.shields.io/badge/reproducible-end--to--end%20pipeline-2e7d32)](scripts/) [![Institution](https://img.shields.io/badge/UQO-D%C3%A9pt.%20des%20sciences%20administratives-16365c)](https://uqo.ca) [![Author](https://img.shields.io/badge/author-Simon--Pierre%20Boucher-16365c)](mailto:simon-pierre.boucher@uqo.ca) > **TL;DR** — Polymarket negative-risk events list one binary contract per outcome and settle exactly one at \$1, so their prices are observable Arrow–Debreu state prices. On the five-outcome June 2026 FOMC market (146 daily closes) and the seventeen-contract 2024 presidential election market (304 daily closes), the complete set of claims is priced at **1.017** and **1.015** on average: a small positive overround of the order of the half-spreads of the low-priced legs, that shrinks towards resolution, reverts in two days and is bracketed by the bid- and ask-side sums of the order book (0.999 / 1.004). The time value of money would put the set *below* one, so the deviation is a last-price artefact, not an arbitrage. The implied risk-neutral expected policy change moves 2–5× more (in variance) on FOMC and employment-report days than on other days; weekend trading carries about one third of weekday variance. With calendars aligned and lag orders chosen by information criteria, there is **no** daily lead or lag between the Polymarket measure and the 10-year yield, S&P 500, VIX or Bitcoin. --- ## 📌 Status | Item | Value | |---|---| | Version | **1.1 (October 2026)** — revised 2026-10-17 after a full editorial-board review (see `docs/`) | | Previous version | 1.0 (May 2026), preserved as git tag `pre-revision-20261017` and `docs/main_pre-revision-20261017.pdf` | | SSRN | not yet submitted | | Journal | — (target: Journal of Financial Markets / Journal of Prediction Markets; see `docs/REVIEW-REPORT.md`) | | Code & data | reproducible offline from the raw snapshot with `scripts/02_revision_analysis.py` (≈ 1 min); raw download needs a FRED key | ## 🎯 What this paper does The paper asks how the Arrow–Debreu pricing restrictions fare in a blockchain prediction market. Because spanning is built into the negative-risk contract design, the testable content is (i) the law of one price for the complete set of claims, whose *executable* no-arbitrage bounds are derived from the platform's minting and conversion mechanics, ``` e^{-r_t τ_t} − c_t ≤ Σ_t = Σ_j p_{j,t} ≤ 1 + c_t ``` (ii) the behaviour of the risk-neutral distribution q_j = p_j / Σ and of its mean, the implied expected June 2026 policy change, around scheduled FOMC statements, CPI releases and employment reports, and (iii) daily lead–lag relations with the Treasury, equity, volatility and crypto markets. ## 🏆 Headline results | Object | Estimate | |---|---| | Mean Σ, Fed group (5 claims, T = 146, listing day excluded) | 1.0167 (SD 0.0261; median 1.0093); HAC t of overround = 3.8 | | Mean Σ, election group (17 claims, T = 304) | 1.0146 (SD 0.0313; median 1.0105) | | Overround, first 30 days → last 30 days (Fed) | 5.1 pp → 0.4 pp; slope on time-to-resolution 0.11/yr (t = 4.9) | | Half-life of Σ − 1 (Fed / election) | 2.1 days / 0.25 day | | Order book 22 May 2026: Σ best bids / Σ best asks | 0.999 / 1.004 (no executable round trip) | | Mean discounted lower bound e^{−rτ} (Fed) | 0.989 — the time value of money cannot explain Σ > 1 | | ‖ΔE^Q[Δr]‖ on 13 release days vs 132 other days | 1.15 vs 0.51 bps; variance ratio 4.9 (Brown–Forsythe p = 0.008) | | ‖Δp(No change)‖ release vs other days | 5.5 vs 1.4 pp; variance ratio 14.2 (p < 0.001); FOMC 30.4, employment 4.5, CPI 0.9 | | Weekend / weekday variance ratio (non-release days) | 0.33 (expected change), 0.34 (modal state price) | | Granger tests Polymarket ↔ TNX, SPY, VIX, BTC (VAR(1), 110 trading days) | all p > 0.18 in both directions | | Contemporaneous correlation ΔE^Q[Δr] with Δ10-year yield | 0.26 | ## 🗂 Repository layout ``` polymarket-arrow-debreu/ ├── data/ │ ├── raw/ # Polymarket / FRED / Yahoo snapshot (see data/raw/README.md) — not committed │ └── processed/ # parquet panels regenerated by the scripts — not committed ├── src/ │ ├── config.py # paths, API endpoints, market registry, event dates │ ├── api/ # polymarket.py, fred.py, yahoo.py, runner.py │ ├── cleaning/ # polymarket_cleaner (close-of-day labelling), macro_cleaner, yahoo_cleaner │ ├── features/ # engineering.py, event_windows.py │ ├── models/ # arrow_debreu, event_study, price_discovery, liquidity, volatility │ └── plots/ # figures.py, tables.py, style.py (v1.0 outputs) ├── scripts/ │ ├── run_analysis.py # v1.0 pipeline: download → cleaning (→ v1.0 models/figures) │ └── 02_revision_analysis.py # v1.1: all tables, figures and results/revision_stats.json (offline) ├── results/ │ ├── tables/ # table1…table9 (.tex fragments input by the paper) │ └── revision_stats.json # every number quoted in the paper ├── figures/ # fig1…fig12 (PDF/PNG) ├── docs/ # REVIEW-REPORT.md, CHANGELOG-REVISION.md, main_pre-revision-20261017.pdf └── paper/ # main.tex + sections/ + appendix/ + references.bib → main.pdf ``` ## 🚀 Quick start ```bash python3 -m pip install -e . # dependencies from pyproject.toml cp .env.example .env # set FRED_API_KEY (download only) python3 scripts/run_analysis.py --skip-models --skip-paper # phase 1-2: download + clean (network) python3 scripts/02_revision_analysis.py # all tables/figures of v1.1 from data/raw (offline, ≈ 1 min) cd paper && make # latexmk → main.pdf ``` ## 🗃 Data Daily price histories (one point per calendar day, stamped 00:00 UTC of the following day and relabelled to the day they close), order-book snapshots and metadata for the Fed June 2026 negative-risk group (event 101772, 5 outcomes, \$37.8 M volume) and the 2024 Presidential Election Winner event (903193, 17 contracts, \$3.7 B volume) from the Polymarket Gamma and CLOB APIs; effective federal funds rate (DFF), CPI and unemployment from FRED; SPY, ^VIX, ^TNX, BTC-USD from Yahoo Finance. Snapshot 2026-05-22. No intraday data, no Treasury futures, no daily Polymarket volume. See `data/raw/README.md`. ## 🔬 Methodology 1. **Pricing of the complete set** — Σ_t, HAC test of the overround, shares within ±0.5/1/2/5 pp, executable bounds with e^{−rτ} from DFF, AR(1)/half-life, ADF, term-structure regression on time to resolution; order-book bid/ask sums and depth (`02_revision_analysis.py`, Tables 3–4, Figs 2, 3, 8). 2. **Risk-neutral distribution** — q_j = p_j/Σ, E^Q[Δr] and SD^Q with states valued at (−50, −25, 0, 25, 50) bps (Figs 4–5). 3. **Announcement-day analysis** — day-0 and cumulative changes for each of the 13 releases; release vs other days by variance ratio, Brown–Forsythe and one-sided Mann–Whitney; weekend vs weekday (Table 5, Fig 6). 4. **Lead–lag** — bivariate Granger tests and five-variable VAR(1) on the U.S. trading-day grid, lag order by AIC/BIC/HQIC on the system, HAC Wald tests, fixed-lag sensitivity (Tables 6–7, Fig 7). 5. **Volatility (appendix)** — ARCH-LM, GARCH/GJR with normal and Student-t innovations (QML), HAR on |r| and r² (Tables 8–9, Fig 10). ## 🖼 Figures & tables inventory | Figure | Content | |---|---| | `fig1_state_prices` | five state prices, FOMC days marked | | `fig2_completeness_test` | Σ_t with discounted lower bound and upper bound 1 | | `fig3_risk_neutral_density` | q_j at five dates | | `fig4_expected_policy_change` | E^Q[Δr] path and daily changes, release days marked | | `fig5_event_study_cars` | distributions of absolute changes by day type | | `fig7_granger_heatmap` | Granger p-values, VAR(1), five variables | | `fig9_volatility` | returns and GARCH/GJR conditional SD (appendix) | | `fig10_liquidity` | Roll spread estimates; order-book depth curves | | `fig11_election_case_study` | 2024 election claims and Σ over 17 contracts | | `fig12_arbitrage_violations` | distribution of Σ − 1, both groups | Tables (`results/tables/`): markets analysed (1), summary statistics (2), law-of-one-price tests (3), order-book snapshot (9 → Table 4 in the paper), releases (4 → Table 5), Granger (5 → 6), VAR(1) (6 → 7), GARCH (7 → 8), HAR (8 → 9). ## ⚠️ Limitations - Two negative-risk groups at daily frequency; 13 scheduled releases and 110 common trading days limit the power of the announcement and lead–lag tests. - Pricing tests use recorded daily prices (last trade/midpoint), not executable quotes; only one order-book snapshot is available. - A residual 3–4 hour window separates the Polymarket close (00:00 UTC) from the U.S. cash close. - Normalised prices are risk-neutral, not physical, probabilities; no futures/OIS benchmark was collected. - Volatility models are fragile (no ARCH effects by the LM test; boundary estimates). ## 📝 Citation ```bibtex @techreport{boucher2026polymarket, author = {Boucher, Simon-Pierre}, title = {Prediction Markets as Arrow--Debreu Securities: Evidence from Polymarket}, institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives}, type = {Working Paper}, number = {8}, year = {2026}, month = {October}, note = {Version 1.1} } ``` ## 👤 Author & contact **Simon-Pierre Boucher** — Département des sciences administratives, Université du Québec en Outaouais (UQO), Gatineau, QC. 📧 [simon-pierre.boucher@uqo.ca](mailto:simon-pierre.boucher@uqo.ca) ## 🗒 Notes - **Revision 2026-10-17 (v1.0 → v1.1)**: complete scientific review by the editorial board. Report: `docs/REVIEW-REPORT.md`; audit trail of every corrected statement and number: `docs/CHANGELOG-REVISION.md`. Main corrections: Polymarket daily points relabelled to the day they close (the v1.0 panel was one day late); listing-day seeded quotes excluded (v1.0's "max deviation 0.57"); v1.0 Granger results (min-p lag search + misalignment) do not survive; v1.0 abstract claims (Hasbrouck shares, Treasury futures, 15–45 min lead, Amihud) were never computed and are withdrawn; election "post-resolution convergence to 0.58" was a misreading (sample ends on election evening); robustness analyses that were not executed were removed. Paper reduced from 58 to 44 pages. - Harmonisation 2026-10-17: `tables/` moved to `results/tables/`, `run_analysis.py` moved to `scripts/`, empty `logs/`/`notebooks/` removed.