Valx Sports Betting NBA data intake · Status
Release 2025-12-21 • Cloudflare Decision Packet v5

Status & timeline

We are in a stable holding pattern: truth-layer ingestion is validated; market-data vendor choice is the blocker. This page gives a quick ‘where we are’ readout.

Record: sportsbetting_Full_Record_v57 → v60 Status: decision pending Truth layer: season-to-date PBP + box verified

Current status

  • Truth layer: ✅ Schedule + box + play-by-play ingests working; backfill/resume validated; coverage reports show no gaps in tested ranges.
  • Market data: ⏳ Waiting on vendor/budget decision for odds + player props + book IDs.
  • Next milestone: “Market Ingestion First Light” (first joined dataset: market lines ↔ performance truth).

Why the “hang” happened (FYI for future runs)

When running large backfills, the script can appear idle (low CPU) because it is sleeping between API calls and waiting on network responses. That’s expected. The safest pattern is:

  1. Run by month/date range with --resume.
  2. Use coverage_report.py after each chunk to confirm completeness.
  3. Only cancel with Ctrl+C if there is no progress for a long time and the run log shows no recent entries.

What is unblocked while we wait

  • Refine the odds/props canonical schema + mapping tables.
  • Finalize the pilot ingest test plan for each vendor option.
  • Continue market landscape research and keep the decision packet current.

Past releases

Release 2025-12-21 (bundle v4) — previous status page
Sports Betting — Cloudflare Report

Status

Current progress, what’s proven, and what must be decided before we can compute and validate actionable betting “edges” for NBA player props.

Latest status (Decision Packet Ready)

Release 2025-12-21 (CT) Record sportsbetting_Full_Record_v58 → v60 Phase Phase 6 (Market truth decision packet ready)
  • Performance truth (schedule/box/PBP): stable at scale; idempotent reruns; multi-date backfill + resume proven.
  • Market truth (props lines + prices + snapshots): queued pending provider selection.
  • Decision packet: ready; can be answered in under 2 minutes (see Decision point).
  • Market adapter scaffold: schema + adapter contract drafted; code scaffold staged so the provider adapter can be implemented immediately.

Readiness gates

  1. Idempotent ingest — passed.
  2. Multi-date backfill + resume — passed.
  3. Coverage reporting — passed.
  4. Decision packet readiness — passed (we can proceed as soon as Jeffrey answers).
  5. Market-layer snapshots — queued (provider selection).

What we need next (decision point)

Jeffrey’s choices determine scope, costs, and what “edge” strategies are realistic. Once we have them, we implement the provider adapter and begin market snapshot capture.

Open the decision packet

Past releases

Release 2025-12-18 (bundle v3) — expand
Sports Betting — Cloudflare Report

Status

Current progress, what’s proven, and what must be decided before we begin full backtests and edge evaluation.

Latest status (as of 2025-12-18 CT)

Release 2025-12-18 (CT) Record sportsbetting_Full_Record_v38 → v39 Phase Phase 6 (Market + availability ingestion)
  • Season-to-date truth capture: 387 distinct games across 55 dates captured with schedule + box + PBP present for every game in coverage checks.
  • Operational behavior confirmed: long pulls can appear “quiet” (low CPU) because they are waiting on network responses and intentional --sleep pacing between calls. Safe interrupt (Ctrl+C) + --resume is supported.
  • Next focus: integrate a market provider and persist line/price snapshots with capture timestamps.

Readiness gates

  1. Idempotent ingest — passed (primary keys prevent duplicates).
  2. Multi-date backfill + resume — passed (week/month ranges completed; resume run produced 0 new games as expected).
  3. Coverage reporting — passed (coverage_report outputs show missingness lists empty).
  4. Market-layer snapshots — queued (requires provider choice).

What we need next (decision point)

We need Jeffrey’s input on budget/constraints and the target betting markets so we can pick an odds/props provider and lock a schema.

Decision point: Odds + Player Props provider →

What we will do immediately after provider selection

  • Create canonical tables for market snapshots (book, market, player/team, line, price, timestamp).
  • Backfill historical markets for the same date range we already captured in the truth layer (so joins and backtests are possible).
  • Start an EV/CLV loop: project → compare to line → record outcome → measure closing line value.

Past releases

Release 2025-12-16 (bundle v2) — expand
Sports Betting — Cloudflare Report

Status

Where we are, what’s working, and what must be true before we scale external data capture and begin real backtests.

Current phase

Phase 3: Truth-layer POC stabilization + report surface.

We have a working end-to-end sample pull (schedule + box + optional PBP) writing to SQLite. Current hardening focus is making re-runs and larger pulls reliable.

Readiness gates (what “done” looks like)

  1. Idempotent ingest: safe re-run without collisions.
  2. Multi-date backfill: run a week or month of dates without manual babysitting.
  3. Odds snapshot ingestion: capture sportsbook lines/odds with timestamps and market identifiers.
  4. Backtest harness: replay historical games + historical lines and score EV/CLV.

Next up

  • Finalize PBP idempotency patch confirmation on a clean DB
  • Decide odds/props provider and schema for market snapshots
  • Implement external ingestion tool (resumable backfills)