Skip to content
SPOLYTICS
Back to board

Daily learning journal

Every morning (Pacific time) the model re-grades every game that finished the day before. Shipped probabilities are scored against outcomes for Brier and calibration error, then coefficients are refit on a rolling window. Only fits that beat the previous output on hold-out data ship, and each day's changes are logged below.

Locked pick record

Last 30 days · 1000 graded

The probability first published on the board never changes afterwards. The figures below compare those locked values against actual outcomes only.

Stated

37.1%

actual 35.3%

Gap

−1.8pp

actual − stated

Brier

0.2001

353/1000 hit

Post-lock drift

4.9pp

not shown on board

Stated bandmodel probabilitiesStatedActual
50–60%16852.5%54.2%
60–70%5564.6%54.5%
70–80%2373.3%73.9%
80–90%1484.3%71.4%
90–100%695.0%83.3%
  • MissMiguel Vargas · RBI 1+· RBI 1+ (Chicago White Sox @ Cleveland Guardians)28%
  • MissAngel Martínez · HR· HR 1+ (Chicago White Sox @ Cleveland Guardians)11%
  • MissSteven Kwan · Hits 1+· hits 1+ (Chicago White Sox @ Cleveland Guardians)46%
  • MissChase Meidroth · Hits 1+· hits 1+ (Chicago White Sox @ Cleveland Guardians)59%
  • HitMiguel Vargas · Hits 1+· hits 1+ (Chicago White Sox @ Cleveland Guardians)58%
  • MissAngel Martínez · Hits 1+· hits 1+ (Chicago White Sox @ Cleveland Guardians)55%
  • MissChase DeLauter · Hits 1+· hits 1+ (Chicago White Sox @ Cleveland Guardians)54%
  • MissSam Antonacci · Hits 1+· hits 1+ (Chicago White Sox @ Cleveland Guardians)53%
  • MissJosé Ramírez · Hits 1+· hits 1+ (Chicago White Sox @ Cleveland Guardians)50%
  • HitSteven Kwan · Walks 1+· walks 1+ (Chicago White Sox @ Cleveland Guardians)45%
  • HitBoth teams · total runs Under 7.5· Totals (Chicago White Sox @ Cleveland Guardians)48%
  • MissBoth teams · total runs Over 7.5· Totals (Chicago White Sox @ Cleveland Guardians)44%

Brier by day (lower is better)

2026-10-03

Latest
21 finished games · 151 markets graded

Brier

0.2020

raw 0.2011

ECE

0.1184

raw 0.0905

Hit rate

74.8%

base 42.4%

Calibration gain

+0.0008

Brier delta

  • On October 3, 2026, the model evaluated 151 samples across 21 games with an overall accuracy of 74.83%. The shipped probabilities achieved a Brier score of 0.2020 compared to the baseline raw score of 0.2011, where lower is better and 0.25 represents random chance. The model adopted calibration calibrators for three batter_contact market variants (league:mlb, baseball, and global *), each improving hold-out Brier scores from 0.2198 to 0.2027 across 2,946 samples. Expected Calibration Error was 0.1184 for the model versus 0.0905 for raw predictions, indicating the model's probability bins deviated more from observed frequencies than uncalibrated outputs.
  • Graded 151 markets from yesterday. Shipped probabilities scored Brier 0.2020 (raw 0.2011; a coin flip is 0.25).
  • Adopted a calibration calibrator for league:mlb:batter_contact (hold-out Brier 0.2198 → 0.2027, 2946 samples).
  • Adopted a calibration calibrator for baseball:batter_contact (hold-out Brier 0.2198 → 0.2027, 2946 samples).
  • Adopted a calibration calibrator for *:batter_contact (hold-out Brier 0.2198 → 0.2027, 2946 samples).
LeagueGamesMarketsBrierRaw
MLB1900.20660.2047
CS218420.22920.2291
MLS1130.07670.0783
WNBA160.21330.2185

2026-10-02

1 finished games · 4 markets graded

Brier

0.2135

raw 0.2738

ECE

0.2495

raw 0.2983

Hit rate

75.0%

base 50.0%

Calibration gain

−0.0603

Brier delta

Too few finished games to grade; coefficients were left unchanged.

LeagueGamesMarketsBrierRaw
CS2140.21350.2738

2026-09-22

