Morello Sims
NBA + MLB
sports simulation × design × methodology

MLB ATLAS

3D PITCHER GALAXY × ARCHETYPE CLUSTERING × HITTER MATCHUPS

34 Archetypes
RHP + LHP
LIVE
5,983 Seasons
2015–2025
GMM
2,696 Batters
vs Cluster
wOBA
OPEN ATLAS → DESKTOP ONLY

NBA SIM

DAILY MATCHUP SIMULATIONS × SPREAD ANALYSIS × SCHEME DETECTION

PHI @ NOP
NOP +4.0
A
SAC @ SAS
SAS -18.5
B
HOU @ NYK
HOU +3.5
B
OPEN DASHBOARD →

MLB SIM

PITCHING MATCHUPS × BATTING PROPS × SITUATIONAL EDGES

NYY vs BOS
Cole (R)
EV+
LAD vs SDP
Glasnow (R)
N/A
ATL vs PHI
Strider (R)
HOT
OPEN DASHBOARD →
DISPATCH LOG PICKS · METHODOLOGY · SYSTEM UPDATES
PICKS LOG
FEB 19 — MAR 5, 2026

NBA SIM: 92-72 RECORD (+7% ROI)

92-72 RECORD
+7% ROI
1,600 BANKROLL
165 PICKS

165 picks across 164 slates. Model-driven edge from scheme detection, lineup synergy, and DSI spread projections.

BANKROLL
1,600 $PP
TARGET
25,000 $PP
TOTAL RISKED
6,790 $PP

UNIT KEY: 8-10 CONF = 50 $PP  ·  5-7 CONF = 30 $PP  ·  1-10 SCALE — 5+ MINIMUM

APR 10 · FRI 10 SPREADS · 440 $PP
4-6 · -96 $PP

▎ GAME LINES — 9 SPREADS

CLE @ ATL — CLE +8.0

50 $PP SPREAD 10

FINAL: CLE 102 — ATL 124 | CLE +8.0 L (-50 $PP)

SIM edge: +6.0 pts vs book. SIM spread: -2.0, Book: -8.0.

MIA @ WAS — WAS +18.5

50 $PP SPREAD 8

FINAL: MIA 140 — WAS 117 | WAS +18.5 L (-50 $PP)

SIM edge: -5.0 pts vs book. SIM spread: +13.5, Book: +18.5.

DET @ CHA — DET +4.0

50 $PP SPREAD 10

FINAL: DET 118 — CHA 100 | DET +4.0 W (+45 $PP)

SIM edge: +7.5 pts vs book. SIM spread: +3.5, Book: -4.0.

PHI @ IND — IND +15.0

50 $PP SPREAD 10

PENDING

SIM edge: -13.5 pts vs book. SIM spread: +1.5, Book: +15.0.

TOR @ NYK — TOR +6.5

30 $PP SPREAD 6

FINAL: TOR 95 — NYK 112 | TOR +6.5 L (-30 $PP)

SIM edge: +3.5 pts vs book. SIM spread: -3.0, Book: -6.5.

ORL @ CHI — CHI +14.5

50 $PP SPREAD 10

FINAL: ORL 127 — CHI 103 | CHI +14.5 L (-50 $PP)

SIM edge: -7.5 pts vs book. SIM spread: +7.0, Book: +14.5.

BKN @ MIL — BKN +9.5

50 $PP SPREAD 9

FINAL: BKN 108 — MIL 125 | BKN +9.5 L (-50 $PP)

SIM edge: +5.5 pts vs book. SIM spread: -4.0, Book: -9.5.

MIN @ HOU — MIN +10.5

50 $PP SPREAD 8

FINAL: MIN 136 — HOU 132 | MIN +10.5 W (+45 $PP)

SIM edge: +4.5 pts vs book. SIM spread: -6.0, Book: -10.5.

MEM @ UTA — MEM +4.0

30 $PP SPREAD 7

FINAL: MEM 101 — UTA 147 | MEM +4.0 L (-30 $PP)

SIM edge: +4.0 pts vs book. SIM spread: +0.0, Book: -4.0.

NOP @ BOS — BOS -16.5

30 $PP SPREAD 7
APR 9 · THU 3 SPREADS · 110 $PP
2-1 · +5 $PP

▎ GAME LINES — 3 SPREADS

BOS @ NYK — BOS +4.5

50 $PP SPREAD 10

FINAL: BOS 106 — NYK 112 | BOS +4.5 L (-50 $PP)

SIM edge: +6.5 pts vs book. SIM spread: +2.0, Book: -4.5.

PHI @ HOU — HOU -6.0

30 $PP SPREAD 7

FINAL: PHI 102 — HOU 113 | HOU -3.5 W (+27 $PP)

SIM edge: -4.0 pts vs book. SIM spread: -7.5, Book: -3.5.

LAL @ GSW — LAL +4.5

30 $PP SPREAD 7

FINAL: NOP 118 — BOS 144 | BOS -17.0 W (+27 $PP)

SIM edge: +4.0 pts vs book. SIM spread: -0.5, Book: -4.5.

APR 8 · WED 4 SPREADS · 180 $PP
2-2 · +11 $PP

▎ GAME LINES — 4 SPREADS

MIL @ DET — MIL +18.5

30 $PP SPREAD 6

FINAL: MIL 111 — DET 137 | MIL +18.5 L (-30 $PP)

SIM edge: +3.5 pts vs book. SIM spread: -15.0, Book: -18.5.

MIN @ ORL — MIN +6.0

50 $PP SPREAD 10

FINAL: MIN 120 — ORL 132 | MIN +6.0 L (-50 $PP)

SIM edge: +6.0 pts vs book. SIM spread: +0.0, Book: -6.0.

POR @ SAS — SAS -3.5

50 $PP SPREAD 10

FINAL: POR 101 — SAS 112 | SAS -3.5 W (+45 $PP)

SIM edge: -6.5 pts vs book. SIM spread: -10.0, Book: -3.5.

OKC @ LAC — OKC -7.0

50 $PP SPREAD 8

FINAL: OKC 128 — LAC 110 | OKC -7.0 W (+45 $PP)

SIM edge: +5.0 pts vs book. SIM spread: +12.0, Book: +7.0.

APR 7 · TUE 6 SPREADS · 260 $PP
2-4 · -107 $PP

▎ GAME LINES — 6 SPREADS

MIN @ IND — IND +12.5

50 $PP SPREAD 8

FINAL: MIN 124 — IND 104 | IND +12.5 L (-50 $PP)

SIM edge: -4.5 pts vs book. SIM spread: +8.0, Book: +12.5.

CHI @ WAS — WAS +6.0

50 $PP SPREAD 8

FINAL: CHI 129 — WAS 98 | WAS +6.0 L (-50 $PP)

SIM edge: -4.5 pts vs book. SIM spread: +1.5, Book: +6.0.

SAC @ GSW — SAC +15.5

50 $PP SPREAD 10

FINAL: SAC 105 — GSW 110 | SAC +15.5 W (+45 $PP)

SIM edge: +6.5 pts vs book. SIM spread: -9.0, Book: -15.5.

DAL @ LAC — DAL +11.5

50 $PP SPREAD 8

FINAL: DAL 103 — LAC 116 | DAL +11.5 L (-50 $PP)

SIM edge: +4.5 pts vs book. SIM spread: -7.0, Book: -11.5.

OKC @ LAL — LAL +16.5

30 $PP SPREAD 6

PENDING

SIM edge: -3.5 pts vs book. SIM spread: +13.0, Book: +16.5.

HOU @ PHX — HOU +0.5

30 $PP SPREAD 7

FINAL: HOU 119 — PHX 105 | HOU +0.5 W (+27 $PP)

SIM edge: +4.0 pts vs book. SIM spread: +3.5, Book: -0.5.

APR 6 · MON 4 SPREADS · 140 $PP
2-2 · -25 $PP

▎ GAME LINES — 3 SPREADS

NYK @ ATL — NYK +1.5

30 $PP SPREAD 7

FINAL: NYK 108 — ATL 105 | NYK +1.5 W (+27 $PP)

SIM edge: +4.0 pts vs book. SIM spread: +2.5, Book: -1.5.

CLE @ MEM — MEM +13.5

30 $PP SPREAD 7

FINAL: CLE 142 — MEM 126 | MEM +13.5 L (-30 $PP)

SIM edge: -4.0 pts vs book. SIM spread: +9.5, Book: +13.5.

POR @ DEN — POR +8.5

30 $PP SPREAD 7

PENDING

SIM edge: +4.0 pts vs book. SIM spread: -4.5, Book: -8.5.

DET @ ORL — DET -1.5

50 $PP SPREAD 10
APR 5 · SUN 5 SPREADS · 210 $PP
2-3 · -19 $PP

▎ GAME LINES — 3 SPREADS

IND @ CLE — IND +16.5

50 $PP SPREAD 10

FINAL: IND 108 — CLE 117 | IND +16.5 W (+45 $PP)

SIM edge: +9.0 pts vs book. SIM spread: -7.5, Book: -16.5.

UTA @ OKC — OKC -24.0

50 $PP SPREAD 10

FINAL: UTA 111 — OKC 146 | OKC -22.5 W (+45 $PP)

SIM edge: -6.5 pts vs book. SIM spread: -29.0, Book: -22.5.

HOU @ GSW — HOU -3.5

50 $PP SPREAD 10

FINAL: HOU 117 — GSW 116 | HOU -4.0 L (-50 $PP)

SIM edge: +6.5 pts vs book. SIM spread: +10.5, Book: +4.0.

LAL @ DAL — LAL -1.5

30 $PP SPREAD 6

LAC @ SAC — SAC +13.0

30 $PP SPREAD 6
APR 4 · SAT 1 SPREADS · 30 $PP
1-0 · +27 $PP

▎ GAME LINES — 1 SPREAD

WAS @ MIA — WAS +17.0

30 $PP SPREAD 7

FINAL: WAS 136 — MIA 152 | WAS +17.0 W (+27 $PP)

SIM edge: +4.0 pts vs book. SIM spread: -13.0, Book: -17.0.

APR 3 · FRI 4 SPREADS · 140 $PP
1-3 · -45 $PP

▎ GAME LINES — 2 SPREADS

IND @ CHA — IND +15.5

30 $PP SPREAD 6

FINAL: IND 108 — CHA 129 | IND +15.5 L (-30 $PP)

SIM edge: +3.5 pts vs book. SIM spread: -12.0, Book: -15.5.

UTA @ HOU — HOU -17.0

50 $PP SPREAD 9

FINAL: LAL 128 — DAL 134 | LAL -1.5 L (-30 $PP)

SIM edge: -5.5 pts vs book. SIM spread: -22.5, Book: -17.0.

ATL @ BKN — BKN +17.0

30 $PP SPREAD 6

MIN @ PHI — MIN +4.5

30 $PP SPREAD 6
APR 2 · THU 3 SPREADS · 130 $PP
2-1 · +61 $PP

▎ GAME LINES — 2 SPREADS

CLE @ GSW — GSW +10.5

50 $PP SPREAD 8

FINAL: CLE 118 — GSW 111 | GSW +10.5 W (+45 $PP)

SIM edge: -4.5 pts vs book. SIM spread: +6.0, Book: +10.5.

SAS @ LAC — SAS -4.0

50 $PP SPREAD 8

FINAL: ATL 141 — BKN 107 | BKN +17.0 L (-30 $PP)

SIM edge: +4.5 pts vs book. SIM spread: +8.5, Book: +4.0.

PHX @ CHA — PHX +6.0

30 $PP SPREAD 6
APR 1 · WED 3 SPREADS · 110 $PP
2-1 · +43 $PP

▎ GAME LINES — 3 SPREADS

MIL @ HOU — MIL +17.0

30 $PP SPREAD 7

FINAL: MIL 113 — HOU 119 | MIL +17.0 W (+27 $PP)

SIM edge: +4.0 pts vs book. SIM spread: -13.0, Book: -17.0.

SAS @ GSW — SAS -13.0

50 $PP SPREAD 9

FINAL: SAS 127 — GSW 113 | SAS -13.0 W (+45 $PP)

SIM edge: +5.5 pts vs book. SIM spread: +18.5, Book: +13.0.

SAC @ TOR — TOR -13.0

30 $PP SPREAD 6

FINAL: SAC 123 — TOR 115 | TOR -13.0 L (-30 $PP)

SIM edge: -3.5 pts vs book. SIM spread: -16.5, Book: -13.0.

MAR 25 · WED 5 SPREADS · 210 $PP
3-2 · -0 $PP

▎ GAME LINES — 4 SPREADS

CHI @ PHI — CHI +6.5

50 $PP SPREAD 9

FINAL: CHI 137 — PHI 157 | CHI +6.5 L (-50 $PP)

SIM edge: +5.5 pts vs book. SIM spread: -1.0, Book: -6.5.

SAS @ MEM — SAS -16.5

50 $PP SPREAD 8

FINAL: SAS 123 — MEM 98 | SAS -16.5 W (+45 $PP)

SIM edge: +4.5 pts vs book. SIM spread: +21.0, Book: +16.5.

DAL @ DEN — DAL +13.5

30 $PP SPREAD 6

FINAL: DAL 135 — DEN 142 | DAL +13.5 W (+27 $PP)

SIM edge: +3.5 pts vs book. SIM spread: -10.0, Book: -13.5.

TOR @ LAC — TOR +4.0

50 $PP SPREAD 9

FINAL: TOR 94 — LAC 119 | TOR +4.0 L (-50 $PP)

SIM edge: +5.5 pts vs book. SIM spread: +1.5, Book: -4.0.

BKN @ GSW — BKN +12.5

30 $PP SPREAD 6
MAR 24 · TUE 1 SPREADS · 30 $PP
1-0 · +27 $PP

▎ GAME LINES — 1 SPREAD

DEN @ PHX — PHX +5.0

30 $PP SPREAD 6

FINAL: DEN 125 — PHX 123 | PHX +5.0 W (+27 $PP)

SIM edge: -3.5 pts vs book. SIM spread: +1.5, Book: +5.0.

MAR 23 · MON 4 SPREADS · 160 $PP
2-2 · -7 $PP

▎ GAME LINES — 4 SPREADS

LAL @ DET — DET +2.5

50 $PP SPREAD 10

FINAL: LAL 110 — DET 113 | DET +2.5 W (+45 $PP)

SIM edge: -6.5 pts vs book. SIM spread: -4.0, Book: +2.5.

IND @ ORL — IND +13.0

30 $PP SPREAD 7

FINAL: IND 128 — ORL 126 | IND +13.0 W (+27 $PP)

