MLB: What to watch on July 23, 2026
Here are today's MLB games, ordered by watchability, based on how interesting the teams and starting pitchers look. Higher is better. For more information, read this post.
| Score | Time (PT) | Visitors | Score | Home | Score | Starter (V) | Score | Starter (H) | Score |
|---|---|---|---|---|---|---|---|---|---|
| 14.0 | 10:10a | Minnesota Twins | 2.4 | Cleveland Guardians | 7.7 | Taj Bradley | 6.9 | Gavin Williams | 11.1 |
| 13.9 | 9:15a | San Diego Padres | 9.4 | Atlanta Braves | 6.8 | Kyle Hart | 3.0 | Chris Sale | 8.5 |
| 10.2 | 3:40p | Kansas City Royals | 2.8 | Detroit Tigers | 4.8 | Randy Dobnak | No data | Troy Melton | 7.9 |
| 9.7 | 2:15p | Arizona Diamondbacks | 5.0 | St. Louis Cardinals | 6.2 | Brandon Pfaadt | 4.1 | Michael McGreevy | 4.2 |
| 6.1 | 12:07p | Tampa Bay Rays | 4.7 | Toronto Blue Jays | 2.2 | Casey Legumina | 3.4 | Shane Bieber | 2.0 |
Notes:
- Pitcher 'no data': Pitchers only have a pNERD score once they've started at least one game and have at least 20 innings pitched. I also show 'no data' when I can't correctly link a starting pitcher with their stats.
- Generated by the mlb-watchability project on GitHub.
Detail
Minnesota Twins @ Cleveland Guardians, 10:10a
Summary
Cleveland's had this Twins series circled all week, and the last game of a four-game set arrives with the Guardians already up 2-1 and both starters carrying real swing-and-miss stuff. Gavin Williams headlines the day: his 11.10 pNERD is comfortably above today's average and sits in rare territory historically, powered by a strong xFIP (74, well better than league average) and elite strikeout/whiff numbers. Williams owns a 2.39 xFIP over the last 30 days, which does not align with his 4.70 ERA, and this looks like a good matchup for the numbers to finally catch up. That underperformance shows up in his positive luck component, suggesting better results than his ERA lately would indicate. Taj Bradley isn't chopped liver either, with a 6.87 pNERD boosted by mid-90s-plus velocity, though Bradley holds a clear edge against this specific opponent, owning a 1.54 ERA in four career starts versus the Guardians, including a 10-strikeout outing over seven innings on July 7. On the team side, Cleveland's 7.73 tNERD (aided by a young, inexpensive roster and a strong bullpen) dwarfs Minnesota's underwhelming 2.37, and Cleveland has outscored Minnesota 28-12 across the first three games of this series. With a gNERD of 14.03 - well above both the historical and today's averages - this is one of the more watchable matchups on the board, thanks almost entirely to the pitching.
(A model from Anthropic generated the above text using instructions, the NERD scores, and these sources: 1, 2, 3, 4, 5, 6, 7, 8, 9.)
Recommended broadcasts: TV, Minnesota Twins (2.30); radio, Cleveland Guardians (3.14)
Minnesota Twins
| Batting | Barrel% | BaseR | Fielding | Bullpen | Payroll | Age | Luck | TV | Radio | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 20.2 | 8.3% | -7.2 | -20.2 | 0.4 | $122.1M | 28.9 | -12.0 | 2.30 | 2.06 | — | — |
| Z-score | 0.70 | 0.37 | -1.59 | -1.26 | -0.84 | -0.92 | -0.06 | -0.68 | -0.17 | -0.69 | — | — |
| tNERD | 0.70 | 0.37 | -1.59 | -1.26 | -0.84 | 0.92 | 0.06 | 0.00 | 0.00 | 0.00 | 4.00 | 2.37 |
Cleveland Guardians
| Batting | Barrel% | BaseR | Fielding | Bullpen | Payroll | Age | Luck | TV | Radio | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | -22.0 | 6.3% | 4.4 | 8.1 | 33.6 | $88.9M | 27.6 | 9.0 | 2.16 | 3.14 | — | — |
| Z-score | -0.69 | -1.65 | 0.89 | 0.52 | 0.70 | -1.30 | -1.35 | 0.51 | -0.44 | 1.60 | — | — |
| tNERD | -0.69 | -1.65 | 0.89 | 0.52 | 0.70 | 1.30 | 1.35 | 0.51 | 0.00 | 0.80 | 4.00 | 7.73 |
Taj Bradley, Minnesota Twins
| xFIP- | SwStr% | Strike% | Velocity | Age | Pace | Luck | KN% | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 93 | 11.5% | 63.0% | 97.0 mph | 25 | 19.2s | -2 | 0.0% | — | — |
| Z-score | -0.41 | 0.42 | -0.34 | 1.29 | -0.99 | 0.16 | — | — | — | — |
| pNERD | 0.82 | 0.21 | -0.17 | 1.29 | 0.99 | -0.08 | 0.00 | 0.00 | 3.80 | 6.87 |
Gavin Williams, Cleveland Guardians
| xFIP- | SwStr% | Strike% | Velocity | Age | Pace | Luck | KN% | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 74 | 13.4% | 66.9% | 96.9 mph | 26 | 18.9s | 22 | 0.0% | — | — |
| Z-score | -1.49 | 1.33 | 1.24 | 1.25 | -0.73 | -0.09 | — | — | — | — |
| pNERD | 2.99 | 0.66 | 0.62 | 1.25 | 0.73 | 0.05 | 1.00 | 0.00 | 3.80 | 11.10 |
San Diego Padres @ Atlanta Braves, 9:15a
Summary
Chris Sale is must-watch even in a summer where Atlanta's rotation has been anything but reliable, and this game grades out near the top of the day's slate. The Padres and Braves clash with a gNERD of 13.89, comfortably above both the historic average (10.11) and today's average (10.80), driven largely by a lopsided pitching matchup and two above-average lineups.
Sale is the story here. At 37, he's posting a stellar 74 xFIP-, and his pNERD of 8.51 ranks well above the 95th percentile line historically. He twirled a gem in his last time out with seven shutout innings against the Texas Rangers, throwing 89 pitches and striking out six — and recorded career strikeout #2,700 in the process. He's looking to make his third straight appearance with no earned runs allowed. Kyle Hart, by contrast, grades as a modest 3.04 pNERD, with a lagging swinging-strike rate and slow pace working against him, though a positive luck figure suggests his results have been worse than his peripherals. On the offensive side, the Padres bring a strong 9.43 tNERD built on solid bullpen, fielding, and baserunning value, while Atlanta's own bullpen strength (6.78 tNERD) and reemerging offense make this a well-rounded, above-average watch.
(A model from Anthropic generated the above text using instructions, the NERD scores, and these sources: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.)
Recommended broadcasts: TV, San Diego Padres (3.47); radio, San Diego Padres (3.37)
San Diego Padres
| Batting | Barrel% | BaseR | Fielding | Bullpen | Payroll | Age | Luck | TV | Radio | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | -29.4 | 8.4% | 6.0 | 17.8 | 49.3 | $255.5M | 29.9 | -10.0 | 3.47 | 3.37 | — | — |
| Z-score | -0.93 | 0.47 | 1.23 | 1.13 | 1.43 | 0.60 | 0.85 | -0.57 | 2.12 | 2.09 | — | — |
| tNERD | -0.93 | 0.47 | 1.23 | 1.13 | 1.43 | 0.00 | 0.00 | 0.00 | 1.06 | 1.04 | 4.00 | 9.43 |
Atlanta Braves
| Batting | Barrel% | BaseR | Fielding | Bullpen | Payroll | Age | Luck | TV | Radio | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 3.0 | 8.9% | 0.0 | 9.3 | 42.7 | $249.8M | 30.5 | -33.0 | 2.36 | 2.36 | — | — |
| Z-score | 0.13 | 0.98 | -0.05 | 0.60 | 1.13 | 0.54 | 1.36 | -1.87 | -0.05 | -0.06 | — | — |
| tNERD | 0.13 | 0.98 | -0.05 | 0.60 | 1.13 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 4.00 | 6.78 |
Kyle Hart, San Diego Padres
| xFIP- | SwStr% | Strike% | Velocity | Age | Pace | Luck | KN% | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 101 | 7.8% | 64.0% | 93.9 mph | 33 | 21.5s | 38 | 0.0% | — | — |
| Z-score | 0.05 | -1.33 | 0.06 | -0.12 | 1.11 | 2.06 | — | — | — | — |
| pNERD | -0.09 | -0.67 | 0.03 | 0.00 | 0.00 | -1.03 | 1.00 | 0.00 | 3.80 | 3.04 |
Chris Sale, Atlanta Braves
| xFIP- | SwStr% | Strike% | Velocity | Age | Pace | Luck | KN% | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 74 | 13.5% | 67.6% | 96.0 mph | 37 | 20.4s | -26 | 0.0% | — | — |
| Z-score | -1.49 | 1.38 | 1.55 | 0.84 | 2.17 | 1.15 | — | — | — | — |
| pNERD | 2.99 | 0.69 | 0.77 | 0.84 | 0.00 | -0.57 | 0.00 | 0.00 | 3.80 | 8.51 |
Kansas City Royals @ Detroit Tigers, 3:40p
Summary
Melton's on a roll, Dobnak's ERA is lying to you, and this is a Comerica Park pitchers' park special that's more watchable for the arms than the lineups. Troy Melton, the sport's most under-the-radar strikeout artist of the moment, carries a genuinely strong pNERD of 7.89, boosted by mid-90s velocity, a quick pace, and youth on his side.
Melton is genuinely hot, allowing one earned run in 17 1/3 innings with 25 strikeouts across three July starts. His xFIP- backs it up — this isn't just a hot streak, it's real stuff. Dobnak, on the other hand, gets a pNERD of 0 simply because we lack the data to grade him properly; he's making his fourth appearance of the season and second start since being called up from Triple-A, and early returns (a shiny ERA propped up by sequencing luck, not process) suggest regression looms.
Team-wise, neither club brings much thump — Detroit's tNERD of 4.78 and Kansas City's 2.81 both sit below average, dragged down by a genuinely brutal Royals bullpen (their bullpen-runs component is one of the worst you'll see). Both teams carry modest positive luck, meaning slight over-performance may be more sustainable than usual, but nothing dramatic. With a gNERD of 10.24, this lands almost exactly at today's slate average — watch it for Melton's arm, not for the lineups.
(A model from Anthropic generated the above text using instructions, the NERD scores, and these sources: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.)
Recommended broadcasts: TV, Detroit Tigers (2.74); radio, Detroit Tigers (2.64)
Kansas City Royals
| Batting | Barrel% | BaseR | Fielding | Bullpen | Payroll | Age | Luck | TV | Radio | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | -17.3 | 8.2% | -0.1 | 7.6 | -33.0 | $184.5M | 29.7 | 15.0 | 2.11 | 2.22 | — | — |
| Z-score | -0.53 | 0.27 | -0.07 | 0.49 | -2.40 | -0.21 | 0.62 | 0.85 | -0.54 | -0.36 | — | — |
| tNERD | -0.53 | 0.27 | -0.07 | 0.49 | -2.40 | 0.21 | 0.00 | 0.85 | 0.00 | 0.00 | 4.00 | 2.81 |
Detroit Tigers
| Batting | Barrel% | BaseR | Fielding | Bullpen | Payroll | Age | Luck | TV | Radio | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | -6.9 | 9.0% | -2.1 | -11.0 | 13.9 | $239.2M | 29.6 | 12.0 | 2.74 | 2.64 | — | — |
| Z-score | -0.19 | 1.08 | -0.50 | -0.68 | -0.21 | 0.42 | 0.58 | 0.68 | 0.69 | 0.54 | — | — |
| tNERD | -0.19 | 1.08 | -0.50 | -0.68 | -0.21 | 0.00 | 0.00 | 0.68 | 0.34 | 0.27 | 4.00 | 4.78 |
Randy Dobnak, Kansas City Royals
No detailed stats available
Troy Melton, Detroit Tigers
| xFIP- | SwStr% | Strike% | Velocity | Age | Pace | Luck | KN% | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 90 | 11.6% | 64.0% | 96.2 mph | 25 | 17.2s | -47 | 0.0% | — | — |
| Z-score | -0.58 | 0.47 | 0.05 | 0.93 | -0.99 | -1.50 | — | — | — | — |
| pNERD | 1.16 | 0.24 | 0.02 | 0.93 | 0.99 | 0.75 | 0.00 | 0.00 | 3.80 | 7.89 |
Arizona Diamondbacks @ St. Louis Cardinals, 2:15p
Summary
A middling matchup elevated slightly by a genuine surprise: Michael McGreevy, armed with a 4-7 record that badly undersells him. The Cardinals' righty carries a 2.92 ERA and a sparkling 1.10 WHIP across 19 starts, and he's been especially tough at home. Opposite him, Brandon Pfaadt has quietly rounded into form, allowing two or fewer earned runs in eight consecutive starts made in 2026, though his road splits are shakier. Neither pitcher's peripherals scream must-watch — both sit at modest pNERD marks (4.10 and 4.15), with unremarkable swinging-strike rates dragging down otherwise fine strikeout profiles. The real intrigue is recent form: Arizona has won four of the team's last five games, including an 8–7 victory over the St. Louis Cardinals three days ago, while St. Louis has been stumbling. Cardinals' tNERD (6.16) benefits mostly from a young, cost-controlled roster rather than offensive punch; Arizona's (5.04) leans on strong glovework. With a gNERD of 9.72 — right around the historic middle and below today's slate average — this is a watchable-but-skippable afternoon unless McGreevy's breakout catches your eye.
(A model from Anthropic generated the above text using instructions, the NERD scores, and these sources: 1, 2, 3, 4, 5, 6, 7.)
Recommended broadcasts: TV, Arizona Diamondbacks (2.19); radio, St. Louis Cardinals (2.15)
Arizona Diamondbacks
| Batting | Barrel% | BaseR | Fielding | Bullpen | Payroll | Age | Luck | TV | Radio | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | -34.3 | 7.1% | 4.1 | 29.5 | 24.5 | $231.6M | 30.2 | -24.0 | 2.19 | 1.92 | — | — |
| Z-score | -1.09 | -0.84 | 0.82 | 1.87 | 0.28 | 0.33 | 1.08 | -1.36 | -0.39 | -0.99 | — | — |
| tNERD | -1.09 | -0.84 | 0.82 | 1.87 | 0.28 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 4.00 | 5.04 |
St. Louis Cardinals
| Batting | Barrel% | BaseR | Fielding | Bullpen | Payroll | Age | Luck | TV | Radio | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | -20.6 | 7.5% | 1.0 | 11.6 | 4.4 | $111.2M | 26.9 | -16.0 | 2.17 | 2.15 | — | — |
| Z-score | -0.64 | -0.44 | 0.16 | 0.74 | -0.66 | -1.05 | -1.94 | -0.91 | -0.43 | -0.50 | — | — |
| tNERD | -0.64 | -0.44 | 0.16 | 0.74 | -0.66 | 1.05 | 1.94 | 0.00 | 0.00 | 0.00 | 4.00 | 6.16 |
Brandon Pfaadt, Arizona Diamondbacks
| xFIP- | SwStr% | Strike% | Velocity | Age | Pace | Luck | KN% | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 102 | 9.4% | 65.0% | 93.2 mph | 27 | 19.4s | 5 | 0.0% | — | — |
| Z-score | 0.10 | -0.57 | 0.48 | -0.44 | -0.47 | 0.32 | — | — | — | — |
| pNERD | -0.21 | -0.29 | 0.24 | 0.00 | 0.47 | -0.16 | 0.25 | 0.00 | 3.80 | 4.10 |
Michael McGreevy, St. Louis Cardinals
| xFIP- | SwStr% | Strike% | Velocity | Age | Pace | Luck | KN% | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 95 | 7.7% | 62.2% | 91.3 mph | 25 | 19.5s | -25 | 0.0% | — | — |
| Z-score | -0.30 | -1.38 | -0.68 | -1.31 | -0.99 | 0.40 | — | — | — | — |
| pNERD | 0.59 | -0.69 | -0.34 | 0.00 | 0.99 | -0.20 | 0.00 | 0.00 | 3.80 | 4.15 |
Tampa Bay Rays @ Toronto Blue Jays, 12:07p
Summary
A bottom-of-the-barrel gNERD score suggests this is one to skip unless you're a Rays or Jays completist. At 6.10, this game sits well below both the historic average (10.11) and today's slate average (10.80), and the pitching matchup does it no favors. Shane Bieber, the 2020 Cy Young winner, is still working his way back into form after missing significant time and has made only five starts this season, though he did toss six scoreless innings with six strikeouts against the White Sox on July 18. His 1.99 pNERD reflects an xFIP- still north of league average. Casey Legumina, meanwhile, is a journeyman who was designated for assignment by the Mariners before being traded to the Tampa Bay Rays in April — his 3.38 pNERD isn't much better. Team-wise, Tampa's respectable batting runs and positive luck (suggesting they've actually underperformed and could get better) push their tNERD to 4.66, but Toronto's brutal batting line drags the Jays to a paltry 2.17, among today's lowest. Toronto is also nursing a four-game skid and has lost the season series 8-1. Unless you like watching regression happen slowly, look elsewhere.
(A model from Anthropic generated the above text using instructions, the NERD scores, and these sources: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.)
Recommended broadcasts: TV, Toronto Blue Jays (3.10); radio, Toronto Blue Jays (2.39)
Tampa Bay Rays
| Batting | Barrel% | BaseR | Fielding | Bullpen | Payroll | Age | Luck | TV | Radio | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 27.3 | 5.7% | 3.0 | -10.2 | 10.5 | $106.9M | 29.1 | 23.0 | 2.27 | 2.10 | — | — |
| Z-score | 0.93 | -2.25 | 0.59 | -0.63 | -0.37 | -1.10 | 0.07 | 1.30 | -0.23 | -0.61 | — | — |
| tNERD | 0.93 | -2.25 | 0.59 | -0.63 | -0.37 | 1.10 | 0.00 | 1.30 | 0.00 | 0.00 | 4.00 | 4.66 |
Toronto Blue Jays
| Batting | Barrel% | BaseR | Fielding | Bullpen | Payroll | Age | Luck | TV | Radio | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | -44.7 | 6.3% | -4.5 | 14.0 | 32.9 | $306.1M | 30.1 | -5.0 | 3.10 | 2.39 | — | — |
| Z-score | -1.43 | -1.65 | -1.01 | 0.90 | 0.67 | 1.18 | 0.99 | -0.29 | 1.40 | 0.01 | — | — |
| tNERD | -1.43 | -1.65 | -1.01 | 0.90 | 0.67 | 0.00 | 0.00 | 0.00 | 0.70 | 0.00 | 4.00 | 2.17 |
Casey Legumina, Tampa Bay Rays
| xFIP- | SwStr% | Strike% | Velocity | Age | Pace | Luck | KN% | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 113 | 9.5% | 66.6% | 93.4 mph | 29 | 17.2s | -18 | 0.0% | — | — |
| Z-score | 0.73 | -0.53 | 1.11 | -0.35 | 0.06 | -1.50 | — | — | — | — |
| pNERD | -1.46 | -0.26 | 0.55 | 0.00 | 0.00 | 0.75 | 0.00 | 0.00 | 3.80 | 3.38 |
Shane Bieber, Toronto Blue Jays
| xFIP- | SwStr% | Strike% | Velocity | Age | Pace | Luck | KN% | C | Total | |
|---|---|---|---|---|---|---|---|---|---|---|
| Raw stat | 119 | 10.4% | 61.0% | 92.3 mph | 31 | 18.7s | 17 | 0.0% | — | — |
| Z-score | 1.07 | -0.10 | -1.18 | -0.86 | 0.59 | -0.26 | — | — | — | — |
| pNERD | -2.15 | -0.05 | -0.59 | 0.00 | 0.00 | 0.13 | 0.85 | 0.00 | 3.80 | 1.99 |
- ← Previous
MLB: What to watch on July 22, 2026