Home | Webstore
Latest News: OOTP 26 Available - FHM 11 Available - OOTP Go! Available

Out of the Park Baseball 26 Buy Now!

  

Go Back   OOTP Developments Forums > Out of the Park Baseball 26 > OOTP 26 - General Discussions
Register Blogs FAQ Calendar Today's Posts Search

OOTP 26 - General Discussions Everything about the brand new 26th Anniversary Edition of Out of the Park Baseball - officially licensed by MLB, the MLBPA, KBO and the Baseball Hall of Fame.

Reply
 
Thread Tools
Old 03-17-2025, 05:44 PM   #1
squirrel
Bat Boy
 
Join Date: Oct 2018
Posts: 12
A projection system for OOTP 26

I like to play OOTP with a projection system, which I cobbled together in python code based on prior publicly-available systems from Sgt Mushroom, OOTP calculator and the Donkeykong spreadsheets that were posted here, once upon a time.

I've only played one season in 26 so far but the system looks fit for purpose in the new version. I used it extensively in 24, I didn't get to 25 so I'm coming back into the fold for 26.

I find doing this makes the game more immersive and fun, and thought perhaps it might be interesting for others also. So I've uploaded the code and made an explanatory video which I will link below. If you give it a go, good luck with it.

https://www.youtube.com/watch?v=P-F4Djmjes0
squirrel is offline   Reply With Quote
Old 03-17-2025, 07:09 PM   #2
tomkmb
All Star Starter
 
tomkmb's Avatar
 
Join Date: Jan 2021
Posts: 1,417
Nice work, as always - look forward to trying this out!
tomkmb is offline   Reply With Quote
Old 03-17-2025, 10:31 PM   #3
Branflakes
Bat Boy
 
Join Date: Sep 2020
Posts: 6
I love this. I have a similar home brewed system using excel. This might be a good excuse for me to learn how to use python.
Branflakes is offline   Reply With Quote
Old 03-17-2025, 11:20 PM   #4
jaa36
Hall Of Famer
 
jaa36's Avatar
 
Join Date: May 2011
Posts: 3,074
yes, this is quite a project! Nice work! One thing I realize with it though is that I don't believe you'd be able to use it to assist in online leagues, as I don't think you can export databases from them unless you're the commissioner...

I did something similar in OOTP 25, which I'll attach here... this copy includes the 2024 Phillies roster just to show how it works. It provides a current expected stat line (and WAR), a "projected" expected future stat line, and a "peak" future stat line. The basic info that informs it:
-I created a fictional league with basically out of the box settings (with all neutral parks), then simmed ahead 10 years (to get the kinks out), then simmed for 20 years and exported all the ratings and stats at the end of the year
-I then calculated the effect that each rating had on what it was supposed to affect (e.g. a Power rating of 50 works out to x HR/AB) and then used that info to build baseline offensive profiles for sets of ratings
-Defense was much harder to calculate, but in the end, the actual position rating (rather than the component ratings) was a pretty effective proxy for the defensive value at the position
-then basically used Fangraphs calculations to get WAR
-for pitchers, doing a straight FIP-based WAR calculation didn't make as much sense because of the pBABIP rating, so instead I calculated a pitcher "expected wOBA allowed" and used that to calculate WAR
-there are some corrections made for injury proneness, what position you play (e.g. first basemen play more games than catchers), DH hitting penalty, and leverage index for relievers when relevant
-The "current" and "peak" stat lines are pretty self explanatory, but basically use the current ratings and the potential ratings, respectively.
-I also did some research on development to inform the "projected" stat line. It basically looks at the player's potential and age, lightly incorporates personality factors, and then provides expected (not peak) future ratings. I was hoping to include current ratings as well, but it just muddied the results too much. It assumes players will not develop past age 25- which they rarely do in OOTP 25.

To use it, you would export a list including all the columns listed on the final tab for hitters or pitchers, respectively, then paste those columns into the left side of the appropriate tab. I don't have the coding chops to make a web app out of this, but I was able to get Excel to do what I needed to...

