Andrew's Musings

How to choose which baseball game to watch

If you like to watch or listen to baseball, and not just your home team, how do you choose from the as many as 15 games that happen most days? You could always look at a list of pitchers and teams and try to remember off hand who's doing well and is fun to watch, and click around to read previews occasionally, but that takes time.

Or, just take a look at the latest "What to watch" blog post and start at the top - the games are ranked by "watchability", based on a set of stats outlined below. Carson Cistulli came up with this idea when he was at FanGraphs, and it's a great one. Thank you, Mr. Cistulli.

Snippet of detail table

I think he did things manually. My posts are automatic: every morning code runs that pulls the stats; calculates "NERD" scores for the starting pitchers, the teams, and the game overall; uses Claude or OpenAI (ed: as of 8/9) to generate a text summary of each game; and then creates and publishes a new blog post. The commentary is a far cry from his posts - he was funny - but the info is still useful enough to me that I look at the post most days.

The table starts ordered by best overall score, as shown on the left. You can click each overall score, or scroll down, to get detailed stats and the text summary for each game; click the table headers to re-order the list by time, team score, or pitcher score; and click team and pitcher names to visit FanGraphs for more info.

What is "watchable"?

What makes for a high score? Things that are fun to watch, or not. Lights-out, hard-throwing pitchers are fun to watch. Teams with a lot of batters that hit the ball hard are fun to watch. Generally, I've followed the approach that Cistulli formed over multiple years, in some cases updating to stats that are more recent and that I can retrieve automatically. (The stats I'm using are a first cut - I haven't done a detailed analysis or review of every possible candidate stat, and I'll likely tweak things if/when I spend more time.)

Stat details

Pitcher scores use these stats:

Team scores use these stats:

For most of the stats, I calculate the z-score - so a score that's equal to the average of all pitchers/teams is zero, a score of one is one standard deviation above the mean, etc. Then I (sometimes) multiply that z-score by a value to bump up or down the final contribution based on importance - for example, I multiple pitcher xFIP- by two. I cap some components, like age, payroll, and luck, so they're always between zero and a given value, like two.

The pitcher and team scores are just the sum of the individual component scores, and the overall game score is the mean of the team and pitcher scores. All of this matches Cistulli's approach oh so many years ago. You can see the details of the calculation for each team and pitcher in the focused tables further down the page.

Ideas

There are a lot of things that would be great to add - the following items are all part of my enjoyment of watching or listening to a game, and aren't in the score right now. For example:

Thanks Claude Code

(Finally, Claude Code is amazing. I could have written the code that does all of the above myself, but I've wanted this since Cistulli stopped posting ~10 years ago, and I've never made the time until now, when I wanted something to dig into to get hands-on experience creating with code agents. Claude Code blew my expectations out of the water. I'll write more about this at some point.)