View archived editions: Click Here For All Editions →
MLB Recaps
Monday, April 20 10 games · full slate
Game Recaps
Atlanta Braves (ATL) @ Washington Nationals (WSH)
Nationals Park
ATL
9
WSH
4
ATL Starter
Bryce Elder
6.2 IP · 3 H · 3 ER · 6 K · 2 BB · 98 PC
ATL Batters
Drake Baldwin 2-4 (2 RBI, 1 BB)
Insight
Bryce Elder was really good again, going 6.2 innings and giving up just 3 runs. He has now shut opponents out twice in his last three starts, so he is quietly pitching well right now.
WSH Starter
Jake Irvin
5 IP · 3 H · 3 ER · 4 K · 0 BB · 68 PC
WSH Batters
Nothing Noteworthy
Insight
Jake Irvin gave up 3 runs in 5 innings and has now allowed 6 runs over his last two starts after a stretch where he looked solid. The Nationals dropped this one 9-4 despite their bullpen and starting pitching trending in the right direction lately.
Cincinnati Reds (CIN) @ Tampa Bay Rays (TB)
Tropicana Field
CIN
6
TB
1
CIN Starter
Rhett Lowder
6 IP · 5 H · 1 ER · 3 K · 2 BB · 93 PC
CIN Batters
Sal Stewart 2-4 (1 HR, 2 RBI)
Insight
Rhett Lowder bounced back with a strong outing, giving up just 1 run over 6 innings after two rough starts. Sal Stewart added a homer to help the Reds roll 6-1, and their offense and starting pitching have both been trending up lately.
TB Starter
Jesse Scholtens
5.2 IP · 7 H · 5 ER · 6 K · 0 BB · 95 PC
TB Batters
Chandler Simpson 2-5 (1 R)
Insight
Jesse Scholtens ran into trouble, giving up 5 runs on 7 hits in 5.2 innings as Tampa fell flat at home. The Rays could not get much going offensively and lost this one pretty comfortably.
Athletics (ATH) @ Seattle Mariners (SEA)
T-Mobile Park
ATH
6
SEA
4
ATH Starter
J.T. Ginn
5.1 IP · 6 H · 3 ER · 6 K · 1 BB · 92 PC
ATH Batters
Carlos Cortes 4-5 (1 HR, 1 RBI)
Lawrence Butler 2-4 (2 RBI)
Tyler Soderstrom 2-5 (1 R)
Insight
Carlos Cortes went 4-for-5 with a homer and Lawrence Butler drove in two more as Oakland's offense carried them to a 6-4 win. The A's offense has been trending up lately and it showed tonight.
SEA Starter
Emerson Hancock
5 IP · 7 H · 3 ER · 3 K · 0 BB · 85 PC
SEA Batters
Josh Naylor 3-4 (1 RBI)
Dominic Canzone 2-4 (1 HR, 1 RBI)
Julio Rodríguez 2-4 (1 R)
Insight
Seattle's pitching and bullpen have both been trending down a lot lately, and tonight did not help, as the Mariners gave up 6 runs and dropped this one at home. Dominic Canzone hit a solo shot but it was not enough.
St. Louis Cardinals (STL) @ Miami Marlins (MIA)
loanDepot park
STL
3
MIA
5
STL Starter
Michael McGreevy
5.2 IP · 5 H · 4 ER · 3 K · 2 BB · 80 PC
STL Batters
Masyn Winn 2-3 (1 RBI)
Insight
Michael McGreevy gave up 4 runs in 5.2 innings and St. Louis could not come back, falling 5-3. McGreevy has now allowed 3 or more runs in two of his last three starts after a strong stretch earlier.
MIA Starter
Max Meyer
5.1 IP · 3 H · 2 ER · 8 K · 2 BB · 91 PC
MIA Batters
Liam Hicks 2-4 (2 RBI)
Insight
Max Meyer was sharp, striking out 8 and giving up just 2 runs in 5.1 innings as Miami picked up a nice win. Miami's starting pitching has been trending up a lot lately and Meyer fits right into that story.
Toronto Blue Jays (TOR) @ Los Angeles Angels (LAA)
Angel Stadium
TOR
5
LAA
2
TOR Starter
Dylan Cease
5 IP · 5 H · 2 ER · 12 K · 2 BB · 110 PC
TOR Batters
Vladimir Guerrero Jr. 3-4 (1 HR, 2 RBI)
Eloy Jiménez 2-3
Insight
Dylan Cease punched out 12 batters and has given up a combined 2 runs over his last three starts, so he is dealing right now. Vladimir Guerrero Jr. added a homer to back him up as Toronto won 5-2.
LAA Starter
Reid Detmers
6 IP · 5 H · 4 ER · 5 K · 2 BB · 90 PC
LAA Batters
Nothing Noteworthy
Insight
Reid Detmers gave up 4 runs in 6 innings and the Angels could not get enough offense going, falling 5-2 at home. Detmers has been inconsistent lately, going from a shutout effort to a rough outing and back and forth.
Baltimore Orioles (BAL) @ Kansas City Royals (KC)
Kauffman Stadium
BAL
7
KC
5
BAL Starter
Kyle Bradish
5.1 IP · 10 H · 1 ER · 7 K · 3 BB · 104 PC
BAL Batters
Samuel Basallo 2-3 (2 RBI, 2 BB)
Insight
Baltimore won 7-5 even though Seth Lugo was dominant, which says a lot about how their bats came through late. Samuel Basallo had two RBI and two walks to lead the way for the Orioles.
KC Starter
Seth Lugo
7 IP · 1 H · 0 ER · 7 K · 4 BB · 93 PC
KC Batters
Maikel Garcia 3-6
Salvador Perez 3-6 (1 R)
Nick Loftin 2-2 (3 RBI, 1 BB)
Insight
Seth Lugo was absolutely filthy, giving up just 1 hit and no runs over 7 innings with 7 strikeouts, and it is his third straight really strong start. Kansas City still lost though, as the bullpen gave up the game after he left.
Los Angeles Dodgers (LAD) @ Colorado Rockies (COL)
Coors Field
LAD
12
COL
3
LAD Starter
Justin Wrobleski
7 IP · 8 H · 1 ER · 3 K · 0 BB · 97 PC
LAD Batters
Max Muncy 4-4 (2 HR, 2 RBI, 1 BB)
Dalton Rushing 2-5 (2 HR, 3 RBI)
Miguel Rojas 3-3 (1 HR, 2 RBI)
Insight
Max Muncy went 4-for-4 with two homers and Dalton Rushing added two more as the Dodgers absolutely demolished Colorado 12-3. Justin Wrobleski was solid again on the mound, giving up just 1 run over 7 innings in what has been a really strong stretch for him.
COL Starter
Jose Quintana
5 IP · 8 H · 4 ER · 1 K · 1 BB · 90 PC
COL Batters
Jordan Beck 3-4 (1 RBI)
Willi Castro 2-4
Brett Sullivan 2-4
Insight
Jose Quintana gave up 4 runs in 5 innings and the Rockies had no answer for the Dodgers bats, losing badly at home. Colorado's offense has been on the Watch list and they had no chance to keep up tonight.
Houston Astros (HOU) @ Cleveland Guardians (CLE)
Progressive Field
HOU
9
CLE
2
HOU Starter
Spencer Arrighetti
5 IP · 5 H · 2 ER · 3 K · 4 BB · 96 PC
HOU Batters
Isaac Paredes 3-5 (2 HR, 2 RBI)
Christian Walker 3-5 (1 HR, 2 RBI)
Carlos Correa 3-5 (2 RBI)
Insight
Isaac Paredes went 3-for-5 with two homers, Christian Walker added another, and Carlos Correa drove in two more as Houston put up 9 runs in a dominant win. The Astros have been trending up in both their rotation and bullpen lately, and their offense backed that up tonight.
CLE Starter
Slade Cecconi
5 IP · 10 H · 6 ER · 2 K · 2 BB · 94 PC
CLE Batters
Brayan Rocchio 3-3 (1 BB)
Rhys Hoskins 2-4 (1 RBI, 1 BB)
Insight
Slade Cecconi got roughed up, giving up 6 runs on 10 hits in just 5 innings after back-to-back solid starts. Cleveland's offense has been trending up recently but they could not do enough damage to keep pace, falling 9-2.
Philadelphia Phillies (PHI) @ Chicago Cubs (CHC)
Wrigley Field
PHI
1
CHC
5
PHI Starter
Aaron Nola
4.1 IP · 6 H · 5 ER · 5 K · 4 BB · 88 PC
PHI Batters
Nothing Noteworthy
Insight
Aaron Nola had a tough night, giving up 5 runs in 4.1 innings with 4 walks, and Philadelphia managed just 1 run in a 5-1 loss. The Phillies offense has been on the Watch list and it showed as they could barely get anything going.
CHC Starter
Colin Rea
6.2 IP · 6 H · 1 ER · 5 K · 2 BB · 92 PC
CHC Batters
Alex Bregman 2-4
Insight
Colin Rea was great, allowing just 1 run in 6.2 innings to back up a strong offensive effort from the Cubs. Chicago won 5-1 and Rea has now given up just 1 run in each of his last two starts.
Detroit Tigers (DET) @ Boston Red Sox (BOS)
Fenway Park
DET
6
BOS
8
DET Starter
Jack Flaherty
3.1 IP · 3 H · 0 ER · 3 K · 6 BB · 73 PC
DET Batters
Riley Greene 2-3 (2 RBI, 2 BB)
Hao-Yu Lee 2-4 (1 RBI)
Kevin McGonigle 2-5 (1 R)
Insight
Jack Flaherty only went 3.1 innings and walked 6 batters, which put Detroit in a big hole early they could never fully dig out of. The Tigers bullpen has been trending down lately and giving up that many free passes did not help.
BOS Starter
Sonny Gray
2.2 IP · 3 H · 1 ER · 2 K · 1 BB · 40 PC
BOS Batters
Carlos Narváez 2-3 (1 RBI, 1 BB)
Masataka Yoshida 2-4 (2 R, 1 BB)
Caleb Durbin 2-4 (1 R, 1 BB)
Insight
Sonny Gray left early after just 2.2 innings, but Boston's bullpen held things together and the offense came through in an 8-6 win. It was a messy game but the Red Sox got the job done at home.
Rolling Performance Tables
Bullpen Rankings
📊 Sorted by 7d ERA
📅 7d / 14d / 28d ERA — Rolling ERA.
🔬 FIP — If ERA > FIP then the bullpen should get better.
K% — Strikeout rate. Higher is better.
📈 Momentum — (28d - 7d). Positive = Good. Negative = Bad.
🎯 SignalValue = Target. Fade = Avoid. Watch = Mixed signals.
# Team 7d ERA 14d 28d FIP K% Mom. Signal
1 CIN 0.38 1.77 2.23 2.20 27.0% 0 Neutral
2 SF 0.85 2.03 3.54 2.44 30.8% +7 Value
3 ATL 1.90 4.08 2.73 2.62 26.8% -1 Neutral
4 ARI 1.99 2.79 4.44 2.66 21.4% +15 Value
5 SD 2.28 2.76 2.92 3.35 28.0% -2 Neutral
6 CHC 2.29 2.70 3.09 3.23 19.6% -1 Neutral
7 PIT 2.58 3.75 3.68 3.07 21.1% +4 Watch
8 COL 2.89 3.75 3.54 3.57 26.6% 0 Neutral
9 BAL 3.10 3.02 3.61 3.02 32.3% +1 Neutral
10 TB 3.47 4.02 5.28 4.94 21.0% +15 Value
11 HOU 3.51 5.00 5.67 4.56 23.2% +17 Value
12 WSH 3.51 5.09 5.57 3.44 18.3% +15 Value
13 LAA 3.93 6.04 4.53 3.67 20.9% +8 Value
14 BOS 4.06 3.39 3.78 3.71 18.2% -1 Neutral
15 PHI 4.06 3.58 3.84 4.78 23.1% 0 Neutral
16 TEX 4.33 3.97 2.92 4.11 24.1% -12 Fade
17 MIN 4.59 5.73 5.06 2.46 20.3% +7 Value
18 ATH 4.82 4.12 4.50 4.67 22.8% +2 Neutral
19 DET 5.09 3.52 3.80 3.48 19.0% -5 Fade
20 MIL 5.21 5.43 3.92 3.42 18.7% -4 Watch
21 TOR 5.31 3.16 4.95 4.56 20.8% +1 Neutral
22 NYY 5.38 4.79 4.11 6.20 16.4% -4 Watch
23 STL 5.65 4.67 5.36 4.58 19.2% +3 Watch
24 MIA 5.83 3.95 3.46 3.61 25.6% -17 Neutral
25 CLE 6.28 6.01 4.99 4.22 28.7% -2 Neutral
26 CWS 6.43 5.59 5.91 4.85 18.2% +3 Watch
27 NYM 6.70 5.34 3.69 6.19 15.8% -15 Neutral
28 LAD 6.78 5.41 4.07 2.89 29.8% -11 Neutral
29 SEA 6.96 4.58 3.37 2.69 19.2% -23 Fade
30 KC 8.59 6.54 6.72 6.28 20.9% 0 Neutral

