Vragen in gewone taal
Vraag naar omzetchurn (MRR-churn) per maand, klant of product in de SQL Explorer met AI. De AI schrijft de SQL, jij ziet de query en voert hem zelf uit; de AI krijgt alleen metadata.
KPI · Abonnementen en SaaS
Omzetchurn is de MRR die je in een periode verliest door opzeggingen en downgrades, gedeeld door de MRR aan het begin van die periode, in procenten. Waar klantchurn klanten telt, meet omzetchurn wat die vertrekkende of krimpende klanten waard waren. Als je uitbreidingsomzet ervan aftrekt, krijg je de netto omzetchurn.
(Churn-MRR + inkrimpings-MRR) ÷ MRR aan het begin van de periode × 100%
De abonnementsdienst van Acme begint september met € 40.000 MRR. Door opzeggingen verdwijnt € 1.400 en door downgrades € 400. De omzetchurn is (€ 1.400 + € 400) ÷ € 40.000 × 100% = 4,5%. Met € 900 uitbreiding erbij is de netto omzetchurn (€ 1.800 − € 900) ÷ € 40.000 × 100% = 2,25%.
Fictieve cijfers van Acme Groothandel.
Een lagere omzetchurn betekent dat je meer van je bestaande terugkerende omzet behoudt. Vergelijk hem met de klantchurn: is de omzetchurn veel hoger, dan vertrekken vooral grote klanten, wat extra aandacht vraagt. Een netto omzetchurn onder nul betekent dat uitbreiding bij bestaande klanten het verlies meer dan goedmaakt.
SQL & DAX
Twee voorbeelden op een fictief datawarehouse van Acme Groothandel: een query in PostgreSQL en een measure voor een Power BI-model. Pas tabel- en kolomnamen aan je eigen model aan.
WITH monthly AS (
SELECT month,
SUM(amount) FILTER (WHERE movement_type IN ('churn', 'contraction')) AS lost_mrr,
SUM(CASE WHEN movement_type IN ('churn', 'contraction') THEN -amount ELSE amount END) AS net_new_mrr
FROM mrr_movements
GROUP BY month
),
with_start AS (
SELECT month, lost_mrr,
SUM(net_new_mrr) OVER (ORDER BY month) - net_new_mrr AS start_mrr
FROM monthly
)
SELECT month, start_mrr, lost_mrr,
ROUND(100.0 * lost_mrr / NULLIF(start_mrr, 0), 1) AS revenue_churn_pct
FROM with_start
ORDER BY month;Revenue Churn % =
VAR StartMRR = CALCULATE([MRR], DATEADD('Date'[Date], -1, MONTH))
VAR LostMRR =
CALCULATE(SUM(MrrMovements[amount]), MrrMovements[movement_type] IN {"churn", "contraction"})
RETURN
DIVIDE(LostMRR, StartMRR)In ENABLE
Vraag naar omzetchurn (MRR-churn) per maand, klant of product in de SQL Explorer met AI. De AI schrijft de SQL, jij ziet de query en voert hem zelf uit; de AI krijgt alleen metadata.
Leg de KPI vast als measure in je Power BI-model en toon hem in het portaal, met "Laatst ververst" erbij. Toegangsprofielen en optioneel row-level security bepalen wie welke cijfers ziet.
Zet de KPI als tegel in een eigen dashboard, met vergelijking met vorig jaar. De Dashboard Builder is een pilot en per klant aan te zetten.
Met de ingebouwde app Targets leg je per maand een doel voor de KPI vast, zodat je realisatie en doel naast elkaar ziet.
FAQ
Je telt de MRR die verloren gaat door opzeggingen en downgrades en deelt dat door de MRR aan het begin van de periode. Bij € 50.000 begin-MRR en € 1.500 verlies is de omzetchurn 3%. Vermeld of inkrimping meetelt.
Bruto omzetchurn telt alleen verloren MRR door opzeggingen en downgrades. Netto omzetchurn trekt daar de uitbreidingsomzet van bestaande klanten van af. Netto omzetchurn kan negatief zijn als bestaande klanten meer uitbreiden dan er wegvalt.
Negatieve churn betekent dat de uitbreidingsomzet van bestaande klanten groter is dan de omzet die je verliest door opzeggingen en downgrades. Je terugkerende omzet uit bestaande klanten groeit dan, ook zonder nieuwe klanten. Het is hetzelfde als een netto omzetretentie boven 100%.
In een online demo laten we zien hoe ENABLE je data veilig beschikbaar maakt en hoe je erop bouwt: een app beschrijven in de AI Builder, vragen in gewone taal, dashboards en API's. En hoe wij het voor je inrichten en beheren.