Blog · Forecast and pipeline · Software
Build a customer-month SaaS revenue forecast from retention, contraction, expansion and new sales. Separate recurring run rate from recognized revenue and reconcile the plan with actuals.
SaaS revenue forecasting starts with existing customer revenue, separates retention from contraction and expansion, and adds new sales using their expected service dates. Build the recurring run-rate bridge first, then a monthly revenue schedule using finance-approved accounting assumptions. Compare that schedule with actual revenue at the same customer and month level.
Bookings record signed commercial commitments under the company's definition. Billings record invoices. Recurring run rate describes the active subscription base at a point in time. Recognized revenue belongs to the period in which the relevant service obligations are satisfied.
Those measures answer different questions. A contract can be signed before service begins and invoiced before its revenue appears in the income statement. Do not fill a revenue column with whichever sales measure is easiest to export.
FASB's original Topic 606 amendments establish the transfer-of-services principle and distinguish advance consideration from revenue. Finance must approve how current accounting requirements apply to the actual contracts. The forecast carries those approved assumptions; it does not choose an accounting policy.
For recurring-base definitions and retention denominators, use the customer base KPIs for SaaS sales teams. Here the job is turning the customer movements into monthly revenue.
Start with the subscription register, renewal schedule and revenue ledger. Use a stable customer ID, contract ID, cohort, forecast month, forecast version, service start and end dates, currency, recurring amount and recognized revenue. Keep the forecast snapshot unchanged when actuals arrive.
Assign each recurring movement once. Churn removes the customer's entire opening recurring amount. Contraction removes part of a surviving customer's amount. Expansion increases an existing customer's amount. New business belongs to customers outside the opening base.
Closing monthly recurring revenue = Opening recurring revenue - Churn - Contraction + Expansion + New business
Use positive amounts in the movement columns and subtract the reductions in the formula. A renewal without a price or volume change carries the opening amount forward; it does not become new revenue.
The broader sales projection method covers the sales outlook feeding these assumptions. Bring its approved customer timing into this schedule rather than rebuilding the sales forecast inside the accounting review.
A US subscription company prepares its January 2027 forecast. All amounts below are USD. Existing-customer changes take effect January 1. The new customer's service starts January 16, leaving 16 service days in a 31-day month.
For this example only, finance has approved recognition at the recurring monthly amount for a full month and calendar-day proration for the new customer's first month. There are no usage fees, separate implementation obligations or other adjustments.
| Customer | Opening MRR (USD) | Churn (USD) | Contraction (USD) | Expansion (USD) | New MRR (USD) | Closing MRR (USD) | Service days | Cohort | January revenue (USD) |
|---|---|---|---|---|---|---|---|---|---|
| Alder | 60,000 | 0 | 0 | 0 | 0 | 60,000 | 31 | Existing | 60,000.00 |
| Beacon | 25,000 | 0 | 0 | 5,000 | 0 | 30,000 | 31 | Existing | 30,000.00 |
| Cedar | 10,000 | 0 | 2,000 | 0 | 0 | 8,000 | 31 | Existing | 8,000.00 |
| Delta | 5,000 | 5,000 | 0 | 0 | 0 | 0 | 0 | Existing | 0.00 |
| Elm, new | 0 | 0 | 0 | 0 | 12,000 | 12,000 | 16 | New | 6,193.55 |
| Total | 100,000 | 5,000 | 2,000 | 5,000 | 12,000 | 110,000 | 104,193.55 |
Put these columns in A:J, starting the customer rows at row 2. The Excel formulas for closing MRR in G2 and the simplified January revenue in J2 are:
=B2-C2-D2+E2+F2
=G2*H2/31
Column I records the cohort, either Existing or New. Fill the formulas down. For January revenue from the existing cohort, use:
=SUMIFS(J2:J6,I2:I6,"Existing")
Microsoft documents SUMIFS as summing amounts that meet specified criteria. Covirage is not affiliated with Microsoft.
The new customer's calculation is 12,000 × 16 / 31 = $6,193.55. Compute with unrounded values and display cents. The closing run rate is $110,000; January revenue is $104,193.55 because the new subscription contributes only part of the month.
The recurring bridge must balance: 100,000 - 5,000 - 2,000 + 5,000 + 12,000 = $110,000. The revenue schedule must separately total the customer rows. Do both checks before looking at growth.
After the January close, the ledger gives this cohort comparison:
| Cohort | Forecast revenue (USD) | Actual revenue (USD) | Actual minus forecast (USD) |
|---|---|---|---|
| Existing customers | 98,000.00 | 97,000.00 | -1,000.00 |
| New customers | 6,193.55 | 6,000.00 | -193.55 |
| Total | 104,193.55 | 103,000.00 | -1,193.55 |
With forecast in B and actual in C, the variance formula is:
=C2-B2
Tie actual revenue to the closed ledger, including approved credits and adjustments. Investigate the existing-customer shortfall separately from new-customer timing. A total miss can otherwise conceal a retention issue behind a change in start dates.
Keep explanations attached to the relevant customer rows. Use revenue forecasting automation for the repeatable review workflow, and project revenue forecasting when delivery progress rather than subscription access drives the schedule.
Bring a sample of your own customer-month forecast and revenue ledger to Covirage; it maps the columns, and its tools compute and check the recurring bridge and forecast-versus-actual totals. The external AI model explains the results with every figure traced to its rows. Create a free Covirage account, then set up your business and bring your file.
See Covirage for SaaS sales teams for the supporting business context.
MRR is useful for planning the recurring customer base. It can differ from recognized revenue when contracts start during a month, include other obligations or have usage charges. Keep the recurring bridge and the accounting revenue schedule separate, then explain the difference.
Use customer-level renewal dates, account evidence and documented assumptions. Separate complete cancellations from partial reductions. Preserve the original customer cohort so retained revenue does not accidentally include newly acquired customers, and compare each assumption with the subsequent customer outcome.
Finance owns the revenue definition, recognition assumptions and ledger reconciliation. Sales supplies expected new contracts and expansion timing. Customer success supplies renewal and contraction evidence. Each forecast version should identify who approved the assumptions and when the information was available.