Sorry, didn't see this discussion. I don't want y'all to have to guess at the math
The efficiency malus is applied multiplicatively. For, example, the actual output of a mkI is calculated basically like this:
int baseProduction = 5000;
int actualProduction = baseProduction;
for ( int i = 1; i < numberOfReactorsOfTheSameMarkAndPlayerAndPlanet; i++ )
actualProduction = ( actualProduction * 8 ) / 10;
if( actualProduction < (baseProduction / 10) )
actualProduction = baseProduction / 10;
(for mkII, replace the 8 with a 6; for mkIII replace the 8 with a 2; they also start with different baseProduction, of course)