Upon further review, you are correct that the engine does update .SP attribute. It calculates .SP as an integer percentage of holes in each sail, relative to the maximum holes allowed for each sail type, as follows:
Triangle maxHole = 10
Other maxHole = 12
Default maxSP = 100
numberholesinsail can never exceed maxHole for sail type
fSP = maxSP * (maxHole - numberholesinsail) / maxHole;
.SP = fSP as integer
The engine does not record the .dmg decimals in the scripts and has no knowledge of those values