Blog · Board and management reporting · Software
Build a SaaS sales dashboard from CRM deals and subscription summaries. Separate signed bookings, recurring revenue movements and open pipeline, then check how each total connects to its source rows.
A SaaS sales dashboard should show bookings, ARR and pipeline separately, with a reconciliation beside each measure. Bookings describe signed business, ARR describes an annualized recurring revenue balance, and pipeline describes open opportunities at a dated snapshot. Adding the three together produces a number with no useful business meaning.
Use a closed-won CRM export for bookings, a subscription movement schedule for recurring revenue, and an open-opportunity export for pipeline. Keep the opportunity ID and subscription ID so that a signed deal can be traced to its eventual activation without counting the same record twice.
Write the definitions above the dashboard. For this example, bookings means signed recurring contract value, including renewals, before tax and excluding services. ARR means active monthly recurring revenue multiplied by the months in a year. The reporting month is October 2026, with pipeline captured at October 31.
The dashboard needs three different date fields: signing date, subscription effective date and expected closing date. One generic date filter cannot serve all three jobs. For broader interpretation, SaaS analytics covers the surrounding business questions; this page concentrates on the exports and checks behind these sales measures.
Consider a hypothetical US software company with these October closed-won records. The full recurring contract amount is the booking; the annualized amount helps compare different contract lengths.
| Deal | Type | Signed | Starts | Term months | Recurring contract value (USD) | Annualized value (USD) |
|---|---|---|---|---|---|---|
| A | New customer | October 10 | November 1 | 24 | 240,000 | 120,000 |
| B | Expansion | October 15 | October 16 | 12 | 120,000 | 120,000 |
| C | Renewal | October 1 | October 1 | 12 | 90,000 | 90,000 |
| Total | 450,000 | 330,000 |
In Google Sheets, use columns A:G in the order shown. Put real date values in the date columns. The annualized value in G2 is:
=F2/E2*12
Fill down through G4. The bookings panel should display both the amount basis and the contract term convention, because the full $450,000 is different from the $330,000 annualized amount.
For a longer closed-won export, the October booking total is:
=SUMIFS(F2:F1000,C2:C1000,">="&DATE(2026,10,1),C2:C1000,"<"&DATE(2026,11,1))
Google's SUMIFS reference documents summing rows that meet multiple criteria. The exclusive next-month boundary also includes records with a time on the final day. Filter the export to closed-won records first, or add an explicit status criterion.
Use the subscription schedule to measure what actually became active. Assume the schedule has these October movements, expressed as monthly recurring revenue, or MRR. Contraction and churn are negative amounts.
| Movement | MRR change or balance (USD) | Supporting schedule rows |
|---|---|---|
| Opening MRR | 100,000 | Active subscriptions at September 30 |
| New | 5,000 | Earlier signed contract activated in October |
| Expansion | 10,000 | Deal B incremental subscription value |
| Contraction | -2,000 | Effective downgrades |
| Churn | -6,000 | Effective cancellations |
| Closing MRR | 107,000 | Active subscriptions at October 31 |
Closing MRR = Opening MRR + New + Expansion + Contraction + Churn
ARR = MRR × 12
With labels in column A and signed amounts in B2:B6, closing MRR is:
=SUM(B2:B6)
The bridge gives $107,000. Opening ARR is $1,200,000 and closing ARR is $1,284,000, so net ARR growth is $84,000, or 7.0%. Dollar amounts are exact here; percentages are shown to one decimal place.
Deal A has no October activation because it starts in November. Deal C replaces an existing subscription on unchanged terms, so its renewal booking creates no incremental MRR. The new $5,000 of MRR comes from a contract signed before October. Those explanations reconcile the timing; they are not missing sales.
Check the bridge against an independently summed closing subscription schedule. The difference must be zero. Keep the underlying subscription IDs in the exception list if it is not. For billed and recognized amounts, use the separate SaaS sales revenue analysis workflow rather than inserting those amounts into the ARR bridge.
For open opportunities, choose annualized recurring value so contract duration does not dominate the comparison. These records are open at October 31 and expected to close in the next reporting quarter.
| Opportunity | Annualized opportunity value (USD) | Stated probability | Weighted value (USD) |
|---|---|---|---|
| D | 180,000 | 50% | 90,000 |
| E | 120,000 | 25% | 30,000 |
| Total | 300,000 | 120,000 |
With values in B2:B3 and probabilities in C2:C3, calculate each weighted value with =B2*C2. The total has an independent check:
=SUMPRODUCT(B2:B3,C2:C3)
Google's SUMPRODUCT reference describes multiplying corresponding entries and summing the products. It returns $120,000 here, the same as the weighted-value column. These stated probabilities are scenario assumptions, not measured conversion rates.
Keep a copy of each dated export. Today's edited opportunity list cannot reproduce last month's pipeline. If the main difficulty is organizing the sheet, the Google Sheets sales dashboard article covers that adjacent job. Use a sales account coverage dashboard to examine which accounts lack attention rather than adding activity counts to revenue totals.
Covirage is not affiliated with Google.
Bring your closed-won deals, subscription movement schedule and dated open-opportunity export: Covirage maps the columns, and its tools compute and check the separate totals. The external AI model explains the differences with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for software businesses for the industry context.
They do not have to match. Bookings can include the full value of a multiyear contract, while ARR annualizes recurring revenue active at a particular date. Renewals can also produce bookings without increasing ARR, and signed contracts may start later.
Include signed bookings, opening and closing recurring revenue, the movements between those balances, and dated open pipeline. Show the reporting period and definitions beside the figures. Add an exception list for missing start dates, duplicate opportunities and unexplained recurring revenue changes.
It is a scenario calculation using the probabilities attached to open deals. It does not establish when a contract starts, how much revenue is recognized, or whether a deal will close. Review the assumptions and compare with actual outcomes before relying on it.