I'm hoping to build on this a bit in OOTP 26 when the dust settles a few patches in- likely putting together an aging model as well as a development model.
Attached Files
File Type: xlsx OOTP calculator blank.xlsx (365.4 KB, 55 views)
jaa36 is online now   Reply With Quote
Old 03-18-2025, 06:32 AM   #5
deferittothegame
Bat Boy
 
Join Date: Mar 2025
Posts: 5
This is super impressive man, bravo!
deferittothegame is offline   Reply With Quote
Old 03-19-2025, 07:12 AM   #6
squirrel
Bat Boy
 
Join Date: Oct 2018
Posts: 12
Quote:
Originally Posted by jaa36 View Post
yes, this is quite a project! Nice work! One thing I realize with it though is that I don't believe you'd be able to use it to assist in online leagues, as I don't think you can export databases from them unless you're the commissioner...

I did something similar in OOTP 25, which I'll attach here... this copy includes the 2024 Phillies roster just to show how it works. It provides a current expected stat line (and WAR), a "projected" expected future stat line, and a "peak" future stat line. The basic info that informs it:
-I created a fictional league with basically out of the box settings (with all neutral parks), then simmed ahead 10 years (to get the kinks out), then simmed for 20 years and exported all the ratings and stats at the end of the year
-I then calculated the effect that each rating had on what it was supposed to affect (e.g. a Power rating of 50 works out to x HR/AB) and then used that info to build baseline offensive profiles for sets of ratings
-Defense was much harder to calculate, but in the end, the actual position rating (rather than the component ratings) was a pretty effective proxy for the defensive value at the position
-then basically used Fangraphs calculations to get WAR
-for pitchers, doing a straight FIP-based WAR calculation didn't make as much sense because of the pBABIP rating, so instead I calculated a pitcher "expected wOBA allowed" and used that to calculate WAR
-there are some corrections made for injury proneness, what position you play (e.g. first basemen play more games than catchers), DH hitting penalty, and leverage index for relievers when relevant
-The "current" and "peak" stat lines are pretty self explanatory, but basically use the current ratings and the potential ratings, respectively.
-I also did some research on development to inform the "projected" stat line. It basically looks at the player's potential and age, lightly incorporates personality factors, and then provides expected (not peak) future ratings. I was hoping to include current ratings as well, but it just muddied the results too much. It assumes players will not develop past age 25- which they rarely do in OOTP 25.

To use it, you would export a list including all the columns listed on the final tab for hitters or pitchers, respectively, then paste those columns into the left side of the appropriate tab. I don't have the coding chops to make a web app out of this, but I was able to get Excel to do what I needed to...

I'm hoping to build on this a bit in OOTP 26 when the dust settles a few patches in- likely putting together an aging model as well as a development model.
Love this! Appreciate you sharing it. Once the OOTP 26 engine has been through whatever teething patches it will go through I might have to look into including some of this stuff.
squirrel is offline   Reply With Quote
Old 03-19-2025, 09:12 AM   #7
tomkmb
All Star Starter
 
tomkmb's Avatar
 
Join Date: Jan 2021
Posts: 1,417
Quote:
Originally Posted by jaa36 View Post
yes, this is quite a project! Nice work! One thing I realize with it though is that I don't believe you'd be able to use it to assist in online leagues, as I don't think you can export databases from them unless you're the commissioner...

I did something similar in OOTP 25, which I'll attach here... this copy includes the 2024 Phillies roster just to show how it works. It provides a current expected stat line (and WAR), a "projected" expected future stat line, and a "peak" future stat line. The basic info that informs it:
-I created a fictional league with basically out of the box settings (with all neutral parks), then simmed ahead 10 years (to get the kinks out), then simmed for 20 years and exported all the ratings and stats at the end of the year
-I then calculated the effect that each rating had on what it was supposed to affect (e.g. a Power rating of 50 works out to x HR/AB) and then used that info to build baseline offensive profiles for sets of ratings
-Defense was much harder to calculate, but in the end, the actual position rating (rather than the component ratings) was a pretty effective proxy for the defensive value at the position
-then basically used Fangraphs calculations to get WAR
-for pitchers, doing a straight FIP-based WAR calculation didn't make as much sense because of the pBABIP rating, so instead I calculated a pitcher "expected wOBA allowed" and used that to calculate WAR
-there are some corrections made for injury proneness, what position you play (e.g. first basemen play more games than catchers), DH hitting penalty, and leverage index for relievers when relevant
-The "current" and "peak" stat lines are pretty self explanatory, but basically use the current ratings and the potential ratings, respectively.
-I also did some research on development to inform the "projected" stat line. It basically looks at the player's potential and age, lightly incorporates personality factors, and then provides expected (not peak) future ratings. I was hoping to include current ratings as well, but it just muddied the results too much. It assumes players will not develop past age 25- which they rarely do in OOTP 25.

