Vragen in gewone taal
Vraag naar bruto omzetretentie (GRR) 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
Bruto omzetretentie (GRR) is de MRR van bestaande klanten na een periode, zonder uitbreiding, gedeeld door hun MRR aan het begin, in procenten. Alleen inkrimping en opzeggingen tellen mee; upgrades en extra gebruikers laat je buiten beschouwing. GRR laat zien hoe goed je de omzet die je al hebt vasthoudt, en kan daardoor nooit boven 100% uitkomen.
(Begin-MRR − inkrimping − churn) ÷ begin-MRR × 100%
De klanten die op 1 oktober 2025 actief waren bij de abonnementsdienst van Acme, waren samen € 36.000 MRR waard. Een jaar later is € 1.080 verloren door inkrimping en € 2.520 door opzeggingen. De GRR is (€ 36.000 − € 1.080 − € 2.520) ÷ € 36.000 × 100% = € 32.400 ÷ € 36.000 × 100% = 90%.
Fictieve cijfers van Acme Groothandel.
Een hogere GRR betekent dat je minder bestaande omzet verliest; het is een zuivere maat voor klantbehoud omdat uitbreiding het verlies niet kan verbergen. Vergelijk GRR met NRR: een groot verschil betekent dat je groei sterk leunt op uitbreiding bij een deel van de klanten. Volg GRR per segment en abonnementsvorm, en kijk bij een daling naar de redenen van opzegging en downgrade.
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 per_customer AS (
SELECT customer_id,
SUM(mrr) FILTER (WHERE started_at <= current_date - interval '1 year'
AND (ended_at IS NULL OR ended_at > current_date - interval '1 year')) AS start_mrr,
SUM(mrr) FILTER (WHERE started_at <= current_date
AND (ended_at IS NULL OR ended_at > current_date)) AS end_mrr
FROM subscriptions
GROUP BY customer_id
)
SELECT SUM(start_mrr) AS start_mrr,
SUM(LEAST(COALESCE(end_mrr, 0), start_mrr)) AS retained_mrr,
ROUND(100.0 * SUM(LEAST(COALESCE(end_mrr, 0), start_mrr)) / NULLIF(SUM(start_mrr), 0), 1) AS grr_pct
FROM per_customer
WHERE start_mrr > 0;GRR (12 months) % =
VAR StartDate = EDATE(MAX('Date'[Date]), -12)
VAR Window = DATESINPERIOD('Date'[Date], MAX('Date'[Date]), -12, MONTH)
VAR Cohort =
CALCULATETABLE(VALUES(MrrMovements[customer_id]), REMOVEFILTERS('Date'), MrrMovements[month] <= StartDate)
VAR StartMRR = CALCULATE([MRR], DATEADD('Date'[Date], -12, MONTH))
VAR Lost =
CALCULATE(SUM(MrrMovements[amount]), Window, Cohort, MrrMovements[movement_type] IN {"contraction", "churn"})
RETURN
DIVIDE(StartMRR - Lost, StartMRR)In ENABLE
Vraag naar bruto omzetretentie (GRR) 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 neemt de MRR van de klanten die aan het begin van de periode actief waren, trekt daar inkrimping en opzeggingen van af en deelt het resultaat door de begin-MRR. Uitbreiding tel je niet mee. Bij € 80.000 begin-MRR en € 6.400 verlies is de GRR 92%.
Omdat je uitbreiding bij bestaande klanten niet meetelt, kan de MRR van de groep alleen gelijk blijven of dalen. Per klant tel je hooguit de oorspronkelijke MRR mee. Een GRR van 100% betekent dat je geen enkele euro bestaande omzet hebt verloren.
Het verschil tussen NRR en GRR is de bijdrage van uitbreiding bij bestaande klanten. Een NRR van 108% bij een GRR van 90% betekent dat uitbreiding 18 procentpunt toevoegt. Hoe groter het verschil, hoe meer je groei afhangt van upsell aan een deel van de klanten.
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.