> ## Documentation Index
> Fetch the complete documentation index at: https://docs.beaconrevenue.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Cohort net revenue retention

> The net half of a cohort's retention curve — a ratio struck at each month of the cohort's life, why it can rise above 1.0, and why it is a curve rather than one number.

## What it is

`cohort_net_revenue_retention` is how much recurring revenue one cohort still holds — after expansion, contraction and churn inside it — against what the same customers held when the cohort opened.

**It is not one number for a cohort.** A cohort carries a value for every month of its life, and the shape those values make is what the figure exists to show: whether a vintage holds, grows or decays as it ages. Read as a single number, that shape is lost.

It is a **ratio, not a percentage**: 1.08, not 108. Higher is better, and it can rise above 1.0 — that happens when expansion inside the cohort outweighs what was lost from it.

Membership is frozen when the cohort opens. Every point on the curve describes the same set of customers; nobody is added later, and a customer who churns stays in the population and simply stops contributing revenue to it.

The gross half of the same curve — [cohort gross revenue retention](/definitions/cohort-gross-revenue-retention) — is this calculation without the expansion term, and it cannot rise above 1.0. Read side by side, the gap between the two is what expansion contributed.

## How it is calculated

Measured.

```text theme={null}
cohort_net_revenue_retention at a month =
  (opening recurring revenue - churned - contracted + expanded, to that month)
  / opening recurring revenue
```

| Term | Meaning |
| - | - |
| Opening recurring revenue | Recurring revenue of the cohort's customers at the month it opened |
| Expanded | Increases within the cohort, where recurring revenue rose and both the earlier and later figures are above zero |
| Contracted | Decreases within the cohort, where recurring revenue fell but stayed above zero |
| Churned | The full amount, where a customer's recurring revenue fell to zero |
| Excluded | Every customer won after the cohort opened — they never join it |

Only recurring lines count. One-off charges — onboarding, professional services, training, setup — are excluded, the same way they are excluded from [net revenue retention](/definitions/net-revenue-retention).

A cohort with few accounts in it produces a curve that moves sharply on a single customer. Below the minimum population, the curve is marked as an estimate with the account count shown — the same limit set out under [cohort dimension](/definitions/cohort-dimension).

## Where it comes from

Billing invoice lines, through the customers who belong to the cohort. Billing is the required connection: with no billing there is no revenue on any account, so there is no curve to draw. The value sits on the cohort's retention curve — one entry per month of that cohort's life, carrying this figure and its gross counterpart together.

Identity resolution matters here more than to most figures. Where a subsidiary is not resolved to its parent, its growth reads as a new customer rather than as expansion — and a new customer is outside the cohort entirely, so that growth never reaches this curve.

| Where it is available | |
| - | - |
| Read interface | Yes, with an opt-in |
| MCP | Yes, with an opt-in |
| Events | Yes, with an opt-in |
| CRM property | Yes, with an opt-in |

<Note>
  No read interface or MCP tool serves this value yet — the table above publishes the shape ahead of the doors.
</Note>

**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. That is a rule about where the value may travel, not about who inside your company may look at it.

## How fresh it is

A cohort's curve grows by one point for each month the cohort has lived, so its length is the cohort's age. How much of the curve exists depends on where the cohort stands: **open** and still accumulating, where the curve is a partial reading; **closing at 18 months**, where enough of the life has happened to be read seriously; and **closed at 24 months**, where the population and its history are complete and the curve is that cohort's record.

A point already struck is not restruck to reflect what the cohort went on to do: month 6 stands as month 6's reading even after month 24 has arrived.

## 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 is recorded under the rules set out in [currency](/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 points, compare them at the precision you received them rather than the precision a screen showed you.

**And it is a ratio.** 1.08 means the cohort holds 8% more recurring revenue than it opened with. A reader expecting 108 and receiving 1.08 has the same figure, not a different one.

## What changes it

Expansion, contraction and churn among the customers in the cohort, and nothing else. A customer won after the cohort opened cannot change it. A resolved identity can, by reclassifying a subsidiary's growth from new business into expansion inside the cohort.

Once the cohort is closed, nothing changes it.

## What it is not

* **Not a percentage.** 1.08, never 108.
* **Not one number for the cohort.** It is a value per month, and the curve is the figure.
* Not [`cohort_gross_revenue_retention`](/definitions/cohort-gross-revenue-retention). Same population, same months, without expansion — and it cannot rise above 1.0. Both are published because the distance between them is where expansion shows up.
* Not [`net_revenue_retention`](/definitions/net-revenue-retention). That reads your whole customer base over a period you choose; this reads one vintage across its own life.
* Not a forecast, and in particular not the twenty-four-month retention projection Beacon makes for an account. This is what the cohort did; that is what it is expected to do, and the two are separate values.
* Not a count of customers kept. That counts logos; this weighs revenue, and the two diverge whenever the customers who left were larger or smaller than average.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.