15 finished games · 217 markets graded

Brier

0.1949

raw 0.2025

ECE

0.0430

raw 0.0861

Hit rate

71.0%

base 30.4%

Calibration gain

−0.0076

Brier delta

  • The model evaluated 217 markets across 15 games on 2026-09-22, achieving a Brier score of 0.1949 compared to 0.2025 for raw output and 0.2500 for random guessing. Calibration error (ECE) was 0.0430 for the model versus 0.0860 for raw predictions, indicating improved reliability. MLB calibration adjustments reduced Brier by 0.0119 across 173 samples, while CS2 calibration lagged raw output by 0.0090 across 44 samples and remains conservative pending additional data. The refit process analyzed 12,043 historical samples in 64,751 milliseconds with no coefficient updates applied.
  • Graded 217 markets from yesterday. Shipped probabilities scored Brier 0.1949 (raw 0.2025; a coin flip is 0.25).
  • MLB: learned calibration cut Brier by 0.0119 versus raw output (173 samples).
  • CS2: calibration trailed raw output by 0.0090; coefficients stay conservative until more samples land.
LeagueGamesMarketsBrierRaw
MLB21730.18190.1938
CS213440.24580.2368

2026-09-20

46 finished games · 1773 markets graded

Brier

0.2033

raw 0.2059

ECE

0.0311

raw 0.0502

Hit rate

68.9%

base 35.3%

Calibration gain

−0.0026

Brier delta

  • Graded 1773 markets from yesterday. Shipped probabilities scored Brier 0.2033 (raw 0.2059; a coin flip is 0.25).
  • MLB: learned calibration cut Brier by 0.0037 versus raw output (1508 samples).
  • batter_rbi_run markets ran 3.1%p low versus outcomes (400 samples, 35% actual). The refit shifts them up.
  • batter_bb markets ran 3.3%p high versus outcomes (200 samples, 25% actual). The refit shifts them down.
  • J League: calibration trailed raw output by 0.0058; coefficients stay conservative until more samples land.
  • team_totals markets ran 9.1%p high versus outcomes (47 samples, 38% actual). The refit shifts them down.
  • CS2: calibration trailed raw output by 0.0067; coefficients stay conservative until more samples land.
  • epl, jleague crossed the sample threshold and joined the learning set automatically.
LeagueGamesMarketsBrierRaw
MLB1815080.20010.2038
J League81040.20750.2017
EPL5650.26160.2599
MLS4520.19480.1953
CS211440.22900.2223

2026-09-19

0 finished games · 0 markets graded

Brier

0.0000

raw 0.0000

ECE

0.0000

raw 0.0000

Hit rate

0.0%

base 0.0%

Calibration gain

−0.0000

Brier delta

Too few finished games to grade; coefficients were left unchanged.

2026-09-18

0 finished games · 0 markets graded

Brier

0.0000

raw 0.0000

ECE

0.0000

raw 0.0000

Hit rate

0.0%

base 0.0%

Calibration gain

−0.0000

Brier delta

Too few finished games to grade; coefficients were left unchanged.

2026-09-17

0 finished games · 0 markets graded

Brier

0.0000

raw 0.0000

ECE

0.0000

raw 0.0000

Hit rate

0.0%

base 0.0%

Calibration gain

−0.0000

Brier delta

  • seriea dried up on recent samples and left the learning set.

2026-09-16

0 finished games · 0 markets graded

Brier

0.0000

raw 0.0000

ECE

0.0000

raw 0.0000

Hit rate

0.0%

base 0.0%

Calibration gain

−0.0000

Brier delta

  • bundesliga, lol dried up on recent samples and left the learning set.

2026-09-15

0 finished games · 0 markets graded

Brier

0.0000

raw 0.0000

ECE

0.0000

raw 0.0000

Hit rate

0.0%

base 0.0%

Calibration gain

−0.0000

Brier delta

Too few finished games to grade; coefficients were left unchanged.

2026-09-14

0 finished games · 0 markets graded

Brier

0.0000

raw 0.0000

ECE

0.0000

raw 0.0000

Hit rate

0.0%

base 0.0%

Calibration gain

−0.0000

Brier delta

Too few finished games to grade; coefficients were left unchanged.

2026-09-13

0 finished games · 0 markets graded

Brier

0.0000

raw 0.0000

