Top 3
★ ML Lineup
lineup_margin_ridge · LightGBM + team-list features
Walk-forward LightGBM trained on Elo diff, squad-strength deltas, rest, and lineup composition features. Writes to gold_nrl_predictions; shown as the starred row in round-pred reports.
acc61.6%
fromcatalogue
Best accuracy on the bench at 61.6% (acc) vs 60.2% market baseline. Used as the primary H2H predictor since 2026-07-10. Refresh with: python ml/predict_weekly_margin.py --season 2026 --round <N>.
Candidate
H2H
open priced
Logit + RAPM Lineup
logit_rapm_v1 · Logistic regression + RAPM
logit_open_mkt + walk-forward RAPM lineup delta (player plus-minus from team lists, identity-resolved via gold_nrl_player_name_map).
log-loss0.629
λ0.1
CLA0.5651
features16
fromline-v2-final
SIGNAL CONFIRMED, GATE NOT CLEARED (phase3-rapm-v3, real deltas after the join fix): λ=0.141 — first candidate above the 0.10 bar — and CLA z=5.22 (the market moves toward its picks). G6 missed by 0.0005 log-loss vs the ablation control. Decisive test: the team-list-timing channel (rapm_timing_v1 paper trades).
Features (16)
elo_home_probelo_rating_diffrolling_margin_diff_l5rolling_win_rate_diff_l5rest_days_diffplayoff_flagneutral_venue_flagtemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flagopen_home_implied_probrapm_lineup_delta
Top 3
Candidate
H2H
open priced
State-Space Strength
ss_strength_v1 · Kalman state-space
Time-varying attack/defence strengths with uncertainty; season-boundary variance inflation replaces the Elo regression trick.
log-loss0.6377
λ0.055
CLA0.5442
fromline-v2-final
KEPT (G1 pass — beats Elo on log-loss with the best raw calibration on the bench; G2 fail, λ=0.055). A better Elo, not yet an edge.
Elo Current
elo_current · Elo
Margin-scaled Elo baseline (K=24, HFA+55, 25% season regression). The backbone most other features derive from.
log-loss0.6399
λ0.015
CLA0.5187
fromline-v2-final
Incumbent baseline. Log-loss ~0.640; adds no edge over the market (λ≈0.02).
Logit Core
logit_core · Logistic regression
Walk-forward logit on Elo + rolling form + schedule + weather. Actionable at open.
log-loss0.6424
λ0.021
CLA0.537
features14
fromline-v2-final
Incumbent. Mostly Elo restated; λ≈0.02.
Features (14)
elo_home_probelo_rating_diffrolling_margin_diff_l5rolling_win_rate_diff_l5rest_days_diffplayoff_flagneutral_venue_flagtemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flag
LightGBM v1
lgbm_v1 · Gradient boosting
Offline challenger (nrl/src). Retrained leakage-free July 2026; serves the CLI predictor with --explain (TreeSHAP).
log-loss0.6533
acc61.9%
Diagnostic only — BELOW market baseline since the 2026-07-16 retrain (acc 61.9% vs 62.45% implied-prob baseline). Fixed 2024 train cutoff and pre-backfill weather rows; regenerate training data with a rolling cutoff or retire (decision queued, review-2026-07-16). Must not drive trade decisions.
Logit + Open Market (control)
logit_open_mkt · Logistic regression
Ablation control: logit_core features + opening implied probability, NO lineup delta. G6's incumbent — candidates must beat this, not bare logit_core.
log-loss0.6287
λ0.086
CLA0.5291
features15
fromline-v2-final
Control only — never bet, never promoted. Exists so RAPM passes can only come from the lineup delta itself.
Features (15)
elo_home_probelo_rating_diffrolling_margin_diff_l5rolling_win_rate_diff_l5rest_days_diffplayoff_flagneutral_venue_flagtemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flagopen_home_implied_prob
Diagnostic
H2H
close priced
Lineup Prior Year
lineup_prior_year_v1 · Logistic regression
Closing-market features + prior-year lineup aggregates.
log-loss0.6149
λ0.076
CLA0.7788
features22
fromline-v2-final
Diagnostic only; lineup coefficients historically ~0.
Features (22)
elo_home_probelo_rating_diffrolling_margin_diff_l5rolling_win_rate_diff_l5rest_days_diffplayoff_flagneutral_venue_flagtemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flagclose_home_implied_probopen_home_implied_probmarket_movelineup_overall_deltalineup_halves_deltalineup_edge_deltalineup_availablelineup_nonzero_rate
Diagnostic
H2H
close priced
Logit Core + Market
logit_core_market · Logistic regression
Includes CLOSING market features — measures how much of the close the core features explain.
log-loss0.6141
λ0.052
CLA0.8079
features17
fromline-v2-final
Diagnostic only. Never actionable, never seeded into paper trading.
Features (17)
elo_home_probelo_rating_diffrolling_margin_diff_l5rolling_win_rate_diff_l5rest_days_diffplayoff_flagneutral_venue_flagtemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flagclose_home_implied_probopen_home_implied_probmarket_move
Top 3
Line Move v1
line_move_v1 · Calibrated logistic direction model
Tuesday post-team-list prediction of closing-line direction, placed at an immutable real opening handicap.
metricsnot yet evaluated
LIVE PAPER only. Backtested chosen-side CLV +1.47 points (95% CI +1.08 to +1.87); review at 20/40/100 settled reads.
Top 3
Candidate
Line
open priced
Line Ridge Core
line_ridge_core · Ridge margin
Ridge on margin vs the OPENING line; normal-CDF cover probabilities.
MAE13.644
features29
fromline-v2-final
Strongest signal in the shop: +4.4% ROI over ~1,580 open-line bets, CI [−4.4%, +19%] — promising, not significant. Priority for validation.
Features (29)
elo_home_probelo_rating_diffrolling_margin_diff_l5rolling_win_rate_diff_l5rest_days_diffplayoff_flagneutral_venue_flagtemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flagabs_elo_rating_diffrolling_home_points_for_l5rolling_away_points_for_l5rolling_home_points_against_l5rolling_away_points_against_l5rolling_points_for_sum_l5rolling_points_against_sum_l5rolling_total_points_l5season_to_date_avg_totalrecent_league_avg_total_l20lineup_overall_deltalineup_halves_deltalineup_edge_deltalineup_availablelineup_nonzero_rate
Candidate
Line
open priced
Line v2a — registered bundle
line_v2a · Ridge margin + lineup bundle
Research-only walk-forward ridge using the pre-registered lineup bundle; games-together is excluded when VIF exceeds 5.
MAE13.586
features33
fromline-v2-final
Research result: MAE/CLA joint gates not cleared. Never wired to live prediction.
Features (33)
elo_home_probelo_rating_diffrolling_margin_diff_l5rolling_win_rate_diff_l5rest_days_diffplayoff_flagneutral_venue_flagtemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flagabs_elo_rating_diffrolling_home_points_for_l5rolling_away_points_for_l5rolling_home_points_against_l5rolling_away_points_against_l5rolling_points_for_sum_l5rolling_points_against_sum_l5rolling_total_points_l5season_to_date_avg_totalrecent_league_avg_total_l20lineup_overall_deltalineup_halves_deltalineup_edge_deltalineup_availablelineup_nonzero_ratedelta_spine_lock_cohesionlock_playmaker_index_deltadelta_offball_effortdelta_availability_loss
Candidate
Line
open priced
Line v2a — HistGradientBoosting challenger
line_v2a_hgb · Gradient boosting margin + lineup bundle
Registered research challenger with nested time-ordered parameter selection.
MAE13.611
features33
fromline-v2-final
Research-only challenger; not wired to live prediction.
Features (33)
elo_home_probelo_rating_diffrolling_margin_diff_l5rolling_win_rate_diff_l5rest_days_diffplayoff_flagneutral_venue_flagtemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flagabs_elo_rating_diffrolling_home_points_for_l5rolling_away_points_for_l5rolling_home_points_against_l5rolling_away_points_against_l5rolling_points_for_sum_l5rolling_points_against_sum_l5rolling_total_points_l5season_to_date_avg_totalrecent_league_avg_total_l20lineup_overall_deltalineup_halves_deltalineup_edge_deltalineup_availablelineup_nonzero_ratedelta_spine_lock_cohesionlock_playmaker_index_deltadelta_offball_effortdelta_availability_loss
Candidate
Line
open priced
Line v2a — Huber challenger
line_v2a_huber · Huber margin + lineup bundle
Registered research challenger with nested time-ordered epsilon/alpha selection.
MAE13.624
features33
fromline-v2-final
Research-only challenger; not wired to live prediction.
Features (33)
elo_home_probelo_rating_diffrolling_margin_diff_l5rolling_win_rate_diff_l5rest_days_diffplayoff_flagneutral_venue_flagtemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flagabs_elo_rating_diffrolling_home_points_for_l5rolling_away_points_for_l5rolling_home_points_against_l5rolling_away_points_against_l5rolling_points_for_sum_l5rolling_points_against_sum_l5rolling_total_points_l5season_to_date_avg_totalrecent_league_avg_total_l20lineup_overall_deltalineup_halves_deltalineup_edge_deltalineup_availablelineup_nonzero_ratedelta_spine_lock_cohesionlock_playmaker_index_deltadelta_offball_effortdelta_availability_loss
Compound-Poisson Margin
cpois_margin_v1 · Try/conversion scoring model
Dixon-Coles-style try rates → full margin distribution.
MAE14.297
fromline-v2-final
PARKED — G4 fail (MAE 14.3 vs ridge 13.5). One more iteration allowed (feed ss_strength states, fit overdispersion), then retire.
Diagnostic
Line
close priced
Line Ridge + Market
line_ridge_market · Ridge margin
Closing-line features; diagnostic twin of line_ridge_core.
MAE13.421
features38
fromline-v2-final
Diagnostic only.
Features (38)
elo_home_probelo_rating_diffrolling_margin_diff_l5rolling_win_rate_diff_l5rest_days_diffplayoff_flagneutral_venue_flagtemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flagclose_home_implied_probopen_home_implied_probmarket_moveabs_elo_rating_diffrolling_home_points_for_l5rolling_away_points_for_l5rolling_home_points_against_l5rolling_away_points_against_l5rolling_points_for_sum_l5rolling_points_against_sum_l5rolling_total_points_l5season_to_date_avg_totalrecent_league_avg_total_l20lineup_overall_deltalineup_halves_deltalineup_edge_deltalineup_availablelineup_nonzero_ratess_margin_varclose_home_lineopen_home_linehome_line_moveclose_home_line_implied_probopen_home_line_implied_prob
Baseline
Total
open priced
Total Ridge Core
total_ridge_core · Ridge total
Ridge on total points vs the opening total.
MAE10.283
features25
fromline-v2-final
Roughly breakeven at open; incumbent for the totals track.
Features (25)
abs_elo_rating_diffrolling_home_points_for_l5rolling_away_points_for_l5rolling_home_points_against_l5rolling_away_points_against_l5rolling_points_for_sum_l5rolling_points_against_sum_l5rolling_total_points_l5season_to_date_avg_totalrecent_league_avg_total_l20rest_days_diffplayoff_flagneutral_venue_flaglineup_overall_deltalineup_halves_deltalineup_edge_deltalineup_availablelineup_nonzero_ratetemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flag
Compound-Poisson Total
cpois_total_v1 · Try/conversion scoring model
Same scoring model, totals track.
MAE10.649
fromline-v2-final
PARKED — G3 fail (MAE 10.6 vs ridge 10.3).
Diagnostic
Total
close priced
Total Ridge + Market
total_ridge_market · Ridge total
Closing-total features; diagnostic twin.
MAE10.082
features30
fromline-v2-final
Diagnostic only.
Features (30)
abs_elo_rating_diffrolling_home_points_for_l5rolling_away_points_for_l5rolling_home_points_against_l5rolling_away_points_against_l5rolling_points_for_sum_l5rolling_points_against_sum_l5rolling_total_points_l5season_to_date_avg_totalrecent_league_avg_total_l20rest_days_diffplayoff_flagneutral_venue_flaglineup_overall_deltalineup_halves_deltalineup_edge_deltalineup_availablelineup_nonzero_ratetemperature_2mweather_condition_binprecipitation_mm_pre_match_3hwind_speed_binis_crosswind_flagweather_data_availableweather_impact_flagclose_total_pointsopen_total_pointstotal_points_moveclose_over_implied_probopen_over_implied_prob