Incident briefPrepared for Maya Okafor · Fernhill Coffee

The week of Oct 5: 84 cancellations, one broken setting

Root cause, exit-survey reasons, customer voice, and what we can still win back. Prepared for Maya Okafor, Head of Growth.

01What happened

On October 3, the billing provider was migrated. The migration itself went through — but one setting did not follow it: the card updater was not re-enabled. Subscriptions with expired cards then failed to charge, with no retry, and on October 7 and 8 the billing batch cancelled them in a single pass: 84 cancellations in two days against a baseline of about 10 a day.

This is an operations failure, not a demand failure. New subscriptions held at 6–10 a day through the whole spike, and daily revenue stayed in its normal 7.2–10.1k band. The product did not change; the billing rail did.

84cancellations on Oct 7–8, vs ~20 over a normal two-day window
61of 114 exit-survey answers cite payment failure (54%)
2,140active subs on Oct 11 · Q4 goal 2,600 by Dec 31

02Daily cancellations, Sept 20 – Oct 11

Read this first: nineteen days at 5–12 a day, then 45 on Oct 7 and 39 on Oct 8 — the two billing-batch days after the Oct 3 migration — then back to 5–7 within 48 hours. A step, not a trend.

03Why they left — exit survey, Oct 5–11 (n=114)

ReasonCountShareNote
Payment failed (expired card)6154%Card updater not re-enabled after the Oct 3 migration; failed with no retry
Too much coffee1715%Chronic, pre-existing — a case for pause options, not this incident
Price1211%
Moving or travel98%
Other98%
Switched to café65%

Dominant reason: Payment failed (expired card) — 61 of 114 answers, and every one of them is fixable with a card update.

04What customers said to us

“My card expired and my sub just cancelled?? I didn’t even get a warning.”— customer, email reply, Oct 8
“got cancelled out of nowhere, want to keep it going”— customer, email reply, Oct 7

Both are the same story: nobody wanted to leave, nobody got a heads-up, and the second quote tells you exactly what the win-back email should promise. In the customer’s mind, the subscription was never cancelled.

05What we can win back: 61 subscriptions

All 61 payment-failure cancellations were involuntary — the customer did nothing wrong; their card simply expired and we failed to ask for an update. That makes them the warmest pool we have, and the second quote above says they want to stay. Active count on Oct 11 is 2,140; the Q4 goal is 2,600 by Dec 31, a gap of 460. Winning back all 61 is 13% of that gap, for the cost of one well-timed email.

The existing “Win-back 60d” flow is too slow for this cohort — 60-day trigger, 31% open, 1.6% click. These 61 need a dedicated, immediate update-payment send, before the 60-day flow even starts counting.

06Three fixes, in priority order

  1. Re-enable the card updater and recover the 61 now. Switch the card updater back on in the new provider, then send the 61 expired-card subscribers an update-payment email — “your sub is on hold, your card just needs a quick update.” Charge on update, resume the sub, send a “you’re back in” confirmation. This is recovery, not acquisition.
    The 61 are involuntary and warm. Every day of delay, more of them settle into “cancelled is cancelled.”
    Day 1
  2. Grace period before cancellation — never cancel silently. On a failed charge: retry three times over seven days with a “we tried to keep you” email on each failure, and cancel only after the grace window closes. Customers should always see a warning before their sub ends.
    The sharpest complaint in the exit survey wasn’t price or product — it was “I didn’t even get a warning.”
    Week 1
  3. Migration checklist and cancellation watch for every billing change. Before any cutover: card updater on, retry/dunning configured, webhooks verified, tested against expired and declined test cards. After: a 7-day daily cancellation watch that alerts above 2× baseline. This spike ran 45 a day and nobody saw it until the exit survey told us.
    The failure mode is now known, so the check is cheap. Every future billing change gets the same gate.
    Standing

Synthetic demo data — all figures from the Fernhill demo dataset, week of Oct 5–11, 2026.