SP Rotation Rankings
📊 Sorted by FIP — High ERA + low FIP = ERA likely to drop.
📅 7d / 14d / 28d ERA — Rolling ERA.
🔬 FIP — Strips out defense and luck. Future predictor for ERA.
K-BB% — If > 15% = Good. < 8% = Bad.
🚶 WHIP — Measures baserunner control and game flow impact.
📈 Momentum — (28d - 7d). Positive = Good. Negative = Bad.
🎯 SignalValue = Target. Fade = Avoid. Watch = Mixed signals.
# Team 7d ERA 14d 28d FIP K-BB% WHIP Mom. Signal
1 MIN 2.67 3.07 3.41 2.18 20.0% 1.12 0 Neutral
2 TOR 2.59 5.25 4.28 2.47 15.8% 1.18 +5 Value
3 PIT 3.25 2.34 2.81 2.59 15.0% 1.08 +1 Neutral
4 DET 1.76 2.77 3.20 2.64 14.6% 1.00 -2 Neutral
5 SD 3.98 3.29 3.75 2.73 14.9% 1.33 +1 Neutral
6 LAD 2.17 2.33 3.06 2.75 16.2% 0.96 +4 Watch
7 MIL 2.00 3.02 3.39 2.82 15.8% 0.86 +6 Value
8 LAA 2.51 3.97 3.90 2.90 19.5% 1.04 +1 Neutral
9 ATL 2.31 2.45 2.72 3.21 16.3% 1.03 +6 Neutral
10 MIA 3.74 4.33 4.43 3.29 12.0% 1.25 +11 Value
11 CHC 2.01 3.69 3.52 3.32 15.7% 1.05 +3 Watch
12 CIN 2.65 5.16 4.19 3.59 2.4% 1.16 +12 Value
13 HOU 5.71 7.41 6.20 3.89 14.7% 1.51 +10 Value
14 SEA 3.05 3.61 3.31 4.04 13.6% 1.28 -9 Fade
15 WSH 6.84 5.84 5.98 4.22 18.1% 1.64 +13 Value
16 CLE 3.32 3.78 3.46 4.33 13.4% 1.23 +1 Neutral
17 BAL 4.97 4.09 4.19 4.47 12.0% 1.60 -1 Neutral
18 PHI 8.18 6.44 5.48 4.53 12.5% 2.03 -10 Neutral
19 TB 5.46 4.91 4.00 4.57 10.6% 1.50 -7 Neutral
20 ARI 6.95 4.65 4.02 4.65 5.4% 1.80 +2 Neutral
21 NYM 4.70 5.47 4.33 4.80 11.7% 1.09 -10 Neutral
22 NYY 4.04 3.77 2.99 4.81 23.1% 1.01 -19 Fade
23 TEX 4.33 3.64 4.04 4.92 5.8% 1.72 -4 Watch
24 BOS 4.85 4.57 4.93 5.12 11.0% 1.28 +1 Neutral
25 CWS 3.91 2.73 3.91 5.24 3.5% 1.12 -5 Fade
26 STL 3.30 4.38 4.55 5.24 11.3% 1.07 +1 Neutral
27 KC 4.65 3.77 3.45 5.61 5.4% 1.32 -1 Neutral
28 ATH 6.10 4.46 5.02 5.86 9.6% 1.52 +1 Neutral
29 SF 5.78 4.37 4.52 6.19 11.0% 1.47 -11 Fade
30 COL 7.05 5.60 5.48 6.27 6.1% 1.90 0 Neutral

