Forecasting

SaaS Revenue Forecasting from Stripe Data: The Complete Guide

Most SaaS revenue forecasts are built on a single growth-rate assumption applied to a single MRR number. They look precise and are usually wrong. Here is how to build a forecast from cohort-level Stripe data that actually holds up against reality.

You build a forecast: current MRR times 1.08 to the power of however many months, because you have been growing 8% monthly. The spreadsheet produces a clean exponential curve. Six months later, actual revenue is 18% below the forecast.

This happens constantly because single-growth-rate forecasting ignores the structure underneath your MRR. Your existing customers do not all behave the same way — some cohorts retain better than others, some churn faster in their first 90 days, and a meaningful percentage of "churn" in your historical data is actually recoverable failed payments that a simple growth rate treats as permanent loss.

This guide explains how to build a forecast that accounts for this structure — using cohort-based modeling, separating baseline projections from scenario planning, and correctly handling the failed payment recovery dynamic that most forecasts get wrong.

Why Single Growth-Rate Forecasting Fails

The simplest SaaS forecast applies a single monthly growth rate to current MRR: Forecast MRR = Current MRR × (1 + growth rate) ^ months. This is intuitive and fast to build, which is why it is so common — and why it fails so often.

The core problem is that MRR growth is not actually one process. It is the net result of several distinct processes happening simultaneously:

  • New customer acquisition, which depends on sales pipeline and marketing performance
  • Expansion from existing customers, which depends on product usage and upsell motion
  • Voluntary churn, which depends on product satisfaction and competitive pressure
  • Involuntary churn, which depends on payment infrastructure and dunning effectiveness
  • Contraction from existing customers, which depends on usage decline and pricing pressure

A single blended growth rate compresses all five of these into one number, which means the forecast cannot respond correctly when any one of them changes. If you fix involuntary churn through a better dunning system, a blended-rate forecast does not capture that improvement separately — it just shows up as "growth rate increased" with no explanation of why, making the forecast impossible to update intelligently as your business changes.

The Cohort-Based Forecasting Model

A cohort-based forecast models each component of MRR change separately, using historical patterns from your own Stripe data rather than a single assumed rate.

Forecast MRR (month N) = Existing cohort MRR (decayed by churn, grown by expansion) + New cohort MRR (from projected new customers)

This breaks into four modeling steps:

Step 1: Project existing customer revenue using NRR

Take your current MRR and apply your historical monthly NRR rate forward. If your trailing NRR is 100.8% monthly, your existing customer base (with no new customers) is projected to be Current MRR × 1.008^N after N months.

Step 2: Project new customer revenue using cohort curves

For new customers expected each month — based on pipeline or historical acquisition rate — apply a cohort retention curve rather than assuming they behave like the blended average immediately. New cohorts typically churn faster in their first 90 days than the mature blended base, so projecting them at the blended NRR overstates their near-term contribution.

Step 3: Separate voluntary and involuntary churn assumptions

Apply different assumptions to each: voluntary churn as a structural rate that requires product or pricing intervention to change, and involuntary churn partially offset by your historical dunning recovery rate. Treating all churn identically overstates revenue loss from payment failures that are actually recoverable.

Step 4: Reconcile and validate

Sum the components and check that the reconciliation matches: Forecast MRR = Starting MRR + New + Expansion + Reactivation − Contraction − Churn. If the waterfall does not reconcile, there is a modeling error somewhere in the component projections.

A Worked Example

A SaaS business starting at $100,000 MRR wants a 6-month forecast. Historical data from Stripe shows:

  • Monthly NRR (existing customers): 100.5%
  • Average new MRR per month (from pipeline): $8,000
  • New cohort 90-day churn rate: 8% (higher than blended due to onboarding drop-off)
  • Dunning recovery rate: 60% of failed payments recovered
Month Existing cohort MRR New cohort MRR Total Forecast MRR
0 (start)$100,000$0$100,000
1$100,500$8,000$108,500
2$101,003$15,760$116,763
3$101,508$23,219$124,727
4$102,015$29,602$131,617
5$102,525$35,021$137,546
6$103,038$39,572$142,610

Notice the new cohort MRR is not simply $8,000 × month number — it accounts for the 8% early churn applied to each new cohort as it ages. This produces a curve that decelerates slightly compared to naive linear addition of new MRR, which is more realistic than assuming every new dollar of MRR is permanent from day one.

