Didnt explain someone in here before that this has to do with bitfinex running a cron-job only each hour? This job then checks if a swap ended and closes it.
If its handled that way then i think its not good. I cant even see how they will calculate it in a fair way if your swap is hold longer than both parties thought.
I think it has to be more frequently than once per hour - I've not seen longer than about 20mins.
As for calculating the returns... I keep unnecessarily close track of what I expect to receive, and calculating it as if the return is paid for the exact duration of the swap has been successful enough to predict the daily payment to within a few cents of the actual figure (and it isn't all in one direction so it also averages out over time)