River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Weekly RevOps Dashboard Template

Every shared number computed twice over a closed quarter, and coverage measured against the gap at each segment's own win rate.

Free download  ·  No account needed

Q4 2025, same object, same filter, same formula. Read eight weeks apart.

As of 31 December$7,920,00094.3% of an $8,400,000 quota
Live export, 20 February$8,130,00096.8% of the same quota
What moved itDealsAmount
Amounts corrected after signature14+$186,000
Close dates pulled back to the signature date5+$318,000
Reopened, then re-closed in the next quarter2−$294,000
Net movement on a quarter already reported21+$210,000

Nothing was miscalculated and nobody did anything wrong. Two and a half points of attainment, and it is not a one-off: the same comparison drifts 2.21%, 2.66% and 2.65% across the three quarters tested.

When a weekly view and a monthly view disagree, the fix proposed is always the same: write the definitions down and agree them. It does not work, because the argument is rarely definitional. The weekly view reads live state, the monthly view reads a period close, and the fields underneath stay editable after the period ends. Same object, same formula, two answers. Billing reporting already marks that distinction, colouring open periods differently because their figures keep moving until the period closes. A CRM period never closes, so nobody marks it.

Kelbourne Systems closed Q4 2025 at $7,920,000 against an $8,400,000 quota. Recomputed from a live export on 20 February, the same quarter reads $8,130,000. Three ordinary things moved it. Amounts get corrected after signature. Deals get reopened and re-closed. And moving a deal into a closed stage sets its close date to today rather than to the signature date, so ops corrects those dates afterwards, which moves revenue between quarters that were already reported.

So this pack starts with a test instead of a definition. Every metric both views show gets computed twice over the same closed quarter and the drift gets published. Eleven went in: three held still, five restated, three could not be recomputed at all. All three survivors came from the billing ledger, because finalising an invoice makes its amount fields immutable and corrections arrive as separate dated credit notes. It pairs with one definition per metric and a same-day answer when two reports already disagree.

Which numbers hold still, and which segment the total is hiding

Three quarters tested and one quarter in flight, for a fictional B2B software company: $8,900,000 of Q1 quota across three segments, and $16,400,000 of open pipeline. Every figure on these sheets reconciles against the others.

Restatement Test

Every metric both views carried, computed twice over each of three closed quarters: once from the snapshot taken at the close, once from live state today. The verdict column decides which view each one is allowed to appear on.

MetricSourceBasis fields that stay editableQ2 2025Q3 2025Q4 2025VerdictViews it may appear in
Billed revenue in periodBillingNone. Finalised line items0.00%0.00%0.00%SettledBoth views
Net new paying customersBillingNone. First finalised invoice0.00%0.00%0.00%SettledBoth views
Cancellations in periodBillingNone. Append-only status events0.00%0.00%0.00%SettledBoth views
New ARR closed wonCRMAmount, Close date, Deal stage2.21%2.66%2.65%RestatesMonthly only, as of the close
Win rateCRMDeal stage, Close date0.81%1.34%2.07%RestatesMonthly only, as of the close
Opportunities won (count)CRMClose date, Deal stage1.06%0.53%1.62%RestatesMonthly only, as of the close
Average selling priceCRMAmount, Close date0.63%1.48%1.02%RestatesMonthly only, as of the close
Pipeline created in periodCRMCreate date, Amount2.41%3.09%2.84%RestatesMonthly only, as of the close
Open pipeline at period endCRMDeal stage, Amount, Close daten/an/an/aNot recomputableWeekly only, live
Pipeline coverage at period endCRMDeal stage, Amount, Close daten/an/an/aNot recomputableWeekly only, live
Stage 3 to won conversionCRMStage transitionsn/an/an/aNot recomputableMonthly, from stage history

Three settled, five restating, three not recomputable. The two views now overlap on three numbers and all three come from the billing system, which is the finding rather than a failure of the test. Not recomputable is a different problem from restating: a live export holds one state and it is today's, so nothing in it remembers what was open on 31 December.

Weekly Operating View

Q1 2026, week 7 of 13, live. Coverage measured against the remaining gap at each segment's own win rate, with the last column carrying a decision rather than an observation.

SegmentQuotaClosed to dateGapOpen pipelineOwn win rateRequired multipleRequired pipelineSurplus or shortfallMedian cycleNew pipeline can landDecision this week
Enterprise$4,450,000$1,550,000$2,900,000$8,600,00031.0%3.22x$9,347,826−$747,82694 daysNo, 42 days leftWork the open book. Prospecting now produces Q2 pipeline
Mid-market$3,200,000$1,100,000$2,100,000$5,700,00038.1%2.63x$5,518,672+$181,32838 daysYesHold. Covered, and creation still reaches this quarter
Commercial$1,250,000$450,000$800,000$2,100,00048.9%2.04x$1,635,833+$464,16716 daysYesRelease capacity to Enterprise. Widest margin, shortest cycle
All segments$8,900,000$3,100,000$5,800,000$16,400,00035.8%2.85x$16,502,331−$102,331n/an/aReads 0.6% short, which is the problem with reading it

The total row says the book is 0.6% short of requirement, a rounding error nobody acts on. The segment rows say Enterprise is short by $747,826 of pipeline and $232,000 of bookings, and that the $181,328 and $464,167 surpluses elsewhere are what hide it. Enterprise's median cycle is 94 days against 42 remaining, so that gap cannot be prospected away and the decision is a list of specific open deals.

Pipeline Coverage

The same $16,400,000 weighted two ways: by the stage probabilities the platform shipped with, and by what each segment measurably converts from each stage over the trailing four quarters.

