Quick note: unit readiness is also a synthetic value, there is no such thing in the savegame data.
The calculation of the unit readiness is based on:
Code:
/*
* A unit's readiness is influenced by:
* damage more damage means less readiness
* headcount less available effectives means less readiness
* suppression more suppression means less readiness
* abandonment means total loss of readiness (-100%)
* crew means significant reduction of readiness (-90%)
* status additional readiness reduction
*/
The suppression impact is calculated by deducting the unit's suppression from its morale: (morale - suppression) / morale.
The result is capped at zero, so that it cannot become negative.