Compare this to the naive single-growth-rate approach: if blended historical growth was 8% monthly, a simple forecast would project $100,000 × 1.08^6 = $158,687 — overstating the cohort-based forecast by approximately 11%, because it does not account for the higher early churn in new cohorts.

Cohort curves require clean historical data to build correctly.

Dnoise tracks retention curves by acquisition cohort automatically from your Stripe billing history — the exact data this forecasting model requires, without manual spreadsheet work.

See how it works Connect Stripe — free

Baseline vs Scenario Forecasts

A common failure mode is presenting a single forecast number as if it were certain. Mature forecasting practice separates two distinct types of projection.

Baseline forecast

The baseline uses your current trends — current NRR, current new customer acquisition rate, current churn — projected forward with no assumed changes. This is your default expectation and the one used for cash planning and runway calculations.

Scenario forecasts

Scenarios model specific what-if conditions: what happens if you reduce involuntary churn by implementing a better dunning system, what happens if you double sales headcount, what happens if your largest customer churns, what happens in a downside case where growth slows by half.

Scenario Assumption change 6-month MRR
BaselineCurrent trends continue$142,610
Dunning improvementRecovery rate 60% → 70%$146,200
Sales accelerationNew MRR/month $8k → $12k$165,900
Downside (growth slows)New MRR/month $8k → $4k$119,300

Presenting scenarios alongside the baseline — clearly labeled — gives stakeholders a realistic range rather than false precision around a single number. This is particularly important for board reporting, where a single optimistic forecast that misses creates credibility damage that a range with clearly stated assumptions avoids.

The Failed Payment Recovery Factor

This is the single most commonly mishandled component of SaaS revenue forecasting. Failed payments sit in an ambiguous state — not yet collected, not yet confirmed lost — and how a forecast treats them significantly affects accuracy.

Two wrong approaches are common:

  • Treating all failed payments as immediate churn. This understates near-term revenue because, as detailed in our complete guide to Stripe failed payment recovery, 50-70% of failed payments typically recover within the 22-day dunning window.
  • Ignoring failed payments and assuming 100% collection. This overstates near-term cash revenue because some percentage will not recover and represents real loss.

The correct approach applies your historical dunning recovery rate to revenue currently in active dunning:

Projected recovered revenue = Revenue in active dunning × historical recovery rate Projected confirmed loss = Revenue in active dunning × (1 − historical recovery rate)

This split matters most for cash flow forecasting and near-term (1-3 month) projections, where the timing of dunning resolution has a material impact on collected revenue versus billed revenue.

What Data You Need

Building a cohort-based forecast requires specific data, most of which lives in Stripe with the pipeline data coming from your CRM.

Data point Source
Current MRR by cohortStripe subscription data
Historical monthly NRRStripe billing events, calculated per the NRR guide
Voluntary vs involuntary churn splitStripe subscription cancellation events, cross-referenced with payment status
Dunning recovery rateStripe invoice retry history
New cohort early churn curveStripe historical cohort data, 90+ day lookback
Sales pipeline / acquisition rateCRM (Salesforce, HubSpot) or historical Stripe new customer rate

The minimum viable forecast can be built with 6-12 months of Stripe history. Forecasts built on less than 3 months of data should be treated as low-confidence, since churn and recovery rates need enough observations to stabilize.

Validating Forecast Accuracy

A forecast that is never checked against actuals provides false confidence. Build a validation habit into your forecasting process.

  • Track forecast vs actual monthly. Compare your prior month's forecast for the current month against what actually happened. Calculate the variance percentage.
  • Investigate variance over 10%. Identify which component drove the miss — was it new customer acquisition, churn, expansion, or dunning recovery that deviated from assumption?
  • Update assumptions, not just the forecast. If actual NRR consistently runs 1-2 points below your assumed NRR, update the underlying assumption rather than just adjusting the output number.
  • Maintain a rolling forecast. Rebuild the forecast monthly using the most recent 3-6 months of trailing data rather than relying on assumptions set once at the start of the year.

Reasonable accuracy targets: monthly forecasts 1-3 months out should be within 5-10% of actuals. Annual forecasts typically carry 10-20% variance even for mature, well-modeled businesses, given the compounding uncertainty across twelve months of churn, expansion, and acquisition assumptions.

