Jump to content

Ozark Mountain Matchup

Brandon Savage & the #2 Vols head to Fayetteville to face off against the #13 Arkansas Razorbacks. Can redshirt senior QB Chris Diaz overcome the odds and upset Tennessee at home? Tune in this Saturday for this top 25 SEC conference game matchup!

Blue Devil Blues

Bam Bozeman and the Duke Blue Devils are prepping for a tough matchup as the #5 Florida State Seminoles march into Durham. Can QB Kelly Jarwin and RB John Johnson continue Florida State's hot streak or will the Duke's defense led by Tommy Nieves shut down their passing attack?

Join Here

Need a team?

Firstly... welcome to the SimFBA! If you are new to the site, and need a team, make sure you head over to the new users section and view the available teams list. You will also be able to fill out your job application there! See you on the field, Coach!

Read more

SimCBB Offseason In Progress

Heads up - the portal's closing soon!

Join Here

#43 Potential and Progressions


Recommended Posts

Hello Coaches!


Welcome to another Dev Diary for NewSim on SimFBA!


So there was a bit of confusion about what potential actually meant and how progressions worked. That confusion appears to stem from a combination of people assuming how potential worked, no Dev Diary that thoroughly explained it, and when a few people did ask what everything was, the responses weren't compiled into a Dev Diary or some public post that is easily accessible to everyone. This Dev Diary is an attempt to remedy that situation to get everyone up to speed. I apologize for the technical nature of this entry, but it is necessary to fully explain the process. With that, let's get nerdy! ?




First, I want to define some terms so we are all talking the same language here:

  • Progression: This is the hidden attribute that determines how players progress in the sim. Under the hood, this is a number between 0 and 99. This value (for now) does NOT change. EDIT: This is NOT a measure of "What overall they should be in years". This is a measure of how much they should get better each year.
  • Potential: This is the public attribute that is an imperfect representation of Progression. It is represented as a letter grade with the ability to add + or - (unlike all other attributes in college right now). This value CAN CHANGE. EDIT: This is NOT a measure of "What overall they should be in years". This is a measure of how much they should get better each year. Also, the change in Potential is RANDOM. It is not informed by how good the player already is, previous snaps, or whether they are hitting a "ceiling".
  • EDIT: Overall: This is how good the player is RIGHT NOW on average based on their relevant attributes (Throw Power for QBs, Run Blocking for OL, etc.). Each position has a different weighting formula for the attributes.

Now, why would we want to make Progression a hidden value? The answer is in how progression works. Given that most of the progression system (by necessity) is deterministic (meaning the same numbers in will produce the same numbers out), then anyone could take the progression value and determine the progression for every player every year before it actually happens. Now there *IS* some randomness, but it is only introduced in one spot in the calculation so it's still good to keep this value under wraps.




Now let's talk about Potential. Like stated before, it is a letter grade that can have a + or - (i.e. A-, D, or C+). This is based directly on the Progression value, but how exactly? To answer that question, let's walk through how the code generates the Potential for a player:

  1. The code generates a random number between -10 and 10.
  2. This number is summed with the player's Progression (which is somewhere between 0-99).
  3. This new number (the underlying, hidden Progression value along with the random number) is compared with a table to see what letter grade it could be (See the table below).
  4. The corresponding letter grade is assigned as the potential.


The Potential letter grade is something that can change every single year. If you want to know why from a technical perspective, please check out the spoiler below:


[spoiler=Why Do Potential Grades Change Every Year?]


This is because the Potential grade is calculated in the Player data type constructor. This is the code that "builds" a player in the simulation. When data is read into the sim, the sim has to take that data and build it into a player. That constructor tells it how to do it. So each time a player is "built", the potential is *technically* recalculated. However, since these Player data types are destroyed once the simulation ends, whatever the potential was is destroyed along with it.


So when players are progressed, the files that contain the player data is read into the simulation. This data is then used to "build" each player as a data object in the code. A new Potential is assigned when this happens. Then, the player is progressed, and when they are written out to the output file, the new potential is copied over as well.


This is also why things like snap count can't be used to influence the Potential calculation, because then every time a player is read into the sim, it would need how many snaps the player has on the year (and a season snap total in week 4 doesn't even make sense).





