Thanks for pointing that out! It looks like there is an issue with Javascript's inbuilt Math.sqrt()
calculation for huge numbers. Maybe the votes in those posts contain a very strong vote and the number of voted shares mess up my curation reward calculation.
I will try to find out, what exactly causes the large deviations and fix it with the next update. The values should not differ from the actual payout more than a few percent (10% deviation is still way too much).
Edit:
I now found the real cause for the issue. It seems to be impossible to calculate the exact curation reward based on the from the node delivered time
and rshares
fields alone, because the time-based order of voters may differ in cases, where the vote's time (second) equals that of an other vote.
I calculate each vote's weight
myself with:
TOTAL_RSHARES_SQRT *
(
Math.sqrt( rSharesBefore + vote.rShares ) - Math.sqrt( rSharesBefore )
)
and I need to change my logic a bit, so that I can take the node's calculated weight
field into account. That's quite some work to do for me, but it needs to be done.
I guess the overall calculation will be much more accurate with the new logic.