SIM edge: +4.0 pts vs book. SIM spread: -9.0, Book: -13.0.

BKN @ POR — BKN +14.5

30 $PP SPREAD 7

FINAL: BKN 99 — POR 134 | BKN +14.5 L (-30 $PP)

SIM edge: +4.0 pts vs book. SIM spread: -10.5, Book: -14.5.

MIL @ LAC — MIL +13.5

50 $PP SPREAD 10

FINAL: MIL 96 — LAC 129 | MIL +13.5 L (-50 $PP)

SIM edge: +6.5 pts vs book. SIM spread: -7.0, Book: -13.5.

MAR 22 · SUN 3 SPREADS · 90 $PP
1-2 · -33 $PP

▎ GAME LINES — 3 SPREADS

POR @ DEN — POR +9.0

30 $PP SPREAD 6

FINAL: POR 112 — DEN 128 | POR +9.0 L (-30 $PP)

SIM edge: +3.5 pts vs book. SIM spread: -5.5, Book: -9.0.

BKN @ SAC — BKN +4.5

30 $PP SPREAD 7

FINAL: BKN 122 — SAC 126 | BKN +4.5 W (+27 $PP)

SIM edge: +4.0 pts vs book. SIM spread: -0.5, Book: -4.5.

TOR @ PHX — TOR -3.0

30 $PP SPREAD 6

FINAL: TOR 98 — PHX 120 | TOR -2.0 L (-30 $PP)

SIM edge: +3.5 pts vs book. SIM spread: +5.5, Book: +2.0.

MAR 21 · SAT 1 SPREADS · 30 $PP
1-0 · +27 $PP

▎ GAME LINES — 1 SPREAD

MIL @ PHX — MIL +11.5

30 $PP SPREAD 7

FINAL: MIL 108 — PHX 105 | MIL +11.5 W (+27 $PP)

SIM edge: +4.0 pts vs book. SIM spread: -7.5, Book: -11.5.

MAR 20 · FRI 3 SPREADS · 150 $PP
2-1 · +41 $PP

▎ GAME LINES — 3 SPREADS

GSW @ DET — DET -5.0

50 $PP SPREAD 9

FINAL: GSW 101 — DET 115 | DET -6.5 W (+45 $PP)

SIM edge: -5.5 pts vs book. SIM spread: -12.0, Book: -6.5.

ATL @ HOU — ATL +4.0

50 $PP SPREAD 8

FINAL: ATL 95 — HOU 117 | ATL +4.0 L (-50 $PP)

SIM edge: +4.5 pts vs book. SIM spread: +0.5, Book: -4.0.

TOR @ DEN — TOR +7.0

50 $PP SPREAD 10

FINAL: TOR 115 — DEN 121 | TOR +7.0 W (+45 $PP)

SIM edge: +7.0 pts vs book. SIM spread: +0.0, Book: -7.0.

MAR 19 · THU 3 SPREADS · 130 $PP
2-1 · +61 $PP

▎ GAME LINES — 1 SPREAD

CLE @ CHI — CHI +13.0

50 $PP SPREAD 9

FINAL: CLE 115 — CHI 110 | CHI +13.0 W (+45 $PP)

SIM edge: -5.5 pts vs book. SIM spread: +7.5, Book: +13.0.

DET @ WAS — DET -13.5

30 $PP SPREAD 6

LAL @ MIA — LAL +6.0

50 $PP SPREAD 8
MAR 18 · WED 1 SPREADS · 30 $PP
1-0 · +27 $PP

▎ GAME LINES — 1 SPREAD

DEN @ MEM — MEM +13.0

30 $PP SPREAD 7

FINAL: DEN 118 — MEM 125 | MEM +13.0 W (+27 $PP)

SIM edge: -4.0 pts vs book. SIM spread: +9.0, Book: +13.0.

MAR 17 · TUE 3 SPREADS · 90 $PP
1-2 · -33 $PP

▎ GAME LINES — 3 SPREADS

MIA @ CHA — MIA +3.5

30 $PP SPREAD 7

FINAL: DET 130 — WAS 117 | DET -14.0 L (-30 $PP)

SIM edge: +4.0 pts vs book. SIM spread: +0.5, Book: -3.5.

CLE @ MIL — MIL +10.0

30 $PP SPREAD 6

FINAL: CLE 123 — MIL 116 | MIL +10.0 W (+27 $PP)

SIM edge: -3.5 pts vs book. SIM spread: +6.5, Book: +10.0.

PHX @ MIN — PHX +4.0

30 $PP SPREAD 6

FINAL: PHX 104 — MIN 116 | PHX +4.0 L (-30 $PP)

SIM edge: +3.5 pts vs book. SIM spread: -0.5, Book: -4.0.

MAR 16 · MON 1 SPREADS · 30 $PP
1-0 · +27 $PP

▎ GAME LINES — 1 SPREAD

SAS @ LAC — LAC +9.5

30 $PP SPREAD 6

FINAL: SAS 119 — LAC 115 | LAC +9.5 W (+27 $PP)

SIM edge: -3.5 pts vs book. SIM spread: +6.0, Book: +9.5.

MAR 15 · SUN 4 SPREADS · 160 $PP
2-2 · -7 $PP

▎ GAME LINES — 4 SPREADS

DAL @ CLE — DAL +16.5

50 $PP SPREAD 10

FINAL: DAL 130 — CLE 120 | DAL +16.5 W (+45 $PP)

SIM edge: +6.0 pts vs book. SIM spread: -10.5, Book: -16.5.

IND @ MIL — IND +7.5

50 $PP SPREAD 8

FINAL: IND 123 — MIL 134 | IND +7.5 L (-50 $PP)

SIM edge: +5.0 pts vs book. SIM spread: -2.5, Book: -7.5.

GSW @ NYK — NYK -14.5

30 $PP SPREAD 6

FINAL: GSW 107 — NYK 110 | NYK -13.5 L (-30 $PP)

SIM edge: -3.5 pts vs book. SIM spread: -17.0, Book: -13.5.

UTA @ SAC — SAC -3.0

30 $PP SPREAD 7

FINAL: UTA 111 — SAC 116 | SAC -1.5 W (+27 $PP)

SIM edge: -4.0 pts vs book. SIM spread: -5.5, Book: -1.5.

MAR 14 · SAT 2 SPREADS · 100 $PP
2-0 · +91 $PP

▎ GAME LINES — 2 SPREADS

BKN @ PHI — BKN +8.5

50 $PP SPREAD 10

FINAL: BKN 97 — PHI 104 | BKN +8.5 W (+45 $PP)

SIM edge: +7.5 pts vs book. SIM spread: -1.0, Book: -8.5.

DEN @ LAL — LAL +2.5

50 $PP SPREAD 8

FINAL: DEN 125 — LAL 127 | LAL +2.5 W (+45 $PP)

SIM edge: -5.0 pts vs book. SIM spread: -2.5, Book: +2.5.

MAR 13 · FRI 9 SPREADS · 310 $PP
1-2 · -33 $PP

▎ GAME LINES — 3 SPREADS

DEN @ SAS — SAS -3.0

30 $PP SPREAD 6

FINAL: DEN 136 — SAS 131 | SAS -5.5 L (-50 $PP)

SIM edge: -3.5 pts vs book. SIM spread: -6.5, Book: -3.0.

BOS @ OKC — BOS +7.5

30 $PP SPREAD 7

FINAL: BOS 102 — OKC 104 | BOS +6.5 W (+45 $PP)

SIM edge: +4.0 pts vs book. SIM spread: -3.5, Book: -7.5.

CHI @ LAL — CHI +11.5

30 $PP SPREAD 6

FINAL: CHI 130 — LAL 142 | CHI +11.5 L (-30 $PP)

SIM edge: +3.5 pts vs book. SIM spread: -8.0, Book: -11.5.

CLE @ DAL — DAL +13.0

30 $PP SPREAD 6

MEM @ DET — DET -16.0

50 $PP SPREAD 8

NYK @ IND — NYK -13.5

50 $PP SPREAD 8

CHI @ LAC — CHI +12.5

30 $PP SPREAD 6

PHX @ TOR — PHX +4.5

30 $PP SPREAD 7

UTA @ POR — UTA +15.5

30 $PP SPREAD 7
MAR 12 · THU 4 SPREADS · 180 $PP
1-3 · -85 $PP

▎ GAME LINES — 2 SPREADS + 1 ML

DAL @ MEM — MEM ML

50 $PP ML 8

FINAL: DAL 120 — MEM 112 | MEM ML L (-50 $PP)

SIM edge: -5.0 pts vs book. SIM spread: -0.5, Book: +4.5.

DEN @ SAS — SAS -3.0

50 $PP SPREAD 8

FINAL: CLE 138 — DAL 105 | DAL +13.0 L (-30 $PP)

SIM edge: -4.5 pts vs book. SIM spread: -10.0, Book: -5.5.

BOS @ OKC — BOS +6.5

50 $PP SPREAD 10

FINAL: MEM 110 — DET 126 | DET -15.5 W (+45 $PP)

SIM edge: +6.0 pts vs book. SIM spread: -0.5, Book: -6.5.

CHI @ LAL — CHI +11.5

30 $PP SPREAD 7
MAR 11 · WED 2 SPREADS · 100 $PP
0-2 · -100 $PP

▎ GAME LINES — 0 SPREADS + 2 ML

HOU @ DEN — HOU ML

50 $PP ML 10

FINAL: HOU 93 — DEN 129 | HOU ML L (-50 $PP)

SIM edge: +6.5 pts vs book. SIM spread: +1.0, Book: -5.5.

MIN @ LAC — MIN ML

50 $PP ML 8

FINAL: MIN 128 — LAC 153 | MIN ML L (-50 $PP)

SIM edge: +4.5 pts vs book. SIM spread: +2.5, Book: -2.0.

MAR 10 · TUE 4 SPREADS · 160 $PP
1-1 · -5 $PP

▎ GAME LINES — 1 SPREAD + 3 ML

DAL @ ATL — DAL +9.0

30 $PP SPREAD 6

FINAL: DAL 112 — ATL 124 | DAL +9.0 L (-30 $PP)

SIM edge: +3.5 pts vs book. SIM spread: -5.5, Book: -9.0.

BOS @ SAS — BOS ML

30 $PP ML 7

FINAL: BOS 116 — SAS 125 | BOS ML L (-30 $PP)

SIM edge: +4.0 pts vs book. SIM spread: +1.0, Book: -3.0.

CHI @ GSW — CHI ML

50 $PP ML 10

FINAL: CHI 130 — GSW 124 | CHI ML W (+45 $PP)

SIM edge: +7.0 pts vs book. SIM spread: +0.5, Book: -6.5.

IND @ SAC — IND ML

50 $PP ML 10

FINAL: IND 109 — SAC 114 | IND ML L (-50 $PP)

SIM edge: +10.0 pts vs book. SIM spread: +6.0, Book: -4.0.

MAR 9 · MON 1 SPREADS · 50 $PP
0-1 · -50 $PP

▎ GAME LINES — 1 SPREAD

NYK @ LAC — NYK -2.5

50 $PP SPREAD 8

FINAL: NYK 118 — LAC 126 | NYK -2.5 L (-50 $PP)

SIM edge: +4.5 pts vs book. SIM spread: +7.0, Book: +2.5.

MAR 8 · SUN 2 SPREADS · 100 $PP
0-2 · -100 $PP

▎ GAME LINES — 2 SPREADS

IND @ POR — IND +8.5

50 $PP SPREAD 8

FINAL: IND 111 — POR 131 | IND +8.5 L (-50 $PP)

SIM edge: +4.5 pts vs book. SIM spread: -4.0, Book: -8.5.

CHI @ SAC — CHI -2.5

50 $PP SPREAD 8

FINAL: CHI 110 — SAC 126 | CHI -2.5 L (-50 $PP)

SIM edge: +5.0 pts vs book. SIM spread: +7.5, Book: +2.5.

MAR 7 · SAT 2 SPREADS · 100 $PP
2-0 · +91 $PP

▎ GAME LINES — 2 SPREADS

LAC @ MEM — MEM +6.5

50 $PP SPREAD 8

FINAL: LAC 120 — MEM 123 | MEM +6.5 W (+45 $PP)

SIM edge: +4.5 pts vs book. SIM spread: +2.0, Book: +6.5.

GSW @ OKC — GSW +15.0

50 $PP SPREAD 10

FINAL: GSW 97 — OKC 104 | GSW +15.0 W (+45 $PP)

SIM edge: +10.5 pts vs book. SIM spread: -4.5, Book: -15.0.

MAR 6 · FRI 3 SPREADS · 130 $PP
2-1 · +61 $PP

▎ GAME LINES — 3 SPREADS

MIA @ CHA — MIA +8.5

50 $PP SPREAD 9

FINAL: MIA 128 — CHA 120 | MIA +8.5 W (+45 $PP)

SIM edge: +8.0 pts vs book. SIM spread: -0.5, Book: -8.5.

NOP @ PHX — NOP +7.5

50 $PP SPREAD 8

FINAL: NOP 116 — PHX 118 | NOP +7.5 W (+45 $PP)

SIM edge: +7.5 pts vs book. SIM spread: +0.0, Book: -7.5.

LAC @ SAS — SAS -8.0

30 $PP SPREAD 7

FINAL: LAC 112 — SAS 116 | SAS -8.0 L (-30 $PP)

SIM edge: -6.0 pts vs book. SIM spread: -14.0, Book: -8.0.

MAR 5 · THU 5 SPREADS · 190 $PP
2-3 · -75 $PP

▎ GAME LINES — 3 SPREADS + 2 ML

GSW @ HOU — HOU -8.5

50 $PP SPREAD 8

FINAL: GSW 115 — HOU 113 | HOU -8.5 L (-50 $PP)

SIM edge: -7.0 pts vs book. SIM spread: -15.5, Book: -8.5.

DET @ SAS — DET ML

50 $PP ML 8

FINAL: DET 106 — SAS 121 | DET ML L (-50 $PP)

SIM edge: +7.0 pts vs book. SIM spread: +3.5, Book: -3.5.

CHI @ PHX — CHI +10.5

30 $PP SPREAD 7

FINAL: CHI 105 — PHX 103 | CHI +10.5 W (+27 $PP)

SIM edge: +6.0 pts vs book. SIM spread: -4.5, Book: -10.5.

LAL @ DEN — LAL ML

30 $PP ML 7

FINAL: LAL 113 — DEN 120 | LAL ML L (-30 $PP)

SIM edge: +6.5 pts vs book. SIM spread: +1.5, Book: -5.0.

NOP @ SAC — NOP -6.0

