The Marginbeta
Methodology

SLIDER — how it works

SLIDER is our independent NCAA D1 baseball team rating, built entirely from our own data. The name maps to the six knobs that drive the model: Score-margin, Lambda (the ridge penalty), Injury, Decay (time-weighted on the injury layer), ERA (the rotation baseline), and Ridge regression. Every component ships with its own per-team rank on /cbb-ratings.

The composite

margin_rating = base + 0.20·form + 0.35·rotation + 1.0·injury

Three weights, locked on a 2018-2022 train / 2023-2024 validate split. Each layer ships its own value and its own per-team rank, so a reader can sort the table by any one of them and see who is up purely on base strength versus who is climbing on form or sliding on injuries.

Layer 1 — Base (Massey ridge)

score_margin = rating_home − rating_away + HFA·(1−neutral) + ε

Solved by ridge least-squares (λ=0.1) with a global mean-zero constraint and per-team L2 shrinkage. Score margins are clipped to ±15 runs so a 25-run blowout doesn't drag the loser's rating into orbit. Home-field advantage and the neutral-site flag are fit as free parameters; we don't hardcode them.

Layer 2a — Form

form_adj = clip( 0.5 · EWM(residuals, halflife=5), ±0.5 )

For each team, the residual on game G is actual_margin − expected_margin where expected comes from the current base ratings + HFA. Take an exponentially-weighted mean of the last 10 residuals with a half-life of 5 games, multiply by 0.5, then clip at ±0.5. The cap is tight because the holdout sweep showed monotonically better validation accuracy as the cap got tighter — form residuals are noisier than expected.

Layer 2b — Rotation

rotation_adj = (4.50 − weighted_top3_ERA) · 0.15
weighted_top3_ERA = 0.5·ERA₁ + 0.3·ERA₂ + 0.2·ERA₃

Reads the team's probable starters for the upcoming weekend from cbb_probable_starters (scraped from D1Baseball). The 4.50 baseline is the rough D1 league average ERA. Starters under 30 IP are treated as league-average to keep small-sample swings (a freshman with one good start) from dominating. Capped at ±1.5 rating points but rarely binds in practice.

Layer 2c — Injury

injury_adj = − 1.5 · (absent_IP_total / team_IP_total)

Reads the existing pitcher_health snapshot that drives the CWS simulator. Only fires when the team is flagged red or yellow (top-3-by-IP pitcher missing recent appearances with non-trivial innings); green / unknown teams get a 0. Always non-positive — injury never helps a team.

Example team — Auburn (as of 2026-05-14)

base = +6.96 (rank 4)
form = +0.50 (rank 4) → contributes 0.20 · (+0.50) = +0.10
rotation = +0.33 (rank 5) → contributes 0.35 · (+0.33) = +0.12
injury = 0.00 (rank 16) → contributes 1.0 · 0.00 = 0.00
margin_rating = 6.96 + 0.10 + 0.12 + 0.00 = +7.18 (rank 3)

Auburn ranks 4th on pure base strength but climbs to 3rd on the composite because (a) recent-form residual is at the cap — they've been over-performing their rating — and (b) their probable weekend rotation grades a third of a run better than league baseline. No injury hit either. Three small tailwinds compound into one rank step.

Retrospective — six NCAA Tournaments

For each year in [2018, 2019, 2021, 2022, 2023, 2024] we built the base rating using only games played before that year's Selection Day, then tested on every post- selection-day tournament game where both teams appeared in the field. Composite-layer parameters (form/rotation/injury) are not applied here — they use 2026-season data that does not exist historically.

Live Kalshi forward test — what survives at real ask

SLIDER also runs in parallel on the live Kalshi CBB scanner, with its predictions logged against every emitted opportunity. Across 15,966 resolved 2026 opps (about 5 weeks of forward data), we ran the same realized-P&L analysis as above but with two real-world adjustments:

Peer review — what changed

Two independent reviewers examined the retrospective before this page was published. Three things changed as a result:

Overlay validation status (H2)

The composite includes form, rotation, and injury layers. Their out-of-sample validation status on tournament games:

The 66.1% retrospective accuracy and 4/6 champion identification apply to the base layer only. The production composite adds small overlay adjustments that have negligible measured effect on tournament Brier.

Validation — regular-season

Tested on a 2018-2022 train / 2023-2024 validate split, then a 2024 holdout for the head-to-head vs PEAR. Three gates:

Honest disclosures

What the rating doesn't capture

Home-field advantage is fitted at +0.22 rating points, well below the +0.5-0.8 industry consensus. Two reasons. First, ESPN's neutral-site flag covers about 60% of our scored games — the missing 40% are mostly mid-major non-conference matchups that aren't on ESPN's scoreboard, so neutral tournament games in those windows still look like home games to the solver. Second, college baseball legitimately has a smaller HFA than basketball or football — ballparks vary less than arenas or stadiums. Both factors contribute; we're not hardcoding a floor.

Rotation coverage is partial. We have probable starters for ~100 of 309 D1 teams on any given weekend (scraped from D1Baseball, which prioritizes higher-profile programs). Teams without probable-starter data get a 0 rotation adjustment, not a penalty. The composite is therefore most differentiated against PEAR for the top half of the standings.

Injury coverage is partial. The pitcher- health snapshot flags about 80 teams as red or yellow at any time; the rest are green or unknown. Teams that legitimately have a healthy staff and teams whose injury data we lack both get 0.

What it doesn't see at all

Data we use

Not used as input: anything from PEAR Ratings, D1Baseball, or Baseball America. Those appear as comparison columns elsewhere on the site, never as inputs to this rating.

What changes day to day

A nightly worker recomputes every team at 06:00 MT. Across the last 7 days the average team's rating moves by 0.09 rating points; the most volatile teams move ~0.4. Most of the motion comes from the form layer cycling through last-10 residuals; rotation and injury rarely move the needle by more than a tenth of a rating point on any given day.