Here's an updated formula for calculating blocks/day:
blocks/day = chains/day * (0.97 * (1 - fracDiff) + 0.03)
Here fracDiff is the fractional part of the difficulty, i.e. fracDiff = diff - floor(diff).
This is simply assuming that it's a 0.03 probability for the (k+1)'th number being prime in a chain. These result in longer chains which are not subject to the fractional difficulty. This number was produced by the function EstimateNormalPrimeProbability() in my latest code. It's a bit smaller than my previous estimate of 0.035 being the probability.
Good one. I will add this to my bot, thanks!