⚽ Tomulator
Overview
β—ˆDashboardπŸ“…Today's gamesβ—ŽState of play
Money
πŸ’·Bets & strategies
Explore
⊞Leagues & seasonsπŸ“Metricsβ–€Data sources
Engine room
🎲SimulationsπŸ§ͺLab≣Catalog?How this works

Lab β€” backtests

Where ideas go to be judged. Fit strictly on the past, bet at opening prices, graded against the closing line. Most ideas lose β€” that's the point of checking.

How to read this: Brier measures probability accuracy β€” lower is better, and the number to beat is the market's own Brier (the de-vigged closing odds). CLV is how much better your price was than the closing price β€” consistently positive CLV is the earliest sign of real edge, long before P&L stops being noise. β€œMarket wins” is the honest (and usual) verdict.
#NameBetsROICLVBrier (model)Brier (market)Verdict
29engine bets everything, big-5 era (PPL)3581-3.8%0.68%0.19640.1958market wins
28engine bets everything, big-5 era (DED)4313-1.8%-0.14%0.20070.1986market wins
27engine bets everything, big-5 era (FL1)5766-5.1%0.10%0.20830.2061market wins
26engine bets everything, big-5 era (BL1)5468-4.4%0.49%0.20440.2020market wins
25engine bets everything, big-5 era (SA)6574-7.2%0.52%0.20440.2020market wins
22engine bets everything, big-5 era (PD)6843-7.3%0.15%0.20400.2008market wins
21engine bets everything, big-5 era (EPL)8430-3.3%0.41%0.20540.2014market wins
20engine v11: post-sync full stack (box share, solidity, MLS-era data)9900-2.4%0.40%0.20780.2014market wins
19engine v10: + eye-test composites (threat/accuracy/sterile/trend)9793-1.9%0.38%0.20710.2014market wins
18engine v9: + standings/coach/age/concentration features9586-1.5%0.53%0.20610.2014market wins
17DC clean baseline (post-review)1442-11.4%-0.44%0.19610.1902market wins
16engine v8: post-review clean odds discipline9588-2.9%0.42%0.20720.2014market wins
15engine v7: + possession, pass accuracy, SoT, xG (API-Football)9659-1.0%0.31%0.20560.1984market wins
14engine v6: + trends, ratios, weather-style crosses9248-2.2%0.31%0.20540.1984market wins
13engine v5: + explicit home-away differentials9247-1.4%0.42%0.20600.1984market wins

latest 15 shown

Experimentsthe pattern picker β€” which factors drive which outcomes

How to read this: each experiment asks β€œwhich factors drive this outcome, using only pre-match information?” AUC is predictability: 0.50 = coin flip (no pattern exists), sports rarely exceed ~0.70. Tap an experiment to expand it.
system doctor Β· at 2026-07-14T19:16:16.167089+00:00 Β· failed 0 Β· rerun Γ—15, latest shown Β· full detail β†’
at2026-07-14T19:16:16.167089+00:00
failed0
healthyyes

checks

checkdetailstatus
feed:api-footballlast fetch 0.0h ago (max 8h)ok
feed:kalshilast fetch 5.1h ago (max 13h)ok
feed:the-odds-apilast fetch 0.6h ago (max 26h)ok
feed:espnlast fetch 14.7h ago (max 30h)ok
odds:upcoming-24h2/2 priced contests fresh (<14h); stale: noneok
derived:metricslast metric computed 10.1h ago (max 30h)ok
derived:simslast sim finished 10.0h ago (max 30h)ok
results:finished-unscored0 finished contests missing scores: noneok
odds:multi-bookall upcoming competitions have >=3 fresh sportsbooksok
quota:api-football2649 requests today (plan ~150k/day)ok

first 10 of 11 rows

edge hunt: one +EV leg at market price, train/test validated Β· n survivors 4 Β· segments scanned 127 Β· rerun Γ—10, latest shown Β· full detail β†’
notesurvivor = +EV in train AND test at opening prices; gold = also +EV at closing (beats the sharpest line). Expect a few false positives from multiple testing even so.
n survivors4
segments scanned127

gold

selbandcompmarkettest ntrain ntest roi
away side winpriced 1.00–1.80PPLMatch result2115976.56
away side winpriced 1.00–1.80SAMatch result18058311.54
away side winevenSAMatch result3191,1445.61
away side winevenFL1Match result2918863.1

survivors

selbandcompmarkettest ntrain ntest roi
away side winpriced 1.00–1.80PPLMatch result2115976.56
away side winpriced 1.00–1.80SAMatch result18058311.54
away side win
strategy & model leaderboard Β· 24 backtests ranked by skill vs the market Β· rerun Γ—10, latest shown Β· full detail β†’
Ranked by skill first (Brier edge vs the de-vigged market β€” positive means sharper than the bookmaker), then CLV, then ROI. Note: entries differ in markets/periods; same-competition rows are the fair comparisons. Armed strategies await their forward paper trials.
BacktestModelCompBetsROICLVBrier edge
#29ml_gbm_v1PPL3,581-3.8%0.68%-0.00063
#28ml_gbm_v1DED4,313-1.8%-0.14%-0.00207
#27ml_gbm_v1FL15,766-5.1%0.10%-0.00221
#26ml_gbm_v1BL15,468-4.4%0.49%-0.00237
#25ml_gbm_v1SA6,574-7.2%0.52%-0.00243
#22ml_gbm_v1PD6,843-7.3%0.15%-0.00318
#10ml_gbm_v1EPL336-4.7%0.28%-0.00357
#21ml_gbm_v1EPL8,430-3.3%0.40%-0.00391
#18ml_gbm_v1EPL9,586-1.5%0.53%-0.00465
observatory: predictability, biases, signal decay Β· model run 18 Β· rerun Γ—7, latest shown Β· full detail β†’
noteskill_captured_vs_market: 1.0 = as sharp as the closing line, 0 = no better than the base rate. Biases marked EDGE are stable disagreements that PAY; MODEL_DEFECT are stable disagreements that COST (fix the model there). Signals go weak_or_decaying when any era's correlation flips sign.
model run18

signal decay

