ABET — Architecture · workflow · data tables · storage · loops · gates

The whole system on one page: how raw odds become a married, edge-scored, live board; the exact data tables and where they live (local / GitHub / Cloudflare / HuggingFace / Oracle / Vercel / Supabase); the loops that keep it running; and the gates that keep it honest.

① The workflow — raw → married → edge → live board

① SOURCES — per-book scrapers (4-source redundancy) Cloudflare Workersper-book, on-demand HuggingFace Spaceabetco-live-odds Oracle VMresidential egress GitHub Actionsmanifest-gated ② ENGINE — normalize each raw shape → canonical key → marry (a hashmap) extract_mapped_v1.py · 9 archetype handlers · extraction_map_v1.json (20 books) key = league · event · date · bet_type · selection · line → same key across books = one combined row ③ DATA TABLES — the served JSON (Vercel /data) allbets/cat_*.jsonthe married rows crossbook_edge.jsonarbs · EV · middles crossbook_historyprice time-series live_status.jsonfreshness beacon edge_finder_v1.py ④ VIEWS — the board (100% client-side; polls the live data) /crossbook-allbets · /crossbook-edge /edge-math · /asset-coverage /proofs · /scraper-health LIVE LOOP (cron) live_runner_v1.py every ~15 min (Oracle/GH): emit → edge → history → status → vercel --prod board polls live_status → auto-refresh HANDOFF LOOP Codex ⇄ Claude Codex un-gates a scraper → ledger ping → Claude maps it same session (novig/coral/ladbrokes) HEALTH LOOP source_health_probe_v1.py → fleet_truth.json (the ONE truth) → fleet_tickets.json → #it-tickets · gh_fleet_verify (manifest-gated, no false greens) ⛓ THE 5 PROOF GATES — a task is DONE only if ALL hold ① commit in origin/master ② output from the REAL pipeline ③ live portal verifies ④ ledger updated ⑤ Discord receipt Blue = the data path · Green dashed = the live loop · Purple dashed = the Codex⇄Claude handoff. No synthetic data, no fake greens. Status today: 19 books married · arb/EV/middle live · history + freshness beacon shipping · live loop = opt-in cron (ready).

② The data tables — click any to inspect the live JSON

TableWhat it isSchema (key fields)Live

③ Storage — what lives where (local + every cloud)

LocationRoleWhat's storedStatus

④ The loops & their scripts

LoopScript (running code)What it doesOwner