# Gross revenue retention from Pipedrive: how much of last year&#8217;s customer revenue is still here

https://salesbond.app/blog/gross-revenue-retention-pipedrive/
Published: 2026-10-07 · Updated: 2026-10-08

Gross revenue retention is the share of last period’s customer revenue you still have this period, counting only what those same customers paid and capping each one at what they paid before. In Pipedrive, list the customers who bought in the base window, add up their Won deal value in the next window, cap each customer at their base amount, and divide by the base total. That is the whole formula. The work is in building the two lists honestly. Net revenue retention, the version without the cap, comes from the same sheet, and we count it below, after the example.

## The question the owner asks in January

Bea runs a nine-person company that sells packaging and the equipment to run it. Six of those people sell. In the second week of January she opens the Won deals report, sees a decent year, and asks the question no report answers for her: “Of the people who bought from us last year, how many are still buying?”

Dario, who manages the sales team, knows the honest answer is “most of them”. He also knows that “most” is doing a lot of work in that sentence. Two customers wrote in to say they were switching supplier. Those he can name. The ones that worry him never wrote anything. They ordered in March and August the year before, and then they just didn’t.

That is the gap gross revenue retention closes. The finance definitions come from subscription businesses, where revenue is a monthly fee and loss is a cancellation ( [Cube: GRR vs NRR](https://www.cubesoftware.com/blog/gross-revenue-retention-vs-net-revenue-retention)). Bea’s revenue is orders, not fees. But the question is the same, and the Won deals in her CRM, linked to organizations, hold enough to answer it. Not to the cent. To the point where she can say “we kept this much of last year’s customer revenue, and here are the accounts that make up the rest.”

## Gross vs net revenue retention: what counts and what never does

The textbook version is GRR = (starting revenue − churned revenue − downgraded revenue) ÷ starting revenue. Because nothing is ever added back, GRR can’t go above 100%. Turn it around and 1 − GRR is your gross revenue churn. Our per-customer cap is the same formula written customer by customer: anyone who bought less counts as a downgrade, anyone who bought nothing counts as churn, and anyone who bought more is held at last year’s figure.

That cap is the rule people keep trying to break. If a customer paid you 8,000 last year and 11,000 this year, gross retention records 8,000 for them. The extra 3,000 is real money, and it belongs in a different number: net revenue retention, which adds expansion on top ( [Cube: GRR vs NRR](https://www.cubesoftware.com/blog/gross-revenue-retention-vs-net-revenue-retention)). The gross figure answers “how leaky is the bucket”. The net figure answers “is the bucket getting fuller anyway”. Mix them, and growth from three happy accounts hides the quiet loss of six others.

So exactly two things pull the gross figure down:

- customers from the base window who bought nothing in the next window;
- customers who bought less than before.

New customers don’t appear anywhere. Neither does any deal with a customer outside the base cohort. That feels wrong the first time, because your best year of new business can sit next to a poor retention number. That is the point. Retention is a question about the people you already had.

One more thing to settle before you touch Pipedrive: what is a “customer”? We use the organization, not the contact person. People change jobs; the account stays. If your team logs deals against people without an organization, fix that first, or the cohort will be a list of names rather than a list of accounts.

## Building the cohort from Won deals by organization

You need two exports and a spreadsheet. Everything below works with the standard deal fields, no custom field required.

1. **Pick the windows.** Base window: calendar year 2025. Next window: calendar year 2026, or year-to-date if you are reading this in October. Use the same length for both, or say plainly that you are comparing a full year with a partial one. Won time sorts a deal into a window, not the created date or the expected close date.
2. **Export Won deals for the base window.** In Pipedrive, open the account menu, go to Tools and apps > Export data, choose Deals and filter by won time; the file comes out as Excel or CSV ( [Pipedrive: exporting data](https://support.pipedrive.com/en/article/exporting-data-from-pipedrive) ). Only global admins and users with the export permission can do this, and you only get the deals visible to you. Have the admin run it, or the cohort will be short.
3. **Export Won deals for the next window** the same way. Make sure the organization name is in both files. If your filter needs several conditions, build it as an advanced filter with ALL and ANY groups ( [Pipedrive: filtering](https://support.pipedrive.com/en/article/filtering) ).
4. **Sum deal value by organization in each file.** A pivot table does it: rows are organization names, values are the sum of deal value.
5. **Join the two on organization** and keep only organizations that appear in the base list. Everything else is new business and leaves the sheet.
6. **Cap and divide.** For each base customer, retained = the smaller of base revenue and next-window revenue. GRR = sum of retained ÷ sum of base revenue.

![Six 2025 customers matched to 2026: four retained, two lost, one new customer excluded, one growth capped](https://salesbond.app/wp-content/uploads/2026/10/gross-revenue-retention-pipedrive-2-1.png)

Step 5 is where the mistakes hide. In practice organization names drift: “Alder Print”, “Alder Print Ltd” and “Alder print (new site)” are one customer to Bea and three to a pivot table. Sort the base list alphabetically before you join and merge the obvious twins. If you want the join to hold next year too, the fix lives in Pipedrive, not in the spreadsheet; our note on [duplicate records in Pipedrive](https://salesbond.app/blog/duplicate-records-in-pipedrive/) covers the merge.

Insights deal reports can give you the per-organization sums for one window without an export ( [Pipedrive: Insights](https://support.pipedrive.com/en/article/insights-feature)), but not the join or the cap, so the spreadsheet stays.

## A worked example with made-up numbers

Everything in this table is invented to show the mechanics. Bea’s company, six base customers, calendar years.

| Customer (organization) | Won in 2025 | Won in 2026 | Counted (capped) | What happened |
| --- | --- | --- | --- | --- |
| Alder Print | 12,000 | 12,000 | 12,000 | Same as before |
| Birchfield Clinic | 8,000 | 11,000 | 8,000 | Grew; the extra 3,000 is expansion and does not count |
| Castellan Logistics | 14,000 | 0 | 0 | Bought nothing. Nobody told anyone |
| Dunmore Foods | 5,000 | 3,000 | 3,000 | Smaller orders |
| Ellery & Sons | 9,000 | 9,000 | 9,000 | Same as before |
| Fairlea Dental | 6,000 | 0 | 0 | Switched supplier, wrote to say so |
| **Base total** | **54,000** | | **32,000** | |

GRR = 32,000 ÷ 54,000 = **59%**, so gross revenue churn is 41%. Greaves Hardware bought 15,000 in 2026 as a new customer and appears nowhere in the calculation.

Two things to notice. Without the cap, the retained figure would be 35,000 and the rate 65%, and Birchfield’s good year would quietly cover a third of Castellan’s silence. And of the 22,000 that left, 14,000 came from one account that never said a word, a quarter of the base on its own, which is what [customer concentration](https://salesbond.app/blog/customer-concentration-risk-pipedrive/) looks like from the retention side. That is the usual shape: the loud churn is small and the the silent churn is large.

Is 59% bad? For a subscription business it would be alarming. Planhat’s rule of thumb for companies selling to small and mid-sized businesses is around 80%, with 90% for enterprise ( [Planhat: what is good gross revenue retention](https://www.planhat.com/editorial/what-is-good-gross-revenue-retention)). Those are subscription benchmarks, and we would not carry them over to a company that sells equipment on a three-year replacement cycle. For Bea the useful comparison is her own number last year, and the useful output is the list: Castellan, Dunmore, Fairlea. Three conversations, not a percentage.

## NRR vs GRR: the same sheet without the cap

Net revenue retention is the same calculation with the cap removed. Count each base customer’s next-window Won deals in full, and divide by the base total. New customers still stay out. In the example only Birchfield changes, to 11,000, so 35,000 ÷ 54,000 gives an NRR of 65% next to a GRR of 59%. The 6 points between them are expansion.

Watch that gap. NRR can pass 100% while the customer list gets shorter. Say Birchfield opened a second clinic and bought 35,000, and nothing else moved. GRR stays at 59%. NRR becomes 59,000 ÷ 54,000, or 109%: one account’s good year has covered three accounts’ bad one, and a slide with only the net figure says the customer base is growing on its own. True about money, silent about customers. So we put the two on one line and read the gap as a concentration warning first: “NRR 109%, GRR 59%, driven by Birchfield; three accounts need a call.”

An uncapped sum also mixes two kinds of money. A repeat is the same thing bought again: the quarterly consumables order, the service contract renewed at the old price. Expansion is a new product line, a second site, a clearly larger volume. We mark the difference with a deal custom field with two options, Repeat and Expansion, created under Personal preferences > Data fields or from the deal list view through the gear icon ( [Pipedrive: custom fields](https://support.pipedrive.com/en/article/custom-fields)). Fill it when the deal is won, not in January. A repeat order bigger than last year’s still counts in NRR; the mark says what the money means, not whether it counts. If service contracts are in the mix a [renewal pipeline](https://salesbond.app/blog/customer-renewal-process-pipedrive/) with its own stages keeps a renewal from being logged as expansion by accident.

For the export, in the deals list view apply the “won in 2026” filter, add the Repeat/Expansion field through the gear icon, then click “…” > Export filter results ( [Pipedrive: exporting data](https://support.pipedrive.com/en/article/exporting-data-from-pipedrive)). Teams on the product catalog (a global admin turns it on under Tools and apps > Products) get deal value calculated from the linked products ( [Pipedrive: products](https://support.pipedrive.com/en/article/products)), and Export data can pull the products added to deals, filtered by won time. Lay that file next to the cohort sheet: a Won deal carrying a product the organization never bought before is expansion, no field needed.

## Why a Pipedrive-only GRR is approximate

The number you get this way is a sales number, not a finance number. Say so out loud before anyone puts it in a bank covenant.

Deal value in Pipedrive is what the rep recorded when the deal was won, not what was invoiced or paid. A cancelled order, a credit note, a discount agreed after the fact: none of these flow back into the deal unless someone edits it. So GRR from Won deals is really a bookings-retention figure ( [bookings vs billings vs revenue in Pipedrive](https://salesbond.app/blog/bookings-vs-billings-vs-revenue-pipedrive/) has the long version). Mixed currencies are the second trap, so convert to one before you sum ( [multiple currencies in Pipedrive](https://salesbond.app/blog/pipedrive-multiple-currencies-totals/)).

Then there is what counts as one purchase. A team that logs [one new deal per repeat order](https://salesbond.app/blog/repeat-orders-pipedrive-new-deal-per-order/) gets a clean per-organization sum. A team that keeps one evergreen deal per customer and edits it’s value every quarter gets nothing usable, because that deal was won once, years ago.

And windows have edges. A customer who orders every fourteen months shows as lost in some years and retained in others with no change in behaviour, which is why we use years, not quarters.

Write the scope in one line under the chart, and finance has its answers.

## Reading the number: customers who quietly slipped

The percentage tells Bea where she stands. The list underneath tells Dario what to do, and it holds three kinds of names.

Fairlea told you they were leaving. That is a [win-back conversation](https://salesbond.app/blog/win-back-churned-customers-pipedrive/), and the account is not gone until the new supplier has disappointed them once. Dunmore is still a customer, buying less, which is the [downsell case](https://salesbond.app/blog/downsell-customer-downgrade-pipedrive/): find out whether thier smaller orders mean a smaller business or a split basket. Castellan is the one that should keep a sales manager up at night. For ten months nobody noticed, because nothing in Pipedrive changed. No deal was lost. No activity was overdue. The account simply had no open deal, and an account with no open deal is invisible to a pipeline review.

That is the real lesson of the calculation. The lost part of GRR is mostly customers who stopped buying without telling you, and a CRM only shows you the deals you created. The fix is a routine that looks at accounts rather than deals, the idea behind a [customer health score built in Pipedrive](https://salesbond.app/blog/customer-health-score-pipedrive/). The simplest version is a saved filter of [customer organizations with no won deal in the last N months](https://salesbond.app/blog/pipedrive-inactive-customers-accounts-filter/), reviewed monthly, with N set from how often that type of customer normally buys.

A disclosure, since this is the problem our product is built around. We build SalesBond, a sales management layer on top of the CRM a team already uses; we started with Pipedrive. Its Customer Health section works from the same Won deals, but continuously. For every customer with at least two purchases it measures a buying cycle, then marks the customer as overdue once the time since the last order passes one cycle and as leaving once it passes two (both thresholds are defaults you can change). Suppose Castellan reordered about every four months and last ordered in early November. It would have shown as overdue in March and leaving by July, long before anyone ran a January export. If you want to see which of your customers are already past their cycle, [check your CRM with SalesBond](https://salesbond.app/).

Either way, run the calculation once a year: two exports, one pivot, one join, and both figures on one line. Bea will still ask about it every January, because it is the only number that tells her whether last year’s customers are still here.