nsignalstatustargetcorr overallcorr by window
33,804match.ref_cards_avgalivecards0.2410.2554, 0.2884, 0.2158, 0.1996
44,630match.style_clash_cornersalivecorners0.08160.086, 0.0701, 0.0865, 0.0693
137,822match.mismatchalivegoal_margin0.19320.1518, 0.2123, 0.2149, 0.2031
131,137team.eye_test_v1aliveteam_goals0.18560.1861, 0.1892, 0.1873, 0.1789
275,644team.eloaliveteam_goals0.20010.1853, 0.2167, 0.2086, 0.1955

persistent biases

nmarketverdictmean gapselectionprice bandfollowing gap pays
578Over/Under 2.5 goalsMODEL_DEFECT0.0661Under
gap-filter fit for live executor Β· n train 13,698 Β· base rate model right 0.4915 Β· rerun Γ—7, latest shown Β· full detail β†’
n train13,698
artifact/app/data/downloads/gap_filter.joblib
base rate model right0.4915
tennis lab: normal + ratio + crazy rules at real closing prices Β· matches replayed 14,400 Β· rerun Γ—2, latest shown Β· full detail β†’
noteflat $1 at CLOSING prices (Bet365+Pinnacle best-of, the sharpest line there is); train 2020-2023, test 2024-2025. SURVIVES = +EV in BOTH windows with test nβ‰₯150. The always-favourite row is the margin baseline, not a strategy.
matches replayed14,400

results

ruletest ntrain nverdicttest roi pcttrain roi pct
book war fav only (crazy)1651THIN23.38-18.14
grinder fade (crazy)373999DEAD-1.15-1.16
specialist gap 60 (ratio)2,4433,720DEAD-1.9-2.84
public always favourite (baseline)5,3339,067DEAD-2.11-2.66
clutch dog (crazy)372721DEAD-2.37-6.11
fatigue fade 8sets (ratio)5491,056DEAD-2.44-8.59
elo edge fav only (normal)1,5281,776DEAD-4.58-5.02
elo edge 5 (normal)3,7867,029
revalidate roster: consensus price + train/test holdout Β· n live 30 Β· n scored 5 Β· n skipped 25 Β· rerun Γ—3, latest shown Β· full detail β†’
notemarket-shape re-score at consensus opening price, train<2022 / test>=2022. Model-gated rules scored on price band+selection only (gate ignored) β€” a SHAPE-NEGATIVE verdict is NOT a kill (e.g. wc_ko_unders is 5/6 in forward paper). NOT-REPLAYABLE strategies must be judged on their forward paper record (paper_bet.status in won/lost), not this proxy.
n live30
n scored5
n skipped25

scored

selbandcodecompsmarkettest ntrain n
A1, 2.6away_fav_continental_v1SA, FL1, PPLMatch result1,3314,396
β€”2.2, 3.5mlb_dog_variance_v1allMatch winner (2-way)00
D1, 1000ref_cards_draw_v1allMatch result12,64955,726
under1, 1000wc_ko_unders_v1allOver/Under 2.5 goals12,64910,313
β€”4, 10wc_upset_hunter_v1allMatch result8,89332,825

not replayable

codereason
elo_value_mlb_v1model-only edge rule: no market shape to test
drought_fade_v1model-only edge rule: no market shape to test
subset check: did the mid-dog model's picks have OOS skill? Β· min edge 0.08 Β· full detail β†’
notepick = model edge>=min_edge on open price; _roi=(n, roi%). Skill only if pick_test ROI beats band_test AND is +EV.
min edge0.08

by comp

