Churn analytics Stripe: echte churndata extraheren
Gepubliceerd op 13 april 2026 · Jules, Founder of NoNoiseMetrics · 8min leestijd
Bijgewerkt op 15 april 2026
Churn analytics in Stripe is moeilijker dan het lijkt. Stripe registreert elke annuleringsgebeurtenis, elke mislukte betaling en elke abonnementswijziging, maar het vouwt dit niet samen tot een churnpercentage, segmenteert het niet per plan en toont niet of je churn beter of slechter wordt. Om echte churnanalyses uit Stripe te krijgen, moet je het berekenen uit de ruwe gebeurtenisdata, wat vereist dat je exact weet wat je telt, wat je uitsluit en hoe je de randgevallen afhandelt die churnberekeningen 80% van de tijd foutief maken.
Churn analytics Stripe is het proces van het extraheren, opschonen en berekenen van churnmetrieken uit Stripe abonnementgebeurtenisdata, inclusief klantchurnpercentage, MRR-churnpercentage, onvrijwillige churn en churn-segmentatie per plan.
Churn analytics Stripe: hoe je echte churndata extraheert
Wat Stripe je geeft voor churn
Stripe’s ingebouwde analytics omvat:
- Abonnementsannuleringen: Een log van elke annuleringsgebeurtenis met tijdstempel, klant-ID en abonnementsbedrag
- Betalingsmislukkingen: Mislukte betalingsgebeurtenissen met herprobeerstatus
- MRR-wijziging: Een watervaloverzicht met netto MRR-wijziging (Stripe noemt het “Revenue movement”)
- Ge-churnde MRR: De omzet verloren door annuleringen in een periode
Wat dit je geeft: een ruwe log van churngebeurtenissen en een headline ge-churnd MRR-getal. Wat dit je niet geeft: churnpercentage als procentgetal, segmentatie per plan, onderscheid tussen vrijwillige en onvrijwillige churn, of trenddata consistent berekend over tijd.
Zie Stripe analytics gids voor het bredere overzicht van wat Stripe analytics dekt.
De churnpercentageberekening die Stripe niet doet
Churnpercentage is niet “annuleringen in een maand.” Het is annuleringen gedeeld door klanten die risico liepen op churnen (dat wil zeggen klanten aan het begin van de periode). Stripe toont je de teller (annuleringen) maar niet de noemer (klanten bij periodestart) op een eenvoudig bruikbare manier.
Hier is de formule:
Maandelijks klantchurnpercentage =
Annuleringen in maand ÷ Actieve klanten begin maand × 100
Het noemerprobleem: Stripe’s actieve klantentelstand op enig moment omvat klanten die tijdens de maand bijkwamen. Om de juiste noemer te krijgen, heb je klanten nodig die actief waren op de eerste van de maand, zonder iemand mee te tellen die daarna bijkwam. Stripe’s dashboard scheidt deze niet netjes.
Voor MRR-churnpercentage:
Maandelijks MRR-churnpercentage =
(Ge-churnde MRR + Contractie MRR) ÷ Begin MRR × 100
Dit vereist het ophalen van zowel annuleringsgebeurtenissen ALS downgradegebeurtenissen (abonnement bijgewerkt naar lager bedrag), dan de MRR-delta sommeren.
Zie hoe churnpercentage berekenen voor een volledige berekening.
Uitgewerkt voorbeeld: churnpercentage berekenen uit Stripe-data
Je hebt een SaaS-product. Aan het begin van maart heb je 420 actieve betalende klanten. Gedurende maart:
- 18 klanten annuleerden hun abonnementen
- 14 nieuwe klanten begonnen abonnementen (tel niet mee in churnberekening)
- 3 klanten hadden betalingsmislukkingen maar herstelden
- 2 klanten downgradeden van €99/maand naar €49/maand
Klantchurnpercentage:
18 annuleringen ÷ 420 startklanten × 100 = 4,3%
MRR-churnpercentage:
- Ge-churnde MRR van 18 annuleringen: 18 × gemiddeld €72 = €1.296
- Contractie MRR van 2 downgrades: 2 × (€99 − €49) = €100
- Totale MRR verloren: €1.396
- Begin MRR: 420 × €72 gemiddeld = €30.240
MRR-churnpercentage = €1.396 ÷ €30.240 × 100 = 4,6%
De 3 herstelde betalingsmislukkingen tellen NIET als churn, ze bleven geabonneerd.
Het probleem van onvrijwillige churn
Stripe’s grootste churnanalyticsgat is het onderscheid tussen onvrijwillig en vrijwillig. Stripe registreert:
customer.subscription.deleted, abonnement geannuleerd (kan vrijwillig OF eindresultaat mislukte betaling zijn)invoice.payment_failed, betaling misluktinvoice.payment_succeeded, betaling hersteld
Als een abonnement uiteindelijk wordt geannuleerd vanwege betalingsfalen (na uitputting van Stripe Smart Retry pogingen), registreert Stripe het als een annulering, hetzelfde gebeurtenistype als een klant die expliciet op “Annuleer mijn abonnement” klikte. Er is geen ingebouwde vlag die je vertelt “deze annulering was onvrijwillig.”
Waarom dit telt: tussen 20–40% van SaaS-churn is onvrijwillig (Baremetrics, 2024). Als je het niet kunt identificeren, kun je het niet herstellen. De oplossing voor onvrijwillige churn (dunning-reeks, kaartupdate-flow) is compleet anders dan de oplossing voor vrijwillige churn (product/prijswijzigingen).
Om ze te scheiden in Stripe-data: onvrijwillige churn correleert met abonnementen die recente invoice.payment_failed gebeurtenissen hadden vóór de customer.subscription.deleted gebeurtenis. Je kunt deze markeren met een query of een tool gebruiken die het automatisch doet.
Zie churn verminderen voor een volledig churnverminderingsplaybook inclusief onvrijwillige churntactieken.
Randgevallen die je getallen breken
1. Gratis proefperioden die eindigen zonder conversie
Wanneer een proefperiode eindigt zonder betaling, kan Stripe ofwel een abonnementsannulering registreren of simpelweg geen betalingspoging. Afhankelijk van je Stripe-configuratie kunnen proefperiodevervaldata al dan niet in je churngebeurtenissen verschijnen. Ze mogen NIET in churnpercentage worden meegeteld.
Oplossing: filter je churnberekening op abonnementen met minimaal één succesvolle betaling.
2. Jaarlijkse abonnementsannuleringen midden in de cyclus
Als een klant een jaarlijks abonnement midden in de cyclus annuleert, kan Stripe de annulering direct registreren (met een schema voor toegang tot het einde van de periode) of aan het einde van de periode.
Oplossing: gebruik de cancel_at_period_end vlag in Stripe-abonnementen.
3. Planwisselingen geregistreerd als annulering + nieuw
Sommige Stripe-integraties registreren een planupgrade als een abonnementsannulering en een nieuwe abonnementscreatie, in plaats van een abonnementsupdate. Als dit in jouw setup gebeurt, blaasen planwisselingen zowel je churntelling op als je nieuwe klantentelling.
4. Multi-abonnementsklanten
Een klant met twee actieve abonnementen die er één annuleert, is niet volledig ge-churnd. Streef ernaar altijd op klantniveau te aggregeren.
5. Reactivaties
Een klant die annuleert en zich in dezelfde maand opnieuw aanmeldt, kan zowel in je churntelling (annulering) als je nieuwe klantentelling (reactivatie) verschijnen.
Churn segmenteren uit Stripe-data
Geaggregeerd churnpercentage is een startpunt, geen diagnose. De vraag is: welke klanten churnen? Stripe’s datastructuur laat je segmenteren per:
Plan/prijs: Groepeer annuleringen per price.id op het abonnement. Bereken churnpercentage per prijspunt. Dit onthult vaak dat één plan churnt bij 8% terwijl een ander bij 1,5% churnt.
Aanmeldingscohort: Groepeer klanten per maand van eerste abonnement. Bereken welk percentage van elk cohort heeft geannuleerd per opvolgende maand. Dit is cohortbehoud, de meest diagnostische churnweergave beschikbaar. Zie cohortanalyse voor SaaS-oprichters voor de methode.
Annuleringsreden: Als je een annuleringsreden vastlegt (via een annuleringssurvey vóórdat subscription.deleted afvuurt), koppel het aan de Stripe-annuleringsgebeurtenis.
Hoe churndata uit Stripe te extraheren in de praktijk
Optie 1: Stripe Dashboard (basis)
De Omzet-sectie van je Stripe-dashboard toont ge-churnde MRR voor elke tijdsperiode. Nauwkeurig voor het headline-getal maar geeft je geen segmentatie, geen churnpercentageprocentgetal en geen trendgeschiedenis.
Optie 2: Stripe Sigma (tussenniveau)
Stripe Sigma is een SQL-query-interface voor je Stripe-data. Je kunt queries schrijven om churnpercentage te berekenen, per plan te segmenteren en cohorttabellen te bouwen. Dit vereist SQL-vaardigheden.
Voorbeeldquerystructuur (vereenvoudigd):
SELECT
DATE_TRUNC('month', cancelled_at) AS maand,
COUNT(*) AS annuleringen,
price_id
FROM subscriptions
WHERE status = 'canceled'
AND cancelled_at IS NOT NULL
GROUP BY 1, 2
Dit geeft je annuleringsaantallen maar niet churnpercentage (de noemer is nog steeds nodig).
Optie 3: Dedicated tool (aanbevolen)
NoNoiseMetrics verbindt met Stripe via read-only API en berekent klantchurnpercentage, MRR-churnpercentage, onvrijwillige vs vrijwillige churn, plansegmentatie en cohortbehoud, automatisch, met alle randgevallen afgehandeld. Probeer gratis →
Handelen op Stripe churnanalytics
Zodra je schone churndata hebt, is de prioriteitsvolgorde duidelijk:
1. Onvrijwillige churn meer dan 30% van totale churn? Pak het als eerste aan met een dunning-reeks en kaartupdate-flow. Dit is je hoogste-ROI churnverminderingsactiviteit.
2. Instap-tier churn meer dan 5%? Het goedkoopste plan trekt klanten aan die geen goede match zijn. Pas onboarding aan, aanpassen de gratis proefperiode vereisten of verhoog de prijs om beter te filteren.
3. Cohort maand-3 daling? Iets breekt nadat de initiële enthousiasme vervaagt. Voer een gebruiksanalyse uit op klanten die op maand 3 churnden versus die dat niet deden.
4. Upgrade-tier churn minder dan 2%? Uitstekend, je premium product is plakkerig. Verdubbel het upgradepad; breng meer klanten sneller daar naartoe.
FAQ
Hoe vind ik churnpercentage in Stripe?
Stripe toont churnpercentage niet als percentage native. Ga naar de Omzet-sectie, selecteer een tijdsperiode en noteer “Ge-churnde MRR.” Om klantchurnpercentage te berekenen, moet je geannuleerde abonnementen delen door startende actieve abonnementen.
Wat is onvrijwillige churn in Stripe?
Onvrijwillige churn is annuleringen veroorzaakt door betalingsfalen in plaats van een bewuste klantbeslissing. In Stripe verschijnen deze als reguliere abonnementsannuleringen nadat alle Smart Retry pogingen zijn uitgeput.
Hoe segmenteer ik churn per plan in Stripe?
In het Stripe-dashboard kun je abonnementen filteren per product of prijs om actieve tellingen te zien. Voor churnpercentage per plan moet je annuleringen per prijs-ID berekenen gedeeld door startende abonnementen per prijs-ID.
Waarom ziet mijn Stripe-churnpercentage er lager uit dan verwacht?
Veelvoorkomende redenen: je kijkt naar ge-churnde MRR als percentage van totale MRR (wat churn op kleinere plannen onderwaardeert), je hebt jaarlijkse abonnees die hun verlengingsdatum nog niet hebben bereikt, of je proefperiodevervaldata creëert een noemeruitbreiding.
Hoe gaat Stripe om met abonnementspauzes in churnberekening?
Stripe ondersteunt abonnementspauzes (status: paused). Een gepauzeerd abonnement is niet ge-churnd, de klant heeft niet geannuleerd. Echter genereren gepauzeerde abonnementen €0 MRR terwijl ze gepauzeerd zijn. De meest nauwkeurige aanpak: sluit gepauzeerde abonnementen uit van zowel teller (churn) als noemer (actief).
Wat is het verschil tussen Stripe ge-churnde MRR en MRR-churnpercentage?
Ge-churnde MRR is een absoluut getal (bijv. €2.400 verloren door annuleringen). MRR-churnpercentage is een procentgetal (bijv. 4,8% van je begin MRR ging verloren). Beide zijn nuttig, het absolute getal vertelt je omzetimpact; het percentage vertelt je relatieve ernst en maakt benchmarking mogelijk.
Kan ik churncohorten bijhouden in Stripe?
Niet native. Stripe heeft geen cohortweergave. Je moet abonnementsdata exporteren met aanmeldingsdatum en annuleringsdatum, dan groeperen per aanmeldingsmaand en berekenen welk percentage van elk cohort nog actief is op maand 1, 3, 6, 12.
Hoe identificeer ik terugwinskansen uit Stripe-churndata?
Exporteer geannuleerde abonnementen van de afgelopen 90 dagen. Filter op klanten die: (1) meer dan 3 maanden actief waren vóór annulering, (2) prijs niet als reden opgaven, en (3) in de afgelopen 30–60 dagen annuleerden. Dit zijn je hoogst-waarschijnlijkheid terugwinskandidaten.
Gerelateerd
- Churn verminderen, tactisch playbook voor churnvermindering
- Cohortanalyse SaaS-oprichters, wanneer en waarom klanten churnen
- Stripe analytics gids, volledig overzicht van Stripe analytics
Gratis tool
Zie je echte churnpercentage vanuit Stripe, automatisch berekend →
Klantchurn, MRR-churn, onvrijwillig vs vrijwillig, plansegmentatie, geen spreadsheets.