Introducing BWRI 2024: an index to choose a good baseball game to rewatch

Design by Idoia Vallverdú

Summary

I really enjoy rewatching games during the off season, so I set up an index that helps to choose which game to rewatch without knowing anything else than the teams and the day. Using Python and savant data, I arranged an algorithm that takes account of changes in win probability during the game to make it possible to bring out exciting games to watch.

The code takes also account of good pitching, no-hitter situations, good defensive outfield plays and rivalry, to get a mix of different kinds of interesting games. BWRI is a percent rank, so 100 is the most exciting game detected by the algorithm and 0 the worst. BWRI includes seasons from 2016. You can dig on BWRI in list mode if you want, but my suggestion is to use the random mode, filtering for games with a high score. BWRI doesn’t take account of season context, you can choose just postseason games to be shown though.

Since 2024 season, the project moved from R Project and Retrosheet to Python and savant. The reason is Retrosheet just updates play by play data at the end of the season, while using savant updates can be made almost live.

Extended version

Offseasons are too long. I’m not much into the hot stove thing, so usually, I spend time watching games from the past season, eager to discover relievers or just having fun with exciting games. It’s not half the fun if you know in advance the outcome of the game, but this is not hard since there are more than 2,400 games in an MLB normal regular season. Sometimes I watch random games, but then I found baseballrewatch.com, and that saved me during the spring lockdown. Unfortunately, the website hasn’t been updated recently.

It was then that I thought if it would be possible to make an index to evaluate how much a game is worth to rewatch, just using the play by play stats of the game. Using savant data and the knowledge I could easily get ready the basic tool to calculate the index: Win Probability Added (WPA) play by play, which is how the probability to win a game changes play after play. That’s the main tool used to create what I call Baseball Worth Rewatch Index (BWRI), there are other things I took into account though.

Total WPA

The first I thought was, If I add the absolute WPA values of every play in a game, the highest figures will point me to exciting games. Games that switched from the hands of one team to the other several times during the game. Drama, leverage situations, and entertainment, especially in the late innings, when a change in the scoreboard cashes a higher value of WPA. So the first factor of BWRI is Total WPA.

Unexpected outcome (UO)

It’s great when the team that has been losing most of the time, wins at the end. I love that kind of games, and usually those have low added WPA, because during most part of the game the ultimate winning team is trailing by a 2 or more run margin. In the beginning I though that would be as easy as average the probability of winning for the whole game, and subtract it from the final outcome. That turned out to fall short considering my purpose, so I decided to flag winning probability from seventh inning to the end, and in last two extrainnings, to detect late changes. The final OU is a summation of all that.

Pitching

It’s not all about runs and action, good pitching games are really enjoyable. Pitching here is evaluated in two simple ways. First of all how many Ks per inning there is in a game, and how close it is to a no-hitter. So from games that get to the 7th with a no hitter to no-hitter games, all of those get extra points.

Good defensive outfield plays

Good defensive plays are really enjoyable too. I use catch probability data to reward games with good defensive plays, which here is basically games with 4,5 and 6 stars catches according to savant.

Rivalry

Finally, I added some extra points for games with rivalry, for that purpose I use data from knowrivalry.com.

Other features

To get the final score, I normalize every feature of the game and give them a different weight according to the importance I decide they have. There are factors that get scored for every game, but some of them just get a 0 if nothing happens, these are no hitter, great defensive plays and rivalry. If you leave those aside, added WPA weights for about 60% of the score, and unexpected outcome and number of strikeouts spread the rest. When no hitter situation appears, it gets crucial importance in the final score, the more the no hitter conditions last, the more impact, obviously. Good defensive plays are not that important. I give rivalry even less importance.

Finally, to avoid extrainnings games to take over the whole top of the list, I decided to trim those games, 10 innings final score is multiplied, by 0.9, 11 by 0.8, and 12 inning games and more by 0.7.

To evaluate win probability play by play I used the method suggested by Max Marchi, Jim Albert and Benjami S. Baumer in the first edition of the project. Nowadays, I just use savant data approach.

Thanks for reading. Sorry for my English. I hope you enjoy using BWRI and rewatching baseball. Don’t hesitate on leaving a comment or getting in touch for any comments or suggestions.

www.rewatchbaseballindex.com

Leave a Reply

Your email address will not be published. Required fields are marked *