Common Forecasting Mistakes

  • Using a single blended growth rate. Compresses five distinct revenue processes into one number, making the forecast unresponsive to specific interventions.
  • Treating all churn as immediate and permanent. Ignores the 50-70% recovery rate typical for involuntary churn in active dunning.
  • Projecting new cohorts at the blended retention rate. New customers churn faster in their first 90 days than the mature blended average, overstating near-term new cohort contribution.
  • Never validating against actuals. A forecast that is built once and never checked provides false confidence and prevents the assumption refinement that improves accuracy over time.
  • Presenting one number instead of a range. A single-point forecast implies certainty that does not exist. Baseline plus scenario ranges communicate uncertainty honestly.
  • Mixing accrual and cash revenue without labeling. Billed revenue and collected revenue diverge when failed payments and refunds are material — forecasts should specify which basis they use.

What Dnoise Shows You

Dnoise provides the cohort-level Stripe data that cohort-based forecasting requires — without manual data extraction or spreadsheet modeling for the data layer.

  • Cohort retention curves. Historical retention by acquisition month, showing exactly how new cohorts behave differently from mature ones — the data needed for accurate new-cohort projection.
  • NRR and GRR trends. Trailing 12-month NRR and GRR calculated on proper cohorts, giving you the existing-customer growth rate input for the baseline forecast.
  • Dunning recovery rate. Historical recovery rate for failed payments, letting you correctly split revenue at risk between projected recovery and projected loss rather than treating all failed payments the same way.
  • Voluntary vs involuntary churn separation. Distinct churn rates for product-driven loss versus payment-failure loss, so your forecast assumptions reflect the right underlying driver for each.

See also: the NRR guide, the GRR guide, failed payment recovery, and MRR in the Metrics Library.

Get the cohort data your forecast model needs.

Connect Stripe and Dnoise shows your retention curves, NRR/GRR trends, and dunning recovery rate — the exact inputs a cohort-based forecast requires.

See live demo Connect Stripe — free

Summary

Most SaaS revenue forecasts fail because they treat MRR growth as a single process when it is actually five distinct processes compressed into one number. A cohort-based forecast models new customer acquisition, expansion, voluntary churn, involuntary churn, and contraction separately, using your own historical Stripe data rather than a single assumed growth rate.

  • Project existing customers using trailing NRR, and new customers using cohort-specific early retention curves — not the blended average.
  • Maintain a baseline forecast plus labeled scenarios rather than a single point estimate.
  • Apply your historical dunning recovery rate to revenue in active failed-payment status rather than treating it as total loss or total recovery.
  • Validate forecast accuracy monthly and update underlying assumptions, not just output numbers, when variance exceeds 10%.

Frequently Asked Questions

How do you forecast SaaS revenue from Stripe data?

Start with current MRR as baseline, apply historical NRR to project existing customer revenue forward, add projected New MRR from pipeline or historical acquisition rate, and separate voluntary churn assumptions from involuntary churn partially offset by dunning recovery. The most accurate forecasts use cohort-based modeling rather than a single blended growth rate, because different customer cohorts retain at different rates that one number cannot capture.

What is the difference between a baseline forecast and a scenario forecast?

A baseline forecast projects current trends forward with no assumed changes — used for default planning and runway calculations. A scenario forecast models specific what-if conditions, such as improved dunning recovery or accelerated sales hiring. Best practice maintains one baseline plus several clearly labeled scenarios, so stakeholders see a realistic range rather than false precision around a single number.

How accurate should a SaaS revenue forecast be?

Monthly forecasts one to three months out should be within 5–10% of actuals. Annual forecasts typically carry 10–20% variance even for mature businesses due to compounding uncertainty. Forecasts consistently outside these ranges usually indicate a modeling problem — most commonly failing to separate recoverable involuntary churn from structural voluntary churn, or using a single blended growth rate instead of cohort projections.

How does failed payment recovery affect revenue forecasting?

If a forecast assumes all subscriptions in active dunning will churn, it understates revenue because 50–70% of failed payments typically recover within the retry window. If it assumes 100% collection, it overstates near-term cash revenue. Accurate forecasting applies your historical recovery rate to revenue at risk rather than treating it as fully lost or fully recovered. See the complete recovery guide for recovery rate benchmarks.

What data do you need to build a SaaS revenue forecast?

Current MRR by cohort, historical monthly NRR, voluntary versus involuntary churn split, dunning recovery rate, new cohort early-retention curves, and sales pipeline or historical acquisition rate. Most of this data exists in Stripe billing history; pipeline assumptions typically come from your CRM. A minimum viable forecast needs 6–12 months of Stripe history for churn and recovery rates to stabilize.