Cases/Case

Tip rate was flat for years. A flat dollar moved it 20%.

A social-good crowdfunding platform asked donors for a percentage tip on every gift. Reframing the ask as a flat-dollar contribution, sized to the gift, lifted tip rate 20%. About $1M a year is projected from it — projected, not yet realised.

+20%

tip rate across the treated segments. +18% in the first bucket; +20% once v2 sized the ask per segment. About $1M annualised at current run-rate.

PROJECTED · NOT YET REALISED · INDEPENDENT CLIENT · 2025

Client
Independent client · social-good crowdfunding · name withheld
My role
Sole PM on the tip surface
Timeframe
2025 · ~10 weeks to first read
Team
1 engineer · 1 designer · 1 analyst

Situation

01

The platform ran on tips. The tip ask was a percentage. The rate hadn’t moved in years.

Donations go to the cause in full; the platform is funded by an optional tip added at checkout. The ask was a percentage slider with a default in the mid-teens. Tip rate — the share of donors who left anything — had been flat through several redesigns of the checkout.

Everyone had a theory. The default was too high. The default was too low. The ask came at the wrong moment. Donors didn’t understand where the money went. None of the theories had been tested against each other, and the team had one engineer for the surface.

Question

02

Is the amount the problem — or does a percentage read as a tax, and a dollar as a contribution?

Three hypotheses were on the table: the amount was wrong, the moment was wrong, or the framing was wrong. I put framing first for two reasons. It was the cheapest to test with one engineer. And the existing data pointed at it: tip rate fell as donation size rose. A percentage scales with the gift, so a generous donor sees the biggest tip. If amount were the whole story, the drop should be smooth. It wasn’t — it stepped.

The prediction, written before the test: if framing is the problem, flat-dollar options will raise tip rate without lowering average tip amount — the same money reads differently. If amount is the problem, rate rises only where the dollar options are cheaper than the old percentage default.

Evidence

03

Segment by gift size. Test one bucket. Read it properly before touching the rest.

I split donors into four gift buckets and ran flat-dollar options against the percentage default in one of them. The $20–40 bucket had the volume to read a result in weeks and the widest gap between what the percentage asked and what donors actually left.

Tip rate change by gift bucket, first pass
bucket
tip rate Δ
signif.
$0–20
pending
—
$20–40
+18%
p < .05
$40–60
pending
—
$60+
pending
—
RECONSTRUCTED · from the test read-out, values rounded · “pending” = not yet tested at time of read · the ~$1M figure is annualised from run-rate
Percentage ask
“Add 15% to support the platform”
Donor reads: the platform is taking a cut of my gift.
$30 gift → $4.50 · scales with generosity
Flat-dollar ask
“Add $3 · $5 · $8 to keep this free for causes”
Donor reads: a small contribution, separate from my gift.
$30 gift → $5 · same money, different answer
ILLUSTRATIVE · the framing whiteboard, redrawn · option copy and amounts are representative

Decision

04

Ship flat-dollar for $20–40 first. Everything else became a v2 hypothesis, not launch scope.

The bucket cleared significance in the first read. I recommended shipping it to 100% of that segment and holding the other three buckets as explicit, written hypotheses — each with the number that would confirm or kill it — rather than extrapolating.

Kept
Three dollar presets and an “other” field. Default on the middle. Copy that names where the money goes.
Cut from launch
A full checkout redesign. A per-donor recommendation model. Testing the moment of the ask. All three were live proposals.
Who decided
I wrote the recommendation; the founder called it in one meeting.

What shipped

05

One engineer, about two weeks of build. The segmentation logic that decided which donors saw which ask became the skeleton for the recommendation engine in v2.

Result & limit

06

+18% in the first bucket. +20% overall once the ask was sized per segment. The $1M is a projection.

Average tip amount held — the rate moved, the money per tipper didn’t fall — which is what the framing hypothesis predicted and the amount hypothesis didn’t. Donation size was unchanged, so the tip wasn’t cannibalising the cause.

Where this claim stops
The ~$1M is annualised from post-launch run-rate. It has not been through a full giving season, so the seasonal shape is assumed, not observed.
The $0–20 bucket did not move on the first pass. Small gifts appear more sensitive to absolute dollars than to framing. That bucket is still open.
This was an in-house test with the client’s analyst; I have not had it independently re-read.

What I got wrong

07

I brought a restaurant prior to a donation checkout.

My starting assumption was that mid-teens percentages would feel normal because tipping culture had normalised them. That’s true at a restaurant, where the percentage is on a service you received. Here the percentage sat on money meant for someone else. Donors read it as the platform taking a cut of the cause. The data corrected the prior in week two; I should have questioned it in week zero.

I also assumed the four buckets would respond in the same direction. They didn’t, which is why the other three stayed hypotheses instead of becoming launch scope.

What v2 tested

08

The second pass turned the segmentation into a tip recommendation engine: gift size plus the behavioural signals that predicted tipping, used to size the default per donor. That is what took the programme from +18% in one bucket to +20% across the treated segments, and it laid the groundwork for the team’s move to ML. The $0–20 bucket and the timing of the ask are the two hypotheses still open.

Douglas Wang · Fractional growth PM · Series A–B · B2C & B2B
LinkedInWritingAboutPrivacyFit call