Gittip’s Teams feature enables the distribution of funds each week among members of a team. During last week’s payday, two bugs in the algorithm for distributing team funds led to overpayments to 55 members across 21 teams, totaling $141.34. Most of this was for the Gittip and Aspen teams: $124.56 (88%) to 13 members (62%). Additionally, funds (less than $2) were not distributed at all to eight members across three teams.
The payday algorithm runs in three loops: payin, pachinko, and payout. Pachinko is where the team distribution happens. Payday crashed twice during the pachinko loop due to bugs in the pachinko algorithm. After the second crash, we decided to skip the pachinko loop entirely and proceed directly to the payout loop. We took this decision on the understanding that the dollar amounts involved with teams is relatively small, so the risk of needing to do a major correction was low, and we were under time pressure to submit payouts for the day to our processor, Balanced Payments.
Since most of the money involved in the error was for the Gittip and Aspen teams and the effect on other teams was so small, we decided to let the overpayments stand. This amounts to an extra payment from the teams in question to their members.
For further details please see this GitHub issue.