Decide at paid conversion, verify at day 90.
A subscription test is decided quickly and judged slowly. Probant receives subscription starts, payments, cancellations, and refunds from Stripe, without keeping your customers’ contact details, and keeps reading each test after it stops, flagging when the decision reverses.
Club Lune offer · First month at half price
- Paid conversion (day 30)at stop, 95% range+87.9%+66.3% to +113.5%
- Still subscribed at day 90cohort follow-up, simultaneous range-31.8%-43.9% to -17.8%
The promotion wins on paid conversion, then loses its subscribers in the second month: the follow-up shows it after the test stops.
Maison Lune, a fictional demo store · Probant’s demo is a store; its subscriptions are fictional, modeled on a SaaS, and computed by the same engine
Paid conversion is only the beginning.
The pitfalls of testing a subscription offer.
- A promotion converts, then churnsA discounted first month gets more people to pay, and those subscribers cancel in the second month.
- Annual plans inflate collected revenueTwelve months paid up front make the variant that pushes annual plans win at day 30.
- Refunds erase salesA refunded payment isn’t revenue; counted as is, it skews the report.
- Retention shows up lateStill subscribed at day 90 or day 365: the answer arrives months after the decision.
- Linking a subscription to a variantWithout a link between the Stripe customer and the visitor, nothing tells you which page brought them in.
Stripe sends, Probant follows the cohort.
Each answer comes from the product or from the “Club Lune offer” demo.
Three steps, without your customers’ contact details.
Create the webhook in Stripe.
A “Snapshot” destination pointing to your workspace’s address, seven events selected, and the signing secret pasted into Probant (Subscriptions page). At sign-up, the visitor ID goes along with the Checkout session.
// In Stripe: a “Snapshot” destination POST "https://getprobant.com/api/v1/stripe/<workspace>" // At sign-up, your server: client_reference_id: probantId, subscription_data: { metadata: { probant_id: probantId } }
Create the subscription metrics.
In one step: paid conversion and MRR at day 30 to decide, still subscribed and net revenue at day 90 to follow up. The test plan recommends deciding fast and following up long.
Paid conversion (day 30) decision MRR at day 30 decision Still subscribed at day 90 follow-up Net revenue collected by day 90 follow-up
Read the cohort after the test stops.
The test report keeps updating on its exposed visitors and flags a reversal, without turning it into a new decision.
Club Lune offer · First month at half price
- Paid conversion (day 30)at stop, 95% range+87.9%+66.3% to +113.5%
- Still subscribed at day 90cohort follow-up, simultaneous range-31.8%-43.9% to -17.8%
The promotion wins on paid conversion, then loses its subscribers in the second month: the follow-up shows it after the test stops.
What Probant reads, and what it leaves out.
Only events sent after you connect count: Probant doesn’t read your Stripe account. MRR is based on list price: discounts and usage-based pricing aren’t included. A payment dispute isn’t read as a refund. See the documentation and the Security and GDPR page.
Frequently asked questions.
Does Probant keep my customers’ contact details?
No. Stripe sends whole objects (email, name, address); Probant reads only the amounts, dates, subscription status, and price, and stores each Stripe ID as a keyed hash. A customer is linked to a visitor through the Probant visitor ID, a pseudonym passed at sign-up after the visitor agrees, when the workspace requires it.
Do I need to install a Stripe app?
No. You create a webhook endpoint in your Stripe dashboard, in “Snapshot” format, and paste its signing secret into Probant, which encrypts it. Probant doesn’t ask for your API key: it reads nothing in your account and only receives what Stripe sends.
Why separate collected revenue from MRR?
An annual plan paid at sign-up counts twelve months at once in collected revenue at day 30, so the variant that pushes annual plans would look like the winner. MRR brings each paid subscription back to a monthly amount, as Stripe does (an annual plan counts for one twelfth). The report shows both and subtracts refunds from collected revenue.
Is the follow-up after the test stops a new test?
No. It’s a descriptive estimate with its range, not a new decision. The ranges are simultaneous across all readings planned in advance, and a horizon only counts once it has closed for the whole cohort, so nobody keeps rereading until one reading “passes.”
What if I don’t use Stripe?
Your billing system sends the same information through the API: a subscription’s state (status, monthly value) and payments, with their refunds. Same rules: no customer contact details, IDs stored as hashes, and a resent event has no effect.
Other use cases
The same engine, for other site areas and other teams. The demo opens on the screen this page describes.
- Open demo, no sign-up
- Free to start, no overage charges
- Database and compute in Amsterdam, with Scaleway