Slipping is a simple solution, which allowed us to use cheaper hardware by decreasing database locks amount. I'm working on new algorithm, which will make average time closer to 1h. But it's already very close. Just an example for some set of last 24 payments:
2013-06-12 15:47:29
2013-06-12 14:47:11
2013-06-12 13:45:31
2013-06-12 12:44:59
2013-06-12 11:44:32
2013-06-12 10:43:33
2013-06-12 09:42:37
2013-06-12 08:41:32
2013-06-12 07:40:42
2013-06-12 06:39:30
2013-06-12 05:38:35
2013-06-12 04:37:36
2013-06-12 03:37:35
2013-06-12 02:36:37
2013-06-12 01:36:31
2013-06-12 00:36:09
2013-06-11 23:35:35
2013-06-11 22:34:31
2013-06-11 21:34:30
2013-06-11 20:33:37
2013-06-11 19:32:35
2013-06-11 18:31:35
2013-06-11 17:31:27
2013-06-11 16:30:37
postgres=# select timestamp '2013-06-12 15:47:29' - timestamp '2013-06-11 16:30:37' as time;
time
----------
23:16:52
(1 row)
postgres=#
postgres=# select extract('epoch' from interval '23:16:52');
date_part
-----------
83812
(1 row)
postgres=#
I.e. average paymets speed up is only ~3% (83812 seconds resulting cycle time instead of 86400). Next algorithm update will make deviation even lower. Also I can calculate time deviation for last 24 hours and show it with another statistics... At the rewards page, for example.
P.S. I think that payments volume for last 24 hours addition would be helpful.