Live demo
Pipeline, forecast and rep performance, on a live pipeline
The company is simulated: eight reps and about 200 accounts inside a real Salesforce org, where deals open, move, slip, close, renew and churn every night. Everything after that is real. Salesforce loads into BigQuery daily, a SQL metric layer runs on top, and this page reads its export when you open it.
Salesforce→BigQuery→SQL metric layer→JSON export→this page
Quarter overview
Bookings against quota, by quarter
Closed-won new business and expansion against team quota. Select a column to change the quarter for the whole page.
- New business
- Expansion
- Quota
View as table
The forecast call, day by day
Each point is a nightly snapshot of the CRM. The call is closed-won plus open deals in Commit; upside adds Best Case. Snapshots are what make forecast accuracy measurable: you can see what was called in week one, not just what closed.
- Closed won
- Call (won + commit)
- Upside (+ best case)
- Quota
View as table
Win rate from each stage
Of deals that reached a stage, the share that closed won, all closed deals to date. The biggest step between bars is where the funnel leaks.
Where the open pipeline sits
Open opportunity value by stage today, with average age. Old deals in early stages are the first thing to scrub before trusting coverage.
Rep performance and coaching focus
Attainment by rep, with a coaching focus drawn from written rules, not judgment: Qualification when win rate trails the team by 10+ points, Deal velocity when the cycle runs 25%+ longer than the median rep, Deal size when the average deal is 25%+ smaller than the median rep, and, in the current quarter, Pipeline generation when the rep's own coverage is under 3x.
The definitions behind every number
If a metric isn't written down, it isn't a metric. These are the ones this page uses.
| Metric | Definition | Where it usually goes wrong |
|---|---|---|
| Quota attainment | closed-won bookings ÷ quota, per rep and period | Quota lives in a spreadsheet, so the CRM has nothing to divide by. |
| Pipeline coverage | open pipeline closing this quarter ÷ remaining quota | Uses full quota instead of what's left, and counts stale deals. |
| Forecast call | closed won + open Commit, snapshotted nightly | Nobody records the call, so nobody can check it. |
| Forecast accuracy | 1 − |call − actual| ÷ actual, at week 1 | Measured in the last week, when the number is already known. |
| Win rate | won ÷ closed, new business, by count | Open deals in the denominator, or renewals mixed in. |
| Net revenue retention | (start ARR + expansion − contraction − churn) ÷ start ARR | ARR from new customers leaks into the numerator. |
Pipeline coverage, as SQL
An illustration of the definition above, simplified: one row per quarter, read from a nightly opportunity snapshot.
-- coverage = open pipeline closing in the quarter ÷ quota still to close
WITH q AS (
SELECT quarter, period_start, period_end, SUM(quota) AS quota
FROM marts.quota_by_rep_period
WHERE quarter = @quarter
GROUP BY 1, 2, 3
),
booked AS (
SELECT SUM(amount) AS bookings
FROM marts.opportunities, q
WHERE is_won AND close_date BETWEEN q.period_start AND q.period_end
),
open_pipe AS (
SELECT SUM(amount) AS open_pipeline
FROM marts.opportunity_snapshot_daily s, q
WHERE s.snapshot_date = CURRENT_DATE()
AND NOT s.is_closed
AND s.close_date BETWEEN q.period_start AND q.period_end
AND s.forecast_category != 'Omitted'
)
SELECT q.quarter,
open_pipe.open_pipeline,
q.quota - booked.bookings AS remaining_quota,
SAFE_DIVIDE(open_pipe.open_pipeline, q.quota - booked.bookings) AS pipeline_coverage
FROM q, booked, open_pipe;
This page shows four views. The full suite has seven pages: Overview, ARR, Churn & retention, Rep performance, Funnel, Forecast and Pipeline.