ECE

0.0000

raw 0.0000

Hit rate

0.0%

base 0.0%

Calibration gain

−0.0000

Brier delta

  • laliga, ligue1, leaguescup dried up on recent samples and left the learning set.

2026-09-12

0 finished games · 0 markets graded

Brier

0.0000

raw 0.0000

ECE

0.0000

raw 0.0000

Hit rate

0.0%

base 0.0%

Calibration gain

−0.0000

Brier delta

Too few finished games to grade; coefficients were left unchanged.

2026-09-11

30 finished games · 524 markets graded

Brier

0.1857

raw 0.1990

ECE

0.0771

raw 0.1284

Hit rate

71.4%

base 26.5%

Calibration gain

−0.0134

Brier delta

  • Graded 524 markets from yesterday. Shipped probabilities scored Brier 0.1857 (raw 0.1990; a coin flip is 0.25).
  • Adopted a calibration calibrator for esports:team_totals (hold-out Brier 0.2784 → 0.2422, 435 samples).
  • Adopted a calibration calibrator for league:lol:ml (hold-out Brier 0.2177 → 0.1535, 182 samples).
  • Adopted a beta calibrator for league:cs2:team_totals (hold-out Brier 0.2734 → 0.2431, 344 samples).
  • MLB: learned calibration cut Brier by 0.0172 versus raw output (415 samples).
  • batter_contact markets ran 13.8%p high versus outcomes (110 samples, 25% actual). The refit shifts them down.
  • batter_rbi_run markets ran 12.1%p high versus outcomes (110 samples, 19% actual). The refit shifts them down.
  • batter_power markets ran 8.9%p high versus outcomes (110 samples, 13% actual). The refit shifts them down.
  • 8 stacking meta-models passed validation and were swapped in.
LeagueGamesMarketsBrierRaw
MLB54150.17020.1874
CS224960.24680.2452
Club Friendly1130.22870.2311

2026-09-10

48 finished games · 1444 markets graded

Brier

0.2102

raw 0.2138

ECE

0.0422

raw 0.0656

Hit rate

67.8%

base 36.4%

Calibration gain

−0.0036

Brier delta

  • league:mlb:batter_rbi_run calibration trailed raw output on live games (Brier 0.2470 vs 0.2409, 326 samples). Pulled and quarantined.
  • Graded 1444 markets from yesterday. Shipped probabilities scored Brier 0.2102 (raw 0.2138; a coin flip is 0.25).
  • Adopted a calibration calibrator for esports:team_totals (hold-out Brier 0.2847 → 0.2409, 461 samples).
  • Adopted a calibration calibrator for league:lol:ml (hold-out Brier 0.2167 → 0.1428, 236 samples).
  • Adopted a calibration calibrator for league:cs2:team_totals (hold-out Brier 0.2752 → 0.2442, 343 samples).
  • MLB: learned calibration cut Brier by 0.0035 versus raw output (1231 samples).
  • batter_rbi_run markets ran 6.1%p low versus outcomes (326 samples, 38% actual). The refit shifts them up.
  • batter_contact markets ran 5.4%p high versus outcomes (326 samples, 37% actual). The refit shifts them down.
  • CS2: learned calibration cut Brier by 0.0097 versus raw output (96 samples).
  • team_totals markets ran 13.2%p low versus outcomes (54 samples, 57% actual). The refit shifts them up.
  • 12 stacking meta-models passed validation and were swapped in.
  • soccer_goals markets ran 3.8%p low versus outcomes (90 samples, 57% actual). The refit shifts them up.
LeagueGamesMarketsBrierRaw
MLB1512310.21160.2151
MLS91170.16590.1659
CS224960.24590.2556

2026-09-09

39 finished games · 1334 markets graded

Brier

0.2002

raw 0.2078

ECE

0.0438

raw 0.0879

Hit rate

69.3%

base 31.5%

Calibration gain

−0.0076