Team Batting Rankings
📊 Sorted by 7d R/G
📅 7d / 14d / 28d R/G — Runs per game over each rolling window.
💥 OPS — If > .800 = Good. If < .670 = Bad
🎯 wRC+ — Measures offense against the league average. 100 = league average. 110 = 10% above average.
📈 Momentum — 28d rank - 7d rank. Positive = Trending up.
🎯 SignalValue = Hot. Fade = Cold. Watch = Neutral.
# Team 7d R/G 14d 28d OPS wRC+ Mom. Signal
1 CHC 7.33 6.33 5.09 0.735 148 +5 Neutral
2 LAD 6.33 5.42 6.05 0.857 157 -1 Neutral
3 ATL 6.17 6.67 5.70 0.792 121 -1 Neutral
4 STL 6.17 5.00 4.82 0.702 104 +7 Value
5 NYY 5.67 4.85 5.00 0.703 126 +3 Watch
6 ARI 5.60 5.33 4.50 0.688 116 +8 Value
7 CWS 5.50 3.83 3.50 0.618 135 +19 Value
8 PIT 5.17 5.67 5.14 0.736 122 -3 Watch
9 HOU 5.00 4.08 5.42 0.789 104 -5 Neutral
10 LAA 4.86 5.38 4.88 0.734 126 0 Neutral
11 TB 4.86 4.42 4.73 0.722 105 +1 Neutral
12 ATH 4.71 4.07 4.22 0.670 118 +6 Value
13 TOR 4.43 4.33 3.82 0.691 99 +10 Value
14 WSH 4.43 4.69 5.43 0.748 68 -11 Neutral
15 MIL 4.33 3.45 4.95 0.719 91 -6 Fade
16 CIN 4.29 4.31 3.65 0.629 69 +9 Value
17 CLE 4.29 4.85 3.79 0.695 98 +7 Value
18 DET 4.29 4.23 4.35 0.698 102 -2 Neutral
19 MIA 4.17 4.31 4.57 0.726 93 -6 Neutral
20 TEX 4.17 4.50 4.18 0.701 98 -1 Neutral
21 BAL 4.14 4.77 4.26 0.708 64 -4 Watch
22 MIN 4.00 5.58 5.09 0.724 97 -15 Fade
23 SF 4.00 4.09 3.41 0.649 98 +5 Value
24 COL 3.86 4.08 4.00 0.686 93 -3 Watch
25 SD 3.67 4.92 4.36 0.694 82 -10 Fade
26 SEA 3.57 4.31 3.92 0.657 102 -4 Watch
27 BOS 3.50 4.42 4.05 0.661 71 -7 Fade
28 KC 3.14 2.62 2.96 0.640 73 +2 Neutral
29 NYM 2.00 1.92 3.27 0.626 61 0 Neutral
30 PHI 1.67 2.83 3.45 0.678 46 -3 Watch

