Predicting a Team’s Wins Using Underlying Player Talent

I have been wanting to have this win prediction tool available for a while and finally have what I think is rather simple working model. This spreadsheet can be filled out with the players anyone thinks will be playing, along with their all their stats and then the team’s projected wins will be calculated.

Note: An error was found on the spreadsheet dealing with position adjustment and corrected around 4:30 EST on 11/4. If you downloaded it before then, you will need to re-download it. Sorry for the inconvenience. -Jeff

While it can be used to get an idea of how many wins a team might get in the up coming season, I plan on using it to evaluate changes in a team. Those changes could be a free agent signing, a trade, an injury or a rookie called up to the majors. The team’s expect wins before or after the roster change can be evaluated .

Today, I am not going to do look at any team. I just wanted to make it available and once the Royals sign Cliff Lee, I can see how their expected wins compare before and after the acquisition.


Right now I have it set it up with a basic Royals roster for reference. Have fun plugging in your own team’s players and see what type of season may be in store for them. The spreadsheet can be downloaded to your computer by opening it, selecting File => Download As and selecting the format you prefer to use. Here are the instructions and feel free to ask any questions.

Here are the instructions:

  • The formatting, by going to Google Docs and back, gets stripped off (e.x. The wins go to 10 decimal places, 1 would probably do). Feel free to format all the columns for easier readability.
  • For projection information, we will have them available as soon as the data is available. Since they are not available yet, one decent method to get a close value is to weight this past year’s stats as 1/3rd of the 2011 projection and the 2010 projection data as the other 2/3rds.
  • Fill in the data in the yellow and/or orange boxes. The rest of the boxes have formulas in them and if one is changed or deleted, all the values could change. From uploading and downloading it a few times, the color formatting doesn’t transfer so you may need to compare the online and downloaded sheets to see which columns need to be filled out.
  • Fill out the lineup section with name and projected OBP with what you think will be the most common lineup. This information is used to generate an approximate number of PA for the team. The team’s PA will be at a maximum value since the best lineups number were used. This season is just to get an idea on the number PA.
  • The next section is used to determine the amount of WAR from the position players. In this area, you can either fill in the player’s OBP and SLG -or- the players wOBA. For handling multiple players at a position, just make sure that that the number of games add up to 162
  • In the UZR/150 cells put in the players lifetime UZR/150 for that position. Sometimes the UZR/150 can be extremely high for the position and a value of 20, positive or negative is league leading or lagging value, so the values may need to regressed towards 0 quite a bit. Here are my 2010 projections for reference and I hope to have the 2011 ones done by Christmas.
  • Catcher defense can/should be set to zero.
  • To account for inter league play, the pitchers will bat in 9 games during the season for AL teams and NL teams will need to account for DH for 9 games also.
  • Once the data in the second section is filled out, go back to line 7 and 8 and make sure the Projected and Calculated number of PA are the same. Adjust the individual player PA as needed.
  • In the pitcher’s area, the player’s Name, Innings Pitched and projected ERA/FIPs/xFIPs need to be entered. I used FIPs with a 1/3 weighting for 2010 data and 2/3 for 2010 projections.
  • The total innings in the past 3 seasons have 1444, so the total innings from the pitchers you have need to equal this number.
  • Now the Leverage Index column need to filled out. This column can be filled out will all 1s and the total win values will remain close to the same final value compared to if pitcher’s values are filled out. If you want to fill out each value, here is an article on the the subject and some general rules to follow 1) Ace closers has an LI of 2 usually 2)Main setup men usually has an LI of 1.3 3)Your decent starters will have an LI of 1 4)Bad starters will usually have an LI of .9 as they will be pitching from behind in quite a few games. 5)Mop up relievers will have values less then 1.
  • If you put in LI values for each pitcher, the value labeled Total LI needs to be as close to 1444 (the total innings pitched) as you can get.
  • If you want to do a NL team, you will need to swap the data in cells C71 and C73 and also in cells L71 and L73.



  • Print This Post



    Jeff writes for FanGraphs, The Hardball Times and Royals Review, as well as his own website, Baseball Heat Maps with his brother Darrell. In tandem with Bill Petti, he won the 2013 SABR Analytics Research Award for Contemporary Analysis. Follow him on Twitter @jeffwzimmerman.


    15 Responses to “Predicting a Team’s Wins Using Underlying Player Talent”

    You can follow any responses to this entry through the RSS 2.0 feed.
    1. frug says:

      Great just what needed another thing to distract me from my research paper.

      Vote -1 Vote +1

    2. Locke says:

      So awesome, thanks.

      Now Greinke will have a friend!

      Vote -1 Vote +1

    3. Austin says:

      Wait – perhaps I’m misunderstanding how the math works out, but why are you applying the full-season positional adjustment to each player regardless of playing time? For example, Kila Ka’aihue clearly isn’t a -0.77 win player next year, but the -1.25 positional adjustment makes him so even though he’s playing only 53 games. I guess the point is only to evaluate team WAR and not individual WAR, but I still don’t think that those unadjusted positional adjustments just cancel out.

      Vote -1 Vote +1

      • Austin says:

        Rather, that’s a -0.77 win first baseman – he’s worth -1.63 wins when you add his DH at-bats.

        Vote -1 Vote +1

        • fredsbank says:

          seriously? does anything think that kila ka’aiuhe would be a negative win value player, even in as small a sample size as 53 games? carlos santana hit .260/.401/.467 in 46GP and192PA in 2010, good for a .382 wOBA and 2 WAR. now, kila isn’t a catcher, but still, shouldn’t we expect something similar from kila in a similar SS?

          Vote -1 Vote +1

        • Austin says:

          Sorry, I was a little unclear with my second comment, which I meant as a continuation of the first. I was pointing out that an error in the spreadsheet’s hidden calculations was calling Ka’aihue an awful player because he was receiving twice the negative positional adjustment that he should have.

          Vote -1 Vote +1

      • Jeff Zimmerman says:

        Nice catch – the spreadsheet was corrected around 4:30 EST

        I had several people look over it. but one one caught it. Thanks.

        Vote -1 Vote +1

    4. YANKEES27!!!! says:

      Are you mentally retarted??? no way the Royals sign Cliff Lee!! Who would want to go to a crappy team like the ROYALS! The Yankees are going to sign him no doubt cuz we r BEAST. This is why sabermetricks are so FAKE! you guys are NERDS!

      -17 Vote -1 Vote +1

    5. Ian says:

      Just started playing around with this. I was wondering though, when doing an NL team, what is the typical pitcher’s OBP and SLG?

      Vote -1 Vote +1

    6. JDanger says:

      This is excellent! Thanks!

      Vote -1 Vote +1

    7. […] Predicting a Team’s Wins Using Underlying Player Talent (FanGraphs). This looks like a potentially fun way to waste time over the off-season. […]

      Vote -1 Vote +1

    Leave a Reply

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

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>