Brier delta

  • esports:ml calibration trailed raw output on live games (Brier 0.2417 vs 0.2304, 48 samples). Pulled and quarantined.
  • Graded 1334 markets from yesterday. Shipped probabilities scored Brier 0.2002 (raw 0.2078; a coin flip is 0.25).
  • Adopted a calibration calibrator for league:lol:ml (hold-out Brier 0.2167 → 0.1445, 288 samples).
  • Adopted a calibration calibrator for esports:team_totals (hold-out Brier 0.2802 → 0.2426, 486 samples).
  • MLB: learned calibration cut Brier by 0.0087 versus raw output (1238 samples).
  • Adopted a calibration calibrator for league:cs2:team_totals (hold-out Brier 0.2738 → 0.2447, 342 samples).
  • batter_contact markets ran 5.2%p high versus outcomes (328 samples, 35% actual). The refit shifts them down.
  • CS2: calibration trailed raw output by 0.0061; coefficients stay conservative until more samples land.
  • 8 stacking meta-models passed validation and were swapped in.
LeagueGamesMarketsBrierRaw
MLB1512380.19710.2057
CS224960.24080.2347

2026-09-08

39 finished games · 1038 markets graded

Brier

0.2043

raw 0.2051

ECE

0.0337

raw 0.0606

Hit rate

69.5%

base 34.2%

Calibration gain

−0.0008

Brier delta

  • baseball:batter_bb calibration trailed raw output on live games (Brier 0.2135 vs 0.2065, 119 samples). Pulled and quarantined.
  • league:mlb:batter_power calibration trailed raw output on live games (Brier 0.1604 vs 0.1552, 238 samples). Pulled and quarantined.
  • Graded 1038 markets from yesterday. Shipped probabilities scored Brier 0.2043 (raw 0.2051; a coin flip is 0.25).
  • Adopted a calibration calibrator for esports:team_totals (hold-out Brier 0.2912 → 0.2443, 501 samples).
  • Adopted a beta calibrator for league:lol:ml (hold-out Brier 0.2178 → 0.1459, 320 samples).
  • Adopted a calibration calibrator for league:lol:team_totals (hold-out Brier 0.3130 → 0.2301, 160 samples).
  • CS2: learned calibration cut Brier by 0.0106 versus raw output (96 samples).
  • batter_rbi_run markets ran 3.3%p low versus outcomes (238 samples, 32% actual). The refit shifts them up.
  • team_totals markets ran 12.3%p low versus outcomes (47 samples, 55% actual). The refit shifts them up.
  • 10 stacking meta-models passed validation and were swapped in.
  • totals markets ran 7.3%p high versus outcomes (47 samples, 38% actual). The refit shifts them down.
  • soccer_goals markets ran 9.0%p high versus outcomes (30 samples, 40% actual). The refit shifts them down.
LeagueGamesMarketsBrierRaw
MLB118990.19960.1992
CS224960.24740.2580
Serie A2260.19250.1926
Leagues Cup1130.22210.2243
LoL140.25000.2711

2026-09-07

55 finished games · 1458 markets graded

Brier

0.1993

raw 0.2020

ECE

0.0349

raw 0.0577

Hit rate

70.5%

base 35.3%

Calibration gain

−0.0027

Brier delta

  • league:cs2:ml calibration trailed raw output on live games (Brier 0.2782 vs 0.2529, 48 samples). Pulled and quarantined.
  • Graded 1458 markets from yesterday. Shipped probabilities scored Brier 0.1993 (raw 0.2020; a coin flip is 0.25).
  • Adopted a calibration calibrator for league:lol:ml (hold-out Brier 0.2191 → 0.1403, 344 samples).
  • Adopted a calibration calibrator for esports:team_totals (hold-out Brier 0.2900 → 0.2445, 489 samples).
  • Adopted a calibration calibrator for league:lol:team_totals (hold-out Brier 0.3078 → 0.2327, 172 samples).
  • MLB: learned calibration cut Brier by 0.0037 versus raw output (1224 samples).
  • soccer_goals markets ran 12.8%p low versus outcomes (100 samples, 63% actual). The refit shifts them up.
  • batter_power markets ran 3.1%p low versus outcomes (324 samples, 24% actual). The refit shifts them up.
  • batter_bb markets ran 4.8%p high versus outcomes (162 samples, 24% actual). The refit shifts them down.
  • CS2: calibration trailed raw output by 0.0092; coefficients stay conservative until more samples land.
  • 9 stacking meta-models passed validation and were swapped in.
  • totals markets ran 5.7%p high versus outcomes (52 samples, 40% actual). The refit shifts them down.
  • team_totals markets ran 3.4%p low versus outcomes (52 samples, 46% actual). The refit shifts them up.
  • wnba dried up on recent samples and left the learning set.