Table Insights
Extracted from rolling tables above.
Strongest
SEA Fade
FADE: Seattle's bullpen has been a mess over the last week, allowing nearly 7 runs per 9 innings — one of the worst marks in baseball. The relievers have been giving up a lot of baserunners and can't seem to hold leads. Avoid backing Seattle in close games where the bullpen is likely to be involved.
DET Fade
FADE: Detroit's bullpen has been decent over the last two weeks, but this past week they've started to slip even against easier competition. The momentum is trending in the wrong direction for their relievers. Fade Detroit in games that figure to be decided late by the bullpen.
HOU Value
VALUE: Houston's bullpen has been quietly solid this week, posting a 3.51 ERA while striking out batters at a strong clip. They're getting outs when it matters and keeping baserunners off the bases. Back Houston in games where the bullpen is likely to play a big role.
MIN Value
VALUE: Minnesota's bullpen has been allowing fewer runs than you'd expect based on how well they're actually pitching — the last week shows a 4.59 ERA, but the true performance looks much cleaner. Things have been trending in the right direction with positive momentum building. Back Minnesota in games where the bullpen gets called on.
HOU Value
VALUE: Houston's starters have had a rough stretch on paper, but the numbers suggest they've been a bit unlucky — they're pitching better than the runs they're giving up indicate. They're facing a tough schedule, which makes the perception even worse than reality. Back Houston's starters when the matchup looks reasonable this week.
WSH Value
VALUE: Washington's starters have looked rough lately, but the data suggests they've been pitching better than the results show — bad luck has played a role in the high run totals. They've also been facing a tough schedule, which makes their numbers look worse than they are. Keep an eye on Washington starters as a potential value play.
CIN Value
VALUE: Cincinnati's starters have been sharp this past week, posting a 2.65 ERA and keeping runners off base consistently. They've actually been pitching better than their numbers suggest they should be, which is a good sign for sustainability. Back Reds starters while this hot stretch continues.
CWS Fade
FADE: Chicago's starters look decent on the surface with a 3.91 ERA this week, but the underlying pitching has been shakier than that number shows — they've been getting a bit lucky. The momentum is also trending downward. Fade White Sox starters before that luck runs out.
ARI Value
VALUE: Arizona's offense has been one of the better lineups in baseball lately, scoring 5.6 runs per game and ranking inside the top 10 over the last week and two weeks. They're hitting well above league average as a group right now. Back Arizona when they're at home or facing a shaky starter.
CIN Value
VALUE: Cincinnati's offense has been below average lately, scoring just over 4 runs a game and ranking in the bottom half of the league. However, the momentum is moving in a positive direction, suggesting the bats may be starting to wake up. Watch the Reds offense over the next week to see if this trend continues.

