Training
Lab
Elo for team corner propensity, then a TabNet on every league, then an over-under pass on games with a real closing line. One button. Week still has Grok slots and the blend slider.
1
Elo
2
TabNet
3
O/U
4
Done
Idle. Train stores a run. Deploy is what moves Week.
Stage
Idle
Val MAE
—
team corners
Val ROI
—
labeled val
Players
—
corner takers
How it trains
Elo first. Then a TabNet on every league. Then an over-under pass on games that have a real closing line. Last season’s Premier League (2025/26, 380 games) is held out for the backtest.
Stage 1
Corner Elo
Leak-safe attack and defence ratings. Each club carries them across seasons and divisions. Snapshot, then update — the match being scored never sees its own result.
Stage 2
TabNet
Huber δ=1.2 on home and away corner counts. Elo ratings plus form, weather, venue, referee and player corner volume. Shared features only — Pulse height stays off.
Stage 3
O/U fine-tune
Loss = 22% Huber + 78% betting. Betting mix is 40% ranking and 60% expected PnL on that match’s own closing-mapped home, away and total lines. Shared transformer frozen.
Pulse height, aerials and crosses stay off. Each game uses that game’s closing 1X2 mapped to a corner line. Weather is the monthly average at each stadium when a cache miss. Deploy is the only thing that moves Week. Grok slots and the Week blend stay.
Stored runs
Train writes these. Deploy is the only thing that moves Week.
- No stored runs yet.