there is a thread about this over on the Game Discussion & Feedback forum from before I thought it was a bug.

The issue is that I only see +1 and +2 Melee Attack stat increases at level up. I don’t know about the other stats but this is the most notable for me and the only one I’ve crunched the numbers on. My total distribution is +1.37 after 70 recordings from levels 1 to 5-7 for an entire mercenary company.

From other forum feedback, I know the range is +1 to +4. Assuming you use “int”s for the variables during the random stat increase generation, it is my belief that somewhere, the number is being divided by 2. This would truncated +2’s and +3’s down to +1’s, +4’s become +2’s and +1’s become +0’s which might then be discarded. This would result in an average distribution of +1.33 which is very close to my observed +1.37.