LeagueGamesMarketsBrierRaw
MLB1512240.19710.2008
CS224800.26430.2551
Serie A4520.17010.1724
Ligue 13390.18990.1877
Bundesliga2260.15490.1562
LoL6240.20950.2128
Leagues Cup1130.21940.2225

2026-09-06

69 finished games · 1648 markets graded

Brier

0.2099

raw 0.2108

ECE

0.0406

raw 0.0582

Hit rate

67.1%

base 36.7%

Calibration gain

−0.0009

Brier delta

  • *:soccer_goals calibration trailed raw output on live games (Brier 0.2279 vs 0.2145, 230 samples). Pulled and quarantined.
  • *:batter_power calibration trailed raw output on live games (Brier 0.1673 vs 0.1670, 326 samples). Pulled and quarantined.
  • Graded 1648 markets from yesterday. Shipped probabilities scored Brier 0.2099 (raw 0.2108; a coin flip is 0.25).
  • Adopted a calibration calibrator for league:lol:ml (hold-out Brier 0.2174 → 0.1302, 358 samples).
  • Adopted a calibration calibrator for esports:team_totals (hold-out Brier 0.2916 → 0.2441, 504 samples).
  • Adopted a calibration calibrator for league:lol:team_totals (hold-out Brier 0.3063 → 0.2392, 179 samples).
  • MLB: learned calibration cut Brier by 0.0037 versus raw output (1231 samples).
  • soccer_goals markets ran 10.4%p low versus outcomes (230 samples, 60% actual). The refit shifts them up.
  • batter_contact markets ran 5.4%p high versus outcomes (326 samples, 36% actual). The refit shifts them down.
  • MLS: calibration trailed raw output by 0.0157; coefficients stay conservative until more samples land.
  • team_totals markets ran 11.7%p low versus outcomes (58 samples, 55% actual). The refit shifts them up.
  • 8 stacking meta-models passed validation and were swapped in.
  • Bundesliga: calibration trailed raw output by 0.0028; coefficients stay conservative until more samples land.
  • ligue1 crossed the sample threshold and joined the learning set automatically.
LeagueGamesMarketsBrierRaw
MLB1512310.20150.2052
MLS81040.21410.1983
CS224900.24300.2416
Bundesliga6780.26660.2638
LaLiga3390.26910.2413
Serie A3390.22750.2133
Ligue 13390.18850.1880
LoL7280.22290.2440

2026-09-05

30 finished games · 939 markets graded

Brier

0.2012

raw 0.2051

ECE

0.0419

raw 0.0758

Hit rate

67.5%

base 35.4%

Calibration gain

−0.0039

Brier delta

  • The model graded 939 samples from 30 games on September 5, 2026, achieving a Brier score of 0.2012 versus 0.2051 for raw outputs. Two market families—baseball batter_power and soccer soccer_goals—were quarantined after calibration underperformed raw output in live evaluation. MLB showed the strongest calibration improvement (0.0044 Brier reduction across 835 samples), while 14 stacking meta-models and 3 new calibration calibrators were promoted after passing validation. Bundesliga and Serie A were added to the learning set after crossing sample thresholds.
  • soccer:soccer_goals calibration trailed raw output on live games (Brier 0.2104 vs 0.1938, 40 samples). Pulled and quarantined.
  • baseball:batter_power calibration trailed raw output on live games (Brier 0.1781 vs 0.1723, 229 samples). Pulled and quarantined.
  • Graded 939 markets from yesterday. Shipped probabilities scored Brier 0.2012 (raw 0.2051; a coin flip is 0.25).
  • Adopted a calibration calibrator for league:lol:ml (hold-out Brier 0.2187 → 0.1307, 370 samples).
  • Adopted a calibration calibrator for esports:team_totals (hold-out Brier 0.2884 → 0.2454, 513 samples).
  • Adopted a calibration calibrator for league:lol:team_totals (hold-out Brier 0.3298 → 0.2388, 185 samples).
  • MLB: learned calibration cut Brier by 0.0044 versus raw output (835 samples).
  • batter_power markets ran 5.3%p low versus outcomes (229 samples, 27% actual). The refit shifts them up.
  • batter_contact markets ran 4.7%p high versus outcomes (219 samples, 39% actual). The refit shifts them down.
  • 14 stacking meta-models passed validation and were swapped in.
  • soccer_goals markets ran 5.7%p low versus outcomes (60 samples, 50% actual). The refit shifts them up.
  • team_totals markets ran 7.6%p low versus outcomes (25 samples, 56% actual). The refit shifts them up.
  • bundesliga, seriea crossed the sample threshold and joined the learning set automatically.
