Recreate the match-minute mart¶
Build polymarket_wc2026_marts.polymarket_wc2026_match_minute_odds from a clean
clone or preserved raw warehouse. Complete
shared setup first.
Load and validate the 104-match Scraper reference¶
Obtain an immutable oddsfox.reference.v1 bundle from OddsFox Scraper, then
load it transactionally into the target warehouse:
uv run make reference-bundle-load \
REFERENCE_BUNDLE_DIR=/absolute/path/to/bundle \
DUCKDB_NAME=/absolute/path/to/oddsfox.duckdb
Validate its fixture inventory:
uv run make match-minute-inputs-validate
Do not continue until the command prints:
104 Scraper reference fixture rows
Create the match-minute mart¶
uv run make match-minute-live-smoke
The job obtains:
- market inventory from the public Polymarket Gamma API;
- minute token history from the public Polymarket CLOB API;
- fixture identity and result validation from the previously activated,
checksummed Scraper
oddsfox.reference.v1bundle.
The job fails closed unless it maps 104 matches, 248 markets, and 496 tokens with no blocking issue. On success, the first real mart is in:
.cache/match_minute_live_smoke.duckdb
The relation is:
polymarket_wc2026_marts.polymarket_wc2026_match_minute_odds
The Make target prints and asserts the inventory and quality result. It uses a
disposable DuckDB file and a disposable
.cache/runtime/smoke/match-minute-live runtime root for Parquet snapshots.
Do not continue if it exits nonzero.
Historical API availability is not guaranteed. If Gamma or CLOB no longer returns the complete interval, use an operator's previously completed raw warehouse through the completed-warehouse route.
Troubleshooting¶
| Failure | What to check |
|---|---|
supply a complete operator-local 104-match schedule |
The schedule must contain exactly 104 records and the integer IDs 1–104 with no duplicate or missing ID. |
| Gamma/CLOB inventory or history is incomplete | Retry only if the failure is transient; otherwise use a previously completed operator raw warehouse. |