Game Recaps
New York Mets (NYM)
@
San Francisco Giants (SF)
Oracle Park
NYM Starter
David Peterson
4.3 IP · 9 H · 5 ER · 5 K · 2 BB · 68 PC
NYM Batters
Nothing Noteworthy
Insight
Data pending — rolling signal analysis available above.
SF Starter
Robbie Ray
5.3 IP · 3 H · 2 ER · 7 K · 3 BB · 96 PC
SF Batters
Rafael Devers
2-5 (1 HR, 1 RBI)
Casey Schmitt
3-3 (1 RBI, 1 BB)
Daniel Susac
3-3 (1 BB)
Insight
Data pending — check injury log for lineup impact.
Minnesota Twins (MIN)
@
Kansas City Royals (KC)
Kauffman Stadium
MIN Starter
Taj Bradley
6.0 IP · 5 H · 0 ER · 3 K · 1 BB · 100 PC
MIN Batters
Kody Clemens
2-3 (1 HR, 1 RBI, 1 BB)
Luke Keaschall
2-4
Insight
Data pending — rolling signal analysis available above.
KC Starter
Cole Ragans
6.0 IP · 4 H · 0 ER · 8 K · 1 BB · 89 PC
KC Batters
Nothing Noteworthy
Insight
Data pending — check injury log for lineup impact.
Atlanta Braves (ATL)
@
Arizona Diamondbacks (ARI)
Chase Field
ATL Starter
Reynaldo López
5.0 IP · 4 H · 1 ER · 3 K · 1 BB · 79 PC
ATL Batters
Matt Olson
3-5 (1 HR, 3 RBI, 1 BB)
Mauricio Dubón
2-4 (1 HR, 1 RBI, 1 BB)
Michael Harris II
2-6 (2 RBI)
Insight
Data pending — rolling signal analysis available above.
ARI Starter
Ryne Nelson
4.7 IP · 3 H · 2 ER · 3 K · 3 BB · 80 PC
ARI Batters
Ildemaro Vargas
2-2 (1 RBI)
Insight
Data pending — check injury log for lineup impact.
Rolling Performance Tables
Bullpen Rankings
7d · 14d · 28d ERA · FIP · K% · row color = signal
📊 Sorted by 7d ERA — Lower ERA = better bullpen right now.
📅 7d / 14d / 28d ERA — earned run average over each rolling window.
🔬 FIP — Removes luck and defense. ERA above FIP by 1.0+ means bullpen is due to improve.
⚡ K% — strikeout rate. Higher is better.
📈 Mom. — momentum. 28d rank minus 7d rank. Positive = bullpen trending up vs season baseline. Negative = declining.
🎯 Signal — Value = bullpen is trending up but market hasn't priced it in yet — target these teams. Fade = bullpen trending down — avoid backing them. Watch = mixed signals, monitor before acting.
| # |
Team |
7d ERA |
14d |
28d |
FIP |
K% |
Mom. |
Signal |
| 1 |
MIA |
0.51 |
0.51 |
0.51 |
0.90 |
38.6% |
0 |
Neutral |
| 2 |
MIL |
0.83 |
1.05 |
1.05 |
2.22 |
32.9% |
0 |
Neutral |
| 3 |
NYM |
1.08 |
1.86 |
1.86 |
3.78 |
22.6% |
+3 |
Watch |
| 4 |
ATL |
1.42 |
1.42 |
1.42 |
2.15 |
24.2% |
-1 |
Neutral |
| 5 |
SEA |
1.83 |
2.69 |
2.69 |
2.64 |
28.9% |
+5 |
Neutral |
| 6 |
NYY |
2.11 |
1.82 |
1.82 |
1.87 |
25.2% |
-2 |
Neutral |
| 7 |
TEX |
2.14 |
1.85 |
1.85 |
3.39 |
22.5% |
-2 |
Neutral |
| 8 |
LAA |
2.41 |
2.13 |
2.13 |
3.14 |
24.5% |
-1 |
Neutral |
| 9 |
ATH |
2.51 |
2.51 |
2.51 |
3.46 |
15.7% |
0 |
Neutral |
| 10 |
PIT |
2.65 |
3.90 |
3.90 |
4.62 |
31.3% |
+5 |
Neutral |
| 11 |
LAD |
2.74 |
2.38 |
2.38 |
3.00 |
23.0% |
-3 |
Watch |
| 12 |
CHC |
3.12 |
3.19 |
3.19 |
3.50 |
27.4% |
0 |
Neutral |
| 13 |
CIN |
3.19 |
3.87 |
3.87 |
4.21 |
26.1% |
+1 |
Neutral |
| 14 |
SF |
3.41 |
2.87 |
2.87 |
4.85 |
24.3% |
-3 |
Watch |
| 15 |
SD |
3.68 |
3.54 |
3.54 |
2.01 |
26.4% |
-2 |
Neutral |
| 16 |
STL |
3.68 |
5.21 |
5.21 |
3.24 |
15.8% |
+6 |
Neutral |
| 17 |
HOU |
3.91 |
4.29 |
4.29 |
5.19 |
37.5% |
+1 |
Neutral |
| 18 |
COL |
4.15 |
4.15 |
4.15 |
3.98 |
21.7% |
-1 |
Neutral |
| 19 |
CLE |
4.48 |
4.14 |
4.14 |
4.46 |
23.9% |
-3 |
Watch |
| 20 |
WSH |
5.14 |
4.45 |
4.45 |
7.24 |
12.8% |
-1 |
Neutral |
| 21 |
BAL |
5.17 |
5.11 |
5.11 |
4.20 |
30.2% |
0 |
Neutral |
| 22 |
BOS |
5.21 |
4.50 |
4.50 |
7.26 |
21.8% |
-2 |
Neutral |
| 23 |
MIN |
5.29 |
5.47 |
5.47 |
4.86 |
26.6% |
0 |
Neutral |
| 24 |
PHI |
6.09 |
6.46 |
6.46 |
2.57 |
22.8% |
+1 |
Neutral |
| 25 |
DET |
6.47 |
5.86 |
5.86 |
4.61 |
25.1% |
-1 |
Neutral |
| 26 |
TB |
6.51 |
9.18 |
9.18 |
6.05 |
19.3% |
+4 |
Watch |
| 27 |
TOR |
6.55 |
6.55 |
6.55 |
3.75 |
28.0% |
-1 |
Neutral |
| 28 |
CWS |
7.50 |
9.18 |
9.18 |
4.77 |
24.3% |
+1 |
Neutral |
| 29 |
ARI |
8.30 |
8.41 |
8.41 |
4.70 |
18.4% |
-2 |
Neutral |
| 30 |
KC |
9.00 |
9.00 |
9.00 |
7.15 |
21.3% |
-2 |
Neutral |
SP Rotation Rankings
7d · 14d · 28d ERA · FIP · K-BB% · row color = signal
📊 Sorted by FIP — better predictor of future ERA than ERA itself. High ERA + low FIP = ERA likely to drop.
📅 7d / 14d / 28d ERA — earned run average over each rolling window.
🔬 FIP — Strips out defense and luck. The core metric for SP valuation.
⚡ K-BB% — strikeouts minus walks per batter faced. Above 15% = strong. Below 8% = concern.
🚶 WHIP — Measures baserunner control and game flow impact.
📈 Mom. — momentum. 28d rank minus 7d rank. Positive = rotation outperforming season baseline recently.
🎯 Signal — Value = rotation trending up, opposing hitters may be overpriced. Fade = rotation trending down, avoid backing this staff. Watch = early signs of a trend — monitor before committing.
| # |
Team |
7d ERA |
14d |
28d |
FIP |
K-BB% |
WHIP |
Mom. |
Signal |
| 1 |
NYY |
0.66 |
0.54 |
0.54 |
1.37 |
25.6% |
0.74 |
0 |
Neutral |
| 2 |
TOR |
1.75 |
1.75 |
1.75 |
1.68 |
39.4% |
0.62 |
0 |
Neutral |
| 3 |
SEA |
3.06 |
3.33 |
3.33 |
2.42 |
22.5% |
0.91 |
0 |
Neutral |
| 4 |
PIT |
1.76 |
3.42 |
3.42 |
2.55 |
12.4% |
1.09 |
+1 |
Neutral |
| 5 |
NYM |
3.42 |
3.93 |
3.93 |
2.91 |
16.6% |
1.39 |
+5 |
Value |
| 6 |
SF |
2.82 |
3.90 |
3.90 |
2.94 |
16.0% |
1.13 |
-2 |
Neutral |
| 7 |
CHC |
2.27 |
3.73 |
3.73 |
3.03 |
17.6% |
0.90 |
0 |
Neutral |
| 8 |
MIA |
3.97 |
3.97 |
3.97 |
3.04 |
20.7% |
0.99 |
-2 |
Neutral |
| 9 |
TEX |
4.88 |
5.64 |
5.64 |
3.23 |
21.8% |
1.21 |
+6 |
Value |
| 10 |
CLE |
3.60 |
3.86 |
3.86 |
3.27 |
14.6% |
1.33 |
+14 |
Neutral |
| 11 |
LAD |
3.20 |
3.16 |
3.16 |
3.30 |
14.6% |
1.07 |
0 |
Neutral |
| 12 |
MIN |
4.25 |
3.46 |
3.46 |
3.44 |
11.8% |
1.37 |
-4 |
Watch |
| 13 |
TB |
3.71 |
3.41 |
3.41 |
3.55 |
15.4% |
0.90 |
+5 |
Value |
| 14 |
STL |
3.81 |
3.48 |
3.48 |
3.56 |
4.5% |
1.27 |
+7 |
Neutral |
| 15 |
COL |
3.16 |
3.16 |
3.16 |
3.57 |
10.8% |
1.33 |
-2 |
Neutral |
| 16 |
KC |
1.62 |
1.62 |
1.62 |
3.64 |
16.4% |
1.02 |
0 |
Neutral |
| 17 |
BAL |
4.88 |
3.77 |
3.77 |
3.68 |
10.3% |
1.46 |
-3 |
Watch |
| 18 |
ATL |
2.39 |
2.39 |
2.39 |
3.84 |
11.9% |
1.01 |
+2 |
Neutral |
| 19 |
LAA |
6.85 |
5.62 |
5.62 |
3.90 |
7.6% |
1.78 |
-2 |
Neutral |
| 20 |
PHI |
5.82 |
4.74 |
4.74 |
3.97 |
16.8% |
1.52 |
-11 |
Neutral |
| 21 |
ARI |
3.15 |
3.81 |
3.81 |
3.99 |
13.4% |
1.05 |
+5 |
Neutral |
| 22 |
DET |
3.33 |
2.73 |
2.73 |
4.06 |
9.4% |
1.33 |
-10 |
Fade |
| 23 |
SD |
2.74 |
4.50 |
4.50 |
4.10 |
14.3% |
1.26 |
-1 |
Neutral |
| 24 |
HOU |
5.50 |
4.78 |
4.78 |
4.13 |
13.3% |
1.35 |
-5 |
Fade |
| 25 |
CWS |
7.47 |
8.08 |
8.08 |
4.34 |
10.6% |
1.80 |
+2 |
Neutral |
| 26 |
WSH |
3.68 |
3.85 |
3.85 |
4.46 |
15.4% |
1.14 |
-1 |
Neutral |
| 27 |
BOS |
6.57 |
5.22 |
5.22 |
4.82 |
14.7% |
1.67 |
-4 |
Watch |
| 28 |
ATH |
6.02 |
6.02 |
6.02 |
5.67 |
0.8% |
1.67 |
+2 |
Neutral |
| 29 |
CIN |
5.53 |
4.44 |
4.44 |
5.72 |
12.4% |
1.31 |
-1 |
Neutral |
| 30 |
MIL |
5.02 |
4.45 |
4.45 |
6.19 |
19.8% |
1.33 |
-1 |
Neutral |
Team Batting Rankings
7d · 14d · 28d R/G · OPS · wRC+ · row color = signal
📊 Sorted by 7d R/G — runs per game over the last 7 days.
📅 7d / 14d / 28d R/G — runs per game over each rolling window.
💥 OPS — Captures both contact quality and power in one number.
🎯 wRC+ — park-adjusted runs created. 100 = league average. 110 = 10% above average.
📈 Mom. — momentum. 28d rank minus 7d rank. Positive = offense trending up.
🎯 Signal — Value = offense is heating up and likely underpriced by the market — look at their overs. Fade = offense is cooling — avoid their run totals. Watch = trending but not confirmed yet.
| # |
Team |
7d R/G |
14d |
28d |
OPS |
wRC+ |
Mom. |
Signal |
| 1 |
HOU |
7.50 |
6.43 |
6.43 |
0.725 |
147 |
+1 |
Neutral |
| 2 |
MIL |
6.20 |
7.50 |
7.50 |
0.897 |
120 |
-1 |
Neutral |
| 3 |
ATL |
5.86 |
5.86 |
5.86 |
0.831 |
134 |
+1 |
Neutral |
| 4 |
TEX |
5.80 |
5.33 |
5.33 |
0.707 |
112 |
+2 |
Neutral |
| 5 |
WSH |
5.60 |
6.33 |
6.33 |
0.792 |
114 |
-2 |
Neutral |
| 6 |
MIA |
5.50 |
5.50 |
5.50 |
0.762 |
128 |
-1 |
Neutral |
| 7 |
CHC |
5.20 |
5.00 |
5.00 |
0.702 |
99 |
0 |
Neutral |
| 8 |
MIN |
5.00 |
4.33 |
4.33 |
0.634 |
108 |
+5 |
Value |
| 9 |
BAL |
4.80 |
4.33 |
4.33 |
0.628 |
117 |
+3 |
Watch |
| 10 |
LAA |
4.67 |
4.43 |
4.43 |
0.814 |
98 |
+1 |
Neutral |
| 11 |
TB |
4.60 |
5.00 |
5.00 |
0.760 |
96 |
-3 |
Watch |
| 12 |
PIT |
4.40 |
4.83 |
4.83 |
0.697 |
104 |
-3 |
Watch |
| 13 |
ARI |
4.17 |
3.86 |
3.86 |
0.674 |
97 |
+4 |
Watch |
| 14 |
COL |
4.00 |
4.00 |
4.00 |
0.596 |
65 |
0 |
Neutral |
| 15 |
STL |
4.00 |
4.83 |
4.83 |
0.740 |
69 |
-5 |
Fade |
| 16 |
TOR |
3.86 |
3.86 |
3.86 |
0.762 |
121 |
+3 |
Watch |
| 17 |
KC |
3.83 |
3.83 |
3.83 |
0.565 |
94 |
+3 |
Watch |
| 18 |
SEA |
3.83 |
3.86 |
3.86 |
0.745 |
78 |
0 |
Neutral |
| 19 |
PHI |
3.60 |
3.83 |
3.83 |
0.611 |
75 |
+3 |
Watch |
| 20 |
SF |
3.50 |
3.00 |
3.00 |
0.471 |
90 |
+7 |
Neutral |
| 21 |
CIN |
3.40 |
2.83 |
2.83 |
0.616 |
87 |
+9 |
Neutral |
| 22 |
NYY |
3.40 |
4.00 |
4.00 |
0.662 |
73 |
-6 |
Fade |
| 23 |
SD |
3.40 |
3.17 |
3.17 |
0.541 |
73 |
+1 |
Neutral |
| 24 |
DET |
3.20 |
4.00 |
4.00 |
0.621 |
49 |
-9 |
Fade |
| 25 |
CWS |
3.17 |
3.00 |
3.00 |
0.668 |
75 |
+1 |
Neutral |
| 26 |
LAD |
3.00 |
3.83 |
3.83 |
0.730 |
82 |
-5 |
Fade |
| 27 |
ATH |
2.83 |
2.83 |
2.83 |
0.515 |
49 |
+1 |
Neutral |
| 28 |
BOS |
2.80 |
2.83 |
2.83 |
0.681 |
61 |
+1 |
Neutral |
| 29 |
CLE |
2.67 |
3.14 |
3.14 |
0.635 |
41 |
-4 |
Watch |
| 30 |
NYM |
2.33 |
3.57 |
3.57 |
0.710 |
54 |
-7 |
Fade |
Top Edge Signals
Signals extracted from rolling tables above. Data observations only — not betting recommendations.
Injury & Lineup Log
| Player |
Team |
Status |
Injury |
Impact |
| J.P. Crawford |
SEA |
10-day IL |
10-day IL — Seattle Mariners activated SS J |
Seattle Mariners activated SS J.P. Crawford from the 10-day injured list. |
| José Buttó |
SF |
10-day IL |
15-day IL — Right arm fatigue |
San Francisco Giants placed RHP José Buttó on the 15-day injured list. Right arm fatigue. |
| Jose Quintana |
COL |
10-day IL |
15-day IL — Right hamstring strain |
Colorado Rockies placed LHP Jose Quintana on the 15-day injured list retroactive to March 30, 2026. Right hamstring strain. |
| David Festa |
MIN |
60-day IL |
60-day IL — Right shoulder impingement |
Minnesota Twins transferred RHP David Festa from the 15-day injured list to the 60-day injured list. Right shoulder impingement. |
J.P. Crawford
SEA
10-day IL
Injury
10-day IL — Seattle Mariners activated SS J
Impact
Seattle Mariners activated SS J.P. Crawford from the 10-day injured list.
José Buttó
SF
10-day IL
Injury
15-day IL — Right arm fatigue
Impact
San Francisco Giants placed RHP José Buttó on the 15-day injured list. Right arm fatigue.
Jose Quintana
COL
10-day IL
Injury
15-day IL — Right hamstring strain
Impact
Colorado Rockies placed LHP Jose Quintana on the 15-day injured list retroactive to March 30, 2026. Right hamstring strain.
David Festa
MIN
60-day IL
Injury
60-day IL — Right shoulder impingement
Impact
Minnesota Twins transferred RHP David Festa from the 15-day injured list to the 60-day injured list. Right shoulder impingement.
Free Tool · mlb.up.railway.app
MLB Stats Tracker
The individual player layer behind this newsletter. Look up any batter or pitcher on today's slate with rolling performance windows and color-coded thresholds.
⚾ Batters — AVG / OBP / SLG / HR / K / RBI over last 7, 10, or 21 games with at least one at-bat
⚾ Pitchers — ERA / WHIP / K / BB over last 2, 3, or 4 starts
🔄 Cache refreshes at 6AM PT daily
Methodology
Rolling windows — 7, 14, and 28-day stats from completed games only. Postponed games excluded.
Momentum — rank_28d minus rank_7d. Positive = outperforming recent baseline. Negative = declining.
Schedule strength — avg opponent quality over window. Easy / Avg / Hard. Value on Hard schedule is stronger.
ERA-FIP gap — ERA minus FIP. Gap over 1.0 = ERA likely to regress down (unlucky). Under -1.0 = may regress up.
Signals — Value = momentum +5 or more on Avg/Hard. Fade = -5 or worse on Easy/Avg. Watch = divergence of 3–4.
V1 note: Straight rolling ERA with no leverage weighting. Leverage-weighted bullpen ERA planned for V2.
Compass publishes statistical analysis and data signals for informational purposes only. Nothing in this newsletter constitutes betting advice or a recommendation to wager. Sports betting involves significant financial risk — please gamble responsibly.