Training value is associated with every stat, ranging from -5000 to 5000. Natural training happens once in 500-1000 turns, and always at level up. There is a chance that the stat will be increased or decreased on each check. No training occurs if Training=0, if Training>0 then a stat increase is possible, otherwise a stat decrease is possible.
If the stat isn't at maximum (or Training is negative), number from 1 to N is rolled randomly, and if abs(Training) > RolledNumber, then the stat is increased or decreased. It means the smaller N, the bigger chance for a stat change. If Learning>9 (or Training is negative), N = X*(Stat+10), otherwise N = X*(Stat+20-Le). X=50 if Training is positive, X=10 if negative; it means negative training generates 5 times smaller N, thus is 5 times more effective. If the stat was increased, Training is decrerased by 1000 poitns, but not below zero. If a stat decrease occured, Training is set to 0.
If the stat is at its potential (and Training is positive), or it is not at potential but 1/10 chance, (another) number from 1 to StatPotential*100+750 is rolled randomly. If Training > RolledNumber, then the stat potential goes up and Training is decreased by (another) 2000 poitns, but not below 0.
Finally, another 1000 points of Training are removed, not below 0. To sum up, PC loses 1000 points of Training on unsuccessfull check, 2000 on stat increase, 3000 on potential increase, and 4000 on stat and potential increase.