liberapay.com icon indicating copy to clipboard operation
liberapay.com copied to clipboard

Automatically pausing and resuming a donation based on the total income of the recipient

Open Changaco opened this issue 8 years ago • 1 comments

Donors should be able to state that they only want to support a creator up to a specific income ceiling/maximum.

  • “I want to give €1 per month to X, but only if their income doesn't exceed €2k per month.”
  • “I want to give €1 per month to X if their income falls below €50 per month.”

Basic implementation checklist:

  • [ ] Add a column to the tips table to store the income limit.
  • [ ] Add the income limit input to the donation form, possibly in an “advanced settings” section collapsed by default.
  • [ ] Don't allow the income limit to be lower than the donation amount since that doesn't really make sense.
  • [ ] Don't ask a new donor to fund their donation if the beneficiary's income is already higher than the limit.
  • [ ] Show the income limit in the donor's Giving page.
  • [ ] Show the income limit in the recipient's Receiving page, including in the “Recent changes” section.
  • [ ] Modify the Payday class to enforce the income limits.
  • [ ] Modify the 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.

Changaco avatar Dec 21 '15 22:12 Changaco

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.

Changaco avatar Mar 23 '17 08:03 Changaco