The Game Engine— Simulating the Batter/Pitcher Matchups

To properly understand OOTP’s player ratings so you can scout players, it’s important to understand how the batter/pitcher matchups take place in the game. Although I haven’t spent much time researching the game’s player ratings, I can make an educated guess on how the matchups are handled in the game, based on things I’ve read and the existing sabermetric research on the topic.

The game uses the Odds Ratio Method, which is a variant of the Log5 method. (Don’t click the links unless you have some math skills and want to spend some time delving deeper.) Essentially, the Odds Ratio Method generates probabilities of matchups using a batter’s event probability, a pitcher’s event probability, and the league’s average event probability. So, if the average player hits 20 homers in 550 plate appearances, the league average event probability would be 3.6% (20/550). You would then calculate the player’s probability, the pitcher’s probability and plug the three figures into a formula to get the probability of a home run being hit in a plate appearance between the specific batter and the specific pitcher within the current league’s context. Research has shown the methods work very well.

At the player level the formula works for binary questions only. For example, did the batter walk or not? Did he get hit by a pitch? Did the player make contact? Did the player hit a home run? It’s not as simple as figuring out each play result in isolation, however; you need to make sure all the probabilities add up to 1. To get things to add up, you need to use a decision tree (a chained binomial model). What does that mean? You figure each event in a logical order. An example follows.

Brian Cartwright calculates his projections in a similar way to the OOTP engine. Like OOTP he creates a decision tree of events:

  1. Did the batter get hit by a pitch? Yes = HBP. If not, go to 2.
  2. Did the batter walk? Yes = Walk. If not, go to 3.
  3. Did the batter make contact? If he did, go to 4. If he didn’t, he struck out.
  4. Did the batter hit a home run? Yes = Home Run. If not, go to 5.
  5. Did the batter get a hit (not including homers)? If yes, go to 6. If not, he’s out.
  6. Was the hit for extra bases? If yes, go to 7. If not, he hit a 1B.
  7. Was it a 2b or a 3b?

That’s the basics of it. There are other complicating factors, of course. Some examples include: park effects (impacts BABIP, which is used for step 5, and HR), defense (impacts BABIP and generates errors), GB/FB ratio (impacts BABIP and defensive adjustment), the pitcher’s pitch-types (impacts BABIP and HR), and batter speed (impacts BABIP and 2b/3b). There probably are other things which haven’t popped into my head but I’m sure you get the gist.

Although we don’t know the exact way OOTP incorporates all those factors, knowing the basics allows us to make sound judgments on players using the game’s player ratings.


Be the first to comment

Leave a Reply