SegmentStageOpen pipelineMeasured win rate from this stageForecast at the measured ratePlatform default probabilityForecast at the defaultOverstatement
EnterpriseQualified to buy$3,400,00015%$510,00040%$1,360,000$850,000
EnterprisePresentation scheduled$2,500,00026%$650,00060%$1,500,000$850,000
EnterpriseDecision maker bought-in$1,700,00044%$748,00080%$1,360,000$612,000
EnterpriseContract sent$1,000,00076%$760,00090%$900,000$140,000
EnterpriseAll stages$8,600,00031.0%$2,668,000$5,120,000$2,452,000
Mid-marketAll stages$5,700,00038.1%$2,169,000$3,450,000$1,281,000
CommercialAll stages$2,100,00048.9%$1,027,000$1,320,000$293,000
All segmentsAll stages$16,400,00035.8%$5,864,000$9,890,000$4,026,000

Against a $5,800,000 gap, the measured rates forecast $5,864,000 and the platform defaults forecast $9,890,000. The defaults overstate by $4,026,000, which is 69% of the entire gap, while a flat three-times-quota rule simultaneously reports the same book as 38.6% short of a $26,700,000 requirement. Same export, three conclusions, and only one of them was measured.

What the pack does that a dashboard template does not

01

Computes every shared number twice and publishes the drift

Once from the snapshot taken at the period close, once from live state today, across three consecutive closed periods. A metric that returns the same answer both ways is allowed on both views. Everything else is assigned to one.

02

Decomposes the drift into vectors with owners

Amounts edited after close, close dates corrected back into the period, deals reopened and re-closed, currency revalued. Each has a different cause and a different fix, and a drift figure with no vectors named is a curiosity rather than a finding.

03

Separates not recomputable from restating

A restating figure gives a different answer at a different as-of. A not-recomputable one cannot be derived from a live export at any as-of, because the export holds one state and it is today's. Those two need opposite handling.

04

Measures coverage against the gap, not the quota

Closed business already covers part of the quota by week seven, so the denominator is what is left. And the required multiple is the reciprocal of that segment's own win rate, which ranged from 2.04x to 3.22x on the worked example.

05

Tests every shortfall against the cycle length

Enterprise short by $747,826 with a 94-day median cycle and 42 days remaining cannot prospect its way out, so the prescription flips from build pipeline to work the open book. Most dashboards do not carry the comparison that reveals it.

06

Refuses to let a metric be settled on one clean period

Three consecutive periods, because the vectors are seasonal. Close-date corrections cluster in the fortnight after a close, so a single quiet period will pass a metric that fails the next one.

How the pack runs

  1. 1

    Send the exports

    An opportunity or deal export, billing or product revenue data, quota by segment, and any period-close snapshot you kept. A dated board slide counts as a snapshot.

  2. 2

    Run the test on closed periods

    Three of them, not the current one. Each shared metric computed from the close basis and again from live state, with every nonzero difference decomposed into its vectors.

  3. 3

    Assign each metric to a view

    Settled figures to both views with no as-of. Restating figures to one view with an as-of stamp and a restatement column. Not-recomputable figures to whichever view can take them live.

  4. 4

    Build the coverage arithmetic

    Win rates and cycle lengths from the stage history, coverage per segment against the remaining gap, and one decision per segment for the week rather than a number per segment.

Frequently asked questions

Why does closed-won move after the quarter ends?

Three reasons, and none is a mistake. Amounts get trued up after signature. Deals get reopened and re-closed. And the close date is stamped with the day somebody moved the card rather than the day of signature, so ops corrects it afterwards. That was the largest vector at $318,000 across five deals.

What actually happens to a deal that gets reopened?

Worth walking one through. Closed won 18 December at $218,000. Moved back to an open stage on 14 January, which does not change the close date, so it kept counting toward December while sitting open. Re-closed 4 February at $142,000, which rewrote the date. Q4 lost $218,000 and Q1 gained $142,000.

Why do the settled metrics all come from billing?

Because a billing ledger makes you append to history and a CRM lets you edit it. An invoice is editable only as a draft, finalising it locks the amount fields, and a later change has to be issued as a credit note. A credit note is a new dated event, so it lands in its own period and leaves the original alone.

Is three times pipeline coverage really wrong?

Wrong twice over. The denominator should be the remaining gap rather than the quota, because closed business already covers part of it. And three times asserts a 33% win rate. Measured, the three segments here run 31.0%, 38.1% and 48.9%, so they need 3.22x, 2.63x and 2.04x. One rule tells at least two of them something false.

Can we just use the stage probabilities in our CRM?

Those are starting values, not measurements. A default pipeline ships with a probability on each stage and a weighted amount computed from it, typically 40, 60, 80 and 90 percent. The measured rates here are 18.6%, 30.5%, 47.9% and 79.4%, and the difference overstates the forecast by 69% of the gap.

We never kept a period-close snapshot. Can we still run this?

Yes, with a proxy. Any figure published in the first week after a close with a date attached works as the close basis: a board deck, a QBR slide, a forecast submission, an email. Where nothing exists the metric is untested rather than settled, and a driver map is the better place to start.

How is this different from specifying a dashboard?

Specification comes first and answers what to build and who opens it, which is what a dashboard spec is for. This pack answers what the numbers are allowed to say once it exists. It pairs with settling which system is authoritative per field when two sources feed one view, and with the weekly business review pack when nobody decides anything.

Find out which of your numbers hold still

Send an opportunity export, your billing data and any dated snapshot from a closed period, and get the drift measured metric by metric.

Get the template