{
  "slug": "arr-bridge",
  "title": "ARR Bridge Calculator",
  "heading": "ARR Bridge Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/arr-bridge",
  "summary": "Break your ARR change down into new, expansion, contraction, and churn.",
  "description": "An ARR bridge (also called a waterfall) decomposes the change in annual recurring revenue between two periods into its component movements: new business, expansion, contraction, and churn. It's the standard board-deck slide because a single ARR growth-rate number hides which lever actually drove the change — the same 20% quarterly growth can come from a thriving expansion motion covering weak new-logo acquisition, or the reverse, and those situations call for completely different management actions. Building the bridge forces internal consistency between your CRM, billing system, and finance reporting, which is why it's also a common source of embarrassing discrepancies during due diligence when the numbers don't reconcile. Track the bridge every quarter, not just at renewal time, so contraction and churn get flagged early rather than discovered in a surprise end-of-quarter reconciliation.",
  "formula": "Ending ARR = Starting ARR + New − Churn − Contraction + Expansion",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=arr-bridge",
  "inputs": [
    {
      "id": "startArr",
      "label": "Starting ARR",
      "kind": "number",
      "hint": null,
      "default": 5000000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "newArr",
      "label": "New business ARR",
      "kind": "number",
      "hint": null,
      "default": 600000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "expansionArr",
      "label": "Expansion ARR",
      "kind": "number",
      "hint": null,
      "default": 350000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "contractionArr",
      "label": "Contraction ARR",
      "kind": "number",
      "hint": null,
      "default": 120000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "churnedArr",
      "label": "Churned ARR",
      "kind": "number",
      "hint": null,
      "default": 200000,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "endArr",
      "label": "Ending ARR",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "netNewArr",
      "label": "Net new ARR",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "growthRate",
      "label": "Period growth rate",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "grossAdds",
      "label": "Gross ARR added",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "grossLosses",
      "label": "Gross ARR lost",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Starting ARR: 5000000 $",
      "New business ARR: 600000 $",
      "Expansion ARR: 350000 $",
      "Contraction ARR: 120000 $",
      "Churned ARR: 200000 $"
    ],
    "outputs": [
      "Ending ARR: $5,630,000",
      "Net new ARR: $630,000",
      "Period growth rate: 12.6%",
      "Gross ARR added: $950,000",
      "Gross ARR lost: $320,000"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter starting arr ($).",
      "Enter new business arr ($).",
      "Enter expansion arr ($).",
      "Enter contraction arr ($).",
      "Enter churned arr ($).",
      "Read your ending arr 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": 3000000,
        "newArr": 360000,
        "expansionArr": 210000,
        "contractionArr": 70000,
        "churnedArr": 120000
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "startArr": 5000000,
        "newArr": 600000,
        "expansionArr": 350000,
        "contractionArr": 120000,
        "churnedArr": 200000
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "startArr": 8000000,
        "newArr": 960000,
        "expansionArr": 560000,
        "contractionArr": 190000,
        "churnedArr": 320000
      }
    }
  ],
  "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": "Why not just report ending ARR and growth rate?",
      "a": "Two companies can post identical ARR growth with very different underlying health — one from strong new-logo velocity, another from a shrinking base saved by a couple of huge expansions. The bridge exposes which motion is actually working so leadership fixes the right thing instead of the whole go-to-market."
    },
    {
      "q": "How often should I build an ARR bridge?",
      "a": "Monthly internally for early warning on churn and contraction trends, quarterly for board and investor reporting. Waiting until quarter-end to look at the bridge means you find problems only after the damage is already booked."
    },
    {
      "q": "What's a common mistake when building one?",
      "a": "Mixing up when a downgrade counts as contraction versus churn (a customer dropping to a much smaller plan without fully canceling), and inconsistent handling of mid-term upgrades. Pick clear definitions once, document them, and apply them identically every period so trends are comparable."
    },
    {
      "q": "Should reactivated churned customers count as 'new'?",
      "a": "Most finance teams track them as a separate 'reactivation' or 'win-back' line rather than lumping them into new business, since blending them overstates new-logo sales productivity and understates how much churn you're actually recovering from."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/net-revenue-retention",
    "https://www.revenuelab.fyi/toolbox/expansion-revenue-rate",
    "https://www.revenuelab.fyi/toolbox/saas-quick-ratio"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — ARR Bridge Calculator (https://www.revenuelab.fyi/toolbox/arr-bridge)"
}