There are a few takeaways from all of this:

  • This means that there is a possibility that you recruit an A+ Potental player, but they really are an A Potential player. Or you could recruit a player that was C Potential because he was the only thing left, but he actually has a B Potential. This introduces a bit of "Gem" or "Bust" flavor to the sim. While the change won't ever be too drastic (About a letter grade and a half at most), it still can mean you end up with a diamond in the rough, or things don't go exactly as planned (as in real life).
  • If you notice, the maximum possible ranges for the random adjustment is 20. That means that given a certain Potential letter grade, the actual potential could either be 10 points lower than that letter grade (meaning the current letter grade is at the top of the possible letter grade values for that Progression), or 10 points higher than that letter grade (the currently letter grade was at the bottom of the possible letter grade values for that Progression).

  • The problem is, we don't know if the current letter grade for a player is at the top or bottom of the possible list of letter grades for the Progression value of that player. So if we have no other data to go off of other than just one Potential grade, let's say for example B, then the actual Progression of the player might be anywhere from C to A (given the table above).

  • However, there is light at the end of the tunnel! If you REALLY want to begin to hone in on what a player's Progression is under the hood, you just need to pay attention to their Potential over the course of a few seasons. If you take an "average" of the Potential (for example you could assign 0 points to an F, 1 to a D-, etc.) each year, the more data points you have, the closer that average will be to the "true" letter grade of the Progression underneath. Even without this metric however, one Potential data point still gives you a decent idea on if the player will at least progress at a normal pace or if they are a liability to barely progress at all.

  • TO BE 100% CLEAR: There is currently no way to do this tracking without a little bit of leg work of your own. This is unfortunately due to the nature of storing this kind of data (even with the interface). However, all of the data will exist for you to do these types of trackings. Currently, all of the 2021 rosters are still available and all future "historical" rosters for all teams will always be available for everyone to use for this, media, or other purposes.



Now for Progression, the actual value that does all of the legwork under the hood. Each offseason, this value is used to calculate the increase in player attributes year on year. This formula produces the total amount that the attribute will increase by and is done only on the attributes that matter to a particular position (i.e. Run Blocking for OL). While I won't disclose the EXACT formula, I will give you what things are taken into account and how they matter. The following is for regular players that are NOT redshirting.

  1. The current attribute (strength, throw power, etc.) value. This is used to make sure that as you approach 99 (the maximum value) it gets harder and harder (but not impossible!)to add another point to the attribute. This effect is basically non-existant at lower values, but as you get into the 80s, it becomes noticeable.
  2. Snap Count. This is used to determine how much playing time a player has had. The more time they play on the field, the more they will grow. Snap counts are translated into a status modifier given to the player using a random number within a range. These modifiers might seem like a lot, but each level is only about a point of potential difference, if that. These modifiers are:

    1. Starter (45+ snaps per game): 0-25% bonus
    2. Role Player (31-44 snaps per game): 10% malus to 10% bonus
    3. Backup (21-30 snaps per game): 0-25% malus
    4. Special Teams (11-20 snaps per game): 10-30% malus
    5. Bench (10 or fewer snaps per game): 25-50% malus

[*]Other modifiers (currently none, but would include things like injuries and potentially random events)

[*]Progression. The almighty Progression returns. This number is normalized (meaning it is changed to a number around 1) using 70 as a base. So a player with 70 Progression will have a modifier of 1. This is the most powerful of all of the factors in the formula.

Redshirts use a very similar formula, but do not use the snap modifiers. Instead, they use a modifier that is somewhere in the range of "Bench" players. Thus: redshirting a player will provide about as much progression as having that player ride the bench that year.


Secondary skills (i.e. Kick Power for QBs) are a weighted coin flip if they will increase by 1. The weighting factor is, again, Progression. So the player rolls a number between 0 and 99. If that number is BELOW their Progression, the attribute increases by 1, otherwise the attribute stays the same.


EDIT: Progression/Potential and Overall


There have been a few questions about how Overall and Progression/Potential work together. I have added some more to the definitions above to help clarify, but I will add more here as well.


In short, Overall is how good the player is RIGHT NOW. Progression/Potential is NOT how good a player will be eventually, but rather how much they should get better year on year. For example, a player with B Overall and C+ Potential is NOT an "overachiever", rather it is saying that this player is a B overall and should progress at an average to slightly above average rate, all other things being equal.


That's all there is for this Dev Diary. Please ask questions below, and I will get to them as soon as I can. I hope this clears up the confusion we were having on how the system works.


Until next time,



Edited by Rocketcan
  • Like 8
Link to comment
Share on other sites

  • 2 weeks later...

So snap count effects on progression are stepped? As in: you take total snaps divided by total games and put it into one of those categories?


So if I’m going into a bowl game and a player has averaged 19.9 snaps a game and I put him a little more in focus and his average goes up to 21.1, his progression will be coded as backup and not special teams correct? It’s not a linear effect?

  • Like 2
Link to comment
Share on other sites

  • 4 months later...
Another question about this. If modifiers are calculated by snaps/game, then does playing say 21 snaps in 1 game and not appearing in any other games mean they get progressed as a backup?
  • Like 1
Link to comment
Share on other sites

No. The number of snaps is determined by *average* the number of snaps they play per game.


To clarify: a player that plays 50 snaps in game 1 and zero snaps in game 2 has an average of 25 snaps per game, and would use 25 snaps per game to determine their progression.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...