THE MECHANIC
During the offseason training camp, Fast Break adjusts players randomly using the following general guidelines and as far as I can tell in approximately this order of application:
1. Random Young Player Potential Bump/Hit: Fast Break may randomly select a (young) player to have their potentials significantly changed positively or negatively. (The "Training Camp Bump" or "Training Camp Hit"). If memory serves, generally when this happens, all ratings are increased by a percentage (so a 10% increase means a player with 80 Passing and 10 Block will see potentials go up to 88 Passing and 11 Block). Parenthetically, if memory serves, "hits" are about twice as likely to happen as "bumps" for any given training camp.
2. Guaranteed Older Player Potential Hit: Older players see their potential ratings decreased; the older the player, the greater the decrease. They also see ratings without Potentials decreased.
3. Reduce Current Ratings that Exceed Potential Ratings: Most applicable to older players whose potentials decreased, but also happens to younger players that get the TC Hit. If a player's "Current" rating exceeds their new Potential rating, the "Current" rating falls to the level of the "Potential" rating.
4. Player Improvement (Stats with "Potentials"): If a player's "Potential" rating in a stat is higher than his "Current" rating, the player will increase his "Current" rating (but no higher than the "Potential" rating. If memory serves, this increase never exceeds 10 points per season.
5. Player Variance (Stats without "Potentials" e.g., Quickness, Strength): Any player may see a small random increase or decrease to any or all of these scores. EDIT: The preceding applies to younger players. Older players generally see only decreases, not increases, and depending on age, may see large decreases, not "small" decreases.
THE PROBLEM
Team-building is difficult when you commit a lot of resources to a young player and the player takes an unexpected hit in Training Camp. While some randomness is necessary in the game to keep things non-deterministic, randomly punishing a human by, for example, hitting the potentials of a young star that was just signed to a super-max contract tends to suck the fun out of the game and lead to owners quitting due to being punished for things they could not reasonably have foreseen.
THE CURRENT SOLUTION
As of S72 of the PBSL, the solution appears to have been "Training Camp Insurance" - you could protect players 27 or younger, with the first 3 players free and additional players protected at 15 points per player. This allows humans to guarantee that players around whom they are building their team don't take unexpected potential hits.
THE UNDESIRABLE SIDE EFFECT
The problem with the current solution is that over time, allowing young players to have ratings INCREASES when Training Camp randomly increases their potentials, but not ALSO allowing young players to have ratings DECREASES when Training Camp randomly decreases their potentials leads to an inflation of the talent level of the league over time. In other words, Training Camp Insurance gives us collectively all of the rewards and none of the risks because we turn training camp for young players into a one-way ratchet where they can only improve and never decline.
FINAL PROPOSAL
You're probably asking, "Wig, why didn't you lead with this?" The answer is, "because I was trying to forestall questions that would inevitably rise if I just proposed it without context." My proposed tweak is as follows:
1. If a player is protected by Training Camp Insurance and receives a boost in potential (and not a hit), the boost is removed (this helps balance out the risk/reward factor by making sure Training Camp isn't a one-way ratchet that improves potentials).
2. If a player is protected by Training Camp Insurance and takes a potential hit (that Training Camp Insurance could restore), the GM is given the choice to allow the hit to stand OR to take a "cut player salary" cap hit applied to the team's salary cap. The amount could be debated, but my initial thought is this hit should be equal to the Mid-Level Exception with max raises applied for an equal of number of years to the contract (so restoring a player with 3 years left on his contract means you take a dead cap hit equal to a 3-year MLE).
The reason I chose the MLE here is that I think it creates interesting decisions. It's a no-brainer to take the cap hit and limited roster flexibility that leads to if you are reversing a hit on a player you just signed to a max deal, because otherwise that max contract is going to cripple you. However, if you have a player on a rookie deal that takes a hit, you may decide it's not worth it to you to stack the MLE on top of that cap hit and just let the rookie walk when his deal is done... and this is realistic since rookies bust and don't live up to their potential all the time.
3. Since we are now applying cap penalties for players whose ratings get restored by TCI , I think we should eliminate the point banks cost - i.e., "3 players free, 15 points for each additional player" - and instead allow teams to designate as many under-27 players as they want. Since the cost of protection is now "cancels potential improvement" for all players (and possibly cap space penalties if you take a hit) there are now strategic decisions to make. Before, it was a no-brainer to protect your young assets; now, I think you only want to protect your true superstars (as you probably want your "good but not superstar players" to have the possibility of jumping up to superstar level... but that also leaves you open to the risk they'll decline).
EDIT: On point #2, I think the "default action" should be "Restore potentials and apply a cap penalty" unless a GM specifically says, "nah, I'll take the potentials hit instead of the cap hit" - if a GM took the time to say, "protect this player's potentials" and has to go AFK for a week, they shouldn't be required to AGAIN say, "restore the potentials."
Please discuss. I'm really hoping for feedback to improve the proposal.
EDIT 2: For inputters/commissioners, the way to apply the cap hit manually would be in the League Editor - select "Teams" from the dropdown of what to edit, then select the team, then go to the "Finances" area and adjust the "Cut Salary 1", "2", "3" etc. fields accordingly.