Assuming that all 5,000 patrons sign up in the same month, the project will receive nothing for 3 months. Then on the 4th month each patron will reach $4 pending donation, high enough to charge, and the project will receive $20,000.
In practice, patron sign-ups will be spread out, so this particular scenario should not be too much of a problem. While there may be ups and downs on a month-to-month basis, it should be more or less flat.
There are two ways we could do this:
Charge just the minimum in advance, and hold the money ourselves until it is paid out, to whichever projects. This is the wallet approach, and it is not really feasible due to financial regulations – we do not have the person bandwidth to become licensed as a money transmitter.
Charge in advance, and “pre-pay” directly to projects, then don’t charge future months until the pre-paid amount has been “used up”. But what if I (a patron) decide to stop supporting a project? What happens to the pre-paid amount? I also am uncomfortable with giving projects “advances” like this. It feels like there is more potential for accidentally creating a system which could be abused (eg, along with changing goals).
Of course, the current way may be open to “abuse” in the other direction, for a patron who wants to pledge but then tries to avoid ever actually paying out. We could take steps to avoid this, like, if you un-pledge from all projects, your card is immediately charged even if it is under the fee limit. However, even if we did not do this, I think this “donation avoidance” is less problematic because any individual can only “game” the system out of $3.79 (whereas in the other direction, a project could do it to individuals at scale).
Moreover, I don’t really see what incentive a patron has to do this — the whole point of a donation system is… to donate. The idea of pledging but not donating is nonsensical; you might as well just not donate. Yes, a project could create fake users to drive up matching, but this is true (and an issue we will surely have to face at some point) regardless of the processing fee minimum.
A bigger problem, if we opt for the current approach (wait to charge) is that the credit card on file might become invalid for one reason or another before we can charge it, so the project loses out on donations. But remember: our goal is to increase donations by an order of magnitude or more. If we achieve that goal, it will not matter, even if something as crazy as 10-20% of donations are never processed due to this.