Announcement

Collapse
No announcement yet.

How the OOTP Financial Engine works

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • How the OOTP Financial Engine works

    Here is another article that my friend Bill Attebury wrote. I hope this helps you guys understand a bit more about the financial engine in OOTP..

    How The OOTP Financial Engine Works

    Bill wrote this for another league, but I it would be of benefit here as well. I believe it is important to understand the financial engine in deciding what we do going forward and the engine is probably not doing what everyone thinks. For example, if you manage to budget would will be really hurting your team. I'll start another thread for questions as I would like this just to be for reference. I will also post how to read your front office page as well.

    OOTP economy - The FED as seen thru Marcus's eyes

    There is much confusion around finances in OOTP and in some quarters much frustration in having a financial model that is somewhat realistic (not necessarily historical, although that would be nice as well). The reason for the confusion is that most don't realize that the OOTP financial engine is an inflationary model. That is, the financial engine looks to infuse money into the economy and ensure that everyone has money. In is also representative of baseball as it tries to create small, large and very large markets. This helps it generate money.

    The reason for this inflationary model is that if you have teenagers (and some adults) who want to go get the star players, you don't want the game to stop you just because you don't have money. They don't understand profit and loss and don't care to, they bought a baseball game. If they have to business balance sheets, they will find another game. To that end, Marcus is correct and after all OOTP wants to sell games first and for most. The issue some of us have is that there is a set of customers who do want a representative economic model on top of our baseball game. It would therefore be nice if the engine would accommodate that set of customers. To date Marcus/Andreas have been unwilling to allow that. This leads us to some extensive analysis to try and reverse engineer the algorithms to find where to tweak the engine.

    To support this hypothesis, I ran an exhaustive set of tests against the historical data set. Why the historical leagues? The reason is simple. When doing historical simming you have the option of having the financial engine read the next season’s financial parameters to re-sync the engine. The theory is that if the financial engine was constantly being adjusted, whatever inaccuracies might still be consistent and thus you could control the engine thru the financials.txt file. Unfortunately, this proved to be a false assumption. The values in used by the engine (while historical in their creation) are so severely modified as to create a league with very unrepresentative values. OOTP12 introduced a feature to help the creation process by showing what would be expected by those set of parameters. This also proved to be inaccurate. Additionally, it also proved that different algorithms were used at different times.

    Therefore, if it was unable to control the engine on historical sims thru the financials.txt file (there is a new financials.txt file in 13 which makes some very minor improvements because of this set of tests), then it would certainly be impossible to control the financial economy of fantasy leagues thru these parameters since there is no re-calibration mechanism in the fantasy leagues.

    First, recognize that the manual won't help. It is not that it is wrong, it is just very misleading. Case in point- Budgets. You have two options, owner sets budget - which will produce some variability based upon owner characteristics and mood. The resulting budget might not always be desirable. Option 2 is that all revenue is used from the budget. To quote the manual

    "If you choose not to have an owner control the budget, then you can spend up to your team's entire revenue. This amount is shown under the Current Budget field on the Budget Information section of the Finances page."

    From that you would expect that your revenue is Gate Revenue + Media Revenue + Merchandise Revenue +/- Revenue Sharing + Cash (profits). Thus it should be very easy to predict. Unfortunately, that is not the complete budget algorithm. The real algorithm is not documented, but appears to use factors (previous budget, profit/loss of the league, profit/loss of the team, and in some fashion team performance). The simplest way to see this is if the league is making large profits (e.g. the league has lots of money). In that case, if you team makes a profit your budget will increase, if your team makes a loss your budget will decrease. Other factors appear to influence the amount of increase/decrease, but those factors can't change the basic rule. Once the league stops turning large profits, then other factors can and do come into play. Obviously if you are using the owner sets budget, OOTP goes through this same exercise and just creates more variability. Remember, the objective of the engine is to infuse money into the economy. Larger budgets require larger revenues to support. And inflation is born.

    An important note (and area of misconception) is that the Maximum cash value is important, when it in fact plays NO ROLE in these calculations. Its purpose, there are two, are elsewhere. Also as you have probably realized, player salaries aren't mentioned and they do not appear to influence the economy (so why the parameter settings -more on that later).

    Another important point to understand is the difference in solo leagues vs. on-line leagues. The issue of balancing finances in on-line leagues is important. The key is to reach an understanding (or a specific objective of the commish) as to the role finances will play in the on-line league. It is next necessary to find the right balance, which usually requires some tests to be run. However, these tests are solo leagues and thus the dynamics are different.

    In solo leagues, the AI is controlling most of the teams. The AI operated in harmony with the financial model (no surprise here) and as such will attempt to maximize profit as opposed to win. By doing this the league profit will be maximized and thus the financial engine will be optimized in creating money. In on-line leagues maximizing the league profits is NOT a GM's objective. It is usually winning by any means. So from the OOTP economic model viewpoint, the solo league is the optimum view, one than has to adjust for what us poor dumb humans do.

    The most important revenue parameter is Gate Revenue. This is because, 1) it is the variable the engine can most easily influence, 2) it is usually the largest of the revenue areas and 3) Merchandise revenue is in part based upon attendance, so the engine is really impacting 2 revenue streams. You can also see this in the league creation process. When you create a league one of the variables is average attendance per game. According to the manual this variable

    "This figure is used as a baseline to determine attendance figures for each team."

    This would lead you to believe that you attendance will revolve around that figure. Unfortunately, that is not quite the case. This figure drives the size of the ballparks in league creation, which allows the engine sufficient room to generate income. It appears this figure is around 50%. So in the case where you set the average attendance per game at 40,000, it will generate ballparks with capacity of 55000-65000 or higher. Frequently the first season’s attendance average is over the entered value (e.g. 40,000). if something in the settings or league causes an impact in the revenue generated, the financial engine passes a multiplier to the attendance algorithms.

    One additional point on Gate Revenue. Obviously ticket price influences gate revenue. The initial ticket price is one of the initial parameters set (e.g. $20.00). The financial model does not appear to alter this at setup, so each team has the same value. Oddly, the financial engine doesn't appear to significantly alter this number over the seasons. Maybe 10%, despite the economy being flat in terms of growth. Of course, human mangers are a different breed. The AI never reduces the price per ticket. There is some evidence to suggest that the human owner should never reduce the ticket price. This is because the potential attendance boost is not enough to re-coup the gate revenue lost. It is imperative that you maximize your profits to limit any reduction in budget. As I'll get into later, it is critical that you avoid the bottom of the league in budgets.

    The second most important parameter is market size. This value can only be edited by the commish, but how it functions is important in understanding the engine. At league setup when you enter all the cities, the city name is not used in setting market size. This is because market size is not established until after the inaugural draft. Even if you go in a set it for each team prior to the draft it is simply ignored and over-written by the values it wants. The financial engine wants to create a variety of markets (much like real life). Whether it uses the cities you enter or not is unclear, but best evidence is that it does rank them in population, with the higher population getting the larger markets. It will always create a couple of Big/Huge markets with outstanding fan loyalty, they will also start with high fan interest. You can also anticipate the larger stadiums being there as well. Market size, fan loyalty and fan interest all influence Media Revenue, Merchandise Revenue and attendance. Also, market size and/or fan loyalty affect fan interest. The higher these values the slower fan interest will decay and the faster it will increase. This means the larger/stronger markets lose less attendance when the team is bad. Therefore, from a league economy standpoint, the large markets will almost always drive the league economy, ensuring money into the economy. Of course, this creates a disparity in franchise financial resources. One might live with it in solo leagues, but it is less attractive in on-line leagues where people are expecting some set of level playing field. It appears the recent improvements in v12, that the financial engine increases these values very rarely and not as a method of creating league revenue. It does appear that these values will decline a bit. This is death to the franchise which declines.

    There appear to be two other factors which either drive revenue directly or influence its generation. This is Cash Maximum and average player salaries. The impact of either of these is not intuitively obvious. Let's start with player salaries, because it probably isn't clear on how it does and doesn't influence the league economy.

    Obviously step one is creating players. It doesn't matter whether they are real or fantasy players the same logic applies at league creation. Again from the manual:

    "Contracts upon League Creation
    At the start of a league, whether you have an inaugural draft or not, all players are given contracts. The majority of the starting contracts will be for one or two years, although some might be longer. To calculate initial contracts, the league calculates the average player quality at each position. Then it compares each player to that baseline, and based on the difference assigns a contract that is based on the salary steps (above average, good, star, and so on) in the league financial rules. Also factored in are service time (which is generated randomly), age, and a certain amount of randomness. Arbitration-eligible players get less money, and players who are eligible for the league minimum get that amount."

    And then there is this little bombshell:

    Warning! Due to the flexibility of the financial model, player contracts might be structured differently from what is written here, depending on which financial options are enabled.Truer words were never spoken!!!

    A couple of points on the parameters you enter on player salaries. It is not clear whether they are used in the future as the basis for player demands. If they are, then there is a multiplier as well and it is easy for the multiplier to make the initial settings irrelevant. The parameters may be used by the AI, but of course us humans would think of being constrained by any limitation. Best evidence suggests that these values are dynamic based upon recent contracts. In some cases they appear as being used because of the AI behavior, but my guess is maximizing revenue is the underlying logic behind the AI negotiating offers and that the parameters are not used after setup.

    A second point which will be discussed a bit more late, is that player salaries, or more important your player expenses, is NOT a factor used in establishing the budget.

    So how are they used. To create a larger economy of course. To say there is an understanding of the league creation process would be a gross overstatement. But based upon the patterns in the leagues created inferences can be made. Therefore, the warning manifests itself as follows. The financial model develops all the expenses and then generates the revenue parameters to cover the expenses plus growth. Different multipliers are used based upon options. There is a base set of algorithms, which are based solely upon the player salaries generated. Thus this is the largest multipliers since the engine believes it must create an economy with player salaries being the only expenses. If you turn player development on, the multiplies increase to account for those expenses, if you turn coaching on, then the multipliers are increase to cover those expenses (BTW historically the engine takes the average coaches salary multiplies it times the number of coaches you need and multiplies that by 4.2 to get "average coaching expenses". If you turn scouting on, then the multipliers are increased to account for the expenses you set up in the scouting profile. Gets to be large numbers (think compound interest).

    So back to the player salaries. As you are probably aware the description of the player type on the salary parameter inputs (e.g. star player average salary) relate to the star system 5* to .5* at .5* increments. So at the top is the 5* player. While it says average it is used as a minimum during league create. So that some players (1 or 2) may receive 50% above that number. This is done to allow one to three teams to really load up on high salary players. So that after the draft (if auto drafted) you will see a huge disparity in salaries (or in financial terms expenses.). So next the engine takes the expenses and starts to generate the values necessary to create sufficient revenue. These parameters are what we described previously, gate revenue (e.g. ball park size and real base attendance), market size, fan loyalty and fan interest. This is also the first time Cash Maximum is used. The engine wants the economy to be sufficient so that each team can achieve max cash. This ensures the maximum amount of money in the league economy. The larger markets, necessary to meet the higher player expenses, will generate high local media contracts and the multipliers create more merchandising revenue.

    So the end result is this huge economy with a high growth capability. So now what happens?

    After league creation the only other date of significance is the "Playoffs end - Offseason Begins” date. When that date appears the financial engine has done all its work the night before. It's primary function that night is to establish new budgets for every team. In doing so it must process revenue sharing if it is turned on and it implements the cash Maximum threshold. It then adjusts the revenue parameters to ensure that every team exceeds the cash max value. It might adjust player salary modifiers (more on that in a minute). The end result is a new budget and a new balance. I will not go into the errors and inconsistencies on the team front office tab at this time (that's a separate discussion and has no impact on the financial engine).

    Team budgets are established looking at team profits and they are ranked by their profits. The some adjustments are made based upon team performance. Then the engine goes thru the list and looks at how the team did against the league average and computes the percentage of the league profits that the team will get as new budget. If a team lost money in the year then the percentage computed is the budget to be given back (e.g. the team is reduced but the teams that made a profit will get a little more added on. So in essence there is a projected total economy for the coming and each team is getting a percentage of that budget. In some cases you budget increases, in some it decreases. In general, make a profit and it increases, lose money it will decrease. This percentage for budget is slightly adjusted for team on field performance.

    After the budgets are established the Cash Maximum is processed. This makes the Cash max value an economic deflation influence. You have take money out of the league economy. The financial engine then looks to replace this income. It will increase local media contracts if they are up for renewal, it will increase the base of the attendance curve and it will increase the multiplier for merchandise revenue. There appear to be limits on the media revenue and merchandise revenue that the engine uses. 30-40% seems to be the range. It doesn’t have a limit on the attendance since the ballpark size already is one. The important point is that the financial attempts to adjust at this time for money you have taken out of the economy. After this process is executed, there is little impact you can have on the economy in the coming season. Changes or edits do not cause the financial engine to re-compute the economy. It is only done on this day.

    People believe that player expenses or expenses in general are used in the budget process and there is no evidence to support that theory. The impact is seen where a team was profitable in a season and now its budget drops causing is to struggle to meet expenses. If the financial engine were using expenses, it would not create such a condition. It will do this even in solo leagues where as I indicated, the AI is managing the team with a maximize profits perspective.

    Also, it was obvious from the historical tests that the engine does not look at the player salary averages entered during league creation. The tests were run requiring the engine to use the next season’s data in the financial txt file for the coming season. Even though these values were frequently less than what the existing player’s salary was, there was no evidence that the season’s re-negotiations were based on the new settings but only on the current average. Thus in on-line leagues when someone establishes a high contract value for a player type that becomes the new bar for future negotiations. Salaries will not come down. This means that on-line leagues that have lots of cash are encouraging owners to actively bid on players, thus causing salaries to rise. You don’t see this in solo leagues because the AI doesn’t do bidding wars, it is managing solely for profit. This is also why salary cap in online league won’t work. Since the engine isn’t looking at expenses, it will continue to generate profits and increase budgets. The editing of these values back down has no influence on the economy. So cash exists, teams negotiate large contracts, raising the bar on salaries. The salary cap will limit the number of players that can be signed and the rest of your talented free agents will sit on the sidelines, because no one can exceed the cap to bid on them, further increasing profits and thus the league inflationary economy.

    This iteration occurs each season at the "Playoffs end - Offseason Begins” date. The will league will begin to stabilize one the economy engine runs out of ways to expand the economy and the expenses then catch up with the revenue. Growth ends when all the multipliers are maxed out and all the stadiums are essentially filled every game (there will always be some shortfall in attendance for the teams performing poorly on the field. You can simulate this by running test of your set up, but remember the account for the fact that the AI GM is maximizing profits and the human GM is trying to win.

    How you adjust you league is a separate discussion since league objectives would be a consideration. How one manages a team is still up to the GM but understanding these mechanics may help.

  • #2
    Who are you and why have the baseball gods blessed us with your arrival?
    Denver Bulls

    Comment


    • #3
      I purchased FOF7 through steam, joined the OSFL. I've playing OOTP since version 5. I was reading through the BLB forums here and read the thread for newbies. I just thought this information would be helpful to the GM's, but especially helpful for the ones that are new to OOTP..
      Last edited by FlexD; 03-18-2015, 01:05 PM.

      Comment


      • #4
        Originally posted by Carlos View Post
        Who are you and why have the baseball gods blessed us with your arrival?
        Toronto Canadians - 2004-
        Brewmaster's Cup Champions: 2022
        Domestic League Champions: 2021, 2022
        Ale Division Champions: 2021, 2022
        DL Wildcard: 2019, 2020

        Davenport Brawlers - 1988 to 1998
        Bock Division Champions: 1988, 1989, 1991, 1992, 1995

        Comment

        Working...
        X