A user who does not come back never pays you again, so keeping and charging belong in one layer. Checkout runs on Stripe rails and reports straight into the same dashboard that measures retention.
We never hold your funds and never touch card details. Stripe handles the money and the compliance that comes with it, and we handle everything that happens either side.
Who has paid, what they have access to, and when it lapses. Entitlement logic is commonly rebuilt in-house, and commonly gets the edge cases wrong.
Each payment ties back to the customer, the segment and the play that preceded it, so you can see what retention was actually worth.
Checkout is in early access. The revenue webhook works today, so attribution runs whatever you use to charge.
For products that run on the web there is no App Store cut, no StoreKit, and no billing team required. Checkout, entitlements and retention run through one layer, and the dashboard shows what each retained user was worth.
Open a checkout, unlock the entitlement when it clears, and the revenue lands in the same dashboard that measures retention. Built on Stripe rails, so we never hold your money.
Retain.revenue(999) works today.A paying user who churns is the most expensive kind of loss there is. Charging and keeping were never two problems. They are the same funnel, split across vendors that do not talk to each other.
We deliberately leave a slice of your customers alone, then compare. Whatever the reached users spend beyond the untouched ones is the difference we made. No other tool can show that number, and it appears on your dashboard from the first week whether or not it flatters us.
Every retention vendor shows you revenue from users they touched, but those users might have come back anyway. It's the oldest trick in the category, and it's why the last generation of engagement companies sold for pennies: nobody could tell what they'd actually changed.
Braze bills by message volume, the more they send your customers, the more they earn. We're paid only when a user stays and spends. Which means:
Nobody lies awake worrying about churn. They worry about spending money on users who never buy anything. Because revenue and behaviour sit in one place here, we can describe your paying customers precisely enough to go and find more of them: what they did in their first session, which segment they came from, and which segment is costing you money and returning nothing.
If one behavioural segment converts at 9% and another at 0.4%, acquisition stops being a guess. The profitable segment is usually smaller than assumed, and the costly one larger.
The actions that preceded a first purchase, and that non-payers never took. The clearest signal available for what to put in front of new users.
Losing one high-value customer costs what dozens of ordinary ones do, and it is the loss most businesses notice last. We catch it while the relationship is still recoverable.
This exists so you know who to look after, not who to squeeze. The frequency caps and the taper apply to purchase plays exactly as they do to everything else, and if the numbers show the nudging is hurting retention, the dashboard says so and the play stops.
If you run RevenueCat, Adapty, Qonversion, Apphud, Chargebee or Stripe, point its webhook at us and revenue attribution starts working. No code on your side. We accept the standard event shape the category emits, and events are deduplicated on transaction ID so retries are safe.
Every subscription platform triggers on payment events: cancelled, billing issue, trial ended. A customer who stopped showing up three weeks ago is still paying, so those tools still read healthy. We are watching behaviour, so we flag them while they can still be kept.
Your events and customer records live here regardless of who processes the money. Change payment platform whenever it suits you, point the new webhook at the same endpoint, and your retention history carries over intact.
Recent rulings in the EU and the US have opened external web payment links for apps that were locked to store billing. Our checkout runs on Stripe rails and reports into the same dashboard, so the two halves reconcile on one customer record.
Setup is in the docs, and takes about a minute per platform.
Founding apps get it first. Until it ships for you, the revenue webhook works today, so attribution runs whatever you charge with.