I try to calculate my expected swap payment for every day and almost everyday it's either up to 14 % lower or 15 % higher than expected.
I do the same in a moderately automated way (copy/paste swap details into a spreadsheet, it takes care of the rest), and while it does vary a bit around the actual figure each day, I get closer than 14-15%.
All I'm doing is
amount*duration*rate*0.85 for each swap though, so... not sure where errors would be creeping in for you.
How do you handle accumulating errors
between days? For mine, I keep a running total of how much I've been wrong by, and add the error for each day onto that total so that I can adjust for it and, in effect, start each day from zero. Some days it's a little over, some days it's a little under, but the overall total error has mostly corrected back towards zero over long enough spans of time.
First I start with an upper ceiling ball park estimate which even then sometimes reveals mistakes.
(Highest Swap Rate)*(0.85)*(lend out funds). This works for me when the swap rates are sufficiently similar and you have nearly all your funds lend out. For example even this upper ceiling estimate showed that yesterday's swap rate was about 8% higher than it could have possibly been. If there is nearly to no difference like there sometimes is, I stop right here.
If the difference is large enough I go for more detailed calculations similar to yours which often reveal and even larger difference (11 % in this case).
I'm doing this long enough that when I see the swap payment rate I immidiately have an estimate in my head (yep, fits, pretty good! or nah, this can't be) which almost always turns out to be correct.
First, it's nice to see that you can confirm that there is variation and it's not exactly the amount it should be, so I'm not making this up. In defense of BFXs good intentions and what you stated I'm assuming that most likely some parts of the daily swap payment are not included this day for whatever reason and are then included in the next day so this difference might balance itself out.
The P2P lending is surely a complex feature and we have hear about numerous problems in the past (the time of the swap payment was always fluctuating, now it's almost always at 2:40, the incident where some hours were not credited, the one time where we got a paymen 2 days later because the original one was too low, etc. etc. I'm still wondering about the very interesting intricacies BitcoinIdioitDude has laid out (the possibility (that now seems to be fixed) to churn aways loans by cycling them through would directly implicate that loans were taken out without the lender receiving a swap payment for this etc.)
That being said I still consider this feature an amazing feat of BFX and just hope it's in their best intent to not screw us over because they would probably have far more effective means to do so. For reasons of transparency I would be happy for some kind of counter (like the unrealized swap cost one in the margin trading tab) that shows the accrued amount of due swap payment and is then resetted with the daily pay out.