BB salary formula works in a way that each position has skills that cost, and skills that are "free" (or cost very little).
"Free skills" for PG are: IS, ID, SB.
"Free skills" for SG are: HA, DR, PA, IS, ID, SB.
"Free skills" for SF are: HA, DR, PA, IS, SB.
"Free skills" for PF are: JR, OD, HA, DR, PA.
"Free skills" for C are: JS, JR, OD, HA, DR, PA.
Two main problems with the current salary formula is that:
- IS is free for SF, which makes no sense considering that ID (a defensive skill that is used to stop SFs with high IS) costs for SF.
- OD is free for PF, which makes no sense considering that JS (an offensive skills used to overcome PFs with high OD) costs for PF.
In other words, the thing that needs fixing is that IS should cost for a SF position just as much as ID does, and OD should cost for a PF position just as much as JS does. No need to make OD cost for C. It should stay free just as JS is free for C, and if you train a C with high OD, their salary formula will naturally at some point switch to a PF position. Same goes with IS for guards, if you train a player with JS/OD/IS 20+, they would probably be SFs, just like how players with JS/OD/ID 20+ are SFs now.
Of course, you can't just make IS cost for SF just as much as ID does, without tweaking the rest of the salary formula for SF as well, otherwise all the current top guards would be SFs with 400k+ salaries. So SF formula needs the most tweaking, and PF formula needs some changes as well.
Other positions only need some minor tweaking, like balancing the salary formula between PG & SG position so we would have roughly equal amount of players in both position, while right now there are 2-3x more PGs than SGs, at least at high levels. Probably reducing a little bit the cost of HA & PA for PG would be a good start.