{
  "slug": "net-revenue-retention",
  "title": "Net Revenue Retention (NRR) Calculator",
  "heading": "Net Revenue Retention Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/net-revenue-retention",
  "summary": "See how much revenue your existing customers generate a year later, expansion included.",
  "description": "NRR measures revenue from your existing customer cohort over a period, including expansion (upsells, seat growth, cross-sell) and contraction (downgrades), but excluding new logos. It is the single number board decks lean on hardest because it isolates whether the product and account management motion actually retains and grows dollars already in the door. Public SaaS companies trading at premium multiples typically post NRR of 110-130%; anything under 100% means expansion isn't covering churn and contraction, and the business is structurally leaking revenue that new sales has to backfill just to stay flat. NRR differs from gross revenue retention in that GRR caps at 100% (it ignores upside) while NRR can exceed 100%. Calculate it over a consistent period, usually trailing twelve months, using only the cohort of customers that existed at the start of the period.",
  "formula": "NRR = (Starting ARR + Expansion − Contraction − Churn) ÷ Starting ARR × 100",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=net-revenue-retention",
  "inputs": [
    {
      "id": "startArr",
      "label": "Starting ARR (existing customers)",
      "kind": "number",
      "hint": null,
      "default": 1000000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "expansion",
      "label": "Expansion revenue added",
      "kind": "number",
      "hint": null,
      "default": 180000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "contraction",
      "label": "Contraction (downgrades)",
      "kind": "number",
      "hint": null,
      "default": 40000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "churned",
      "label": "Churned revenue (lost logos)",
      "kind": "number",
      "hint": null,
      "default": 90000,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "nrr",
      "label": "Net Revenue Retention",
      "format": "percent",
      "hint": null,
      "primary": true
    },
    {
      "id": "grr",
      "label": "Gross Revenue Retention",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "endArr",
      "label": "Ending ARR from cohort",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "expansionRate",
      "label": "Expansion as % of starting ARR",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "netExpansion",
      "label": "Net dollar impact",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Starting ARR (existing customers): 1000000 $",
      "Expansion revenue added: 180000 $",
      "Contraction (downgrades): 40000 $",
      "Churned revenue (lost logos): 90000 $"
    ],
    "outputs": [
      "Net Revenue Retention: 105.0%",
      "Gross Revenue Retention: 87.0%",
      "Ending ARR from cohort: $1,050,000",
      "Expansion as % of starting ARR: 18.0%",
      "Net dollar impact: $50,000"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter starting arr (existing customers) ($).",
      "Enter expansion revenue added ($).",
      "Enter contraction (downgrades) ($).",
      "Enter churned revenue (lost logos) ($).",
      "Read your net revenue retention on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "startArr": 600000,
        "expansion": 110000,
        "contraction": 25000,
        "churned": 55000
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "startArr": 1000000,
        "expansion": 180000,
        "contraction": 40000,
        "churned": 90000
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "startArr": 1600000,
        "expansion": 290000,
        "contraction": 65000,
        "churned": 145000
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "What NRR is considered good?",
      "a": "100-110% is solid for mid-market, 110-130% is strong and typical of best-in-class PLG or enterprise land-and-expand businesses, and above 130% is exceptional and usually tied to usage-based pricing with a growing customer footprint. Below 100% signals the base is shrinking and new sales must outrun it."
    },
    {
      "q": "Why exclude new customer revenue from NRR?",
      "a": "Mixing in new logos would let strong acquisition mask a leaky bucket. NRR is deliberately narrow so it isolates retention and expansion motion, which is a different skill (account management, product stickiness, pricing) than the skill of winning new logos."
    },
    {
      "q": "How is NRR different from GRR?",
      "a": "GRR only counts downside — contraction and churn — and is capped at 100%, so it tells you how much revenue you'd keep with zero expansion. NRR adds expansion back in and can exceed 100%. Investors want both numbers because a company can have great NRR while GRR quietly deteriorates."
    },
    {
      "q": "What time period should I use?",
      "a": "Trailing twelve months is standard for board reporting because it smooths seasonality and renewal timing. Quarterly NRR is noisier and useful for spotting trend changes early, but don't compare quarterly NRR directly to another company's annual NRR."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/gross-revenue-retention",
    "https://www.revenuelab.fyi/toolbox/expansion-revenue-rate",
    "https://www.revenuelab.fyi/toolbox/logo-vs-revenue-churn"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Net Revenue Retention (NRR) Calculator (https://www.revenuelab.fyi/toolbox/net-revenue-retention)"
}