Executive Brief — EdgeBet NRL (July 2026)
One page per executive lens; each section links the deep document. Rendered
on the dashboard /docs page; update after each roadmap revision.
CEO lens — are we winning, and what do you need to decide?
Goal: a proven, repeatable positive-CLV edge on NRL opening markets
(docs/STRATEGY.md). No real money is staked; everything is paper-traded
against promotion gates.
Position (honest): no strategy has cleared the promotion gates yet. What
IS proven: opening prices are inefficient; closing prices are not; and our
models' favourite-side picks are confirmed by the market's own movement at
62–65% (docs/edge-review-2026-07-12.md). Two fabricated "edges" were caught
by our own instruments before reaching production — the control environment
works.
Current bets (of effort): 1) open_fav_v1 — the favourite-side filtered
strategy, in backtest + live paper trading now; 2) the Tuesday team-list
timing channel; 3) weekly live evidence collection, which gates everything.
Decisions needed from you: (a) September: approve/deny purchasing Betfair
historical exchange data — the only route to materially better backtests;
(b) archive sign-off on the legacy-code list; (c) nothing else — do not
approve real staking until a strategy clears the gates out of sample.
CDO lens — is the data sound, governed, and observable?
Assets: 18 seasons of matches/odds (open+close), team lists 2016+ (~99%
coverage), per-player match stats with stable identity resolution
(gold_nrl_player_name_map), weather, fan picks, live odds snapshots with
per-bookmaker provenance (collector column: vm/cluster/manual).
Governance: raw bucket immutable + append-only; dbt gold layer with
schema tests; DQ page (elementary) + recommendation gate script; leakage is
test-enforced, not policy-enforced (tests/test_leakage_guard.py);
feature lineage on the /features page; every model experiment ships a
versioned results contract (reports/strategy_shift/, schema v3).
Known gaps (docs/data-ingest-strategy.md): the historical odds file has
open/close only — no intraweek path (bounds every backtest); team-list
capture latency vs the Tuesday drop is unmeasured; VM→PVC DuckDB sync is
manual. Watch metric: the /ops contracts table — a red row there is data
debt accruing interest weekly.
CTO lens — is the system sound, deployable, and maintainable?
Architecture: scrapy → DO Spaces (immutable raw) → DuckDB/dbt (single
writer: the VM) → FastAPI/Jinja dashboard (read-only) in Docker/k8s, PVC-
mounted DB copy. One canonical UI (web/main.py); a React stack exists but
is explicitly non-canonical until a parity checklist says otherwise
(docs/ui-deployment-gaps.md).
Operability: the hosted app self-diagnoses (/ops: env, DB path + sync
age, image assets, build provenance via GIT_COMMIT); 338+ tests; skills
encode operational runbooks; two-session agent pattern (build vs review)
with a machine-readable results contract between them.
Debt register: three UI stacks (decision queued), legacy pre-scrapy
scripts at repo root (archive list awaiting sign-off), image report-freshness
mechanism unpicked (gap 3), backend/React drift risk. None currently blocks
the edge program.
Related: STRATEGY.md (north star) · edge-roadmap.md (priorities) ·
edge-review-2026-07-12.md (latest deep review) · data-ingest-strategy.md
· ui-deployment-gaps.md · business-glossary.md