30 $PP SPREAD 7

FINAL: NOP 133 — SAC 123 | NOP -6.0 W (+27 $PP)

SIM edge: +6.0 pts vs book. SIM spread: +12.0, Book: +6.0.

MAR 4 · WED 3 SPREADS + 1 ML · 150 $PP
3-1 · +53 $PP

▎ GAME LINES — 3 SPREADS + 1 ML

CHA @ BOS — CHA +7.0

50 $PP SPREAD 8

FINAL: CHA 118 — BOS 89 | CHA +7.0 W (+45 $PP)

SIM edge: +7.0 pts vs book. SIM spread: +0.0, Book: -7.0.

UTA @ PHI — UTA +9.5

20 $PP SPREAD 4

FINAL: UTA 102 — PHI 106 | UTA +9.5 W (+18 $PP)

SIM edge: +3.5 pts vs book. SIM spread: -6.0, Book: -9.5.

ATL @ MIL — ATL ML

30 $PP ML 7

FINAL: ATL 131 — MIL 113 | ATL ML W (+39 $PP)

MIL 26-31 in freefall. ATL road value at +130.

IND @ LAC — IND +12.0

50 $PP SPREAD 9

FINAL: IND 107 — LAC 130 | IND +12.0 L (-50 $PP)

SIM edge: +8.0 pts vs book. SIM spread: -4.0, Book: -12.0.

MAR 3 · TUE 6 SPREADS · 280 $PP
3-3 · -33 $PP

▎ GAME LINES — 6 SPREADS

SAS @ PHI — SAS -7.5

50 $PP SPREAD 7

FINAL: SAS 131 — PHI 91 | SAS -7.5 W (+45 $PP)

PHX @ SAC — PHX -9.5

30 $PP SPREAD 7

FINAL: PHX 114 — SAC 103 | PHX -9.5 W (+27 $PP)

DET @ CLE — DET -2.5

50 $PP SPREAD 7

FINAL: DET 109 — CLE 113 | DET -2.5 L (-50 $PP)

BKN @ MIA — BKN +12.5

50 $PP SPREAD 7

FINAL: BKN 98 — MIA 124 | BKN +12.5 L (-50 $PP)

WAS @ ORL — WAS +16.0

50 $PP SPREAD 7

FINAL: WAS 109 — ORL 126 | WAS +16.0 L (-50 $PP)

OKC @ CHI — CHI +9.5

50 $PP SPREAD 7

FINAL: OKC 116 — CHI 108 | CHI +9.5 W (+45 $PP)

MAR 2 · MON 1 SPREADS · 30 $PP
1-0 · +27 $PP

▎ GAME LINES — 1 SPREAD

BOS @ MIL — BOS -7.0

30 $PP SPREAD 7

FINAL: BOS 108 — MIL 81 | BOS -7.0 W (+27 $PP)

MAR 1 · SUN 5 PICKS · 190 $PP
4-1

MIN @ DEN — MIN ML

50 $PP ML 8

IMPLIED: MIN 113 — DEN 116

FINAL: MIN 117 — DEN 108 | MIN ML W (+65 $PP)

