Ottoneu Surplus Calculator (2017 version)

Tags: #<Tag:0x00007f82ad76b0b0> #<Tag:0x00007f82ad76a8b8>


I’m not sure what the issue is then, I’ll see if I can replicate it


This is very cool, but I don’t quite understand it all. I’d like to understand how to use it. Apologies for my thickness.

I understand the whole top chart except how/why the discount is used to get to team value.

Related to that, I don’t understand what discount is supposed to represent and how you get the numbers for ‘Total Salary(expected’ and Total Value.

Thanks very much,



Take a look at my article on the Surplus Calc, which also includes links to a podcast and Youtube tutorial at the bottom:

To address your specific questions:

  1. Proj. Team Value is calculated by taking the actual Keeper Value and adding in the projected Value that can be bought at the auction. That amount is the remaining salary ($400-Keeper Salary) times the Discount %, which represents the fact that with inflation every $1 spent at auction will buy less than $1 in value in aggregate. The Discount % is just the inflation % expressed as the % of value that can be bought for $1 in salary (inflation % is the % of salary that must be spent above $1 on $1 of value).

  2. Total Salary (expected) is a fixed number and represents the total amount of $ expected to be spent by all teams. In this case that number is $4,620, or $385 per team. With the possible exception of first year auctions, there is typically about $150-$200 not spent in total by teams at the auction. Total Value should be the same as Total Salary (it looks like it isn’t on this Alpha version of the calc, I’ll tweak that the next time I update), and represents the total $ value of all players on the preloaded $ values. So basically, I always scale my $ values to match the total amount of $ I expect to be spent.


@eamuscatu ,
Just playing around with (a copy of) the surplus calculator, and I think I found an error. Feel free to trash me if I misunderstand, but…:
On sheet “$ Values Input” column F is called Salary but shows positions. The formula of the fields in that column is =IFERROR(VLOOKUP(A2,Rosters!A:H,8,FALSE),""), but I believe it should be =IFERROR(VLOOKUP(A2,Rosters!A:I,9,FALSE),"") to get the salary rather than the position. My guess is you added a column in the Roster sheet at some point but the formula was not updated?

Thanks for putting this out!


I will have to take a look at this, there was a change to the rosters.csv that added a column to the output, so it’s entirely possible I missed a modification to correct somewhere. Thanks!


Okay I corrected that column, it doesn’t actually have any functionality on the Surplus Calc and honestly I don’t remember why I even added that salary column to the $ Values Input tab, but it’s working now.


Thank you. I use it to calculate the difference between my players current salary and the projected value to get a sense of pos. and “neg.” surplus for individual players. Might be already available in different sheet but I only just started using it so still discovering


That actually gives me an idea to add an individual team tab to do exactly that, thanks for the feedback!


I wish my IT department was that responsive! :slight_smile:


Okay I added two new features to the Surplus Calc:

  1. Arb Targets tab- this tab filters and sorts the rosters to show you the highest surplus asset by team, obviously the $ values are extremely early, but this could be a useful guide to give owners a hierarchy of potential arb targets (especially for owners new to ottoneu)

  2. Team Roster- this tab is just like the Rosters tab, but you can select your team (or any other team) from the dropdown in Cell B1 to see only one team’s roster sorted by position and then projected $ value


2 ?

1 - you’ve still only put in FGPts, right?
2 - if i change team totals cell B18 to “FanGraphs Points” instead of the formula that pulls in league info, everything else will “work” but will treat the league as if it were FGPts, right? so i can use that for a 4x4 for league, for example, if I am comfortable using FGPts values as a proxy and adjusting on the fly?


1- Yes, I’m waiting for the first batch of '17 Steamer to be released to update all the values
2- You could do that, or just copy all the data in the FGPTs $ value tab to the 4x4 $ value tab


Looks like the first version of 2017 Steamer projections are now up on FG, so I will probably have updated surplus calc $ values sometime this week.


just FGPts? or all formats? in time for arb changes??


My hope is to have $ values for all formats this week, but my life is made a bit difficult by the fact that all MLB free agents have basically no projected playing time in the current version of Steamer.


I didn’t know that :robot: were capable of making excuses…


I just updated the FGPTS $ values using the early Steamer 2017 projections. I plan on loading $ values for the other formats very soon (likely tomorrow).


Okay, $ values for all formats are now loaded!


What a beautiful thing!


I want to pick up on a comment that I think @hernandez17 made recently about surplus that I think might benefit the group as a discussion point in this thread:

Do we really know that teams with the highest surplus entering the season are more likely to succeed in the standings?

Seems like everyone in the @community is sold on attaining surplus assets during the off season, and though it makes logical sense, do we have any data suggesting league winners last year entered the season with the most surplus? Just playing devil’s advocate: Surplus is only as good as your player values entering the season, which almost becomes irrelevant the second the season starts because player values change constantly due to production.

Note to @OttoGraphs: we should try to capture something like @eamuscatuli Surplus Calc for a large sample of leagues (frozen) just before the season starts and then revisit at season’s end to see what % of those teams actually have success.

Correlation Between Keeper Surplus and Finish