EL2{"open":{"band_test":[165,-13.72],"pick_test":[72,-13.56],"b
EPL{"open":{"band_test":[397,6.68],"pick_test":[93,42.43],"band
forward paper scoreboard Β· Β· rerun Γ—3, latest shown Β· full detail β†’
notelive paper record; statuses are won/lost/void/pending. Small early samples β€” treat as directional, not proof. This is how model-gated + soft/prop strategies must be judged (revalidate's shape proxy can't).

board

pnlwonbetslosthit pctpendingroi pct
280.214271917.44132
222.1313241154.2069.4
4157183.3168.3
2219420488
21.0235175152.5
4.5123166.7030.1
4.42181014.343.1
0030000
0010010
001
edge parlay: does a real edge compound up across legs? Β· price agg max Β· single roi 4.63 Β· rerun Γ—2, latest shown Β· full detail β†’
notesame-day legs may be mildly correlated; trebles thin. If the single is +EV and legs ~independent, ROI should rise with legs (edge^n).
leg defaway, SA/FL1/PPL, price<= 2.6, 2015+
price aggmax
single roi4.63
compounds upyes

grid

betslegshit pctroi pctbiggest payout
3,200157.194.6326
3,936230.874.9966.82
3,621315.08-3.81159.7
edge doubles: does a real edge compound like the vig does? Β· Β· rerun Γ—2, latest shown Β· full detail β†’
notein-sample pockets; same-day legs may be correlated; thin samples on doubles

by snapshot

closing{"doubles":{"pnl":-2477.69,"bets":3369,"hit_pct":28,"roi_pct
opening{"doubles":{"pnl":-582.06,"bets":6253,"hit_pct":31.8,"roi_pc
matrix holdout: full rule grid, train/test, all leagues Β· n survivors 6 Β· predictions 219,577 Β· cells scanned 167 Β· full detail β†’
note1x2, sim-engine predictions, opening price, train<2022-07-01/test>=. Survive = +EV in BOTH halves, >=100 train & >=50 test bets. Multiple testing: ~a few false positives expected among the survivors; the train+test double-filter is the guard. Re-run after new odds land.
n survivors6
predictions219,577
cells scanned167

survivors

selbandleaguetest ntrain nedge mintest roi
home side winmiddogEPL621910.0541.1
home side winmiddogEPL78223022.6
away side winmidEPL542820.0810.6
away side winmidPPL8129006.5
home side winpriced 1.00–1.80PPL9060004.7
away side winpriced 1.00–1.80PPL6325203.5
epl mid-dog v2: filter stack vs v1, holdout + generalization Β· Β· full detail β†’

results

nhitroilabel
5400.350.1796EPL v1 (all 21 seasons)
2320.3920.346EPL v2 (filters, SAME data β€” inflated by construction)
1040.3940.3903EPL v2 on 2005-15 (derivation era)
3150.3430.1504EPL v1 on 2016-26 (holdout)
1280.3910.3101EPL v2 on 2016-26 (HOLDOUT β€” the number that matters)
1,7340.289-0.0416Other 6 leagues v1
7680.279-0.067Other 6 leagues v2 (do the patterns travel?)
proven-logic retro: derivative classes + simple parlays at real prices Β· hot ref threshold 3.6 Β· rerun Γ—2, latest shown Β· full detail β†’
noteReal opening prices, 7 leagues x 21 seasons, per-season $1000 restarts. Cards/corners legs excluded (no historical odds exist) β€” their synthetic 5yr grading is soft_retro #185. Parlay legs assumed independent (different matches).
hot ref threshold3.6

classes

ref draw{"bets":2876,"hit_rate":0.26,"roi_flat":-0.029,"worst_season
unders edge{"bets":3050,"hit_rate":0.399,"roi_flat":-0.0518,"worst_seas
mid dog home{"bets":4030,"hit_rate":0.294,"roi_flat":-0.0435,"worst_seas

by league

PD{"per_class":{"ref_draw":{"bets":105,"hit_rate":0.248,"roi_f
SA{"per_class":{"ref_draw":{"bets":466,"hit_rate":0.27,"roi_fl
BL1{"per_class":{"ref_draw":{"bets":196,"hit_rate":0.265,"roi_f
DED{"per_class":{"ref_draw":{"bets":32,"hit_rate":0.219,"roi_fl
EPL{"per_class":{"ref_draw":{"bets":2065,"hit_rate":0.259,"roi_
FL1{"per_class":{"ref_draw":{"bets":12,"hit_rate":0.167,"roi_fl
PPL{"per_class":{"ref_draw":{"bets":0,"hit_rate":null,"roi_flat

simple parlay

bets1,765
hit rate0.095
roi flat-0.1136
worst season720.88
league seasons21
winning seasons7
median season end978.26

combined portfolio

bets
season watch: weekly Bayesian re-evaluation, all league-seasons Β· league seasons 146 Β· full detail β†’
noteposterior_vs_table counts seasons where the Bayesian leader differed from the table leader at that stage, and who won the title. Live posteriors get priced when the Monday outrights archive has real futures odds to compare against.
league seasons146

calibration

nbandmean prealizedcheckpoint
10220%-50%0.3220.33310%
7350%-80%0.6350.50710%
5080%-100%0.8880.7410%
9920%-50%0.3340.37420%
7250%-80%0.6380.54220%
5080%-100%0.9120.7820%
9420%-50%0.3210.30930%
7250%-80%0.640.63930%
5680%-100%0.9140.82130%
9220%-50%0.3390.32640%

first 10 of 27 rows

live posteriors

league
matrix backtest: engine x rule x staking, per-season $1000 replays Β· 23,640 engine Γ— rule Γ— staking combos, each season from $1000 Β· rerun Γ—8, latest shown Β· full detail β†’
Every engine Γ— bet-rule Γ— staking combination replayed season by season, each season restarting from $1000. Progression staking (martingale/fibonacci/paroli) inflates medians and hides ruin β€” always read the worst-season column. Poisson engines carry only 4 stored seasons; 21-season GBM cells are the trustworthy ones.
EngineRuleStakingMedian endWorst seasonWinning
GBM model #28 β†’when the expected tempo is high (top third of games): back the underdog (3.0+)Fibonacci ladder$2151$55/9
GBM model #16 β†’back away wins at any price, any positive model edgetarget-chase Γ—2$2000$212/21
GBM model #16 β†’back home wins priced 2.60–4.50, any positive model edgetarget-chase Γ—2$2000$713/21
GBM model #16 β†’back home wins priced 2.60–4.50, model edge over 2%target-chase Γ—2$2000$1313/21
GBM model #16 β†’when the skill mismatch is low (bottom third of games): back under 2.5 goalstarget-chase Γ—2$2000$34/7
day mode: $100 -> $1000 in one day, structure tournament Β· target turn $100 into $1000 same day Β· days replayed 2,070 Β· avg slate size 14 Β· rerun Γ—2, latest shown Β· full detail β†’
noteReal historical slates from the walk-forward predictions at real opening prices, all leagues. P(hit target) is the mode's objective; mean_end shows what that shot at glory costs in EV. Parlay legs assumed independent (different matches).
targetturn $100 into $1000 same day
days replayed2,070
avg slate size14

structures

flat 10{"mean_end":93.11,"bust_rate":0.0923,"median_end":85.7,"p_hi
half kelly{"mean_end":96.6,"bust_rate":0,"median_end":93.69,"p_hit_tar
half ladder{"mean_end":88.66,"bust_rate":0.4092,"median_end":3.12,"p_hi
parlay top4{"mean_end":63.66,"bust_rate":0.9942,"median_end":0,"p_hit_t
allin ladder{"mean_end":93.26,"bust_rate":0.9464,"median_end":0,"p_hit_t
season mode: futures bets at season start, every league-season Β· roi 1.3644 Β· bets 793 Β· league seasons 144 Β· rerun Γ—2, latest shown Β· full detail β†’
roi1.3644
bets793
noteFutures prices are SYNTHETIC: naive previous-rank base rates + 35% futures-book margin. Prediction-quality numbers (top-pick hit rate, P on actual champion) are price-free and fully honest; the ROI says whether season-sims beat a last-season-rank bookmaker, not a real one.
league seasons144
mean p on actual champion0.4658
top pick champion hit rate0.542

by market

top4{"roi":1.9944,"bets":209,"hit_rate":0.311}
bottom3{"roi":0.4825,"bets":365,"hit_rate":0.332}
champion{"roi":2.2328,"bets":219,"hit_rate":0.352}
bayes replay: in-play policies on synthesized live markets Β· model run 18 Β· in play vig 0.06 Β· matches replayed 3,800 Β· rerun Γ—3, latest shown Β· full detail β†’
noteLive market is SYNTHETIC (closing-line lambdas conditioned on the live state) with realistic book shading: base vig + tail penalty growing with price, quotes capped at 34. roi_fair grades at unshaded Poisson-fair prices (upper bound / diagnostic only β€” real books fatten comeback tails). Overreaction edges are invisible here by construction; grading vs REAL live odds accumulates in af_live_odds.
model run18
in play vig0.06
matches replayed3,800

policies

betspolicystakedseasonshit rateroi fairroi at vig
1,324fade_overreaction13,240100.1670.51050.1168
4,063double_down40,630100.2940.14440.0572
3,216prematch_only32,160100.3290.01120.0112
5,042cover_lock33,584100.2520.01610.008
3,789value_stream37,890100.230.2646-0.022
dutch-cover backtest: covered vs straight, same picks Β· model run 18 Β· picks considered 5,068 Β· full detail β†’
noteidentical picks and prices; only the structure differs. 'covered' refunds the whole outlay on a draw, 'half_cover' refunds half. median_trough = median of each season's lowest bankroll (the stability number).
model run18
picks considered5,068

modes

covered{"bets":4650,"wins":1650,"seasons":21,"best_season":1856.65,
straight{"bets":5057,"wins":1947,"seasons":21,"best_season":2247,"fu
half cover{"bets":5006,"wins":1900,"seasons":21,"best_season":2047.73,
relational: does the better-X side get more Y? (football) Β· 220 side-vs-side questions tested Β· rerun Γ—4, latest shown Β· full detail β†’
"Does the side better at X get more Y?" β€” every factor (including invented composites) against every countable outcome, split by how big the X gap was. 0.5 = coin flip; the by-gap column shows the probability when the gap is LARGE (top tercile).
Better atGets moreP(better side)…when gap is bignStable
team.elogoals0.6810.829540,458⏳ yes
team.state_indexgoals0.66660.799140,374⏳ yes
team.venue_ppg_l5goals0.64840.756134,922⏳ yes
team.goal_diff_avg_l5goals0.6310.741336,833⏳ yes
team.season_ppggoals0.63270.725634,791⏳ yes
team.league_pointsgoals0.63530.725729,292⏳ yes
team.form_points_l5goals0.62070.717535,775⏳ yes
team.league_rankgoals0.37150.313730,742⏳ yes
team.goals_against_avg_l5
gap intelligence: model #20 vs market (consensus with #17) Β· 21,280 model-vs-market gaps dissected Β· survival AUC 0.6778 Β· full detail β†’
Every model-vs-market disagreement dissected: who was right, where, and can we predict it? model advantage = market log-loss minus model log-loss in the bucket (positive = our number was closer to reality there).
Gap sizeDirectionnModel advantageRealityModel saidMarket saidStable
largemodel_lower1,586-0.045650.4830.35040.4813⏳ yes
largemodel_higher1,777-0.044810.37480.51710.3831⏳ yes
mediummodel_lower3,515-0.020480.39910.31650.3878⏳ yes
mediummodel_higher3,109-0.013930.3770.45190.3802⏳ yes
smallmodel_higher2,874-0.003750.36190.39760.3632⏳ yes
smallmodel_lower3,286-0.002150.34780.31980.3543⏳ yes
tinymodel_higher2,339
scorer model v1: P(player scores) Β· AUC 0.762 (real signal) Β· rerun Γ—3, latest shown Β· full detail β†’
notewalk-forward chronological folds; players need 180+ prior minutes
brier0.0727
auc mean0.7623
base rate0.0879
n player matches151,430

calibration

nbinp predp actual
46,6940.00-0.070.03540.0364
15,5770.07-0.150.1060.1102
7,2990.15-0.220.18150.1841
3,6970.22-0.300.25550.2589
1,6800.30-0.370.3290.344
6620.37-0.450.40070.4048
1040.45-0.520.46540.4808
20.52-0.590.56430.5
book profiling: who is generous, who is asleep Β· days 30 Β· n quotes 4,744 Β· full detail β†’
days30
noteavg_edge_bps > 0 = the book prices better than the cross-book median (generous or slow); best_share = how often it posts the top price. Line-shop these first; they are also the books whose stale quotes the sniper strategies hit.
n quotes4,744

books

bookquotesbest shareavg edge bps
betfair_ex_eu540.3519122.5
matchbook540.3148122
onexbet540.277889.5
af_pinnacle1300.207776.6
af_1xbet1820.274763.9
unibet_nl540.092661
af_betano1820.175854.9
unibet_se540.055652.1
pinnacle54035.6
af_marathonbet1820.093433.8

first 10 of 37 rows

by book market

bookmarketquotesbest price sharegenerosity p90 bps
ref-line scan Β· n refs known 400 Β· tercile threshold 3.8 Β· rerun Γ—2, latest shown Β· full detail β†’
n refs known400
tercile threshold3.8

findings

matchkickoffrefereeverdictcards linecontest idref avg cards
United States v Belgium2026-07-07 00:00:00+00:00A. Makhadmehref_unknown_to_us3.59,933β€”
Argentina v Egypt2026-07-07 16:00:00+00:00F. Letexierref_unknown_to_us3.5105,099β€”
Switzerland v Colombia2026-07-07 20:00:00+00:00I. Bartonref_unknown_to_us3.5105,100β€”
regime alerts 2026-07-06 Β· n games 42 Β· n alerts 1 Β· full detail β†’
noteteams whose rolling-form numbers may describe a team that no longer exists β€” the market prices form, form lies after regime changes. Grade after a season of alerts.
n games42
n alerts1

alerts

sideteamflagsmatchkickoffseveritycontest id
awayEgypt1 itemsArgentina v Egypt2026-07-07 16:00:00+00:002105,099
goal hazard curves: minute profile of scoring Β· n games 5,521 Β· n goals 17,000 Β· share after 75 0.243 Β· full detail β†’
noteshare_after_75 vs uniform (20/95β‰ˆ0.21) quantifies the late-game spike; price_window() turns a match's lambda into P(goal in window).
n games5,521
n goals17,000
share after 750.243
share after 850.1375
share first 150.1167
n games with goals5,521
uniform share after 750.2105
goal in both halves given any0.6283

profile by bucket

00.0275
50.0439
100.0453
150.0462
200.0461
250.0466
300.0493
350.0463
400.0502
450.0789
500.0572
550.0562

first goal profile

00.0831
50.1213
100.1087
150.0976
200.0819
250.077
300.0656
350.054
40
WC 2026 full-tournament retro at real prices Β· games 92 Β· games with 1x2 price 77 Β· games with soft prices 24 Β· full detail β†’
notereal prices only: Kalshi fee-adjusted candlestick asks for 1x2 everywhere; our archived/harvested book prices for totals/cards/corners where they exist. Walk-forward sims per match day; no synthetic pricing anywhere.
games92
games with 1x2 price77
games with soft prices24

books

wc ko unders v1{"won":3,"bets":4,"lost":1,"final":1025.7,"history":[{"bet":
wc sim value v1{"won":8,"bets":57,"lost":49,"final":786.92,"history":[{"bet
cards over ref v1{"won":0,"bets":0,"lost":0,"final":1000,"history":[]}
wc upset hunter v1{"won":4,"bets":28,"lost":24,"final":988.32,"history":[{"bet
corners style over v1{"won":0,"bets":0,"lost":0,"final":1000,"history":[]}
sim value kelly of ruin{"won":8,"bets":57,"lost":49,"final":620.51,"history":[{"bet
soft-market retro from 2021-07-01: cards/corners gates at synthetic prices Β· from 2021-07-01 Β· full detail β†’
from2021-07-01
price modelprior base rate x (1+0.06/2) implied, pessimistic +0.04 shade variant

results

fair margin{"combined":{"bets":0,"path":[],"hit_rate":null,"flat_peak":
overs shaded{"combined":{"bets":0,"path":[],"hit_rate":null,"flat_peak":
gap intelligence: model #19 vs market (consensus with #17) Β· 21,280 model-vs-market gaps dissected Β· survival AUC 0.6787 Β· full detail β†’
Every model-vs-market disagreement dissected: who was right, where, and can we predict it? model advantage = market log-loss minus model log-loss in the bucket (positive = our number was closer to reality there).
Gap sizeDirectionnModel advantageRealityModel saidMarket saidStable
largemodel_lower1,616-0.043160.46660.33680.4679⏳ yes
largemodel_higher1,833-0.040630.39440.52280.3884⏳ yes
mediummodel_lower3,404-0.015340.3860.31340.3848⏳ yes
mediummodel_higher2,922-0.013510.37650.45060.3788⏳ yes
smallmodel_lower3,405-0.003810.34710.31850.3528⏳ yes
smallmodel_higher2,911-0.001950.37480.40010.3661⏳ yes
tinymodel_higher2,399
even
SA
Match result
319
1,144
5.61
away side winevenFL1Match result2918863.1
#1poisson_twEPL353-5.8%-1.05%-0.00526
#19ml_gbm_v1EPL9,793-1.9%0.38%-0.00563
#16ml_gbm_v1EPL9,588-2.9%0.42%-0.00575
#12poisson_twEPL1,442-11.4%-0.44%-0.00595
#17poisson_twEPL1,442-11.4%-0.44%-0.00595
#2poisson_twEPL2,322-7.0%-0.25%-0.00617
#20ml_gbm_v1EPL9,900-2.4%0.40%-0.00637
#14ml_gbm_v1EPL9,248-2.2%0.31%-0.00702
#15ml_gbm_v1EPL9,659-1.0%0.31%-0.00718
#13ml_gbm_v1EPL9,247-1.4%0.42%-0.00764
#7ml_gbm_v1EPL8,235-1.3%0.28%-0.00875
#11ml_gbm_v1EPL8,203-2.7%0.42%-0.00966
#6ml_gbm_v1EL29,818-5.5%-0.04%-0.01067
#4ml_gbm_v1EPL10,506-2.1%0.07%-0.02901
#3ml_gbm_v1EPL10,616-3.0%0.06%-0.03131

Registered strategies

CodeStatusDescription
draw_family_v1dormantThe sweep survivor: back the DRAW when model edge > 10% in high-tempo matchups. Verdict window +12.6% on 324 unseen bets (upper bound). [BLOCKED: model 'gbm' needs a forward-serving job the executor doesn't have yet β€” review finding #12; was mislabeled 'armed'.]
draw_calm_books_v1dormantSibling survivor: back the DRAW when edge > 15% and bookmaker margin is low. Verdict +4.5% on 429 unseen bets. [BLOCKED: model 'gbm' needs a forward-serving job the executor doesn't have yet β€” review finding #12; was mislabeled 'armed'.]
mlb_dog_variance_v1liveBaseball is the highest-variance major sport (rating->win only +0.12) yet the public loves favorites. Back MLB underdogs priced 2.2-3.5 when our Elo edge is at worst -3%.
elo_value_mlb_v1liveStraight Elo value on MLB moneylines: bet either side when Elo win probability beats the best price by 4%.
drought_fade_v1liveLaw-derived (winless-run replicates in 4 sports): bet AGAINST any side whose opponent... no β€” whose own winless run is 4+ games, when priced under 2.8. Fade the drought.
steam_confusion_v1liveMarket-structure play: when bookmakers DISAGREE hard on a price (cross-book spread > 8%), take the best available price on the side with any positive Elo edge β€” someone is wrong, take the generous one.
fatigue_fade_nba_v1armedLaw-derived (NBA congestion is real, r=-0.067): fade NBA teams playing their 4th+ game in 7 days against fresher opponents.
hot_hand_fade_v1liveMean-reversion creative: fade sides whose Elo momentum is scorching (opponent momentum in top band) β€” the market overprices streaks. Expected to be humbled; that is the point of testing it.
chaos_parlay_v1liveThe fun one: a $2 three-leg parlay of the day's highest-edge independent legs across all live strategies' candidates. Margin math says it should bleed; it exists to make the math visible.
placebo_rain_unders_v1dormantCONTROL: bet football unders when heavy rain is forecast. Our own discovery says rain does NOT reduce goals β€” so this placebo SHOULD lose at the margin rate. If it wins long-term, our discovery engine has a bug. Science. [BLOCKED: model 'gbm' needs a forward-serving job the executor doesn't have yet β€” review finding #12; was mislabeled 'armed'.]
cards_closeness_v1dormantDiscovery-derived (closeness->fouls, r=+0.19 emergent): cards/fouls overs in evenly-matched games. Dormant until a live cards-odds feed exists. UPDATE 2026-07-03: referee identity alone swings P(4+ cards) from 33.6% to 54.0% (quartile split, n=21,870) β€” add match.ref_cards_avg regime when the odds feed exists.
value_all_v1retiredBaseline engine: any market, 5% edge, fractional Kelly. Backtest verdict: -2.05% over 20 EPL seasons. Kept as the reference corpse.
wc_sim_value_v1liveWorld Cup: back any 1x2 selection where the Poisson fixtures-sim beats the best live price by 8%. Caveat honored: the sim runs hot on tournament data, hence the high bar. [2026-07-07: gap-filter gate mandatory β€” naked longshot gaps went 8W-49L in the cup retro and the gf twin vetoed them all.]
wc_upset_hunter_v1liveWorld Cup knockout chaos: longshots priced 4-10 where the sim still sees positive edge. Small stakes, big stories.
wc_ko_unders_v1liveKnockout football is cagey (legs tighten when losing means going home): under 2.5 goals when the sim agrees (any positive edge). Hypothesis-tagged.
steam_chaser_v1liveLine-movement study (78k selections, 20yr): big steam (4+ prob-pt moves) is the one bucket the close doesn't fully absorb (+2.3pts residual), concentrated in soft leagues (+5.9% EL2) and away sides (+6.4%). Hypothesis-grade (CI spans zero) β€” this forward trial is the judge. Bets any selection whose consensus implied prob rose 4+ pts across our own daily snapshots.
portfolio_v1liveLayer 3, the bet-maker: builds the best BASKET across everything priced (ballast/value/longshot buckets, one bet per contest, quarter-Kelly, model blended 50/50 with the market) and Monte Carlos each slate before betting. Historical replay verdict: with the current football model's edge it would have gone bust over 21 seasons ($1000 -> $0.76) β€” this forward trial tests whether the newer, humbler probabilities change that.
pitcher_edge_v1liveWho's on the mound matters most in baseball. Bet an MLB moneyline side when its probable starter's season ERA is at least 1.00 better than the opponent's (mlb.starter_era_gap, signed to the bet side) AND our Elo sees any positive edge at the best live price. First strategy to use contest-scoped context metrics.
prop_scorer_v1liveThe first player-level strategy: a gradient-boosted scorer model (rolling goals/shots per 90, starting rate, team attack vs opponent defence, confirmed lineups when available) prices every Kalshi anytime-goalscorer market and bets where its probability beats the fee-adjusted ask by 10%+. Settles from Kalshi's own results.
ref_cards_draw_v1livePromoted from the matrix tournament (won ALL 4 backtest seasons, worst season +$471): when the referee's card average is in the top tercile (>=3.52/game), the match tightens β€” back the DRAW blind. Model-free context bet; forward trial to survive multiple-comparisons doubt.
cards_over_ref_v1liveThe referee signal finally bettable: card-happy ref (top tercile, >=3.52/game) -> back total cards OVER at the main line from the new odds feed. Settles from post-match team stats.
corners_style_over_v1liveTwo corner-hungry teams meet (style clash top tercile, >=11.4 combined corner averages) -> back total corners OVER at the main line. Model-free; the relational miner showed corners follow style and mismatch.
wc_sim_value_kor_v1liveStaking A/B twin of wc_sim_value_v1: identical signal (Poisson sim beats best price by 8%) but sized by kelly_of_ruin β€” half-Kelly scaled by the posterior probability this bankroll's edge is real, from its own settled record. Measures the staking policy, not the signal. [2026-07-07: gap-filter gate mandatory β€” naked longshot gaps went 8W-49L in the cup retro and the gf twin vetoed them all.]
mls_sim_value_v1liveMLS forward trial: back any 1x2 selection where the fixtures sim beats the best price by 10%. Higher bar than WC β€” the sim is new to this league and MLS draws are notoriously frequent.
wc_sim_value_gf_v1retiredGap-filtered twin of wc_sim_value_v1: identical sim signal, but each edge must ALSO be blessed by the gap-survival classifier (P(model side right) >= 0.55, trained on 21 seasons of model-vs-market disagreements). The meta-filter's live A/B.
dutch_cover_v1liveHalf-cover dutch: back the sim's 1x2 pick (edge >= 5%) AND the draw, draw stake sized to refund HALF the outlay on a draw. The 21-season backtest (exp #203) found full cover overpays for insurance (median $898) while half-cover beats straight outright: median $1,060 vs $995, worst season $87 vs $17.
dd_live_v1liveIn-play double-down: when a pending pre-match 1x2 single is TRAILING at a poll and the conditioned model posterior still shows >=8% edge at the real live price, add one $10 bet on the same side. The one in-play behavior that beat its control in the 3,454-match bayes replay (+8.1% vs +2.5%, exp #206). Placed by the inplay watcher, not the executor; graded against REAL live odds.
simple_parlay_v1liveSimple 2-leg parlay of the day's PROVEN-class bets only (ko unders, ref-gated cards over, style-gated corners over β€” the classes that are 11-for-13 live). Two +EV legs compound edge multiplicatively; small flat stake because variance compounds too. Legs come from bets the proven strategies actually placed today.
epl_mid_dog_v1liveThe tuning sweep's best honest cell, armed for 2026-27: EPL home mid-dogs (price 2.6-4.5) when the engine's edge >= 8% -> +18% ROI over 540 real-priced bets, era-stable (+15%/+12%/+10% across 05-10/17-21/22-26). Half-Kelly per the matrix law. HONEST CAVEAT: thresholds chosen in-sample; this live trial is the out-of-sample test.
epl_mid_dog_v2livev1 + the loss-pattern filters baked in: real favourite only (away rank <= 14), our dog not in the drop zone (home rank <= 17), home side alive (form >= 4 pts l5), and no Aug-Oct bets (early-season inputs are noise). Holdout 2016-26: +31.0% over 128 bets vs v1's +15.0% on the same seasons; filters do NOT travel to other leagues (-6.7%) β€” this is an EPL edge. A/B twin of v1, ~13 bets/season.
prop_scorer_v2liveAnytime-scorer v2.1: involvement-first gates (forwards gi>=0.40/90, attacking mids gi>=0.50/90 β€” position-only banned Bellingham-class players the involvement rate wants; defenders stay out at 0/9), confirmed XI, price <= 4.5, full scorer model, edge >= 10%. Retested on the real graded window: rejects all five of v1's losers, admits nothing that lost. A/B twin of v1.
prop_soa_v1liveScore-or-assist singles with the context gates baked in from day one (graded WC window: naked SoA -60%, elite lane -51%, price 5+ 0-for-13 -> tails banned): goal involvement >= 0.40/90 over last 12 apps, price 2.0-4.5 only, expected starter, elo not against (within 50), and the keeper gate β€” only bet INTO a cold opposing keeper (team.keeper_form_v1 below pool median). Kalshi SoA settles via settle-kalshi-props.
soa_duo_parlay_v1liveTom's both-teams structure: when EACH side of one match has a qualifying prop_soa_v1 player, parlay the pair ($3). Mildly negatively correlated legs (one side dominating starves the other) β€” the trial measures whether the price makes up for it.
fade_goal_live_v1liveIn-play fade-the-goal: when a goal goes in, back the CONCEDING side at the real live price if the conditioned posterior still shows >=10% edge. The bayes replay's best surviving policy (+11.7% ROI over 1,324 bets on the own-goal-corrected sample, 6/10 winning seasons vs +1.1% control). Placed by the watcher, max 2 per contest, savepoint-safe. The definitive grade is this live sample at real odds.
mad_game_live_v1liveMad-game mode, live: the whole $1000 game budget committed to ONE match. Plan: spray_and_pray β€” equal-revenue dutch with a +10% return target, the one-game-format champion of the 12-plan mad-game replay (exp #225: median $1,100, 75.6% hit rate, 0.4% bust vs tranche_ladder's $758/10.7%). By 12' the watcher covers the largest outcome set whose dutch return clears the target at real live prices, stakes ~1/price (small on longshots, big on favourites), and holds the unstaked remainder as the designed loss buffer. tranche_ladder remains available via bet_rule.plan. One contest per day.
el2_mid_dog_v1retiredLeague Two home mid-dogs in the 3.5-4.5 price band when the sim engine's edge >= 8% -> +16% ROI over 161 real-priced bets (2017-25), positive in the last 5 straight seasons (+10/+20/+7/+5/+4%), one COVID-empty-stadium down year. The segmentation finder showed the edge concentrates in 3.5-4.5, not the wider 2.6-4.5 band (which was diluted to +3.5%). Half-Kelly per the matrix law (its honest-staking cells on League Two average ~+20%/season and never bust). HONEST CAVEAT: band + threshold chosen in-sample on the baseline poisson engine; this live trial is the out-of-sample test, and the tuned engine hasn't been applied yet.
goal_bets_v1livePre-match goal-market value: price total-goals (O/U 2.5) and BTTS off the Dixon-Coles score matrix built from each contest's stored sim lambdas (home/away-split, shrunk), bet where the book is soft by >=8%. Also surfaces the two likeliest correct scores. Placed by the goal-bets command, graded from the scoreline. Tom's goal-bets idea; the score matrix also feeds the half-time Bayesian re-bet (goal_bets_ht_v2).
goal_bets_ht_v2liveBayesian half-time re-bet on total goals: from ~40' the live score is data, so the score matrix conditions on it (remaining goals ~ Poisson on the remaining lambda share) and the final O/U 2.5 posterior updates exactly. If it beats the live over/under price by >=8%, back it. Placed by the in-play watcher at real live odds, one re-bet per contest. v2 of goal_bets_v1; debuts on the WC quarter-finals.
goal_bets_late_over_v3liveLate-overs goal variant: from 50' back OVER 2.5 only when the score-matrix posterior beats the live over price by >=8%. Top of the goal-replay family (exp: +11.6% ROI, 8/10 winning seasons over 1225 corpus bets) BUT on synthesised live lines where late-over longshots may be flattered by the vig model β€” this WC trial is the real test. Backing late UNDERS was a -20.7% trap in the same backtest, so this variant is overs-only. Watcher-placed, one bet per contest.
away_fav_continental_v1liveedge_hunt finding (2026-07-09): back the AWAY side at short/even odds (<=2.6) in Serie A / Ligue 1 / Primeira. +3.0% ROI at consensus market price, +4.7% best-of-book over 3,366 bets (2015+). Survives a temporal train/test split, BEATS the closing line, positive in 13/14 recent seasons, holds at consensus (not a best-of-book artifact; ~3 books/game). Maps to the home-favouritism bias. CAVEATS: small edge (~3%); ~2012 regime change means exploitable-now not timeless; this live paper trial is the out-of-sample test.
wc_form_edge_v1liveWorld Cup: back any 1x2 pick where the fixtures-sim beats the best live price by 5%+ AND the bookmakers disagree with each other by 4%+ on that price β€” tournament markets get confused, and confusion is where a model edge is most believable. The lower edge bar than wc_sim_value_v1 is paid for by the confusion gate.
wc_keeper_wall_v1liveWorld Cup club-form carryover: a keeper doesn't forget how to save when he swaps his club shirt for his country's. Back a team (1x2) when THEIR keeper's rolling save% β€” built from ALL his matches, club included β€” is hot (>=75%) and the OPPONENT'S keeper is leaky (<=68%), requiring only a non-negative sim edge so the keeper signal is the driver. NOTE: fires only once nations carry team.keeper_form values (needs AF starter data for national-team matches β€” the daily catchup is filling this); silent until then by design, never guessing.
wc_parlay_v1liveWorld Cup accumulator: combines today's two best singles actually placed by the WC strategies (wc_sim_value_v1 / wc_upset_hunter_v1 / wc_form_edge_v1 β€” every leg already passed its own gates) into one 2-leg parlay. Small stake, tournament-sized price.
priced 2.60–4.50
-0.0185
326Over/Under 2.5 goalsMODEL_DEFECT-0.0495Underpriced 1.00–1.80-0.0221
1,190Over/Under 2.5 goalsMODEL_DEFECT-0.044Overpriced 1.00–1.80-0.0095
1,428Over/Under 2.5 goalsMODEL_DEFECT0.0213Overeven-0.0129
834Match resultMODEL_DEFECT0.0186home side winpriced 4.50+-0.0072
1,331Match resultMODEL_DEFECT0.0146home side winpriced 2.60–4.50-0.0103
945Match resultMODEL_DEFECT-0.0139away side wineven-0.0082
1,628Match resultnoise0.0124home side wineven-0.0124
1,491Match resultMODEL_DEFECT0.0083Drawpriced 4.50+-0.015
3,829Match resultnoise-0.0079Drawpriced 2.60–4.50-0.0094

first 10 of 15 rows

predictability ledger

nquestionby windowbrier basebrier modelbrier marketskill captured vs market
15,9601x20.19467, 0.1883, 0.19234, 0.19650.22220.19290.18850.871
5,320ou_goals_2_50.24364, 0.24554, 0.246950.250.24570.24020.437
DEAD
-4.93
-7.07
elo edge 10 (normal)2,9525,872DEAD-5.64-7.2
surface elo edge 5 (normal)4,0137,477DEAD-7.43-6.55

first 10 of 12 rows

steam_confusion_v1model-only edge rule: no market shape to test
hot_hand_fade_v1model-only edge rule: no market shape to test
chaos_parlay_v1composite: depends on its leg strategies
wc_sim_value_v1model-only edge rule: no market shape to test
steam_chaser_v1steam: needs our snapshot-move history, not price levels
portfolio_v1composite: depends on its leg strategies
pitcher_edge_v1model-only edge rule: no market shape to test
prop_scorer_v1soft/prop market: ~no odds history (forward-capture only)

first 10 of 25 rows

0
0
1
0

first 10 of 24 rows

totals

pnl429.84
pending43
roi pct30.4
settled134
strategies24
11,721
hit rate0.283
roi flat-0.0526
worst season441.76
league seasons167
winning seasons67
median season end973.7

control bet every edge

bets40,977
hit rate0.334
roi flat-0.0507
worst season40.6
league seasons146
winning seasons47
median season end854.4
played
season
remaining
p champion top6
MLS21820262926 items

posterior vs table

checkpointtable rightdisagreementsposterior right
10%169149
20%196433
30%145427
40%144118
50%93519
60%92512
70%51810
80%51911
90%5148
GBM model #16 β†’when the Elo gap is low (bottom third of games): back over 2.5 goalstarget-chase Γ—2$2000$94/7
GBM model #16 β†’when the referee's card average is high (top third of games): back under 2.5 goalstarget-chase Γ—2$2000$25/7
GBM model #16 β†’when the match stakes is high (top third of games): back under 2.5 goalstarget-chase Γ—2$2000$1126/7
GBM model #18 β†’back over 2.5 goals priced 1.00–1.80, model edge over 2%target-chase Γ—2$2000$145/7
GBM model #18 β†’back home wins priced 1.80–2.60, model edge over 5%target-chase Γ—2$2000$2512/21
GBM model #18 β†’back anything the model likes priced 1.80–2.60, model edge over 10%target-chase Γ—2$2000$211/21
GBM model #18 β†’back match-result picks priced 1.80–2.60, model edge over 10%target-chase Γ—2$2000$911/21
GBM model #18 β†’when the Elo gap is high (top third of games): back the favouritetarget-chase Γ—2$2000$3511/21
GBM model #18 β†’when the Elo gap is low (bottom third of games): back under 2.5 goalstarget-chase Γ—2$2000$34/7
GBM model #18 β†’when the referee's card average is low (bottom third of games): back over 2.5 goalstarget-chase Γ—2$2000$305/7
GBM model #18 β†’when the match stakes is high (top third of games): back under 2.5 goalstarget-chase Γ—2$2000$20007/7
GBM model #18 β†’when the match stakes is low (bottom third of games): back over 2.5 goalstarget-chase Γ—2$2000$554/7
GBM model #21 β†’back anything the model likes priced 1.80–2.60, any positive model edgetarget-chase Γ—2$2000$213/21
GBM model #21 β†’back over 2.5 goals priced 1.80–2.60, any positive model edgetarget-chase Γ—2$2000$25/7
GBM model #21 β†’back anything the model likes priced 1.00–1.80, model edge over 2%target-chase Γ—2$2000$311/21
GBM model #21 β†’back over 2.5 goals priced 1.00–1.80, model edge over 2%target-chase Γ—2$2000$46/7
GBM model #21 β†’back over 2.5 goals priced 1.80–2.60, model edge over 2%target-chase Γ—2$2000$75/7
GBM model #21 β†’back home wins at any price, model edge over 5%target-chase Γ—2$2000$214/21
GBM model #21 β†’back over 2.5 goals at any price, model edge over 5%target-chase Γ—2$2000$24/7
GBM model #21 β†’back anything the model likes priced 1.80–2.60, model edge over 5%target-chase Γ—2$2000$212/21
GBM model #21 β†’when the skill mismatch is high (top third of games): back under 2.5 goalstarget-chase Γ—2$2000$24/7
GBM model #21 β†’when the Elo gap is low (bottom third of games): back over 2.5 goalstarget-chase Γ—2$2000$35/7
GBM model #21 β†’when the expected tempo is high (top third of games): back the favouritetarget-chase Γ—2$2000$2314/21
GBM model #21 β†’when the referee's card average is high (top third of games): back under 2.5 goalstarget-chase Γ—2$2000$5146/7
GBM model #21 β†’when the match stakes is high (top third of games): back under 2.5 goalstarget-chase Γ—2$2000$755/7

23,640 cells total Β· leaderboard shows the top by median season end.

goals
0.3872
0.2948
35,384
⏳ yes
team.goals_for_avg_l5goals0.60750.689135,563⏳ yes
team.matches_since_wingoals0.4068β€”31,368⏳ yes
team.h2h_win_rate_l5goals0.64β€”13,815⏳ yes
team.shot_diff_avg_l5goals0.61110.717118,801⏳ yes
team.dominance_l5goals0.60930.714419,055⏳ yes
team.goals_volatility_l10goals0.57630.630837,783⏳ yes
-0.00069
0.3442
0.3573
0.3476
⏳ yes
tinymodel_lower2,532-0.000670.34240.32630.3362no

Gap-survival classifier holdout AUC: 0.6778 Β· top features: rel_gap, price_open, prob_market, gap

Hurricane test over 4,560 shared predictions β€” Brier: engine A 0.19805, engine B 0.19611, engine mean 0.19499, market 0.19016. Averaging wrong models beats both members, but the market still beats the ensemble.

avg edge vs consensus bps
betfair_ex_euMatch result540.3519195.5122.5
matchbookMatch result540.3148220.9122
af_1xbetMatch result780.3077205.4108.5
onexbetMatch result540.2778170.189.5
af_pinnacleOver/Under 2.5 goals520.3077176.380.1
af_betanoMatch result780.2051239.979.4
af_pinnacleMatch result780.141152.274.3
af_1xbetOver/Under 2.5 goals520.192315665.5
af_marathonbetBoth teams to score520.25191.664.3
af_betanoOver/Under 2.5 goals520.2308155.962

first 10 of 40 rows

0.0496
450.0638
500.0379
550.0357
-0.001
0.3443
0.3633
0.3535
⏳ yes
tinymodel_lower2,460-0.000380.33940.32730.3372⏳ yes

Gap-survival classifier holdout AUC: 0.6787 Β· top features: rel_gap, price_open, prob_market, gap

Hurricane test over 4,560 shared predictions β€” Brier: engine A 0.19489, engine B 0.19611, engine mean 0.19337, market 0.19016. Averaging wrong models beats both members, but the market still beats the ensemble.