To use it, you would export a list including all the columns listed on the final tab for hitters or pitchers, respectively, then paste those columns into the left side of the appropriate tab. I don't have the coding chops to make a web app out of this, but I was able to get Excel to do what I needed to...

I'm hoping to build on this a bit in OOTP 26 when the dust settles a few patches in- likely putting together an aging model as well as a development model.
This is awesome - thanks a lot for sharing. If I wanted to try this out - do I need to have my overall and potential in star form? Do height and weight formatting matter? Just creating my views and this was the first thing that came to mind.
tomkmb is offline   Reply With Quote
Old 03-19-2025, 01:12 PM   #8
jaa36
Hall Of Famer
 
jaa36's Avatar
 
Join Date: May 2011
Posts: 3,074
Quote:
Originally Posted by tomkmb View Post
This is awesome - thanks a lot for sharing. If I wanted to try this out - do I need to have my overall and potential in star form? Do height and weight formatting matter? Just creating my views and this was the first thing that came to mind.
Neither of those should matter actually- the overall and potential ratings aren't pulled in anywhere, nor are the height or weight. But you do need to have ratings set to 20-80. And to be clear, this was all done on OOTP 25, I haven't looked at this for 26 yet.
jaa36 is online now   Reply With Quote
Old 03-19-2025, 03:56 PM   #9
tomkmb
All Star Starter
 
tomkmb's Avatar
 
Join Date: Jan 2021
Posts: 1,417
Quote:
Originally Posted by jaa36 View Post
Neither of those should matter actually- the overall and potential ratings aren't pulled in anywhere, nor are the height or weight. But you do need to have ratings set to 20-80. And to be clear, this was all done on OOTP 25, I haven't looked at this for 26 yet.
Thanks, that's perfect for me as my online league is remaining with 25 for the foreseeable future!
tomkmb is offline   Reply With Quote
Old 03-20-2025, 01:51 AM   #10
squirrel
Bat Boy
 
Join Date: Oct 2018
Posts: 12
I made another video about OOTP:

https://youtu.be/CC92Z-l9Thw?si=XOZmWu7XIrRfFsd-
squirrel is offline   Reply With Quote
Old 03-23-2025, 05:23 AM   #11
squirrel
Bat Boy
 
Join Date: Oct 2018
Posts: 12
I've just updated the Pistachio projection system shown in my youtube videos to v2 - reflecting various tweaks I've made this week as I've been playing OOTP.

If you want the latest version I've posted it as a github repo here:

https://github.com/squirrelplays/pistachio

Changes from v1 to v2:

- catcher defense WAR projection now based on catcher framing, not catcher ability
- pitching projections now based on HRA + pitcher BABIP, not just movement i.e. updated to reflect the changes made in OOTP 25.
- pitcher projection weightings updated to 25% stuff, 19% control, 51% HRA, 5% pitcher BABIP (this is data-driven based on OOTP 26 data from my save but v rudimentary - I'm multiplying these against the 20-95 ratings not the 1-600 underlying ratings - it seems to work ok but far from the most accurate projections imaginable)
- FIP projections normalised onto a scale with 4.1 as league average - hence FIP and pitcher WAR projections should look a bit more sensible
- pbabip >= 45 threshold added for pitchers
- groundball % minimum threshold now fixed to flow through properly to current and potential ratings (didn't previously)
- minimum rating for a pitch to count as a 'good pitch' set at 45 (on 20-80 scale) for both current and potential pitchers - previously it was left at 50 in error for potential and cut various guys off
- players traded in-year now come up as one row not multiple (with thanks to the user who pointed this out and provided code to fix)
- adds a new column Tpct for position players which is short for 'on-track %' - it compares current (not potential) OPS+ projection vs standardised curves by position to see extent of development for prospects

Any other thoughts welcomed.

EDIT: Added reference to Tpct which I forgot in the first draft of this post

Last edited by squirrel; 03-24-2025 at 06:47 AM.
squirrel is offline   Reply With Quote
Old 03-23-2025, 04:27 PM   #12
Guthrien
Minors (Double A)
 
Join Date: Mar 2011
Posts: 154
squirrel, I cannot wait to try the new system. Having a new one was very overdue, and let's face it, is a lot of fun. I hope you continue with OOTP, your videos are a breath of fresh air and I like when the "vets" do theory work too in-between their playthroughs.

--my playing around with pitching projection is childlike compared to what pistachio is doing, I'd rather see how that can keep getting better--

Last edited by Guthrien; 03-24-2025 at 09:50 PM. Reason: removed link
Guthrien is offline   Reply With Quote
Old 03-24-2025, 06:42 AM   #13
squirrel
Bat Boy
 
Join Date: Oct 2018
Posts: 12
Quote:
Originally Posted by Guthrien View Post
squirrel, I cannot wait to try the new system. Having a new one was very overdue, and let's face it, is a lot of fun. I hope you continue with OOTP, your videos are a breath of fresh air and I like when the "vets" do theory work too in-between their playthroughs.

I was making some very beginning notes towards making one based off of 4 full seasons and 6 careers of different sorts of pitchers (ie. not enough).
- I used 20/80, not internal stats because it's too hard to export those. I failed to remember the uber-ratings and need to adjust.
- I wanted to account for development of prospects by age. Probably not a good idea for multiple reasons, and it doesn't yet have aged decline. So, several dead ends or complications. I look forward from learning from your 'book'.

https://docs.google.com/document/d/1...it?usp=sharing
Hey man thanks for this.

In OOTP 24 I had a bit of extra logic going on to see whether a position player draft prospect has an OPS+ 'on track' for their age i.e. whether their current ratings made sense vs their age.

I've left the calc in the code - and in fact I forgot to mention this in the changelog above but in this v2 I've added back into the outputs an extra column called Tpct which attempts to cover this...the idea is that 1.00 indicates a player is 100% on track to be a MLB-level player, 0.9 means 90% on track, 1.10 means 110% on track and so on.

The idea behind this is to cool the jets when I see a 20/75 prospect in the fifth round and when you look closely the player is age 19 and apparently won't have a bat ready to compete in rookie ball level for another four years or so. Still might take the player, but just have that slightly better grounding on what I'm looking at.

I'm hesitant to recommend this to others for now because I haven't used it for many drafts - and it relies on a load of hard-coded numbers for (1) player OPS+ projection growth % at each age, on average and (2) what OPS+ I expect from a 21 year old MLB-calibre prospect at each position. I can't imagine these will vary that much between OOTP 24 and 26, but they might. At first glance in my first handful of OOTP 25 drafts it looks useful in its current form.

Last edited by squirrel; 03-24-2025 at 06:54 AM.
squirrel is offline   Reply With Quote
Old 03-24-2025, 06:51 AM   #14
squirrel
Bat Boy
 
Join Date: Oct 2018
Posts: 12
# Define the growth factors
growth_factors = {
14: 0.00,
15: 0.01,
16: 0.00,
17: 0.02,
18: 0.04,
19: 0.05,
20: 0.06,
21: 0.09,
22: 0.10,
23: 0.08,
24: 0.04,
25: 0.05,
26: 0.01,
27: 0.01,
28: 0.00,
}

These are the growth factors I've used to calculate Tpct and they are based on data taken from OOTP 24 with default MLB settings.

This tells you, for example, that the code expects a player aged 22 to have a 10% improvement in their current OPS+ projection during that year.

The code expects players to be fully developed by age 27 and considers a position player to be MLB-level or on-track for MLB if their OPS+ projection at that age (accounting for these growth factors based on their current OPS+ projection) is:

For 1B and DH: 110
For C, SS and CF: 90
For everyone else: 100

Last edited by squirrel; 03-24-2025 at 06:52 AM.
squirrel is offline   Reply With Quote
Old Today, 07:57 PM   #15
perfektootp
Bat Boy
 
Join Date: Jan 2022
Posts: 4
Quote:
Originally Posted by jaa36 View Post
yes, this is quite a project! Nice work! One thing I realize with it though is that I don't believe you'd be able to use it to assist in online leagues, as I don't think you can export databases from them unless you're the commissioner...

I did something similar in OOTP 25, which I'll attach here... this copy includes the 2024 Phillies roster just to show how it works. It provides a current expected stat line (and WAR), a "projected" expected future stat line, and a "peak" future stat line. The basic info that informs it:
-I created a fictional league with basically out of the box settings (with all neutral parks), then simmed ahead 10 years (to get the kinks out), then simmed for 20 years and exported all the ratings and stats at the end of the year
-I then calculated the effect that each rating had on what it was supposed to affect (e.g. a Power rating of 50 works out to x HR/AB) and then used that info to build baseline offensive profiles for sets of ratings
-Defense was much harder to calculate, but in the end, the actual position rating (rather than the component ratings) was a pretty effective proxy for the defensive value at the position
-then basically used Fangraphs calculations to get WAR
-for pitchers, doing a straight FIP-based WAR calculation didn't make as much sense because of the pBABIP rating, so instead I calculated a pitcher "expected wOBA allowed" and used that to calculate WAR
-there are some corrections made for injury proneness, what position you play (e.g. first basemen play more games than catchers), DH hitting penalty, and leverage index for relievers when relevant
-The "current" and "peak" stat lines are pretty self explanatory, but basically use the current ratings and the potential ratings, respectively.
-I also did some research on development to inform the "projected" stat line. It basically looks at the player's potential and age, lightly incorporates personality factors, and then provides expected (not peak) future ratings. I was hoping to include current ratings as well, but it just muddied the results too much. It assumes players will not develop past age 25- which they rarely do in OOTP 25.

To use it, you would export a list including all the columns listed on the final tab for hitters or pitchers, respectively, then paste those columns into the left side of the appropriate tab. I don't have the coding chops to make a web app out of this, but I was able to get Excel to do what I needed to...

I'm hoping to build on this a bit in OOTP 26 when the dust settles a few patches in- likely putting together an aging model as well as a development model.
I have been trying to get your sheet to work for me on excel all day today and I can't figure out for the life of me what im doing wrong with the smoothed ratings. they are all coming up as errors without me changing the players or any of the data.
perfektootp is offline   Reply With Quote
Old Today, 08:09 PM   #16
jaa36
Hall Of Famer
 
jaa36's Avatar
 
Join Date: May 2011
Posts: 3,074
oh right, that part needs a little more explanation. Within the "projected ratings" section, the projected/"smoothed" ratings are only calculated for players under the age of 25- as there is little if any expected development after that age. The section right after that is basically carrying forward the current ratings, but using potential at fielding positions for position players. Then the last few columns will take the maximum of these two. Hope that helps!
jaa36 is online now   Reply With Quote
Reply

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:38 PM.

 

Major League and Minor League Baseball trademarks and copyrights are used with permission of Major League Baseball. Visit MLB.com and MiLB.com.

Officially Licensed Product – MLB Players, Inc.

Out of the Park Baseball is a registered trademark of Out of the Park Developments GmbH & Co. KG

Google Play is a trademark of Google Inc.

Apple, iPhone, iPod touch and iPad are trademarks of Apple Inc., registered in the U.S. and other countries.

COPYRIGHT © 2023 OUT OF THE PARK DEVELOPMENTS. ALL RIGHTS RESERVED.

 

Powered by vBulletin® Version 3.8.10
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Copyright © 2024 Out of the Park Developments