Minnesota (DS #4, 35-22) at Denver (DS #7, 35-22). Book had DEN -3.0 at home but model projected MIN -1.5 — dog with an edge. MIN's Edwards + Randle 2-man NRtg +14.2 over 28 games, elite floor. Taking the ML for plus money (+130). POST: MIN won outright by 9. Edwards 34 pts. Denver's altitude advantage doesn't matter when the talent gap is this real.

MIL @ CHI — CHI +3.5

50 $PP SPREAD 8

IMPLIED: MIL 112 — CHI 109

FINAL: MIL 97 — CHI 120 | CHI +3.5 W (+45 $PP)

Milwaukee (DS #16, 26-31) at Chicago (DS #17, 25-31). MIL road favorites but on a B2B. Model projected CHI +0.5 at home — 4.0pt edge on the +3.5 line. CHI home splits trending up, MIL fatigue factor unpriced by the book. POST: CHI won by 23. Absolute blowout. MIL completely gassed from the B2B. Bulls played with energy CHI hasn't shown all season.

CLE @ BKN — BKN +12

30 $PP SPREAD 6

IMPLIED: CLE 117 — BKN 105

FINAL: CLE 106 — BKN 102 | BKN +12 W (+27 $PP)

Cleveland (DS #3, 40-16) at Brooklyn (DS #29, 16-40). CLE massive favorites but 12 points is too many for any NBA game. Model projected CLE -6.5 — 5.5pt edge on the +12 line. BKN at home with nothing to lose. POST: CLE won by just 4. BKN fought hard at home. The 12-point line was absurd — model saw the value.

OKC @ DAL — DAL +15.5

30 $PP SPREAD 6

IMPLIED: OKC 122 — DAL 107

FINAL: OKC 100 — DAL 87 | DAL +15.5 W (+27 $PP)

Oklahoma City (DS #1, 43-12) at Dallas (DS #21, 24-32). OKC dominant but 15.5 is a massive number. Model projected OKC -10.0 — 5.5pt edge on the spread. DAL at home, large spreads compress in the NBA. Value on the dog. POST: OKC won by 13 but couldn't cover the massive 15.5. Model nailed the spread compression.

NOP @ LAC — NOP +8.5

30 $PP SPREAD 7

IMPLIED: NOP 106 — LAC 114

FINAL: NOP 117 — LAC 137 | NOP +8.5 L (-30 $PP)

FINAL: LAC 137 — NOP 117 | NOP +8.5 L (-30 $PP)

New Orleans (DS #13, 26-31) at LA Clippers (DS #10, 31-26). LAC home favorites but model projected LAC -4.0 — 4.5pt edge on the +8.5 line. NOP getting big points on the road. Large underdogs tend to cover in this range. POST: LAC blew it open — 137 points. Zion sat with ankle injury, NOP had no shot. 20-point loss obliterated the 8.5.

FEB 28 · SAT 3 SPREADS · 130 $PP
3-0

LAL @ GSW — LAL -4

50 $PP SPREAD 9

IMPLIED: LAL 118 — GSW 114

FINAL: LAL 129 — GSW 101 | LAL -4 W (+45 $PP)

Los Angeles Lakers (DS #15, 30-27) at Golden State (DS #18, 26-31). LAL road favorites for good reason — DSI 58.2 vs GSW 49.8. GSW still missing key rotation pieces. Model projected LAL -8.0, book had LAL -4.0 — 4.0pt edge. POST: LAL won by 28. Complete demolition. LeBron + AD combined for 58 pts. GSW had no answer.

HOU @ MIA — MIA +2

50 $PP SPREAD 8

IMPLIED: HOU 113 — MIA 111

FINAL: HOU 105 — MIA 115 | MIA +2 W (+45 $PP)

Houston (DS #4, 34-21) at Miami (DS #11, 29-27). HOU road favorites but MIA at home with HCA +3 narrows the gap. Model projected MIA +0.5 — nearly a pick-em, creating 2.5pt edge on the +2 line. POST: MIA won outright by 10. Heat culture + home court. Model saw the HCA value that the book didn't.

NOP @ UTA — NOP -6

30 $PP SPREAD 7

IMPLIED: NOP 116 — UTA 110

FINAL: NOP 115 — UTA 105 | NOP -6 W (+27 $PP)

New Orleans (DS #13, 26-31) at Utah (DS #28, 16-40). UTA in full tank mode — DSI 40.5 vs NOP 48.9. NRtg gap: NOP -2.1 vs UTA -9.3. Model projected NOP -9.5, book had NOP -6.0 — 3.5pt edge. POST: NOP won by 10. Controlled wire to wire. Model continues to nail the tanking matchups.

FEB 27 · FRI 2 SPREADS · 80 $PP
2-0

NYK @ MIL — NYK -8.5

50 $PP SPREAD 9

IMPLIED: NYK 118 — MIL 109

FINAL: NYK 127 — MIL 98 | NYK -8.5 W (+45 $PP)

New York (DS #2, 38-18) at Milwaukee (DS #16, 26-30). NYK rolling — DSI 64.8 vs MIL 52.3. MIL without full rotation, Giannis load-managed. Model projected NYK -12.0, book had NYK -8.5 — 3.5pt edge. POST: NYK won by 29. Absolute destruction. Model conservative on this one — actual margin doubled the projection.

MEM @ DAL — MEM +5

30 $PP SPREAD 7

IMPLIED: MEM 110 — DAL 115

FINAL: MEM 124 — DAL 105 | MEM +5 W (+27 $PP)

Memphis (DS #8, 33-23) at Dallas (DS #21, 24-31). DAL favored at home by 5 but MEM lineup combos dominate — Ja + Jackson Jr. 2-man NRtg +11.3 over 30 games. Model projected MEM -2.0 creating a 7.0pt edge. POST: MEM won outright by 19. Ja had 32/8/11. Dallas couldn't stop the MEM transition attack.

FEB 26 · THU 1 SPREAD · 50 $PP
1-0

OKC @ LAL — LAL +3.5

50 $PP SPREAD 8

IMPLIED: OKC 115 — LAL 112

FINAL: OKC 110 — LAL 113 | LAL +3.5 W (+45 $PP)

Oklahoma City (DS #1, 42-12) at Los Angeles Lakers (DS #15, 29-27). OKC elite but model sees LAL +0.5 at home after HCA adjustment — 4.0pt edge on the +3.5 line. LAL's home splits trending upward. DSI gap exists but HCA narrows it significantly. POST: LAL won outright. Home court advantage proved too much — model correctly identified the HCA discount the book was missing.

FEB 25 · WED 1 SPREAD · 50 $PP
0-1

BOS @ DEN — BOS +4.5

50 $PP SPREAD 8

IMPLIED: BOS 112 — DEN 116

FINAL: BOS 84 — DEN 103 | BOS +4.5 L (-50 $PP)

FINAL: BOS +4.5 L (-50 $PP)

Boston (DS #5, 39-17) at Denver (DS #7, 35-21). BOS on 2nd night of a B2B after dominating PHX. Model projected BOS -1.0 on talent gap despite being on the road — 5.5pt edge on the +4.5 line. POST: Denver too strong at home. BOS legs gave out on the back-to-back. Model needs a fatigue discount for B2B road games.

FEB 24 · TUE 4 SPREADS · 180 $PP
2-2

PHI @ IND — IND +9.5

50 $PP SPREAD 10

IMPLIED: PHI 122 — IND 113

FINAL: PHI 135 — IND 114 | IND +9.5 L (-50 $PP)

Philadelphia (DS #14, 22-32) at Indiana (DS #12, 30-26). Model had IND at max confidence pre-SYN rebuild. DS gap marginally favored IND but Philly came out scorching — 135 points. POST: PHI shot 55% from the field. IND couldn't keep up. Model overweighted synergy signal on a night where raw talent dominated.

WAS @ ATL — WAS +12.5

50 $PP SPREAD 10

IMPLIED: WAS 114 — ATL 124

FINAL: WAS 98 — ATL 119 | WAS +12.5 L (-50 $PP)

FINAL: ATL 119 — WAS 98 | WAS +12.5 L (-50 $PP)

Washington (DS #27, 14-40) at Atlanta (DS #20, 27-30). Model projected ATL -6.5 off rebuilt SYN v2 — saw 6.0pt edge on WAS. ATL with 5 OUT but still dominated. POST: ATL won by 21. WAS is just bad. The 12.5 line existed for a reason — model's SYN component compressed the spread too far toward neutral.

ORL @ LAL — ORL +5.5

50 $PP SPREAD 9

IMPLIED: ORL 113 — LAL 118

FINAL: ORL 110 — LAL 109 | ORL +5.5 W (+45 $PP)

Orlando (DS #8, 31-26) at Los Angeles Lakers (DS #15, 29-27). Model projected LAL -0.0 — nearly a coinflip, creating a massive 5.5pt edge. DSI gap: ORL 55.6 vs LAL 55.2. NRtg favored ORL +1.5 vs LAL -1.3. POST: ORL won by 1. Closest game of the night — model nailed the pick-em projection. Rebalanced weights would've had this as the top pick.

BOS @ PHX — BOS -5.5

30 $PP SPREAD 5

IMPLIED: BOS 106 — PHX 101

FINAL: BOS 97 — PHX 81 | BOS -5.5 W (+27 $PP)

Boston (DS #5, 39-17) at Phoenix (DS #10, 31-26). PHX missing 4 rotation players — depth decimated. BOS defense suffocating all night. POST: BOS won by 16. PHX held to 81 points. When the other team is missing 4 guys, trust the talent gap.

FEB 23 · MON 2 SPREADS · 40 $PP
1-1

SAC @ MEM — MEM -3.0

20 $PP SPREAD 6

IMPLIED: SAC 115 — MEM 118  ·  O/U 232.5

FINAL: SAC 123 — MEM 114 | MEM -3.0 L (-20 $PP)

Sacramento (DS #30, 12-44) at Memphis (DS #21, 19-32). SAC gutted at DSI 40.0 vs MEM 43.1. NRtg gap: SAC -8.5 vs MEM +1.1 — nearly 10 points. SIM projects MEM -6.5, book has MEM -3.0 — 3.5 point edge. Memphis at home with the floor advantage. POST: SAC snapped a 16-game losing streak behind Westbrook (25 pts) and Achiuwa (22/12). Model undervalued the desperation factor.

UTA @ HOU — HOU -13.0

20 $PP SPREAD 6

IMPLIED: UTA 108 — HOU 121  ·  O/U 229.0

FINAL: UTA 105 — HOU 125 | HOU -13.0 W (+18 $PP)

Utah (DS #19, 18-38) at Houston (DS #4, 33-20). DSI gap massive: UTA 42.8 vs HOU 62.6 (+19.7). NRtg: UTA -6.7 vs HOU +6.9. SIM projects HOU -16.5, book has HOU -13.0 — 3.5 point edge. Houston dominant at home in every metric. POST: HOU won by 20 behind Jabari Smith Jr. (31/9/3). Model nailed the blowout — projected -16.5, actual -20.

FEB 22 · SUN 4 SPREADS · 200 $PP
3-1

DEN @ GSW — GSW ML

50 $PP SPREAD 8

IMPLIED: DEN 117 — GSW 110

FINAL: DEN 117 — GSW 128 | GSW ML W (+45 $PP)

Denver (DSI 48.5, 3 OUT: Gordon, Watson, Bates) at Golden State (DSI 50.7, 3 OUT: Curry, Butler, S. Curry). Both rosters gutted by injuries. SIM projects DEN -1.0 but book has DEN -5.5 — 4.5 point edge. Denver's frontcourt holes without Gordon are massive. GSW's remaining core (Draymond, Wiggins, Kuminga) edges DEN's depleted squad on DSI.

BOS @ LAL — BOS -2.0

50 $PP SPREAD 8

IMPLIED: BOS 116 — LAL 114

FINAL: BOS 111 — LAL 89 | BOS -2.0 W (+45 $PP)

Boston (DSI 56.6) at Los Angeles (DSI 63.4). Book has BOS -1.5 but SIM projects BOS -6.0 — 4.5 point edge. Boston's NRtg +2.5 vs LAL +7.9 favors LA at home, but the DSI gap says Boston's available talent is significantly deeper. Model thinks the book is way too generous to the Lakers here.

POR @ PHX — PHX ML

50 $PP SPREAD 8

IMPLIED: POR 113 — PHX 110

FINAL: POR 92 — PHX 77 | PHX ML L (-50 $PP)

Portland (DSI 51.7) at Phoenix (DSI 54.3). Book has POR -3.5 but SIM projects PHX -1.5 — 5.0 point edge. Phoenix at home with NRtg -1.4 vs POR +4.6 should favor Portland, but the DSI model sees Phoenix's lineup quality and HCA flipping the spread. Largest edge on the slate.

ORL @ LAC — ORL +3.5

50 $PP SPREAD 8

IMPLIED: ORL 106 — LAC 109

FINAL: ORL 111 — LAC 109 | ORL +3.5 W (+45 $PP)

Orlando (DSI 46.8, 3 OUT) at LA Clippers (DSI 53.6). Book has LAC -3.5 but SIM projects ORL -1.5 — 5.0 point edge. Despite Orlando's injury losses, the model sees the Clippers as overvalued. ORL's NRtg +2.7 vs LAC -1.3 supports the lean. Getting 3.5 points of cushion.

FEB 21 · SAT 3 SPREADS · 100 $PP
3-0 · +91 $PP

PHI @ NOP — NOP +4.0

40 $PP SPREAD 8

IMPLIED: PHI 120 — NOP 116

FINAL: PHI 111 — NOP 126 | NOP +4.0 W (+36 $PP)

Philadelphia at New Orleans. DSI model: NOP 48.3 vs PHI 46.2. Both teams banged up with 1-2 players OUT each. NOP at home with +3 HCA narrows the gap significantly. Model projects NOP +0.5, book has PHI -4.0 — 3.5 point edge. Highest confidence lean on the slate.

SAC @ SAS — SAS -18.0

30 $PP SPREAD 7

IMPLIED: SAC 106 — SAS 124

FINAL: SAC 122 — SAS 139 | SAS -18.0 L (-30 $PP)

Sacramento (3 players OUT, DSI floor 40.0) at San Antonio (DSI 65.0). SAC gutted by injuries — DSI at absolute minimum. NRtg +8.8 vs -8.5, massive gap amplified by the injury disparity. Model projects SAS -21.0, 2.5 point edge over the 18.5 line.

HOU @ NYK — HOU +3.5

30 $PP SPREAD 7

IMPLIED: HOU 108 — NYK 112

FINAL: HOU 106 — NYK 108 | HOU +3.5 W (+27 $PP)

Houston (DSI 62.0) at New York (DSI 59.5). Houston's DSI edges NYK despite being on the road. HCA +3 narrows it but model projects NYK -1.0 — only a 1-point home edge vs the 3.5 line. 2.5 point edge on the spread.

FEB 20 · FRI 2 SPREADS · 80 $PP
1-1

DAL @ MIN — MIN -12.5

50 $PP SPREAD 9

IMPLIED: DAL 112 — MIN 124

FINAL: DAL 111 — MIN 122 | MIN -12.5 L (-50 $PP)

Dallas (DS #21) at Minnesota (DS #4, 34-22). MIN's elite defensive scheme shuts down DAL's offensive sets. Edwards + Towns driving the DS gap — Minnesota's lineup combos are dominant at home. Max unit on spread.

UTA @ MEM — MEM -2.0

30 $PP SPREAD 7

IMPLIED: UTA 118 — MEM 121

FINAL: UTA 114 — MEM 123 | MEM -3.5 W (+27 $PP)

Utah (DS #22, 19-32) at Memphis. MEM's lineup combos outperform Utah across the board. Memphis holds the DS edge. Spread at 7 confidence.

FEB 19 · THU 2 SPREADS · 80 $PP
2-0

BKN @ CLE — CLE -16.0

50 $PP SPREAD 10

IMPLIED: BKN 107 — CLE 123

FINAL: BKN 84 — CLE 112 | CLE -16.0 W (+45 $PP)

Brooklyn (DS #29, 15-38) at Cleveland (DS #3, 34-21). BKN Spot-Up Heavy w/ Drop-Coverage (Poor) vs CLE PnR-Heavy (Fast) w/ Drop-Coverage (Good). DS gap: CLE 372 vs BKN 256. Lineup data: CLE's Merrill/Tyson/Mitchell 3-man core is +29.2 NET RTG over 21 games — elite floor. Their Mobley/Allen/Mitchell 5-man is +25.6 NET RTG. Brooklyn has no trending combos that compete. Max unit on spread.

PHX @ SAS — SAS -8.0

30 $PP SPREAD 7

IMPLIED: PHX 111 — SAS 119

FINAL: PHX 65 — SAS 91 | SAS -8.0 W (+27 $PP)

Phoenix (DS #19, 32-23) at San Antonio (DS #6, 37-16). SAS Trans-Defense (Elite) shuts down PHX's PnR-Heavy sets. Lineup data: Wembanyama's 2-man duos are +29.0 NET RTG over 32 games — the largest sample of any trending combo in the league. PHX has zero lineup combos tracking above +10. Team DS 354 vs 321. SAS defense is elite at home.

Pick Side Implied Conf $PP Result
APR 10 — FRIDAY
CLE @ ATL CLE +8.0 10 50 L
MIA @ WAS WAS +18.5 8 50 L
DET @ CHA DET +4.0 10 50 W
PHI @ IND IND -4.0(PROJ. SPREAD) 10 50
TOR @ NYK TOR +6.5 6 30 L
ORL @ CHI CHI +14.5 10 50 L
BKN @ MIL BKN +9.5 9 50 L
MIN @ HOU MIN +10.5 8 50 W
MEM @ UTA MEM +4.0 7 30 L
NOP @ BOS BOS -16.5 7 30
APR 9 — THURSDAY
BOS @ NYK BOS -16.5 10 50
PHI @ HOU HOU -10.5 7 30
LAL @ GSW LAL -4.5(PROJ. SPREAD) 7 30 W
APR 8 — WEDNESDAY
MIL @ DET MIL -1.5(PROJ. SPREAD) 6 30 L
MIN @ ORL MIN +6.0 10 50 L
POR @ SAS SAS -18.5 10 50 W
OKC @ LAC OKC -19.5(PROJ. SPREAD) 8 50 W
APR 7 — TUESDAY
MIN @ IND IND -4.0(PROJ. SPREAD) 8 50 L
CHI @ WAS WAS +6.0 8 50 L
SAC @ GSW SAC +15.5 10 50 W
DAL @ LAC DAL +11.5 8 50 L
OKC @ LAL LAL -4.5(PROJ. SPREAD) 6 30 L
HOU @ PHX HOU -10.5 7 30 W
APR 6 — MONDAY
NYK @ ATL NYK -6.5 7 30 W
CLE @ MEM MEM +13.5 7 30 L
POR @ DEN POR -1.5 7 30 W
DET @ ORL DET -20.5 10 50 L
APR 5 — SUNDAY
IND @ CLE IND -4.0(PROJ. SPREAD) 10 50 W
UTA @ OKC OKC -19.5(PROJ. SPREAD) 10 50 W
HOU @ GSW HOU -10.5 10 50 W
LAL @ DAL LAL -4.5(PROJ. SPREAD) 6 30 L
LAC @ SAC SAC +13.0 6 30 L
APR 4 — SATURDAY
WAS @ MIA WAS +17.0 7 30 W
APR 3 — FRIDAY
IND @ CHA IND -4.0(PROJ. SPREAD) 6 30 L
UTA @ HOU HOU -10.5 9 50 W
ATL @ BKN BKN -3.0 6 30 L
MIN @ PHI MIN -12.5 6 30 L
APR 2 — THURSDAY
CLE @ GSW GSW -10.5 8 50 W
SAS @ LAC SAS -18.5 8 50 W
PHX @ CHA PHX -2.5 6 30 L
APR 1 — WEDNESDAY
MIL @ HOU MIL -1.5(PROJ. SPREAD) 7 30 W
SAS @ GSW SAS -18.5 9 50 W
SAC @ TOR TOR -3.5 6 30 L
MAR 26 — THURSDAY
SAC @ ORL SAC +15.5 7 30 W
MAR 26 — THURSDAY
SAC @ ORL SAC +15.5 7 30 W
MAR 25 — WEDNESDAY
CHI @ PHI CHI -6.0 9 50 L
SAS @ MEM SAS -18.5 8 50 W
DAL @ DEN DAL +13.5 6 30 W
TOR @ LAC TOR -3.5 9 50 L
BKN @ GSW BKN -3.0 6 30 W
MAR 24 — TUESDAY
DEN @ PHX PHX -2.5 6 30 W
MAR 23 — MONDAY
LAL @ DET DET -20.5 10 50 W
IND @ ORL IND -4.0(PROJ. SPREAD) 7 30 W
BKN @ POR BKN -3.0 7 30 L
MIL @ LAC MIL -1.5(PROJ. SPREAD) 10 50 L
MAR 22 — SUNDAY
POR @ DEN POR -1.5 6 30 W
BKN @ SAC BKN -3.0 7 30 W
TOR @ PHX TOR -3.5 6 30 W
MAR 21 — SATURDAY
MIL @ PHX MIL -1.5(PROJ. SPREAD) 7 30 W
MAR 20 — FRIDAY
GSW @ DET DET -20.5 9 50 W
ATL @ HOU ATL -1.0(PROJ. SPREAD) 8 50 W
TOR @ DEN TOR -3.5 10 50 W
MAR 19 — THURSDAY
CLE @ CHI CHI -6.0 9 50 W
DET @ WAS DET -20.5 6 30 W
LAL @ MIA LAL -4.5(PROJ. SPREAD) 8 50 W
MAR 18 — WEDNESDAY
DEN @ MEM MEM +13.0 7 30 W
MAR 17 — TUESDAY
MIA @ CHA MIA -16.5 7 30 L
CLE @ MIL MIL -1.5(PROJ. SPREAD) 6 30 W
PHX @ MIN PHX -2.5 6 30 L
MAR 16 — MONDAY
SAS @ LAC LAC -11.5 6 30 W
MAR 15 — SUNDAY
DAL @ CLE DAL +16.5 10 50 W
IND @ MIL IND -4.0(PROJ. SPREAD) 8 50 L
GSW @ NYK NYK -6.5 6 30 W
UTA @ SAC SAC -6.5 7 30 L
MAR 14 — SATURDAY
BKN @ PHI BKN -3.0 10 50 W
DEN @ LAL LAL -4.5(PROJ. SPREAD) 8 50 W
MAR 13 — FRIDAY
DEN @ SAS SAS -18.5 6 30 L
BOS @ OKC BOS -16.5 7 30 W
CHI @ LAL CHI -6.0 6 30 L
CLE @ DAL DAL +13.0 6 30 L
MEM @ DET DET -20.5 8 50 L
NYK @ IND NYK -6.5 8 50 L
CHI @ LAC CHI -6.0 6 30 L
PHX @ TOR PHX -2.5 7 30 L
UTA @ POR UTA -3.5 7 30 L
MAR 12 — THURSDAY
DAL @ MEM MEM ML 8 50 L
DEN @ SAS SAS -18.5 8 50 L
BOS @ OKC BOS -16.5 10 50 W
CHI @ LAL CHI -6.0 7 30 W
MAR 11 — WEDNESDAY
HOU @ DEN HOU ML 10 50 L
MIN @ LAC MIN ML 8 50 L
MAR 10 — TUESDAY
DAL @ ATL DAL -5.5 6 30 L
BOS @ SAS BOS ML 7 30 L
CHI @ GSW CHI ML 10 50 W
IND @ SAC IND ML 10 50 L
MAR 9 — MONDAY
NYK @ LAC NYK -6.5 8 50 L
MAR 8 — SUNDAY
IND @ POR IND -4.0(PROJ. SPREAD) 8 50 L
CHI @ SAC CHI -6.0 8 50 L
MAR 7 — SATURDAY
LAC @ MEM MEM -1.5 8 50 W
GSW @ OKC GSW -10.5 10 50 W
MAR 6 — FRIDAY
MIA @ CHA MIA -16.5 9 50 L
NOP @ PHX NOP -10.5 8 50 L
LAC @ SAS SAS -18.5 7 30 W
MAR 5 — THURSDAY
GSW @ HOU HOU -10.5 8 50 W
DET @ SAS DET ML 8 50 L
CHI @ PHX CHI -6.0 7 30 L
LAL @ DEN LAL ML 7 30 L
NOP @ SAC NOP -10.5 7 30 W
MAR 4 — WEDNESDAY
CHA @ BOS CHA +0.0(PROJ. SPREAD) 118-89 8 50 W
UTA @ PHI UTA -3.5 102-106 4 20 W
ATL @ MIL ATL ML 131-113 7 30 W
IND @ LAC IND -4.0(PROJ. SPREAD) 107-130 9 50 L
MAR 3 — TUESDAY
SAS @ PHI SAS -18.5 131-91 7 50 W
PHX @ SAC PHX -2.5 114-103 7 30 W
DET @ CLE DET -20.5 109-113 7 50 L
BKN @ MIA BKN -3.0 98-124 7 50 L
WAS @ ORL WAS -2.0 109-126 7 50 L
OKC @ CHI CHI -6.0 116-108 7 50 W
MAR 2 — MONDAY
BOS @ MIL BOS -16.5 108-81 7 30 W
MAR 1 — SUNDAY
MIN @ DEN MIN ML 117-108 8 50 W
MIL @ CHI CHI -6.0 97-120 8 50 W
CLE @ BKN BKN -3.0 106-102 6 30 W
OKC @ DAL DAL -5.5 100-87 6 30 W
NOP @ LAC NOP -10.5 137-117 7 30 L
FEB 28 — SATURDAY
LAL @ GSW LAL -4.5(PROJ. SPREAD) 129-101 9 50 W
HOU @ MIA MIA -16.5 105-115 8 50 W
NOP @ UTA NOP -10.5 115-105 7 30 W
FEB 27 — FRIDAY
NYK @ MIL NYK -6.5 127-98 9 50 W
MEM @ DAL MEM -1.5 124-105 7 30 W
FEB 26 — THURSDAY
OKC @ LAL LAL -4.5(PROJ. SPREAD) 110-113 8 50 W
FEB 25 — WEDNESDAY
BOS @ DEN BOS -16.5 8 50 L
FEB 24 — TUESDAY
PHI @ IND IND -4.0(PROJ. SPREAD) 135-114 10 50 L
WAS @ ATL WAS -2.0 98-119 10 50 L
ORL @ LAL ORL -15.5 110-109 9 50 W
BOS @ PHX BOS -16.5 97-81 5 30 W
FEB 23 — MONDAY
SAC @ MEM MEM -1.5 123-114 6 20 L
UTA @ HOU HOU -10.5 105-125 6 20 W
FEB 22 — SUNDAY
DEN @ GSW GSW ML 117-128 8 50 W
BOS @ LAL BOS -16.5 111-89 8 50 W
POR @ PHX PHX ML 92-77 8 50 L
ORL @ LAC ORL -15.5 111-109 8 50 W
FEB 21 — SATURDAY
PHI @ NOP NOP -10.5 120-116 8 40 W
SAC @ SAS SAS -18.5 106-125 7 30 L
HOU @ NYK HOU -10.5 108-111 7 30 W
FEB 20 — FRIDAY
DAL @ MIN MIN -12.5 112-124 9 50 L
UTA @ MEM MEM -1.5 118-123 7 30 W
FEB 19 — THURSDAY
BKN @ CLE CLE -2.0 107-123 10 50 W
PHX @ SAS SAS -18.5 111-119 7 30 W
TOTAL RISKED 6,790 $PP
BANKROLL
1,600
RISKED
6,790
PICKS
165
RECORD
92-72-0
STATUS
SETTLED

All picks sourced from the NBA SIM pipeline — scheme detection, archetype clustering (K-Means on 16 features), Dynamic Score rankings, and lineup synergy. Lines via The Odds API. Full methodology at nbasim.

$PP TRACKING PICKS SPREADS + ML FEB 19 — MAR 5
PICKS LOG
MAR 25 — APR 9, 2026

MLB SIM: 69-63 RECORD (-2.3% ROI)

69-63 RECORD
-2.3% ROI
870 BANKROLL
144 PICKS

GMM pitcher archetypes → batter-vs-cluster matchups → BaseRuns simulation with park factors, bullpen, and defensive adjustments. 57% winner accuracy on 2,437 backtested games.

BANKROLL
870 $PP
TARGET
25,000 $PP
TOTAL RISKED
6320 $PP

UNIT KEY: 8-10 CONF = 50 $PP  ·  5-7 CONF = 30 $PP  ·  1-10 SCALE — 5+ MINIMUM

▌ 2026 MLB SEASON

APR 11 · SAT 12 ML PICKS · 540 $PP
PENDING

▌ GAME LINES — 12 ML PICKS

ARI @ PHI — ARI ML (+108)

30 $PP ML C:7

PENDING

Model WP: 53.4% vs Market: 45.6%. EV: +11.0%

MIA @ DET — DET ML (-142)

50 $PP ML C:8

PENDING

Model WP: 68.3% vs Market: 55.6%. EV: +16.4%

PIT @ CHC — CHC ML (-148)

50 $PP ML C:10

PENDING

Model WP: 73.6% vs Market: 56.5%. EV: +23.4%

CWS @ KC — KC ML (-191)

50 $PP ML C:10

PENDING

Model WP: 88.2% vs Market: 60.5%. EV: +34.4%

NYY @ TB — NYY ML (-197)

50 $PP ML C:10

PENDING

Model WP: 89.2% vs Market: 61.1%. EV: +34.4%

WSH @ MIL — MIL ML (-178)

50 $PP ML C:10

PENDING

Model WP: 78.8% vs Market: 58.9%. EV: +23.1%

SF @ BAL — SF ML (-120)

30 $PP ML C:6

PENDING

Model WP: 61.3% vs Market: 51.7%. EV: +12.3%

BOS @ STL — BOS ML (-141)

50 $PP ML C:9

PENDING

Model WP: 69.6% vs Market: 55.4%. EV: +18.9%

CLE @ ATL — ATL ML (-117)

50 $PP ML C:9

PENDING

Model WP: 86.2% vs Market: 51.0%. EV: +60.0%

COL @ SD — SD ML (-167)

50 $PP ML C:10

PENDING

Model WP: 78.6% vs Market: 57.5%. EV: +25.7%

TEX @ LAD — TEX ML (+134)

50 $PP ML C:10

PENDING

Model WP: 53.1% vs Market: 39.4%. EV: +24.4%

HOU @ SEA — HOU ML (+117)

30 $PP ML C:6

PENDING

Model WP: 51.6% vs Market: 43.6%. EV: +12.0%

APR 9 · THU 4 ML PICKS · 180 $PP
1-3 · -125 $PP

▌ GAME LINES — 4 ML PICKS

CIN @ MIA — MIA ML (-120)

30 $PP ML C:6

FINAL: MIA 8 — CIN 1 | MIA ML W (+25 $PP)

Model WP: 59.5% vs Market: 51.7%. EV: +9.0%

DET @ MIN — DET ML (-140)

50 $PP ML C:10

FINAL: DET 1 — MIN 3 | DET ML L (-50 $PP)

Model WP: 69.4% vs Market: 55.3%. EV: +19.0%

ARI @ NYM — NYM ML (-186)

50 $PP ML C:10

FINAL: NYM 1 — ARI 7 | NYM ML L (-50 $PP)

Model WP: 78.9% vs Market: 59.9%. EV: +21.3%

CWS @ KC — KC ML (-182)

50 $PP ML C:9

FINAL: KC 0 — CWS 2 | KC ML L (-50 $PP)

Model WP: 76.4% vs Market: 59.4%. EV: +18.3%

APR 8 · WED 10 ML PICKS · 440 $PP
2-8 · -304 $PP

▌ GAME LINES — 10 ML PICKS

KC @ CLE — KC ML (-135)

50 $PP ML C:10

FINAL: KC 2 — CLE 10 | KC ML L (-50 $PP)

Model WP: 80.2% vs Market: 54.4%. EV: +39.6%

MIL @ BOS — BOS ML (-140)

30 $PP ML C:4

FINAL: BOS 5 — MIL 0 | BOS ML W (+21 $PP)

Model WP: 61.3% vs Market: 55.3%. EV: +5.0%

BAL @ CWS — BAL ML (-145)

50 $PP ML C:8

FINAL: BAL 5 — CWS 3 | BAL ML W (+34 $PP)

Model WP: 68.4% vs Market: 56.1%. EV: +15.6%

LAD @ TOR — LAD ML (-160)

30 $PP ML C:6

FINAL: LAD 3 — TOR 4 | LAD ML L (-30 $PP)

Model WP: 67.7% vs Market: 56.6%. EV: +9.9%

HOU @ COL — HOU ML (-135)

50 $PP ML C:10

FINAL: HOU 1 — COL 9 | HOU ML L (-50 $PP)

Model WP: 89.0% vs Market: 54.4%. EV: +54.9%

STL @ WSH — WSH ML (+5740)

50 $PP ML C:9

FINAL: WSH 1 — STL 6 | WSH ML L (-50 $PP)

Model WP: 80.9% vs Market: 1.7%. EV: +4626.1%

ATL @ LAA — LAA ML (+35000)

50 $PP ML C:10

FINAL: LAA 2 — ATL 8 | LAA ML L (-50 $PP)

Model WP: 32.9% vs Market: 0.3%. EV: +11450.4%

CHC @ TB — TB ML (-114)

30 $PP ML C:4

FINAL: TB 2 — CHC 6 | TB ML L (-30 $PP)

Model WP: 55.6% vs Market: 50.4%. EV: +4.3%

CIN @ MIA — CIN ML (+102)

50 $PP ML C:10

FINAL: CIN 4 — MIA 7 | CIN ML L (-50 $PP)

Model WP: 73.4% vs Market: 46.9%. EV: +48.2%

DET @ MIN — DET ML (-153)

50 $PP ML C:10

FINAL: DET 6 — MIN 8 | DET ML L (-50 $PP)

Model WP: 75.7% vs Market: 55.6%. EV: +25.2%

APR 7 · TUE 11 ML PICKS · 510 $PP
8-3 · +340 $PP

▌ GAME LINES — 11 ML PICKS

KC @ CLE — KC ML (+96)

50 $PP ML C:10

FINAL: KC 1 — CLE 2 | KC ML L (-50 $PP)

Model WP: 83.2% vs Market: 48.3%. EV: +63.0%

BAL @ CWS — BAL ML (-145)

50 $PP ML C:10

FINAL: BAL 4 — CWS 2 | BAL ML W (+34 $PP)

Model WP: 77.6% vs Market: 56.1%. EV: +31.1%

ARI @ NYM — NYM ML (+328)

50 $PP ML C:10

FINAL: NYM 4 — ARI 3 | NYM ML W (+164 $PP)

Model WP: 50.6% vs Market: 22.1%. EV: +116.6%

CIN @ MIA — CIN ML (+111)

50 $PP ML C:10

FINAL: CIN 6 — MIA 3 | CIN ML W (+56 $PP)

Model WP: 74.6% vs Market: 44.9%. EV: +57.3%

MIL @ BOS — MIL ML (+111)

30 $PP ML C:4

FINAL: MIL 2 — BOS 3 | MIL ML L (-30 $PP)

Model WP: 49.4% vs Market: 43.6%. EV: +4.2%

LAD @ TOR — LAD ML (-155)

50 $PP ML C:10

FINAL: LAD 4 — TOR 1 | LAD ML W (+32 $PP)

Model WP: 83.7% vs Market: 55.8%. EV: +37.8%

DET @ MIN — DET ML (-169)

50 $PP ML C:9

FINAL: DET 2 — MIN 4 | DET ML L (-50 $PP)

Model WP: 89.6% vs Market: 57.8%. EV: +42.6%

SEA @ TEX — TEX ML (+95)

50 $PP ML C:8

FINAL: TEX 3 — SEA 2 | TEX ML W (+48 $PP)

Model WP: 58.6% vs Market: 48.6%. EV: +14.2%

HOU @ COL — COL ML (+119)

50 $PP ML C:9

FINAL: COL 5 — HOU 1 | COL ML W (+60 $PP)

Model WP: 74.0% vs Market: 42.0%. EV: +62.0%

ATL @ LAA — ATL ML (-130)

30 $PP ML C:7

FINAL: ATL 7 — LAA 2 | ATL ML W (+23 $PP)

Model WP: 63.2% vs Market: 53.6%. EV: +11.8%

PHI @ SF — SF ML (+107)

50 $PP ML C:10

FINAL: SF 6 — PHI 0 | SF ML W (+54 $PP)

Model WP: 70.2% vs Market: 44.3%. EV: +45.3%

APR 6 · MON 12 ML PICKS · 560 $PP
8-4 · +160 $PP

▌ GAME LINES — 12 ML PICKS

CHC @ TB — CHC ML (+100)

30 $PP ML C:3

FINAL: CHC 4 — TB 6 | CHC ML L (-30 $PP)

Model WP: 51.4% vs Market: 47.4%. EV: +2.9%

KC @ CLE — KC ML (+102)

50 $PP ML C:10

FINAL: KC 4 — CLE 2 | KC ML W (+51 $PP)

Model WP: 68.3% vs Market: 46.9%. EV: +38.0%

SD @ PIT — SD ML (+111)

50 $PP ML C:10

FINAL: SD 5 — PIT 0 | SD ML W (+56 $PP)

Model WP: 63.4% vs Market: 44.9%. EV: +33.8%

CIN @ MIA — CIN ML (+109)

50 $PP ML C:10

FINAL: CIN 2 — MIA 0 | CIN ML W (+54 $PP)

Model WP: 84.7% vs Market: 45.3%. EV: +76.9%

STL @ WSH — STL ML (-115)

50 $PP ML C:9

FINAL: STL 6 — WSH 9 | STL ML L (-50 $PP)

Model WP: 75.5% vs Market: 50.7%. EV: +41.1%

MIL @ BOS — MIL ML (-128)

50 $PP ML C:10

FINAL: MIL 8 — BOS 6 | MIL ML W (+39 $PP)

Model WP: 72.4% vs Market: 53.1%. EV: +29.0%

LAD @ TOR — LAD ML (-129)

50 $PP ML C:10

FINAL: LAD 14 — TOR 2 | LAD ML W (+39 $PP)

Model WP: 68.8% vs Market: 53.3%. EV: +22.1%

DET @ MIN — MIN ML (-123)

50 $PP ML C:10

FINAL: MIN 7 — DET 3 | MIN ML W (+41 $PP)

Model WP: 71.4% vs Market: 52.2%. EV: +29.4%

BAL @ CWS — BAL ML (-141)

50 $PP ML C:9

FINAL: BAL 2 — CWS 1 | BAL ML W (+35 $PP)

Model WP: 70.0% vs Market: 55.4%. EV: +19.7%

HOU @ COL — HOU ML (-157)

50 $PP ML C:10

FINAL: HOU 7 — COL 9 | HOU ML L (-50 $PP)

Model WP: 79.3% vs Market: 56.1%. EV: +29.8%

ATL @ LAA — ATL ML (-176)

50 $PP ML C:10

FINAL: ATL 2 — LAA 6 | ATL ML L (-50 $PP)

Model WP: 84.3% vs Market: 58.7%. EV: +32.2%

PHI @ SF — PHI ML (-118)

30 $PP ML C:7

FINAL: PHI 6 — SF 4 | PHI ML W (+25 $PP)

Model WP: 60.3% vs Market: 51.2%. EV: +11.3%

APR 5 · SUN 9 ML PICKS · 450 $PP
1-8 · -344 $PP

▌ GAME LINES — 9 ML PICKS

CHC @ CLE — CHC ML (+114)

50 $PP ML C:10

FINAL: CHC 5 — CLE 6 | CHC ML L (-50 $PP)

Model WP: 77.3% vs Market: 44.3%. EV: +65.5%

CHC @ CLE — CHC ML (+114)

50 $PP ML C:10

FINAL: CHC 5 — CLE 6 | CHC ML L (-50 $PP)

Model WP: 73.0% vs Market: 44.3%. EV: +56.3%

LAD @ WSH — WSH ML (+1246)

50 $PP ML C:10

FINAL: WSH 6 — LAD 8 | WSH ML L (-50 $PP)

Model WP: 43.7% vs Market: 7.3%. EV: +488.5%

BAL @ PIT — BAL ML (+100)

50 $PP ML C:10

FINAL: BAL 2 — PIT 8 | BAL ML L (-50 $PP)

Model WP: 63.1% vs Market: 47.4%. EV: +26.2%

SD @ BOS — SD ML (+112)

50 $PP ML C:10

FINAL: SD 8 — BOS 6 | SD ML W (+56 $PP)

Model WP: 58.9% vs Market: 43.4%. EV: +24.8%

NYM @ SF — SF ML (+17920)

50 $PP ML C:10

FINAL: SF 2 — NYM 5 | SF ML L (-50 $PP)

Model WP: 52.8% vs Market: 0.6%. EV: +9422.6%

SEA @ LAA — SEA ML (+140)

50 $PP ML C:10

FINAL: SEA 7 — LAA 8 | SEA ML L (-50 $PP)

Model WP: 56.5% vs Market: 38.5%. EV: +35.5%

ATL @ ARI — ATL ML (+381)

50 $PP ML C:10

FINAL: ATL 5 — ARI 6 | ATL ML L (-50 $PP)

Model WP: 57.7% vs Market: 19.7%. EV: +177.5%

STL @ DET — DET ML (-141)

50 $PP ML C:10

FINAL: DET 3 — STL 5 | DET ML L (-50 $PP)

Model WP: 76.5% vs Market: 55.4%. EV: +30.7%

APR 4 · SAT 12 ML PICKS · 540 $PP
7-5 · +59 $PP

▌ GAME LINES — 12 ML PICKS

STL @ DET — DET ML (-170)

50 $PP ML C:10

FINAL: DET 11 — STL 6 | DET ML W (+29 $PP)

Model WP: 76.9% vs Market: 57.9%. EV: +22.1%

TOR @ CWS — TOR ML (-145)

30 $PP ML C:4

FINAL: TOR 3 — CWS 6 | TOR ML L (-30 $PP)

Model WP: 62.2% vs Market: 56.1%. EV: +5.1%

MIL @ KC — KC ML (-116)

50 $PP ML C:10

FINAL: KC 8 — MIL 2 | KC ML W (+43 $PP)

Model WP: 71.5% vs Market: 50.8%. EV: +33.2%

LAD @ WSH — LAD ML (-310)

30 $PP ML C:6

FINAL: LAD 10 — WSH 5 | LAD ML W (+10 $PP)

Model WP: 81.9% vs Market: 70.6%. EV: +8.4%

BAL @ PIT — PIT ML (+256)

50 $PP ML C:10

FINAL: PIT 3 — BAL 2 | PIT ML W (+128 $PP)

Model WP: 48.1% vs Market: 26.3%. EV: +71.1%

SD @ BOS — BOS ML (+202)

50 $PP ML C:10

FINAL: BOS 2 — SD 3 | BOS ML L (-50 $PP)

Model WP: 68.2% vs Market: 30.8%. EV: +106.0%

CIN @ TEX — TEX ML (-143)

50 $PP ML C:8

FINAL: TEX 0 — CIN 2 | TEX ML L (-50 $PP)

Model WP: 67.7% vs Market: 55.7%. EV: +15.1%

MIA @ NYY — NYY ML (-202)

30 $PP ML C:7

FINAL: NYY 9 — MIA 7 | NYY ML W (+15 $PP)

Model WP: 74.9% vs Market: 61.7%. EV: +12.0%

TB @ MIN — TB ML (-114)

50 $PP ML C:10

FINAL: TB 7 — MIN 1 | TB ML W (+44 $PP)

Model WP: 81.4% vs Market: 50.4%. EV: +52.7%

ATL @ ARI — ATL ML (+91)

50 $PP ML C:10

FINAL: ATL 1 — ARI 2 | ATL ML L (-50 $PP)

Model WP: 67.1% vs Market: 49.6%. EV: +28.1%

PHI @ COL — PHI ML (-248)

50 $PP ML C:9

FINAL: PHI 2 — COL 1 | PHI ML W (+20 $PP)

Model WP: 84.5% vs Market: 66.1%. EV: +18.5%

NYM @ SF — SF ML (+91)

50 $PP ML C:10

FINAL: SF 0 — NYM 9 | SF ML L (-50 $PP)

Model WP: 65.6% vs Market: 49.6%. EV: +25.3%

APR 3 · FRI 9 ML PICKS · 370 $PP
4-5 · -91 $PP

▌ GAME LINES — 9 ML PICKS

MIA @ NYY — NYY ML (-165)

30 $PP ML C:6

FINAL: NYY 8 — MIA 2 | NYY ML W (+18 $PP)

Model WP: 68.8% vs Market: 57.2%. EV: +10.4%

TOR @ CWS — TOR ML (-195)

30 $PP ML C:4

FINAL: TOR 4 — CWS 5 | TOR ML L (-30 $PP)

Model WP: 68.8% vs Market: 60.9%. EV: +4.0%

CIN @ TEX — TEX ML (+1038)

50 $PP ML C:10

FINAL: TEX 3 — CIN 5 | TEX ML L (-50 $PP)

Model WP: 61.5% vs Market: 8.6%. EV: +600.4%

CHC @ CLE — CHC ML (+8049)

50 $PP ML C:10

FINAL: CHC 1 — CLE 4 | CHC ML L (-50 $PP)

Model WP: 76.2% vs Market: 1.2%. EV: +6110.3%

TB @ MIN — TB ML (-113)

30 $PP ML C:6

FINAL: TB 4 — MIN 10 | TB ML L (-30 $PP)

Model WP: 57.5% vs Market: 50.2%. EV: +8.3%

BAL @ PIT — BAL ML (+443)

50 $PP ML C:10

FINAL: BAL 4 — PIT 5 | BAL ML L (-50 $PP)

Model WP: 60.8% vs Market: 17.6%. EV: +229.9%

SEA @ LAA — SEA ML (-159)

30 $PP ML C:3

FINAL: SEA 3 — LAA 1 | SEA ML W (+19 $PP)

Model WP: 62.8% vs Market: 56.4%. EV: +2.3%

ATL @ ARI — ATL ML (-116)

50 $PP ML C:8

FINAL: ATL 2 — ARI 0 | ATL ML W (+43 $PP)

Model WP: 61.2% vs Market: 50.8%. EV: +13.9%

NYM @ SF — NYM ML (-130)

50 $PP ML C:9

FINAL: NYM 10 — SF 3 | NYM ML W (+38 $PP)

Model WP: 65.9% vs Market: 53.6%. EV: +16.6%

APR 2 · THU 3 ML PICKS · 150 $PP
2-1 · +44 $PP

▌ GAME LINES — 3 ML PICKS

MIN @ KC — KC ML (-150)

50 $PP ML C:9

FINAL: KC 1 — MIN 5 | KC ML L (-50 $PP)

Model WP: 70.7% vs Market: 56.9%. EV: +17.9%

ATL @ ARI — ATL ML (-113)

50 $PP ML C:10

FINAL: ATL 17 — ARI 2 | ATL ML W (+44 $PP)

Model WP: 75.1% vs Market: 50.2%. EV: +41.6%

NYM @ SF — SF ML (+99)

50 $PP ML C:10

FINAL: SF 7 — NYM 2 | SF ML W (+50 $PP)

Model WP: 80.3% vs Market: 47.6%. EV: +59.7%

APR 1 · WED 10 ML PICKS · 460 $PP
4-6 · -115 $PP

▌ GAME LINES — 10 ML PICKS

TEX @ BAL — TEX ML (+96)

50 $PP ML C:10

FINAL: TEX 3 — BAL 8 | TEX ML L (-50 $PP)

Model WP: 75.3% vs Market: 48.3%. EV: +47.6%

PIT @ CIN — CIN ML (+112)

30 $PP ML C:3

FINAL: CIN 3 — PIT 8 | CIN ML L (-30 $PP)

Model WP: 48.7% vs Market: 44.7%. EV: +3.2%

WSH @ PHI — PHI ML (-280)

50 $PP ML C:10

FINAL: PHI 6 — WSH 5 | PHI ML W (+18 $PP)

Model WP: 92.2% vs Market: 68.6%. EV: +25.2%

COL @ TOR — COL ML (+192)

50 $PP ML C:9

FINAL: COL 2 — TOR 1 | COL ML W (+96 $PP)

Model WP: 79.4% vs Market: 31.8%. EV: +131.9%

CWS @ MIA — MIA ML (-145)

30 $PP ML C:7

FINAL: MIA 10 — CWS 0 | MIA ML W (+21 $PP)

Model WP: 65.7% vs Market: 56.1%. EV: +11.0%

NYM @ STL — NYM ML (-165)

50 $PP ML C:10

FINAL: NYM 1 — STL 2 | NYM ML L (-50 $PP)

Model WP: 77.5% vs Market: 57.2%. EV: +24.5%

LAA @ CHC — CHC ML (-165)

50 $PP ML C:10

FINAL: CHC 6 — LAA 2 | CHC ML W (+30 $PP)

Model WP: 84.7% vs Market: 57.2%. EV: +36.1%

DET @ ARI — DET ML (-150)

50 $PP ML C:8

FINAL: DET 0 — ARI 1 | DET ML L (-50 $PP)

Model WP: 70.7% vs Market: 56.9%. EV: +17.8%

SF @ SD — SF ML (+14000)

50 $PP ML C:10

FINAL: SF 1 — SD 7 | SF ML L (-50 $PP)

Model WP: 30.9% vs Market: 0.7%. EV: +4254.0%

NYY @ SEA — SEA ML (+2356)

50 $PP ML C:10

FINAL: SEA 3 — NYY 5 | SEA ML L (-50 $PP)

Model WP: 47.6% vs Market: 4.0%. EV: +1068.1%

MAR 31 · TUE 11 ML PICKS · 410 $PP
8-3 · +113 $PP

▌ GAME LINES — 11 ML PICKS

TEX @ BAL — TEX ML (-122)

50 $PP ML C:10

FINAL: TEX 8 — BAL 5 | TEX ML W (+41 $PP)

Model WP: 74.0% vs Market: 52.0%. EV: +34.7%

WSH @ PHI — PHI ML (-192)

30 $PP ML C:4

FINAL: PHI 3 — WSH 2 | PHI ML W (+16 $PP)

Model WP: 68.4% vs Market: 60.6%. EV: +4.0%

CWS @ MIA — MIA ML (-155)

50 $PP ML C:10

FINAL: MIA 9 — CWS 2 | MIA ML W (+32 $PP)

Model WP: 79.1% vs Market: 55.8%. EV: +30.1%

COL @ TOR — TOR ML (-269)

30 $PP ML C:4

FINAL: TOR 5 — COL 1 | TOR ML W (+11 $PP)

Model WP: 75.4% vs Market: 67.7%. EV: +3.4%

LAA @ CHC — LAA ML (+114)

50 $PP ML C:10

FINAL: LAA 2 — CHC 0 | LAA ML W (+57 $PP)

Model WP: 56.0% vs Market: 44.3%. EV: +19.8%

TB @ MIL — MIL ML (-126)

30 $PP ML C:7

FINAL: MIL 6 — TB 2 | MIL ML W (+24 $PP)

Model WP: 62.7% vs Market: 52.7%. EV: +12.5%

NYM @ STL — NYM ML (-152)

50 $PP ML C:10

FINAL: NYM 0 — STL 3 | NYM ML L (-50 $PP)

Model WP: 86.5% vs Market: 55.4%. EV: +43.5%

BOS @ HOU — HOU ML (-150)

30 $PP ML C:5

FINAL: HOU 9 — BOS 2 | HOU ML W (+20 $PP)

Model WP: 64.2% vs Market: 56.9%. EV: +6.9%

DET @ ARI — DET ML (+89)

30 $PP ML C:5

FINAL: DET 5 — ARI 7 | DET ML L (-30 $PP)

Model WP: 56.6% vs Market: 50.0%. EV: +6.9%

SF @ SD — SF ML (-137)

30 $PP ML C:4

FINAL: SF 9 — SD 3 | SF ML W (+22 $PP)

Model WP: 61.0% vs Market: 54.7%. EV: +5.5%

NYY @ SEA — SEA ML (+92)

30 $PP ML C:5

FINAL: SEA 0 — NYY 5 | SEA ML L (-30 $PP)

Model WP: 57.6% vs Market: 49.3%. EV: +10.6%

MAR 30 · MON 11 ML PICKS · 430 $PP
4-7 · -94 $PP

▌ GAME LINES — 11 ML PICKS

TEX @ BAL — TEX ML (+102)

50 $PP ML C:8

FINAL: TEX 5 — BAL 2 | TEX ML W (+51 $PP)

Model WP: 56.3% vs Market: 46.9%. EV: +13.7%

PIT @ CIN — PIT ML (+106)

30 $PP ML C:4

FINAL: PIT 0 — CIN 2 | PIT ML L (-30 $PP)

Model WP: 50.7% vs Market: 46.0%. EV: +4.5%

CWS @ MIA — MIA ML (-147)

30 $PP ML C:3

FINAL: MIA 4 — CWS 9 | MIA ML L (-30 $PP)

Model WP: 60.8% vs Market: 56.4%. EV: +2.1%

COL @ TOR — TOR ML (-294)

30 $PP ML C:6

FINAL: TOR 5 — COL 14 | TOR ML L (-30 $PP)

Model WP: 81.9% vs Market: 69.5%. EV: +9.8%

TB @ MIL — MIL ML (-159)

50 $PP ML C:10

FINAL: MIL 2 — TB 3 | MIL ML L (-50 $PP)

Model WP: 79.5% vs Market: 56.4%. EV: +29.5%

NYM @ STL — NYM ML (-150)

50 $PP ML C:10

FINAL: NYM 4 — STL 2 | NYM ML W (+33 $PP)

Model WP: 73.0% vs Market: 56.9%. EV: +21.7%

BOS @ HOU — BOS ML (-127)

30 $PP ML C:4

FINAL: BOS 1 — HOU 8 | BOS ML L (-30 $PP)

Model WP: 58.4% vs Market: 52.9%. EV: +4.3%

SF @ SD — SF ML (+94)

50 $PP ML C:9

FINAL: SF 3 — SD 2 | SF ML W (+47 $PP)

Model WP: 59.8% vs Market: 48.8%. EV: +16.0%

NYY @ SEA — NYY ML (-120)

30 $PP ML C:3

FINAL: NYY 1 — SEA 2 | NYY ML L (-30 $PP)

Model WP: 57.3% vs Market: 51.7%. EV: +5.0%

DET @ ARI — ARI ML (-120)

30 $PP ML C:5

FINAL: ARI 9 — DET 6 | ARI ML W (+25 $PP)

Model WP: 57.7% vs Market: 51.7%. EV: +5.8%

CLE @ LAD — LAD ML (-193)

50 $PP ML C:8

FINAL: LAD 2 — CLE 4 | LAD ML L (-50 $PP)

Model WP: 74.8% vs Market: 60.8%. EV: +13.6%

MAR 29 · SUN 9 ML PICKS · 370 $PP
8-1 · +199 $PP

▌ GAME LINES — 9 ML PICKS

MIN @ BAL — BAL ML (-160)

50 $PP ML C:10

FINAL: BAL 8 — MIN 6 | BAL ML W (+31 $PP)

Model WP: 77.5% vs Market: 56.6%. EV: +25.9%

TEX @ PHI — TEX ML (+112)

30 $PP ML C:4

FINAL: TEX 8 — PHI 3 | TEX ML W (+34 $PP)

Model WP: 48.9% vs Market: 43.4%. EV: +3.6%

KC @ ATL — KC ML (+120)

50 $PP ML C:10

FINAL: KC 4 — ATL 1 | KC ML W (+60 $PP)

Model WP: 55.8% vs Market: 43.1%. EV: +22.7%

BOS @ CIN — BOS ML (-135)

50 $PP ML C:10

FINAL: BOS 2 — CIN 3 | BOS ML L (-50 $PP)

Model WP: 71.8% vs Market: 54.4%. EV: +25.0%

COL @ MIA — MIA ML (-190)

30 $PP ML C:3

FINAL: MIA 4 — COL 3 | MIA ML W (+16 $PP)

Model WP: 67.5% vs Market: 60.4%. EV: +3.0%

LAA @ HOU — HOU ML (-170)

30 $PP ML C:4

FINAL: HOU 9 — LAA 7 | HOU ML W (+18 $PP)

Model WP: 66.0% vs Market: 57.9%. EV: +4.8%

CWS @ MIL — MIL ML (-165)

50 $PP ML C:10

FINAL: MIL 9 — CWS 7 | MIL ML W (+30 $PP)

Model WP: 76.1% vs Market: 57.2%. EV: +22.3%

TB @ STL — TB ML (-120)

30 $PP ML C:6

FINAL: TB 11 — STL 7 | TB ML W (+25 $PP)

Model WP: 60.3% vs Market: 51.7%. EV: +10.5%

CLE @ SEA — SEA ML (-143)

50 $PP ML C:8

FINAL: SEA 8 — CLE 0 | SEA ML W (+35 $PP)

Model WP: 67.0% vs Market: 55.7%. EV: +13.9%

MAR 28 · SAT 9 ML PICKS · 430 $PP
5-4 · -12 $PP

▌ GAME LINES — 9 ML PICKS

TB @ STL — TB ML (-115)

50 $PP ML C:10

FINAL: TB 5 — STL 6 | TB ML L (-50 $PP)

Model WP: 70.8% vs Market: 50.7%. EV: +32.4%

WSH @ CHC — CHC ML (-255)

50 $PP ML C:10

FINAL: CHC 10 — WSH 2 | CHC ML W (+20 $PP)

Model WP: 96.1% vs Market: 66.6%. EV: +33.8%

TEX @ PHI — TEX ML (+116)

50 $PP ML C:10

FINAL: TEX 5 — PHI 4 | TEX ML W (+58 $PP)

Model WP: 58.5% vs Market: 43.9%. EV: +26.3%

BOS @ CIN — BOS ML (+112)

50 $PP ML C:10

FINAL: BOS 5 — CIN 6 | BOS ML L (-50 $PP)

Model WP: 62.1% vs Market: 43.3%. EV: +31.7%

CWS @ MIL — CWS ML (+1516)

50 $PP ML C:10

FINAL: CWS 1 — MIL 6 | CWS ML L (-50 $PP)

Model WP: 15.5% vs Market: 6.1%. EV: +150.0%

KC @ ATL — ATL ML (-159)

30 $PP ML C:7

FINAL: ATL 6 — KC 2 | ATL ML W (+19 $PP)

Model WP: 69.4% vs Market: 56.4%. EV: +13.0%

NYY @ SF — NYY ML (+92)

50 $PP ML C:10

FINAL: NYY 3 — SF 1 | NYY ML W (+46 $PP)

Model WP: 74.7% vs Market: 49.2%. EV: +43.5%

DET @ SD — SD ML (-109)

50 $PP ML C:8

FINAL: SD 3 — DET 0 | SD ML W (+46 $PP)

Model WP: 59.5% vs Market: 49.4%. EV: +14.0%

CLE @ SEA — SEA ML (-180)

50 $PP ML C:10

FINAL: SEA 5 — CLE 6 | SEA ML L (-50 $PP)

Model WP: 76.5% vs Market: 59.1%. EV: +18.9%

MAR 27 · FRI 5 ML PICKS · 210 $PP
3-2 · -3 $PP

▌ GAME LINES — 5 ML PICKS

NYY @ SF — NYY ML (-134)

30 $PP ML C:7

FINAL: NYY 3 — SF 0 | NYY ML W (+22 $PP)

Model WP: 64.1% vs Market: 54.2%. EV: +11.9%

COL @ MIA — MIA ML (-195)

50 $PP ML C:8

FINAL: MIA 2 — COL 1 | MIA ML W (+26 $PP)

Model WP: 76.5% vs Market: 60.9%. EV: +15.7%

LAA @ HOU — HOU ML (-163)

50 $PP ML C:9

FINAL: HOU 2 — LAA 6 | HOU ML L (-50 $PP)

Model WP: 74.0% vs Market: 57.0%. EV: +19.5%

DET @ SD — SD ML (-127)

30 $PP ML C:7

FINAL: SD 2 — DET 5 | SD ML L (-30 $PP)

Model WP: 64.1% vs Market: 52.9%. EV: +14.5%

CLE @ SEA — SEA ML (-172)

50 $PP ML C:10

FINAL: SEA 5 — CLE 1 | SEA ML W (+29 $PP)

Model WP: 82.3% vs Market: 58.2%. EV: +30.1%

MAR 26 · THU 6 ML PICKS · 240 $PP
3-3 · +18 $PP

▌ GAME LINES — 6 ML PICKS

CWS @ MIL — MIL ML (-186)

50 $PP ML C:9

FINAL: MIL 14 — CWS 2 | MIL ML W (+27 $PP)

Model WP: 76.5% vs Market: 59.9%. EV: +17.6%

WSH @ CHC — WSH ML (+157)

50 $PP ML C:10

FINAL: WSH 10 — CHC 4 | WSH ML W (+78 $PP)

Model WP: 50.1% vs Market: 36.0%. EV: +28.8%

MIN @ BAL — MIN ML (+112)

30 $PP ML C:7

FINAL: MIN 1 — BAL 2 | MIN ML L (-30 $PP)

Model WP: 53.1% vs Market: 44.7%. EV: +12.7%

DET @ SD — DET ML (-131)

30 $PP ML C:6

FINAL: DET 8 — SD 2 | DET ML W (+23 $PP)

Model WP: 61.7% vs Market: 53.6%. EV: +8.9%

TEX @ PHI — TEX ML (+109)

30 $PP ML C:7

FINAL: TEX 3 — PHI 5 | TEX ML L (-30 $PP)

Model WP: 53.7% vs Market: 44.0%. EV: +12.1%

CLE @ SEA — SEA ML (-186)

50 $PP ML C:10

FINAL: SEA 4 — CLE 6 | SEA ML L (-50 $PP)

Model WP: 78.4% vs Market: 59.9%. EV: +20.5%

MAR 25 · WED 1 ML PICK · 30 $PP
1-0 · +25 $PP

▌ GAME LINES — 1 ML PICK

NYY @ SF — NYY ML (-119)

30 $PP ML C:5

FINAL: NYY 0 — SF 0 | NYY ML W (+25 $PP)

Model WP: 0% vs Market: 0%. EV: +16.3%

METHODOLOGY
FEB 16, 2026

MLB ATLAS: 8-STEP PITCHER ARCHETYPE ENGINE

Statcast telemetry → GMM clustering → 3D terrain city. How we classify 5,983 pitcher-seasons into 34 archetypes and generate hitter matchup projections.

FIG. 01: MLB PIPELINE — END-TO-END DATA FLOW
MLB PITCHER ARCHETYPE PIPELINE 8 STEPS • PYTHON LAYER 1: INGESTION STATCAST API pybaseball • pitch-level data BASEBALL SAVANT 2015–2026 • ~700K pitches/yr ROSTER DATA Teams • Rosters • WBC statcast_{year}.parquet — ~150 MB/season • Snappy compressed LAYER 2: FEATURE ENGINEERING 01 FETCH Month-chunked pulls Retry w/ backoff 59 columns kept 02 ROLES SP/RP classification Games started ratio Binary: is_sp 03 FEATURES Pitch mix (10 types) Velo, spin, whiff, arm SV reclassification ZONE LOC Same/opp side splits 9-quadrant entropy 13 zone features PITCHER-SEASON FEATURE VECTOR (14 DIMENSIONS) pct_FF, pct_SI, pct_FC, pct_SL, pct_CH, pct_CU, velo, spin, gb, whiff... LAYER 3: CLUSTERING & CLASSIFICATION 04 GMM CLUSTERING RHP / LHP split independently StandardScaler → BIC optimization Min K=8 • 3D PCA • X-offset ±5 05 ARCHETYPE NAMING Geometric medoid (real pitcher) Rule-based trait scoring 17 names: Snake, Ghost, Barnburner 06-08 MATCHUP ANALYTICS Hitter vs Cluster (wOBA, K%, BB%) Hitter vs Pitcher (head-to-head) Hitter Timing Archetypes LAYER 4: FRONTEND DELIVERY COSMOS ATLAS • Three.js MLB SIM • React Vite → GitHub Pages Python sklearn pandas Three.js Parquet

THE 8-STEP PIPELINE

The MLB system is an 8-step sequential pipeline built in Python, orchestrated by run_all.py. Each step reads the previous step's output and writes its own artifacts. The entire pipeline can be resumed from any step with --from N.

01 Fetch Statcast — Pulls pitch-level telemetry from Baseball Savant via pybaseball. Data is chunked by month (Mar-Oct) with retry logic and polite 2s delays. Each season yields ~700K pitches across 59 columns including release speed, spin rate, pitch movement (pfx_x/pfx_z), plate location, and batted ball outcomes. Saved as compressed Parquet files (~150MB/season).
02 Classify SP/RP Roles — Determines whether each pitcher-season is a Starter or Reliever based on games-started ratio. Produces a binary is_sp flag used downstream for role-aware archetype naming.
03 Feature Engineering — The heaviest step. Aggregates pitch-level data into pitcher-season feature vectors. Computes: pitch mix usage rates (10 types), SV reclassification (SV pitches mapped to CU/SL/ST per pitcher based on velocity and vertical break), spin rates, arm angle (derived from release point geometry), whiff rate, fastball velocity, groundball rate, zone rate, pitch movement vectors, and a 13-feature zone location layer with same-side/opposite-side splits, platoon shifts, and Shannon entropy of 9-quadrant distributions.
04 GMM Clustering — Pitchers are split by handedness (RHP/LHP) and clustered independently using Gaussian Mixture Models. Features are StandardScaled, then GMM is fit across K=2–15 with BIC optimization (minimum K=8 enforced for meaningful granularity). GMM captures soft cluster boundaries and probabilistic membership, which better reflects how pitcher styles blend. Each hand produces 17 clusters. A 3D PCA projection is computed for the Atlas city view, with RHP offset +5 on the X axis and LHP offset −5 to create visual separation.
05 Archetype Naming — Each cluster's geometric medoid (the real pitcher minimizing sum of distances to all cluster members) is identified. A rule-based trait scorer examines the medoid's pitch mix, velocity, spin, and outcomes to assign one of 17 archetype names: Snake, Barnburner, Ghost, Earthworm, Swordfighter, Kitchen Sink, and more. Each archetype gets a consistent color and emoji for the frontend.
06 Hitter vs Cluster — Every pitch is tagged with its pitcher's cluster ID. Plate appearance outcomes are aggregated per batter × cluster × year × batter-side, producing wOBA, BA, SLG, K%, BB%, and whiff% for each matchup combination.
07 Hitter vs Pitcher — Direct head-to-head stats between individual batters and pitchers, providing granular matchup data beyond the cluster-level aggregations.
08 Hitter Timing Archetypes — Classifies hitters by their timing and approach patterns against different pitch types and velocities, adding another dimension to the matchup analysis.
FIG. 02: COSMOS ATLAS — 3D TERRAIN CITY ARCHITECTURE
COSMOS ATLAS — 3D TERRAIN CITY Vanilla JS + Three.js DATA FILES (JSON) clusters.json 34 archetype profiles + colors Medoid PCA (x,y,z) positions pitcher_count, velo, whiff, GB% pitcher_seasons.json 5,983 pitcher-seasons (2015-26) PCA x, y, z coordinates Name, hand, cluster, velo hitter_vs_cluster.json Batter vs archetype stats wOBA, BA, SLG, K%, BB% Min 10 PA threshold batters.json MLB batter directory Name, ID, team, side Autocomplete search THREE.JS 3D SCENE (WebGL + CSS2DRenderer) cosmos.html — STATE: activeBatters[] • selectedStat • selectedYear • minPA • visibleClusters SCENE GEOMETRY TERRAIN HEIGHTFIELD 128×128 subdivided PlaneGeometry Gaussian kernel density sum pitcher_count → hill elevation LA-style rolling topography VORONOI NEIGHBORHOODS 34 districts (17 RHP + 17 LHP) Half-plane bisector clipping ShapeGeometry on terrain surface Inset 3% for street gaps 3D BUILDINGS BoxGeometry per grid cell Height = avg fastball velo Confined inside Voronoi zone PCF soft shadows INTERACTIONS OrbitControls (rotate/zoom) Raycaster click/hover CSS2DObject floating labels Batter route arcs (TubeGeo) REBUILD PIPELINE (on filter change) buildTerrain() → buildNeighborhoods() → buildBuildings() → buildHighway() → buildLabels() → buildRoutes() GitHub Pages • Static • No server • ~130MB JSON data baked in

KEY DESIGN DECISIONS

GMM over K-Means: We use Gaussian Mixture Models instead of K-Means for clustering. GMM captures soft cluster boundaries and probabilistic membership—a pitcher can be 70% Ghost and 30% Swordfighter—which better reflects how real pitching styles blend. Model selection uses BIC (Bayesian Information Criterion) rather than silhouette score, with minimum K=8 enforced per hand.

SV Reclassification: Statcast's “SV” (sweeper) classification is inconsistent across seasons. We built a per-pitcher mapping that examines career-average SV velocity and vertical break to reclassify each pitcher's SV as curveball (pfx_z < −0.50), slider (speed > 84 mph), or sweeper (everything else). This ensures clustering stability across the 2015–2026 dataset.

Separate RHP/LHP Clustering: Rather than clustering all pitchers together, we split by handedness first. This prevents the dominant handedness signal from overwhelming the pitch-mix features. Each hand gets its own StandardScaler, GMM model, and PCA projection. The X-axis offset (+5/−5) in PCA space creates the visual highway divider in the city view.

Medoid over Centroid: Archetype representatives are chosen as the geometric medoid (the real pitcher that minimizes total distance to all cluster members), not the mathematical centroid. This means every archetype profile references an actual pitcher's stats, not a phantom average that no real pitcher matches.

Zone Location Entropy: The 13-feature zone location layer captures not just where pitchers throw, but how predictable their patterns are. Shannon entropy across a 9-quadrant grid (3 lateral × 3 vertical) measures location unpredictability, and platoon shift features capture how much a pitcher adjusts against same-side vs opposite-side batters.

3D TERRAIN CITY VISUALIZATION

LA-Style Terrain Heightfield: The flat ground plane is replaced with a 128×128 subdivided mesh whose vertices are displaced by a Gaussian kernel density function. Each of the 34 cluster centroids emits a Gaussian “hill” with amplitude proportional to log(pitcher_count). Dense clusters like RHP Ghost (542 pitchers) form prominent hilltops; sparse ones like Knuckleball Wizard sit in valleys. The result is an organic, LA-style rolling topography.

Voronoi Neighborhood Tessellation: Each archetype occupies a Voronoi cell computed via half-plane bisector clipping (Sutherland-Hodgman). These polygons are projected onto the terrain surface as ShapeGeometry meshes, with vertices displaced to follow the heightfield. A 3% inset creates natural “street” gaps between districts.

Buildings Confined to Voronoi Zones: Rather than placing buildings at individual pitcher PCA coordinates (which causes cross-cluster color mixing), buildings are packed into a grid of slots inside each Voronoi polygon using point-in-polygon tests. Slots fill center-outward, pitchers distribute round-robin. Each building's height maps to average fastball velocity; bases sit on the terrain surface. This guarantees clean, single-color districts.

Terrain-Following Highway: The RHP/LHP divider at X=0 is built as discrete segments that follow the terrain contour, with emissive orange dashes for the center line. All scene elements—neighborhoods, buildings, labels, batter route arcs—are terrain-aware via bilinear-interpolated height queries.

METHODOLOGY MLB ATLAS DATA ARCHITECTURE DEVLOG
METHODOLOGY
FEB 24, 2026

NBA SIM: 4-PHASE PREDICTION ENGINE

Scheme detection → player archetypes → lineup synergy → DSI spread model. The full pipeline from NBA API to game predictions.

FIG. 03: NBA SIM — COMPLETE SYSTEM ARCHITECTURE
NBA SIM — MULTI-LAYER PREDICTION ENGINE 4 PHASES • PYTHON + SKLEARN PHASE 1: COLLECT (6 COLLECTORS) nba_api Teams, Rosters Season Stats Rate limited: 2s GAME DATA Scores, Box Scores 27 stat columns/game Per-game + advanced LINEUPS 2-man through 5-man Net rating, possessions Min poss thresholds PLAY TYPES SynergyPlayTypes API 11 types × Off/Def PPP, freq%, TO%, FG% BOX SCORES Player per-game USG%, TS%, OРТG, PIE 27 columns each ODDS API the-odds-api.com Spreads + Totals Multi-book consensus SQLite — nba_sim.db — 17 TABLES player_game_stats lineup_stats (2-5 man) team/player_playtypes PHASE 2: ANALYZE (2 ENGINES) COACHING SCHEME CLASSIFIER OFFENSIVE PnR-Heavy, ISO-Heavy Motion, Run-and-Gun Spot-Up, Post-Oriented + Pace (Fast/Mid/Slow) DEFENSIVE Switch-Everything Drop-Coverage, Rim-Protect Trans-Defense, Blitz PPP inversion: low = good D Method: freq/PPP pivot → percentile-rank across 30 teams → weighted scheme scoring Quality tiers: Elite / Good / Average / Poor PLAYER ARCHETYPE CLUSTERER PER-POSITION K-MEANS PG: Floor General, Scoring Guard SG: Sharpshooter, Two-Way Wing C: Rim Protector, Stretch 5 5 positions clustered independently METHODOLOGY Position-weighted features StandardScaler → PCA (8D) K=3-6 via silhouette K=4 bias when Δsil < 0.05 Labels: Hungarian algorithm matches centroids to z-score direction vector templates Optimal bipartite matching → no manual label assignment needed PHASE 3: COMPOSITE VALUE SCORES COMPOSITE VALUE SCORE ENGINE — SYNERGY + BASE + ARCHETYPE FIT SOLO Individual impact w = 0.210 Prior: 500 min 2-MAN Pair synergy w = 0.196 Prior: 30 poss 3-MAN Trio combos w = 0.140 Prior: 50 poss 4-MAN Quad combos w = 0.091 Prior: 75 poss 5-MAN Full lineup w = 0.063 Prior: 100 poss WEIGHT BREAKDOWN Synergy total: 70% Base value: 25% Archetype fit: 5% Bayesian shrinkage priors PHASE 4: PREDICT & DISPLAY PREDICTION ENGINE Feature matrix from value scores Spread + Total predictions Edge = predicted − market line BACKTESTER Train on season N-1 Test on season N Spread/total correct % FRONTEND DASHBOARD generate_frontend.py Single-file HTML • Live odds A/B/C grades • GitHub Pages morellosims.com/nbasim • Static • All data baked in Python sklearn nba_api SQLite scipy

THE 4-PHASE ARCHITECTURE

The NBA SIM operates as a 4-phase CLI pipeline (python main.py [collect|analyze|scores|predict|all]). Each phase builds on the previous, with all data persisted to a 17-table SQLite database.

P1 Collect — Six collectors run in sequence: PlayerCollector pulls teams, rosters, and season stats from nba_api. GameCollector fetches game results. LineupCollector pulls 2-through-5-man lineup combinations with net rating and possession counts (with minimum possession thresholds: 30 for 5-man, 50 for 4-man, 75 for 3-man, 100 for 2-man). PlayTypeCollector calls SynergyPlayTypes for all 11 play types in both offensive and defensive groupings. BoxScoreCollector ingests per-game player stats with 27 columns (points, rebounds, assists, plus advanced metrics like usage rate, true shooting, offensive/defensive rating, PIE). OddsCollector pulls live spreads and totals from The Odds API across multiple bookmakers.
P2 Analyze — Two parallel analysis engines. The Coaching Scheme Classifier builds per-team offensive and defensive profiles by pivoting play type frequencies and PPP values, computing percentile ranks across all 30 teams, then scoring each team against scheme templates (PnR-Heavy, ISO-Heavy, Motion, Run-and-Gun, Spot-Up Heavy, Post-Oriented for offense; Switch-Everything, Drop-Coverage, Rim-Protect, Trans-Defense, Blitz for defense). The Player Archetype Clusterer runs K-Means independently for each of the 5 position groups (PG, SG, SF, PF, C) using position-weighted features, StandardScaler normalization, PCA reduction to 8 components, silhouette-optimized K selection (range 3-6 with a K=4 bias when silhouette delta < 0.05), and Hungarian algorithm label assignment that optimally matches cluster centroids to archetype profile templates defined as z-score direction vectors.
P3 Value Scores — The Composite Value Score for each player is a weighted blend of 6 components. Solo impact (21% weight) measures individual on-court effect. 2-man synergy (19.6%) through 5-man synergy (6.3%) capture how well a player performs in specific lineup combinations, with Bayesian shrinkage priors that pull small-sample estimates toward league average (prior strengths: 500 minutes for solo, 30-100 possessions for multi-man). Base value (25%) covers raw per-36 production. Archetype fit (5%) rewards players whose on-court tendencies match their team's coaching scheme. The synergy portion (70% total) is the core innovation.
P4 Predict — A FeatureEngineer builds training matrices from the value scores and team-level features. A GamePredictor trains models for spread and total predictions. A ModelEvaluator backtests by training on season N-1 and evaluating on season N, measuring spread/total accuracy. The generate_frontend.py script produces a self-contained HTML dashboard that fetches live odds, computes consensus lines across bookmakers, grades matchup edges (A/B/C), and displays today's games with full scheme and archetype context.
FIG. 04: NBA SIM — DATABASE SCHEMA & DATA RELATIONSHIPS
DATABASE SCHEMA — 17 TABLES SQLite • nba_sim.db REFERENCE TABLES teams team_id PK abbreviation, name conference, division players player_id PK name, position height, weight, age roster_assignments player+team+season PK jersey_number FK → teams, players GAME DATA games game_id PK date, home/away team home/away score player_game_stats game+player PK 27 cols: pts, ast, reb USG%, TS%, OРТG, PIE lineup_stats lineup+season PK 2-5 man combos net rtg, possessions lineup_players lineup+season+player Junction table FK → lineup_stats betting_lines game+book+mkt PK price, point retrieved_at timestamp PLAY TYPES & SEASON STATS team_playtypes team+season+type PK freq%, PPP, eFG% TO%, score_freq player_playtypes player+season+type PK Off/Def grouping freq%, PPP, percentile player_season_stats player+season PK 30 cols: per-game + per36 pts, ast, reb, TS%, USG% team_season_stats team+season PK pace, off/def rtg FG%, 3P%, FT%, rates DERIVED & OUTPUT (ANALYSIS PRODUCTS) coaching_profiles team+season PK off/def scheme labels pace, top 3 playstyles player_archetypes player+season PK archetype_label confidence, feature vec player_value_scores player+season PK composite_value float solo + 2/3/4/5-man synergy pair_synergy player_a + player_b net_rating, minutes archetype pair labels predictions game+season PK spread, total edge, confidence collect → analyze → scores → predict • Each phase reads/writes the same SQLite DB • Dashed = derived tables (analysis output)

KEY DESIGN DECISIONS

Percentile-Rank Scheme Classification: Instead of using raw play type frequencies, we rank each team's values against all 30 teams to compute percentile scores (0-1). This ensures meaningful differentiation regardless of season-level shifts in play style trends. A team running 18% isolation isn't inherently "ISO-Heavy" unless they're in the top percentile of the league.

Position-Weighted Clustering: Not all stats matter equally for every position. Centers are weighted toward blocks and rebounds; guards toward assists and three-point attempts. The POSITION_FEATURE_WEIGHTS dictionary applies multipliers before StandardScaler normalization, ensuring PCA captures position-relevant variance. The K=4 bias (accepting K=4 over K=3 when silhouette delta < 0.05) prevents oversimplification.

Hungarian Algorithm for Label Assignment: Each archetype label (e.g., "Floor General", "Rim Protector") is defined as a z-score direction vector. After clustering, we build a cost matrix scoring how well each cluster centroid matches each label template, then use the Hungarian algorithm for optimal bipartite matching. This guarantees the most appropriate label assignment without manual intervention.

Bayesian Shrinkage in Synergy Scores: Small-sample lineup data is unreliable. A 5-man lineup with 35 possessions and +20 net rating shouldn't dominate a player's value. We apply Bayesian priors that shrink estimates toward league average, with prior strength proportional to data granularity (100 possessions for 5-man, 30 for 2-man). This balances signal extraction with noise reduction.

DYNAMIC SCORE (DS)

Every player on the dashboard receives a Dynamic Score (40-99), a single-number composite rating that blends offensive and defensive production into one sortable metric. The formula weights offense at 75% and defense at 25%, reflecting the NBA's offensive-skewing landscape.

Offensive sub-score compounds scoring (pts × 1.2), playmaking (ast × 1.8), efficiency (TS% × 40), and usage (USG% × 15). Defensive sub-score combines stocks (STL × 8.0 + BLK × 6.0) with defensive rating impact (max(0, (115 − DRtg) × 2.5)). Both sub-scores are clamped 0-99. The final blend adds shared components: rebounding (reb × 0.8), net rating impact (NRtg × 0.8), and minutes load (mpg × 0.3), then clamps the result to the 40-99 range. This floor prevents garbage-time players from showing misleadingly low scores.

DSI SPREAD MODEL

The Dynamic Score Index (DSI) is a team-level aggregate that drives the spread prediction engine. For each team, DSI sums the Dynamic Scores of all available starters and rotation players, adjusted for injury absences and usage decay. The spread is computed as a 50/50 blend of DSI-based power rating and adjusted net rating:

Spread = -((DSI_power × 0.50 + NRtg_power × 0.50) + HCA)

Where HCA (home court advantage) = 3.0 points. The model also applies a 3.0 point back-to-back penalty for teams playing consecutive days, and a usage decay factor (0.995 per 1% excess usage for offensive archetypes, 0.985 for defensive archetypes) that taxes players with unsustainably high usage rates. A stocks penalty (0.8 per lost stock) accounts for missing defensive playmakers. The DSI spread is then compared against the market consensus line to generate edge values.

DAILY TRENDS ENGINE

The Trends tab on the dashboard surfaces two layers of daily-refreshing intelligence, both powered by an automated GitHub Actions pipeline that runs every morning at 8 AM PST.

Trending Players: Compares each player's PRA (Points + Rebounds + Assists) over the last 14 days against their PRA from the prior 14 days (28-day total window). Players must have at least 2 games with 15+ minutes in each window to qualify. The top 4 risers and top 4 fallers are surfaced with direction badges: Hot, Trending Up, Cooling Down, Trending Down, or Steady.

Hot & Cold Lineup Combos: Queries the lineup_stats table for 5-man, 3-man, and 2-man combinations that have played at least 5 games and 8 minutes together. Hot combos are ranked by highest net rating, with badges for elite performance: HEATING UP (net > +15, 10+ GP), ELITE FLOOR (net > +10), MORE MINUTES (15+ min, 15+ GP). Cold combos surface the worst-performing lineups with severity badges: DISASTERCLASS (net < −15), COOKED (net < −10), or FADE. Each combo card displays every player's Dynamic Score and archetype for full context.

The daily pipeline uses incremental boxscore collection (only missing games, not the full season), refreshes lineup stats from the NBA.com API with browser-spoofed headers to avoid rate limiting, regenerates the static HTML, and auto-syncs to the live dashboard.

METHODOLOGY NBA DATA ARCHITECTURE DEVLOG