Baseball News

FanGraphs Lab: Baseball Simulator

We are pleased to announce that the latest addition to FanGraphs Lab is a baseball simulator:

You can click on any of the day’s games to pre-populate rosters, or create your own using current players. The simulator will then simulate the game 10,000 times.

Let’s see how this works:

  1. If you select one game of the day, we pull the rosters for each team. First we check if there is a confirmed lineup, and if there isn’t, we use the RosterResource platoon lineup based on the assignment of the first opposing pitcher.
  2. Next, we construct the probabilities of the following events for each batter/pitcher rating: single, double, triple, home run, walk, at-bat, hit, and play, out. This is done by taking a ZiPS or Steamer platoon projection for both the batter and the pitcher, depending on the projection system you choose. For example, if the batter hits right and the pitcher throws left, we will draw the batter’s guess “vs L” and the pitcher’s guess “vs R”. In Steamer, we go further, decide whether a pitcher is a starter or a reliever, and draw a specific “vs L as Reliever” theory.
  3. Once we have the statistics for each team’s pitcher and batter, we calculate the odds ratio (including the league averages), and now we have the probability of each batter/pitcher matchup occurring.
  4. We also capture each batter’s Speed ​​Score, stolen base average and stolen base attempts per inning.
  5. We use all that data to simulate the game. We run 10,000 simulations, and show the results.

The result set you get is solid.

You can see each team’s percentage chance of winning, including the distribution of all fixed games, as well as the number of team statistics and corresponding histograms:

You are not a FanGraphs Member

It appears that you are not yet a FanGraphs Member (or signed in). We’re not mad, just disappointed.

We get it. You want to read this article. But before we let you get back to it, we’d like to point out a few good reasons why you should become a Member.

1. Free Viewing! We will not mistake you for this ad, or any other.

2. Unlimited topics! Non-Members only get to read 10 free articles per month. Members are never cut off.

3. Dark mode and classic mode!

4. Custom player page dashboards! Choose the player cards you want, the way you want.

5. One-click data export! Use our predictions and leaderboards for your personal projects.

6. Remove images from the home page! (Honestly, this doesn’t sound that good to us, but other people wanted it, and we like to give our Members what they want.)

7. More Steam guesses! We have offer, percentage, and context neutral predictions available only to members.

8. Get the FanGraphs Walk-Off, a custom year-end review! Find out how you used FanGraphs this year, and how that compares to other Members. Don’t fall prey to FOMO.

9. Weekly mailbag column, for Members only.

10. Help support FanGraphs and all of our staff! Our members give us valuable resources to improve the site and bring new features!

We hope you will consider Membership today, for yourself or as a gift! And we realize that this has been a very long marketing article, so we’ve removed all other ads from this article. We didn’t want to overdo it.

And we have average stats for each batter and pitcher:

And if you click on a specific line for a batter or a pitcher, we have a histogram of the results for each simulation:

We also include a matching grid, which shows all the possibilities we use for each matching:

We show three sample games out of 10,000 simulations:

Finally, if you click on any play, it will show you the probability of events for that match:

The simulator also lets you do fun things like see what would happen if a team composed entirely of Shohei Ohtanis faced off against another team composed entirely of Shohei Ohtanis. The possibilities are almost endless.

It’s worth asking how we know the simulator is doing a decent job of simulating baseball.

First, we recreated our win expectation tables using the simulator. If the simulator does a good job, we can expect to have the same winning expectation based on the outing, inning, and game results that we see in real baseball. As you can see, these were almost identical, with some noise due to the sample size. Even 24 million plays are not enough to remove all the noise:

We also compared the simulator’s off-season results to Steamer’s off-season predictions:

Steam RoS Simulation vs Steamer RoS Playoff Odds

The team Acting W Playoff Odds W The difference
The Dodgers 103.3 100.7 2.6
The brave ones 90.6 89.9 0.7
The Yankees 89.0 87.6 1.4
Sailors 87.1 84.3 2.8
Phillies 86.0 85.5 0.5
The guards 85.8 84.2 1.6
Tigers 85.3 84.8 0.5
The guards 85.1 79.9 5.2
Cubs 84.0 84.4 -0.4
Pirates 83.5 85.0 -1.5
Padres 83.2 83.2 0.0
Radiation 83.2 81.2 2.0
The Royals 82.2 78.6 3.6
Diamondbacks 82.0 84.1 -2.1
Red Sox 81.8 81.9 -0.1
Blue Jays 77.8 81.5 -3.7
Twins 79.1 80.5 -1.4
The Orioles 79.4 81.2 -1.8
Athletics 78.2 78.1 0.1
Giants 78.4 78.9 -0.5
Red 77.3 78.4 -1.1
Cardinals 77.5 77.6 -0.1
The Astros 76.6 77.9 -1.3
Angels 75.2 76.0 -0.8
Marlins 74.9 75.8 -0.9
Foreigners 73.1 72.3 0.8
White Sox 68.7 67.7 1.0
The Rockies 60.8 61.3 -0.5

In addition, the league averages all look reasonable in terms of a standardized distribution of results:

Baseball Simulator rating (real stats for 2025 and 2026)

The source 1B 2B 3B HR BB HBP K SB CS R/9
Steam RoS 14.45% 4.43% 0.39% 2.99% 9.84% 1.07% 21.60% 2.03% 0.59% 4.76
A steamer 14.76% 4.50% 0.42% 3.32% 8.75% 1.02% 21.31% 2.03% 0.59% 4.83
ZIPS 14.08% 4.57% 0.58% 3.07% 8.77% 1.28% 21.77% 2.00% 0.59% 4.70
Statistics for 2025 14.28% 4.23% 0.34% 3.09% 8.41% 1.05% 22.22% 1.88% 0.54% 4.52
Statistics for 2026 13.79% 4.13% 0.30% 2.68% 9.89% 1.11% 22.63% 1.94% 0.53% 4.50

Finally, let’s take a look at how the full season stats stack up in the simulator compared to Steamer’s full season revealed stats:

Full Season Projected Statistics vs Full Season Simulated Statistics by Player

Metric IR-Squared
AVG .967
OBP .913
SLG .946
K% (Batters) .990
BB% (Batters) .934
K% (Pots) .965
BB% (Pitchers) .965
HR% (Pitchers) .891
ERA (Starter) .934
ERA (Reliever) .384

Everything looks good here, except for the ERA release, which will be a point of future investigation. We treat inherited runners fairly, but reliever ERA is notoriously difficult to project due to sample size. It may be that this is just one of the differences between using a simulation and a pure predictive model.

This is a very beta product (that’s why we have it as part of the Lab), so if you see any issues or have feature requests, just let us know, either in the comments here or using the Lab feedback option.

Related Articles

Leave a Reply

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

Back to top button