Open Changaco opened 8 years ago
I have another idea that boils down to automatically varying the amounts of donations.
It's about encouraging early support of projects on Liberapay (including Liberapay itself). In traditional for-profit startups early funding usually comes from investors who hope to make a profit by receiving more than they put in. That provides quite an incentive but it's also a system many people have a problem with, especially company shares as they can lead to limitless rents as well as unending conflicts between employees and investors.
In a way Liberapay is an attempt to build an alternative to this "capitalist" model. One of the qualities we're aiming for is fairness, and that includes a just distribution of both income and donations. Donors choose how much they give of course, and team members decide how they split the income, so it would seem that we already have a system that is quite fair. However, it relies almost entirely on users for fairness, they have to keep a close eye on their donations and takes to manually adjust them if the situation changes. There is one exception to that, the donations to teams, they're adjusted automatically when the team has a leftover, each donor's contribution is reduced proportionally. That also seems quite fair, but it's missing a dimension: time.
Why should someone who has already donated money in previous weeks contribute the same amount this week as another user who just started donating? Instead of looking only at the current donation amounts, the algorithm could take into account the total sum of money that each donor has given to the team over time, reducing the contribution of early donors until recent arrivals catch up.
Donors should be able to state that they only want to support a creator up to a specific income ceiling/maximum.
Basic implementation checklist:
tips
table to store the income limit.Payday
class to enforce the income limits.donate_reminder
notification and the code that triggers it, such that it is appropriately worded when it is sent in reaction to the income of the donation beneficiary falling below the threshold set by the donor.