Dashboard

What goes in a renewal forecast dashboard?

A renewal forecast dashboard answers two questions at once: what is up for renewal, and how much the forecast deserves to be believed. The second question is the one most dashboards skip — without a frozen snapshot of the forecast at quarter start, you're grading a number that has been quietly edited all quarter.

For: CS and renewals leadership, finance, RevOps, and account executives. Refresh: daily during a quarter; frozen snapshot taken at period start. Source: modeled customer success, subscription, and product-usage tables in a Metabase-connected database.

Which cards belong on this dashboard?

  • ARR up for renewal by quarter, next four quarters
  • Forecast category mix (commit, likely, at risk, churn) by ARR
  • Renewal rate to date this quarter, by count and by ARR
  • At-risk ARR with owner and last touchpoint
  • Forecast vs. actual accuracy over the past six quarters
  • Expansion pipeline attached to renewals
  • Renewals closing in the next 30 days without a scheduled meeting
  • Slipped renewals: past close date, still open

What data does this dashboard need?

  • Renewal opportunities with close date, ARR, and forecast category
  • A frozen forecast snapshot written at the start of each period
  • Contract terms from billing, not just the CS tool
  • Closed outcomes: renewed, churned, downgraded, expanded
  • Account health and usage for the at-risk views
  • Expansion or upsell opportunities linked to the renewal record

How do you build it?

  1. Land CS platform, CRM, billing, and product-usage data in a database and keep account IDs, contract dates, ARR, health-score components, and event timestamps.
  2. Build account-grain models at the grain this dashboard needs, with health components and revenue definitions as explicit columns.
  3. Create one saved question per card and certify the shared models and definitions.
  4. Add dashboard filters for Renewal quarter, forecast category, segment, owner, region.
  5. Reconcile ARR against billing rather than the CS tool, and show data freshness so every viewer knows how current the syncs are.

Example card SQL

Renewal pipeline by quarter and forecast categoryPostgreSQL
SELECT
  date_trunc('quarter', r.close_date)::date AS renewal_quarter,
  r.forecast_category,
  COUNT(*) AS opportunities,
  ROUND(SUM(r.arr_usd), 2) AS arr,
  ROUND(
    100.0 * SUM(r.arr_usd)
    / NULLIF(SUM(SUM(r.arr_usd)) OVER (
        PARTITION BY date_trunc('quarter', r.close_date)
      ), 0), 1
  ) AS share_of_quarter_pct
FROM renewal_opportunities r
WHERE r.close_date >= date_trunc('quarter', CURRENT_DATE)
  AND r.close_date < date_trunc('quarter', CURRENT_DATE)
    + INTERVAL '12 months'
  AND r.stage NOT IN ('closed_renewed', 'closed_churned')
GROUP BY 1, 2
ORDER BY 1, arr DESC;

Dashboards

Integrations

Metrics

Analytics

FAQ

Where should renewal ARR come from — the CS tool or billing?
Billing. CS platform ARR is a projection of CRM fields that people edit by hand; the subscription and invoice tables are what the company actually charges. Reconcile the two and show the gap — a persistent discrepancy is a data-quality finding, not a rounding error.
How do we make the forecast trustworthy?
Snapshot it. Write the forecast category and ARR for every open renewal into a dated table on day one of the quarter, then compare that frozen row to the actual outcome. Categories edited mid-quarter are coaching data; only the snapshot can be scored.