Skip to main content

What it is

gross_revenue_retention is how much recurring revenue you kept from the customers you held at the start of a period, before any expansion is counted. It answers one question and answers it strictly: of the revenue you already had, how much survived? Growth from those customers is deliberately left out, so nothing good that happened can hide anything bad that happened. It is a ratio, not a percentage: 0.94, not 94. It cannot rise above 1.0 — without the expansion term there is no way for retained revenue to exceed what it started as. A figure of 1.0 means you lost nothing. Read beside net revenue retention, the gap between the two is exactly what expansion contributed. Net at 1.05 and gross at 0.92 is a business losing meaningfully and growing through it — which one number alone would not have told you.

How it is calculated

Measured.
Only recurring lines count. One-off charges — onboarding, professional services, training, setup, milestone payments — are excluded. The period can be a month, a quarter, a fiscal year, or the trailing twelve months. The same business produces different figures over different periods, and the trailing twelve months is the one to use when comparing against companies whose fiscal calendar differs from yours.

Where it comes from

Billing invoice lines, through the customers who were active at the start of the period. Billing is the required connection. Identity resolution matters less here than to the net figure, because expansion is excluded: a subsidiary read as a separate customer misstates growth, and growth is not in this calculation. Churn and contraction inside an unresolved subsidiary still reach it.
No read interface or MCP tool serves this value yet — the table above publishes the shape ahead of the doors.
Where the choice is made. This value is not open by default on any door. The choice happens when a reader grant that reaches it is issued or widened, when you subscribe to events, or when you turn the CRM property on. Whoever makes it is shown who becomes able to see the value, and their yes is recorded — holding a grant is no longer enough on its own.

How fresh it is

How often this refreshes before a period closes is not declared, and that is stated rather than filled in. A figure’s refresh cadence is the cadence of the lock that freezes it, read at the part of Beacon that owns the figure; the retention ratios live in Beacon’s shared core, which no single part owns, so there is nothing yet to read a cadence from. It will be filled in, not quietly. The net figure carries a declared cadence and this one does not — that difference is real and is not an oversight on the page. Once the period is closed the figure is fixed inside the locked record for that period, and a later correction is recorded as a named adjustment in the current period.

Currency and rounding

Neither applies in the ordinary way. This is a ratio of two revenue figures, so it carries no currency of its own. The money behind it is in your single reporting currency, converted where it was recorded under the rules set out in currency; no second conversion happens when the ratio is struck. No rounding rule is set for this value. Beacon applies none of its own and does not fix a number of decimal places to hold it at. A screen or an export may round it for display, so where you compare two figures, compare them at the precision you received them. And it is a ratio. 0.94 means 94% of the revenue was kept. A reader expecting 94 and receiving 0.94 has the same figure, not a different one.

What changes it

Churn and contraction among the customers who were active at the start of the period, and nothing else. Expansion does not change it — that is the point of it. New and returning customers do not change it either; they are outside the group it reads. Changing the period changes it, because the group and the window both change.

What it is not

  • Not a percentage. 0.94, never 94.
  • Not net_revenue_retention. Same customers, same period, with expansion added back — which is why that one can exceed 1.0 and this one cannot.
  • Not logo_churn inverted. That counts customers; this weighs revenue, and a period can lose many small customers with little effect here.
  • Not cohort_gross_revenue_retention. That reads one vintage month by month across its own life; this reads your whole customer base over a period you choose.
  • Not a forecast. It is what a period did.