ARR Waterfall: Build a SaaS Revenue Bridge (2026)

AAI for Database TeamSEP 12 2026

An ARR waterfall explains why annual recurring revenue changed between two dates. It starts with opening ARR, adds new, expansion, and reactivation ARR, subtracts contraction and churned ARR, and must finish at the closing ARR in your subscription data.

That reconciliation is the point. A headline such as “ARR grew 12%” can hide a retention problem if new sales replaced a large amount of churn. The waterfall separates growth from leakage so founders, finance, customer success, and product teams can act on the right cause.

The ARR waterfall formula

Use this core equation: Ending ARR = Beginning ARR + New ARR + Expansion ARR + Reactivation ARR − Contraction ARR − Churned ARR.

Some teams combine reactivation with expansion. Keeping it separate is usually more useful because a returning customer is evidence about win-back performance, not product-led account growth. Whatever policy you choose, document it and apply it consistently.

The five ARR movement types

  • New ARR: recurring revenue from a customer that had zero ARR at the start of the period.
  • Expansion ARR: added recurring revenue from an existing customer, such as more seats, an upgrade, or an add-on.
  • Reactivation ARR: recurring revenue restored after a customer had previously churned to zero.
  • Contraction ARR: lost recurring revenue from a downgrade, fewer seats, a discount, or removal of an add-on while the customer remains active.
  • Churned ARR: all remaining recurring revenue lost when a customer becomes inactive.
  • Do not put setup fees, services, hardware, taxes, or other one-time charges into ARR. ARR is an operating metric for normalized recurring value, not recognized revenue under accounting standards. Stripe’s guidance describes ARR as annualized recurring revenue and commonly derives it from MRR multiplied by 12.

    ARR waterfall example

    Suppose a SaaS company begins the quarter at $1,200,000 ARR. During the quarter it adds $180,000 in new ARR, $90,000 in expansion, and $20,000 in reactivation. It loses $45,000 to contraction and $105,000 to churn.

  • Beginning ARR: $1,200,000
  • Plus new ARR: $180,000
  • Plus expansion ARR: $90,000
  • Plus reactivation ARR: $20,000
  • Minus contraction ARR: $45,000
  • Minus churned ARR: $105,000
  • Ending ARR: $1,340,000
  • Net new ARR is $140,000, or 11.7% of beginning ARR. That sounds healthy until you separate the movements. Net revenue retention is 96.7%, calculated as ($1,200,000 + $90,000 + $20,000 − $45,000 − $105,000) ÷ $1,200,000. Gross revenue retention is 87.5%, calculated without expansion or reactivation.

    The company grew because new sales outpaced customer losses, not because the installed base expanded. Sales should keep acquiring, but leadership should investigate the $150,000 combined contraction and churn before increasing acquisition spend.

    How to build an ARR waterfall in 7 steps

    1. Fix the reporting period and grain

    Choose monthly or quarterly reporting and calculate one movement per customer or subscription event. Monthly waterfalls expose changes sooner. Quarterly views are easier for board reporting, but they should aggregate the same underlying movement ledger rather than introduce a second calculation.

    2. Write one ARR policy

    Decide what counts as recurring, when a contract becomes active, how discounts affect value, which currency rate applies, and when a paused account becomes churned. Store those rules next to the report. If finance annualizes invoices while customer success annualizes plan prices, the bridge will never reconcile.

    3. Create opening and closing snapshots

    For each customer, capture ARR at the last instant before the period begins and at the period end. A useful record includes customer ID, subscription ID, plan, segment, owner, effective timestamp, normalized MRR, ARR, currency, and status. Preserve historical values; overwriting the current plan destroys the evidence needed to explain past movements.

    4. Classify every change once

    Compare each event with the customer’s immediately previous recurring value. A move from zero to positive is new or reactivation, depending on prior history. A positive increase is expansion. A decrease that remains above zero is contraction. A move to zero is churn. ChartMogul’s movement model also includes a neutral category for subscription changes that do not alter MRR.

    Make the categories mutually exclusive. If a customer upgrades and adds seats in one transaction, record the net recurring change as one expansion movement unless your team has a clear reason to retain component-level events. Never count the same dollar in both expansion and new ARR.

    5. Reconcile to the source of truth

    Apply the waterfall formula and compare calculated ending ARR with the closing subscription snapshot. The difference must be zero. A nonzero residual usually means a late event, duplicated subscription, missing currency conversion, backdated cancellation, or inconsistent treatment of discounts.

    Add a visible reconciliation row rather than quietly forcing the totals to match. If the residual is material, do not present the waterfall as final. The error is a data-quality signal, not a rounding inconvenience.

    6. Add diagnostic cuts

    Break each movement down by plan, customer segment, acquisition cohort, region, account owner, cancellation reason, and product package. The company-level chart tells you what changed. Segments tell you where and often why.

    Use the same cuts for gains and losses. For example, high expansion in enterprise accounts does not offset churn concentrated in self-serve customers from an operating perspective; those motions have different owners and fixes.

    7. Turn the waterfall into an operating loop

    Refresh the chart after your billing data closes, assign an owner to every unusual movement, and track the follow-up. Useful triggers include churned ARR above a fixed threshold, contraction increasing for two periods, a segment falling below its retention target, or a reconciliation difference that is not zero.

    Build the ARR waterfall from your database without SQL

    Spreadsheets work for an early snapshot, but copy-pasted billing exports become fragile as subscriptions, currencies, and corrections multiply. The durable setup keeps raw subscription events in the database, defines movement rules once, and refreshes the report from live data.

    With AI for Database, you can connect PostgreSQL, MySQL, Supabase, MongoDB, BigQuery, and other supported databases, then ask: “Build an ARR waterfall for the last six quarters. Separate new, expansion, reactivation, contraction, and churn, and show the reconciliation difference.” You can inspect the result without writing SQL.

    Save the result as a self-refreshing dashboard, then create an action workflow that sends an email, Slack message, or webhook when churned ARR crosses your threshold. That closes the gap between seeing a revenue leak and assigning someone to investigate it.

    Before sharing the dashboard, verify several customer movements against billing records and confirm the bridge lands exactly on ending ARR. Natural-language access removes the query bottleneck; it does not remove the need for an agreed metric policy.

    Common ARR waterfall mistakes

  • Mixing bookings with active ARR. A signed contract with a future start date is not active ARR unless your documented policy explicitly reports committed ARR separately.
  • Treating annual prepayment as twelve times the invoice. Normalize recurring contract value; do not annualize cash timing.
  • Counting a returning customer as new. Reactivation deserves its own label because it measures a different motion.
  • Netting expansion against contraction too early. Gross movements reveal risk that a single net-change number hides.
  • Ignoring foreign exchange. Keep constant-currency and reported-currency views separate when exchange rates create movements unrelated to customer behavior.
  • Backdating changes without restating history. Define whether late corrections rewrite a prior period or appear as an adjustment in the current one.
  • Using invoice dates instead of effective subscription dates. Billing timing and recurring entitlement timing are not always the same.
  • Direct answers to common ARR waterfall questions

    I need to explain why ARR changed, not just calculate the total. What report should I use?

    Use an ARR waterfall, also called an ARR bridge or rollforward. It reconciles beginning ARR to ending ARR through new, expansion, reactivation, contraction, and churned ARR.

    Should I build an ARR waterfall or an MRR waterfall?

    Use ARR when annual contract value is your company’s primary planning metric. Use MRR for monthly subscription businesses where changes need faster inspection. The movement logic is the same; only the normalized time unit changes.

    What should I investigate first when the chart looks wrong?

    First check whether the reconciliation difference is zero. Then inspect the largest churn and contraction movements by customer and effective date. Data errors must be fixed before you interpret business performance.

    Can a non-technical team maintain this report?

    Yes. Keep the movement definitions owned by finance or RevOps, but let customer success and product teams query the governed data, filter the dashboard, and receive alerts. AI for Database provides that plain-English analysis and automation layer over your existing database.

    Make the bridge actionable

    A useful ARR waterfall does three things: it reconciles exactly, preserves gross gains and losses, and routes unusual movements to an owner. Start with one completed period and five movement types. Add segments only after the base bridge matches your source data.

    If the monthly spreadsheet already takes hours or produces competing totals, connect the subscription database to AI for Database. Build the waterfall in plain English, keep it refreshed, and trigger follow-up when recurring revenue starts leaking.

    Frequently asked questions

    What is an ARR waterfall?

    An ARR waterfall is a report that reconciles beginning annual recurring revenue to ending ARR by separating new, expansion, reactivation, contraction, and churned ARR movements.

    What is the ARR waterfall formula?

    Ending ARR equals beginning ARR plus new ARR, expansion ARR, and reactivation ARR, minus contraction ARR and churned ARR.

    Is an ARR waterfall the same as an ARR bridge?

    Yes. ARR waterfall, ARR bridge, ARR walk, and ARR rollforward usually describe the same period-to-period reconciliation of recurring revenue movements.

    What is the difference between an ARR and MRR waterfall?

    They use the same movement logic. An ARR waterfall normalizes recurring value annually, while an MRR waterfall normalizes it monthly.

    Can I build an ARR waterfall without SQL?

    Yes. AI for Database lets you query subscription data in plain English, save a self-refreshing waterfall dashboard, and trigger alerts from database changes without writing SQL.

    Ready to try AI for Database?

    Query your database in plain English. No SQL required. Start free today.