Page MenuHomePhabricator

EPIC: Recurring upsell for donors
Open, Needs TriagePublic


Here's a sketch with 3 different examples of ways we could present a recurring upsell to readers engaging with our fundraising banners.

In version 1, the recurring ask doesn't happen until the donor has completed the payments form and hit our Thank You page. It is styled as a simple button.

In version 2, the donor selects an amount and payment method from one of our fundraising banners, and then sees an interstitial recurring ask before being directed to payments wiki.

In version 3, the upsell happens thru an interstitial, immediately after the donor has completed the payments wiki process.

Version 3 is our preference.

CC'ing @CCogdill_WMF in case she has any additional details to add.

Event Timeline

DStrine renamed this task from Recurring upsell for donors to EPIC: Recurring upsell for donors.Aug 30 2016, 8:24 PM
DStrine added a project: Epic.
DStrine moved this task from Triage to Q3 2021-2022 on the Fundraising-Backlog board.

Option 2 in the Sketch had a good idea, which was to offer the donor the ability to change the amount when electing the upsell.

We're anticipating that (some? many?) donors may not be in a position to donate the same amount each month that they chose for one-time, so adding flexibility at this stage of the process would have several benefits:

  • we'll enable the donors who can't give the one-time amount repeatedly to donate less per month, and not have them drop off
  • we'll make refund requests unnecessary - without this flexibility we may end up issuing, say, refunds of one-time $50's to enable recurrings of $5

If we center the upsell in the TY page like in option 3, some provision for this issue may eliminate lots of manual requests.

I don't actually see that in the slides for option 1 or 2 -- but yes, I
agree, the donor should be able to select a different amount. I believe
Trilogy had an amounts grid which suggests a different, lower recurring
amount than the donor's one-time donation.

I'm asking Trilogy what their amount suggestions are.

In our current best in-banner upsell variant, we include the option for the donor to manually input their monthly donation amount on the upsell step. To see the upsell content, select an amount and method in the form and click Continue.

Below I've included a table of the upsell logic that determines how much we ask in the recurring upsell, based off initial one-time amount selection. All values are in USD ($).

For help reading this table, here are a couple examples:

  • Row 2 = "if initial one-time amount is less than or equal to $5, ask them to make it $2.75 monthly.
  • Row 3 = "if initial one-time amount is between $5.01 and $10, ask them to make it $3 monthly."
initial one-time amountmonthly recurring ask
<= 52.75
<= 103
<= 205
<= 307
<= 509
<= 10011
<= 25025
<= 50050
> 500100

@DStrine, @Ejegg : here's a doc containing mockups for the recurring upsell. You'll see that it's styled to look like an overlay on top of the payments wiki page thru which the donor has just submitted their one-time gift.

Looking forward to your feedback.

OK, great to have those amounts, and these mockups look do-able. Will Trilogy be supplying HTML / CSS / JS, or is that all up to fr-tech? And how do those amounts translate to other currencies? Do you round things off?

Hey @Ejegg, @CCogdill_WMF and I spoke to Eric @ Trilogy yesterday and he confirmed that they've already started working on the HTML, CSS & JS - should be complete soon and we'll pass it along.

Great question re: amounts in other currencies. We've run this in the U.S. and we've run it in Italy, but haven't built out a wider localization scheme - we'll work on that.

@Ejegg, here's a coded version from Eric and Randy @ Trilogy, along with their notes on functionality:

General Notes

  • Fine to use the modal already on the payments page, they just included their own in the mockup for design purposes.

Suggested upsell amount

  • ru.setUpsellAsk(amount) is a function that returns the suggested upsell amount based on the amount of the initial donation. It will also need to format the amount correctly based on the country/currency; this is hardcoded to U.S. $ for now (see lines 276-279). Current implementation on fundraising banner uses frb.formatCurrency(currency, upsellAmount, language).

Button/link behavior

  • “Yes” button creates a recurring transaction for suggested upsell amount
  • “No” button or “X” link redirects user to standard receipt/thank you page
  • “Yes, but for a different amount” link shows second screen (implemented)
    • “Donate Monthly” button validates the amount entered by the user (shows correct .ru-error if invalid) and creates a recurring transaction for the entered amount
    • Validation function like validateForm(form) should do the trick
    • “<-“ link goes back to first screen (implemented)