Before this fell out of my head i decided to write it down somewhere.
Should we adjust values in blueprint so that they comply to what engine can actually reproduce?
For example Pillar blueprint tells us that weapon fire rate is 0.8. That is 0.8 shots per second, but for engine that means that it has to wait 1 / 0.8 = 1.25 seconds between shots... and engine can't do that, apparently it can't make units shoot between game ticks or can only wait for time mesured in integer number of ticks. Game tick is 0.1 sec. So it can wait 1.2 or 1.3, but never 1.25 sec. So pillar shoots every 1.2 seconds, not 1.25. 0.8 value in blueprint in reality turns out to be 0.8333333333333333. and you can even test this in game with shift+F6 and cheats enabled. change pillar fire rate to 0.8333333333333 and unit behavior will not change. actual pillar DPS is not 56 (70*0.8), it is 58.333333 (70*0.8333333).
same goes for tons of other units and reload\delay\recharge\wait-time values.
this may not be usefull if we actually make real universal dps calculating formula that takes in account all of the engine quirks. but if automaticly taking in account engine quirks in calculation will be to hard then we can just make blueprints in a way that helps accurate dps calculation, by avoiding blueprint values that engine can't reproduce.
That eventually should help database to be more accurate.