Skip to content

Cancellation

A Customer cancels in one step with nothing in between, then keeps access through the save window, where the Startup makes one offer.

A Customer who cancels is done in one step, with nothing between the request and the result. The Startup asks one question and makes its one offer afterward, while access lasts.

A cancel never waits

Subscription.unsubscribe is a Customer exit: a Verb whose subject is the Customer and that ends or lowers the Customer's own terms. An exit runs at once. No Limit, Approval or delay window stands between the Customer and the result.

The same rule covers a move to a cheaper Offer through Subscription.switch, and taking a cancel back through Subscription.keep. Delay windows hold the Startup's own one-way Actions, never the Customer's.

Cancelling online takes no more steps than buying did. The Customer guarantees and the renewals row of the legal floor both require it.

One question, eight answers

The cancel asks one question: why. The answer is one reason code, plus an optional comment kept verbatim in the Customer's own words.

CodeThe Founding Hypothesis slot it tests
tooExpensiveThe slot the Offer's Price compiles from
missingCapabilityapproach
serviceapproach
switcheddifferentiation
unusedswitch
notNeededproblem
wrongFitcustomer
otherNone: the comment is kept, and no slot is graded

Each code maps one to one onto Stripe's own cancellation_details.feedback values, so the Startup's records and Stripe's agree. The cancel itself is Behavior-grade Evidence that refutes the slot its code tests.

The stated reason alone is Opinion grade. It binds as Behavior only when the Startup's own Events back it. Two examples: unused with no activation Event in the Period, or tooExpensive right after the Price rose.

The save window

Between the cancel and the close of the period, the Subscription is ending. The Customer keeps full access, and nothing renews.

StatusAccessRenews
trialingFullConverts to paid when the trial ends
activeFullOn its date
endingFull, until the period closesNo, unless the Customer keeps it
pausedNoneBilling resumes on the pause's end date
pastDueFull while Dunning retriesAfter a successful charge
canceledNoneNo; a return starts a new Subscription

Save and win back sends one Message with the one offer that matches the reason, and a link that keeps the Subscription. A tooExpensive reason gets the cheaper Offer; a missingCapability reason gets the date it ships, or nothing.

The link runs Subscription.keep, and the Subscription renews on its original date. Silence ends the offer: once the period closes, keep refuses and the Subscription is canceled.

After the period closes

A full export of the Customer's data goes out with the cancel, in open formats. A Customer is a Customer forever, so a canceled Subscription ends billing, never the Customer record.

Once the reason is fixed, the Success Manager writes once, with the fix as the reason to return. One win-back, never a drip of reminders.

Refunds are separate

A cancel stops the next charge and returns no money. A refund is the Startup's own one-way money Action: Invoice.refund, run by Issue a refund.

It returns the amount the terms allow to the original payment through Stripe: full, partial, or pro rata for the unused part of the Period. Above the Billing Specialist's Limit it waits for an Approval, and every refund waits out its delay window.

It refuses while a Dispute on the Invoice is open. It never credits a balance, because a balance the Startup holds is stored value.

Save rate

Save rate is the share of outside Subscriptions marked ending in the window that the Customer kept before the period closed. It counts saves after a finished cancel, so making the cancel harder cannot raise it.

A music teacher cancels in one click and picks missingCapability, writing "no group lessons". The offer names the week group booking ships; she ignores it, and the Subscription closes canceled. Three weeks after the feature ships, one Message invites her back, and she subscribes again.

Next