Injury & Lineup Log
Player Team Status Injury Impact
Michael Grove TB 60-day IL 60-day IL — Right shoulder surgery Tampa Bay Rays transferred RHP Michael Grove from the 15-day injured list to the 60-day injured list. Right shoulder surgery.
Brendan Donovan SEA 10-day IL 10-day IL — Left groin muscle strain Seattle Mariners placed 2B Brendan Donovan on the 10-day injured list retroactive to April 18, 2026. Left groin muscle strain.
Mick Abel MIN 10-day IL 15-day IL — Right elbow inflammation Minnesota Twins placed RHP Mick Abel on the 15-day injured list retroactive to April 17, 2026. Right elbow inflammation.
Nick Allen HOU 10-day IL 10-day IL — Mid-back spasms Houston Astros placed SS Nick Allen on the 10-day injured list retroactive to April 19, 2026. Mid-back spasms.
Cristian Javier HOU 60-day IL 60-day IL — Grade two right shoulder strain Houston Astros transferred RHP Cristian Javier from the 15-day injured list to the 60-day injured list. Grade two right shoulder strain.
Edwin Díaz LAD 10-day IL 15-day IL — Right elbow loose bodies Los Angeles Dodgers placed RHP Edwin Díaz on the 15-day injured list. Right elbow loose bodies.
Mason Englert TB 10-day IL 15-day IL — Right forearm tightness Tampa Bay Rays placed RHP Mason Englert on the 15-day injured list. Right forearm tightness.
Miles Mastrobuoni SEA 60-day IL 60-day IL — Right calf strain Seattle Mariners placed 3B Miles Mastrobuoni on the 60-day injured list. Right calf strain.
Jonathan India KC 10-day IL 10-day IL — Left shoulder subluxation Kansas City Royals placed 2B Jonathan India on the 10-day injured list retroactive to April 19, 2026. Left shoulder subluxation.
Activated from IL
MIA: Maximo Acosta — activated from IL

Free Tool · mlb.up.railway.app
MLB Stats Tracker
Look up any batter or pitcher on today's slate with rolling performance windows and color-coded data points.
Batters — AVG/OBP/SLG/HR/K/RBI over last 7/10/21 games
Pitchers — ERA/WHIP/K/BB over last 2/3/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 - rank_7d. Positive = outperforming recent baseline. Negative = declining.
Schedule strength — 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.
Straight rolling ERA with no leverage weighting.
Compass publishes statistical analysis and insights for informational purposes only. Nothing in this newsletter constitutes betting advice.