LeagueGamesMarketsBrierRaw
MLB168350.19970.2041
CS28260.23300.2383
LaLiga1130.22570.2452
MLS1130.25260.2630
Club Friendly1130.23700.2034
EPL1130.18170.2118
Bundesliga1130.12460.0994
Serie A1130.21630.2023

2026-09-04

16 finished games · 799 markets graded

Brier

0.1898

raw 0.2017

ECE

0.0651

raw 0.1195

Hit rate

72.6%

base 28.2%

Calibration gain

−0.0119

Brier delta

  • league:mlb:batter_bb calibration trailed raw output on live games (Brier 0.2018 vs 0.1990, 96 samples). Pulled and quarantined.
  • Graded 799 markets from yesterday. Shipped probabilities scored Brier 0.1898 (raw 0.2017; a coin flip is 0.25).
  • Adopted a beta calibrator for league:lol:ml (hold-out Brier 0.2190 → 0.1310, 372 samples).
  • Adopted a calibration calibrator for esports:team_totals (hold-out Brier 0.2903 → 0.2463, 509 samples).
  • Adopted a calibration calibrator for league:lol:team_totals (hold-out Brier 0.3235 → 0.2372, 186 samples).
  • MLB: learned calibration cut Brier by 0.0112 versus raw output (726 samples).
  • batter_contact markets ran 8.1%p high versus outcomes (192 samples, 32% actual). The refit shifts them down.
  • batter_rbi_run markets ran 5.3%p high versus outcomes (192 samples, 26% actual). The refit shifts them down.
  • soccer_goals markets ran 13.1%p high versus outcomes (50 samples, 36% actual). The refit shifts them down.
  • 12 stacking meta-models passed validation and were swapped in.
LeagueGamesMarketsBrierRaw
MLB97260.18630.1975
Club Friendly2260.23600.2611
Leagues Cup2260.17960.1790
LaLiga1130.32720.3862
LoL280.16670.1636

2026-09-03

43 finished games · 1384 markets graded

Brier

0.2077

raw 0.2084

ECE

0.0446

raw 0.0712

Hit rate

67.8%

base 34.4%

Calibration gain

−0.0007

Brier delta

  • Graded 1384 markets from yesterday. Shipped probabilities scored Brier 0.2077 (raw 0.2084; a coin flip is 0.25).
  • Adopted a calibration calibrator for league:lol:ml (hold-out Brier 0.2223 → 0.1395, 418 samples).
  • Adopted a calibration calibrator for league:lol:team_totals (hold-out Brier 0.3246 → 0.2470, 209 samples).
  • Adopted a calibration calibrator for league:cs2:team_totals (hold-out Brier 0.2914 → 0.2465, 325 samples).
  • MLB: learned calibration cut Brier by 0.0031 versus raw output (1245 samples).
  • CS2: calibration trailed raw output by 0.0270; coefficients stay conservative until more samples land.
  • batter_rbi_run markets ran 4.4%p low versus outcomes (330 samples, 34% actual). The refit shifts them up.
  • batter_bb markets ran 4.4%p high versus outcomes (165 samples, 26% actual). The refit shifts them down.
  • 11 stacking meta-models passed validation and were swapped in.
  • soccer_goals markets ran 12.5%p low versus outcomes (30 samples, 63% actual). The refit shifts them up.
  • team_totals markets ran 5.9%p low versus outcomes (55 samples, 51% actual). The refit shifts them up.
  • totals markets ran 3.4%p low versus outcomes (55 samples, 47% actual). The refit shifts them up.
LeagueGamesMarketsBrierRaw
MLB1512450.20340.2066
CS224960.26850.2415
Leagues Cup2260.17900.1812
Club Friendly1130.20800.1895
LoL140.24680.2127

All figures are statistical measures computed from finished games only. A Brier score of 0.25 is coin-flip level; lower means probabilities matched outcomes more closely.