SKILL DETAIL
sales-pipeline-coverage-modeling
mbfinotti/sales-skills/sales-pipeline-coverage-modeling
Models how much pipeline a team needs relative to quota - coverage ratios derived from win rates (raw multiplier, stage-weighted, conversion-inversion), segment-level coverage targets, in-quarter timing and the point of no return, seasonality indexing, and pipeline-gap math that turns a ratio into new-pipeline-required. A macro modeling exercise for sales leadership and RevOps, covering B2B and high-velocity/B2C motions. Use whenever the user mentions pipeline coverage, 3x pipeline, a pipeline gap, forecast shortfall, or "we missed quota with 4x coverage", even without the word coverage. Do NOT use for deriving the quota itself (mbfinotti/sales-skills@sales-quota-setting) or inspecting one deal (mbfinotti/sales-skills@deal-red-flags).
Installation
npx skills add https://github.com/mbfinotti/sales-skills --skill sales-pipeline-coverage-modeling
Skill files
SKILL.md
Last synced · Sep 15, 2026
evals/evals.json›
{
"skill_name": "sales-pipeline-coverage-modeling",
"evals": [
{
"id": 1,
"prompt": "I'm VP Sales at Harrowgate Systems. Our board set a company-wide rule that we carry 3x pipeline coverage at all times. Right now total open pipeline is $41M against a $12M quarterly bookings number, so 3.4x. My head of SMB is relaxed and my enterprise director is panicking and I genuinely don't know which of them is right. Context: SMB closed 51% of the qualified deals it worked last year on a 34-day cycle, enterprise closed 14% on a 150-day cycle. The $12M splits $4M SMB / $8M enterprise. SMB open pipeline is $9M, enterprise open pipeline is $32M. Is 3.4x enough, and what do I tell the board?",
"expected_output": "A per-segment coverage model showing SMB needs roughly 2x and holds 2.25x (healthy) while enterprise needs roughly 7x and holds 4.0x (short by about $25M of pipeline), with the blended 3.4x identified as the thing hiding the problem and the inherited flat 3x exposed as an untested ~33% win-rate assumption.",
"files": [],
"expectations": [
"Computes a separate coverage target for SMB and for enterprise instead of one company-wide number",
"Derives the SMB target by inverting SMB's own win rate, landing at roughly 2x (1 divided by 0.51)",
"Derives the enterprise target by inverting enterprise's own win rate, landing around 7x (1 divided by 0.14)",
"Computes SMB actual coverage as about 2.25x ($9M / $4M) and enterprise actual coverage as about 4.0x ($32M / $8M)",
"Concludes enterprise is under-covered and SMB is adequately covered, i.e. the enterprise director's alarm is the correct read",
"States explicitly that the blended 3.4x hides the divergence between the two segments",
"Identifies the inherited flat 3x as encoding an implied win rate of roughly 33%, and treats it as an assumption to test rather than a rule to obey",
"Names which win-rate definition the 51% and 14% figures use - narrow (wins / wins + losses) or broad (no-decisions included) - or asks the user which one, noting the two invert to materially different targets",
"Quantifies the enterprise pipeline shortfall in dollars: roughly $57M required against $32M held, about $25M short",
"Does not recommend raising SMB's pipeline to satisfy the company-wide 3x rule",
"Reports raw coverage alongside a weighted and/or credibility-adjusted read, or names the data needed to compute them, rather than answering on the raw number alone"
]
},
{
"id": 2,
"prompt": "Quick sanity check please. Northvale Analytics, we're in week 5 of a 13-week quarter. Quota is $6.5M, closed-won so far is $1.1M, open pipeline is showing $22.7M, so I make that 4.2x on the remaining number. My CRO wants to know if we're safe. From the CRM export: $4.1M of that pipeline has had no stage change and no logged activity in over 40 days, $2.8M has close dates in the following quarter but the reps left it sitting in this quarter's view, $3.3M has had its close date pushed at least twice, and of our $6.9M in late-stage deals, $2.2M has exactly one contact who has ever replied to anything. Are we safe?",
"expected_output": "Raw, stage-weighted and credibility-adjusted coverage reported side by side, with the four flagged categories stripped or discounted before dividing, landing adjusted coverage near or below 2x and answering that the team is not safe on the credible number.",
"files": [],
"expectations": [
"Computes remaining quota as $5.4M ($6.5M minus $1.1M) rather than dividing against the full $6.5M",
"Produces three coverage numbers side by side - raw, stage-weighted, and credibility-adjusted - rather than a single figure",
"Strips or discounts all four flagged categories (stale, out-of-period close dates, twice-pushed, single-threaded late-stage) before computing adjusted coverage",
"Lands adjusted coverage at roughly 2x or below, around half the reported 4.2x",
"Flags that the four categories may overlap and that the stripped total must be de-duplicated rather than summed blindly",
"Treats late-stage deals with fewer than about three engaged contacts as at-risk regardless of the stage label or rep confidence",
"Cites quantified single-threading evidence - roughly 5% win probability single-threaded versus about 30% with five engaged contacts, or multi-threading lifting win rate on the order of 130%",
"States that a twice-pushed deal is less likely to close than a comparable deal that never moved, and discounts it rather than silently carrying it at full value",
"Uses the org's own historical stage close rates for the weighted number - never rep-supplied confidence or forecast category - or asks for them",
"Notes that a widening gap between raw and weighted coverage is itself the earliest quality alarm",
"Answers no, not safe on the credible number, rather than yes because 4.2x clears a 3x bar",
"Does not rebuild the segment coverage targets from scratch mid-quarter"
]
},
{
"id": 3,
"prompt": "Week 11 of 13. Fenmark Cloud, enterprise only, median sales cycle is 118 days. We're at $3.2M closed against a $7.4M quarter. Open pipeline is $14M but only $4.6M of it is late stage. I want to put every SDR and AE on a two-week pipeline generation blitz starting Monday, and I need you to tell me how much new pipeline each of my 9 AEs has to create to close the gap. Their win rates run from 11% for the two who started in March up to 29% for the tenured ones.",
"expected_output": "A refusal to treat generation as this quarter's fix because the point of no return passed before the quarter began, redirecting generation at next quarter's opening pipeline, naming acceleration plus an honest re-forecast as the only live levers, and doing any per-rep math on each rep's own win rate.",
"files": [],
"expectations": [
"Computes the point of no return as period length minus median sales cycle (about 91 days minus 118 days) and states it has already passed - for this segment it passed before the quarter began",
"Declines to endorse the two-week generation blitz as a way to close this quarter's gap, because new pipeline created now cannot complete a 118-day cycle in period",
"Redirects the generation effort at next period's opening pipeline rather than cancelling it outright",
"Names acceleration of existing late-stage deals and an honest downward re-forecast as the only levers still live this late in the period",
"Computes the remaining gap against remaining quota of $4.2M ($7.4M minus $3.2M)",
"If per-rep new-pipeline-required numbers are produced, divides each rep's own gap by that rep's own win rate rather than a team blanket average",
"States that an 11% rep and a 29% rep need materially different pipeline to close the same dollar gap",
"States that gap analysis of this kind belongs at week 4-6 of a quarterly cycle, not week 11",
"Caps or explicitly warns against uncapped pull-forward, noting it costs twice - a concession now plus a hole in next quarter's opening pipeline",
"Does not recommend raising the coverage target or re-deriving the quota as the response",
"Flags that only about 20% of the pipeline dated to close in a quarter on day one typically closes in it, so the $14M open figure should not be read at face value"
]
},
{
"id": 4,
"prompt": "I run RevOps at Pellworth - enterprise infrastructure software, roughly 9-month sales cycle, ACV around $340K. We have weekly pipeline snapshots going back 11 quarters and nobody trusts the 3x number we inherited from the last CRO. Our win rate on closed deals last year was 26%, but roughly a third of what we open never reaches a decision at all and just moves out to a later date. I pulled one more series: taking total open pipeline at the start of week 3 of each quarter and dividing the new revenue we closed that quarter by it, the last nine quarters average 31%, though individual quarters run from 19% to 44%. What target should I set and how do I defend it to the exec team?",
"expected_output": "A target of roughly 3.2x derived by inverting the trailing nine-quarter average week-3 conversion rate rather than the 26% win rate, with the reasoning that win rate cannot see slips, plus a backwards audit of the inherited 3x showing it assumed a 33% conversion nobody derived.",
"files": [],
"expectations": [
"Sets the target by inverting the trailing nine-quarter average week-3 conversion rate, landing at approximately 3.2x (1 divided by 0.31)",
"Rejects or subordinates the 1-divided-by-26%-win-rate answer (about 3.8x) as the target, because win rate excludes the deals that slip out of the period",
"States that slips consume coverage exactly like losses even though CRM reporting records them as neither a win nor a loss",
"Uses the trailing multi-quarter average rather than any single quarter, citing the 19%-44% spread as why one quarter is too noisy",
"Confirms the method applies here because the roughly 9-month sales cycle is much longer than the quarterly measurement period, so everything closable this quarter already exists at quarter start",
"Explains the week-3 snapshot timing - early enough to still act on, late enough that sales can no longer argue the pipeline needs more scrubbing before being judged",
"Audits the inherited 3x backwards, showing it implies an assumed roughly 33% conversion rate that nobody ever derived",
"Names the win-rate definition ambiguity explicitly - narrow (wins / wins + losses) versus broad (including no-decisions) invert to very different targets",
"Notes that 11 quarters of clean snapshots clears the roughly 7-quarter bar that makes this method usable, where a thinner history would not",
"Sets a recompute trigger tied to the underlying rate moving by roughly 2 or more points, rather than waiting for the next annual planning cycle",
"Treats any buffer leadership wants above the mathematical 3.2x minimum as a deliberate management choice stated separately on top of the formula, not as a correction to the formula"
]
},
{
"id": 5,
"prompt": "Brightline Kerb - we sell a workflow tool to independent auto repair shops. 2,100 inbound trials a month, an inside team of 14 reps, average deal is $190/month, median time from trial start to signed contract is 24 days. Our board asked for a pipeline coverage target and our new VP Sales says we should be at 3x at the start of every quarter. When I look at quarter start we're at 1.1x and everyone panics, but we've hit the number 5 of the last 6 quarters. What coverage target should we actually run?",
"expected_output": "An explanation that quarter-start coverage is meaningless at a 24-day cycle, a switch to monthly-period modeling with an early-period snapshot or direct volume-and-velocity math, coverage expressed in unit counts, and rejection of the imported 3x target.",
"files": [],
"expectations": [
"States that a quarter-start coverage snapshot is close to meaningless at a roughly 24-day cycle because most of the quarter's closable pipeline does not exist yet at that moment",
"Explains the 1.1x quarter-start reading and the 5-of-6 hit rate as consistent rather than contradictory, and does not treat 1.1x as a crisis",
"Switches the model to a monthly period with an early-period (day-3 monthly) snapshot, or to direct volume-and-velocity math",
"Gives the volume formula in some form - trials or leads needed per period equals target units divided by the lead-to-close rate",
"Measures coverage in unit counts (deals, trials, contracts) rather than dollar value, noting value-weighting adds little when ticket sizes are near-uniform",
"Rejects the imported 3x target as a figure derived for a different motion and cycle length",
"Derives the target by inverting this team's own trial-to-close rate, or names that rate as the missing input it needs",
"States that the 1-divided-by-conversion mechanic itself transfers unchanged to a high-velocity motion - only the cadence and the unit change",
"Notes that a mid-period gap is recoverable here, unlike a long-cycle motion, because new pipeline can still be created and closed inside the same period",
"Recalibrates any coverage threshold playbook to this segment's own band rather than treating a sub-2x reading as an emergency",
"Does not apply the quarterly week-3 conversion-inversion method to this business"
]
},
{
"id": 6,
"prompt": "Setting our FY plan at Quillshade. We're pure self-serve - no sales team at all, no demos, credit card checkout only, 38,000 signups a month, 2.4% convert to paid, $29/month. Target is $8M ARR by year end, up from $4.6M. My co-founder wants a pipeline coverage number in the plan doc so the board can track it quarterly. What coverage ratio should we commit to, and how do we build the pipeline to support it?",
"expected_output": "A plain refusal to produce a coverage ratio because pure self-serve PLG has no quota-bearing pipeline, replacing it with activation, time-to-value and PQL volume, and naming the condition (a sales-assist layer) under which coverage would become meaningful.",
"files": [],
"expectations": [
"States plainly that a pure self-serve PLG motion has no coverage ratio, because there is no quota-bearing pipeline to divide by the quota",
"Declines to invent a coverage number for the plan document rather than supplying a plausible-sounding multiple",
"Names activation, time-to-value, and PQL volume as the metrics that replace coverage for the board to track",
"States the condition under which coverage becomes meaningful here - once a sales-assist layer exists and PQLs feed a real pipeline",
"Points the decision about adding that sales-assist layer to a separate sales-motion exercise rather than settling it inside a coverage model",
"Does not convert the 38,000 signups and 2.4% paid conversion into a figure presented as pipeline coverage",
"Does not apply the week-3 quarterly or day-3 monthly snapshot conversion method to this business",
"Does not fall back on a generic 3x or any published segment coverage band"
]
},
{
"id": 7,
"prompt": "Every single January, every April and every July, the pipeline creation dashboard at Orlebar Grid shows us 25-30% behind the monthly creation target and the exec team calls an emergency pipegen war room. By the third month of the quarter we're always ahead again. The target is just our annual creation number divided by 12. About 60% of our bookings come from US federal and state agencies, the rest commercial. We have two years of closed-won data in the warehouse. Is there something structurally wrong with our demand gen, or with the dashboard?",
"expected_output": "Identification of the flat divided-by-12 target as the cause of a structural false alarm, a seasonal index built from the company's own closed-won history and shifted one median sales cycle earlier, with the federal customer mix pushing the peak to August-September rather than calendar Q4.",
"files": [],
"expectations": [
"Identifies the flat annual-divided-by-12 creation target as the cause of the recurring false alarm, not a demand-generation failure",
"States the within-quarter shape - month 3 above month 2 above month 1 - as the normal pattern a flat target structurally misreads",
"Prescribes building a seasonal index from the company's own closed-won history rather than importing a published seasonality curve",
"Specifies roughly 4-8 quarters (about two annual cycles) of closed-won by month as the input, and notes the two years available are sufficient",
"Normalizes the index so the average month equals 1.00, and applies it as flat target multiplied by that month's index",
"Shifts the creation target earlier by one median sales cycle, because pipeline closing in a strong month must be created a cycle before it",
"Flags that a 60%-federal customer base surges around August-September ahead of the September 30 federal fiscal year-end, so a calendar-quarter index would misread the company's strongest stretch as an anomaly",
"States that the index follows the buyers' fiscal years, not the vendor's own calendar",
"Notes that month 1 of a quarter should be expected to deliver roughly a quarter, not a third, of that quarter's closings",
"Sets a refresh cadence - annual, plus a rebuild whenever the customer mix shifts (new geography, new vertical, a government segment added)",
"Does not prescribe increased pipeline-generation spend or headcount as the fix"
]
},
{
"id": 8,
"prompt": "Six weeks of data from Sable Torrent - mid-market HR software, $48K ACV, 84-day median sales cycle, 13-week quarter. Total open pipeline has sat between $19.4M and $20.1M every single week, so coverage against our $4.8M remaining number has been steady around 4.1x. But when I apply our stage close rates, the weighted number has been flat at $4.1M the whole six weeks, about 0.85x. My VP Demand Gen wants to double SDR headcount next quarter to push coverage to 6x. Board meeting is Thursday. What do I tell them?",
"expected_output": "A direction diagnostic reading raw-stable/weighted-flat as a qualification and execution problem rather than a generation problem, recommending against the SDR doubling, naming win-rate and stage-progression work as the default lever, and flagging that an 84-day cycle puts the point of no return around week 1.",
"files": [],
"expectations": [
"Reads the raw-stable / weighted-flat pattern as a qualification or execution problem, not a generation problem",
"States explicitly that adding more volume against this pattern grows the fiction rather than closing the gap",
"Recommends against doubling SDR headcount as the response to this specific diagnostic",
"Names raising win rate and stage progression as the default lever, and states it compounds by permanently lowering the coverage the segment needs from here on",
"Names concrete conversion actions - tightening stage-gate qualification, coaching stuck deals, multi-threading thin late-stage deals, purging zombies",
"Contrasts this with the pattern that would justify generation - raw falling while weighted rises - and states the data does not show it",
"Computes the deficit as remaining quota minus expected close, roughly $4.8M minus $4.1M equals about $0.7M, rather than from the $20M raw figure",
"States the deficit must be computed on adjusted pipeline (stale, out-of-period, repeatedly slipped and single-threaded late-stage deals stripped), because a deficit computed on unadjusted pipeline is false comfort",
"Computes the point of no return for an 84-day cycle inside a 13-week quarter (around week 1) and notes new SDR-generated pipeline lands in next quarter, not this one",
"Recommends stage-level coverage analysis to locate where deals stop progressing rather than treating the pipeline as one pool",
"Flags the raw-to-weighted spread (about 4.1x against 0.85x) as the alarm itself, comparable to the rule of thumb that four turns of nominal pipeline is about one turn of credible pipeline",
"Warns that imposing a 6x mandate on reps invites zombie hoarding and quarter-end padding - the metric manufacturing the pipeline it was meant to guarantee"
]
},
{
"id": 9,
"prompt": "Founder at Tessendra. We just closed our Series A and we're standing up an enterprise sales motion from zero - two AEs starting next month, target deal size around $250K, no closed enterprise deals ever. Everything we've sold so far is $8K self-serve annual contracts. The board handed us $3.2M in new enterprise bookings for next year. I've got maybe half a day of my ops person's time and no CRM history worth reporting on. I need a coverage number I can put in front of the AEs on day one. What is it?",
"expected_output": "A conservative borrowed 5-7x band for a genuinely new motion, marked as a placeholder to replace after about two closed quarters, with the stage-weighted and conversion-inversion rungs each explicitly named as deleted and the reason given, and the self-serve history refused as a source for the enterprise rate.",
"files": [],
"expectations": [
"Recommends a conservative borrowed band of roughly 5-7x for a genuinely new motion, not the enterprise steady-state band and not a flat 3x",
"States the borrowed band is a placeholder to be replaced by the org's own inverted rate after roughly two closed quarters",
"Explicitly names the stage-weighted rung as deleted, with the reason - stage probabilities cannot be calibrated without closed history, and a badly calibrated weighted number is worse than an honestly blunt raw one",
"Explicitly names the conversion-inversion rung as deleted, with the reason - it needs seven or more quarters of pipeline snapshots that do not exist here",
"Refuses to derive the enterprise win rate or coverage target from the $8K self-serve contract history",
"Takes the $3.2M board number as a given input and does not re-derive or renegotiate the quota inside this exercise",
"Marks any seasonality assumption as a borrowed default awaiting 4-8 quarters of the company's own closed-won data",
"Translates the target into a pipeline dollar requirement (roughly $16M-$22M against $3.2M) rather than leaving it as a bare multiple",
"Sets a recompute trigger - re-derive the target once real win-rate data exists, and again whenever that rate subsequently moves by about 2 points",
"Names an owner split for the model - ops or RevOps owning reporting truth, sales leadership owning the corrective decisions on top of it"
]
}
],
"trigger_queries": [
{ "query": "What pipeline coverage should we target next year?", "should_trigger": true },
{ "query": "We have 3.8x coverage - are we safe this quarter?", "should_trigger": true },
{ "query": "We carried 4x all quarter and still missed the number.", "should_trigger": true },
{ "query": "How much new pipeline does each rep need to create by week 6?", "should_trigger": true },
{ "query": "Is 3x pipeline still the right rule of thumb?", "should_trigger": true },
{ "query": "Our enterprise team has way less pipeline than SMB relative to target - how do I size that properly?", "should_trigger": true },
{ "query": "How do I turn our win rate into a pipeline target?", "should_trigger": true },
{ "query": "board wants a pipeline number for the plan, what multiple do we commit to", "should_trigger": true },
{ "query": "We're at 2.1x with six weeks left. Panic or not?", "should_trigger": true },
{ "query": "What's the minimum pipeline we need at quarter start to hit $9M?", "should_trigger": true },
{ "query": "Why does our pipeline look great on day 1 and terrible by week 8?", "should_trigger": true },
{ "query": "how much of what's in the funnel today will actually close this quarter", "should_trigger": true },
{ "query": "Our blended ratio is 3.4x but two segments look nothing alike. What do I report?", "should_trigger": true },
{ "query": "Should I tell the reps to triple their open pipeline?", "should_trigger": true },
{ "query": "We keep looking behind on pipeline creation in month 1 of every quarter.", "should_trigger": true },
{ "query": "Is it too late in the quarter to generate our way out of this gap?", "should_trigger": true },
{ "query": "What multiple of quota should sit in the funnel for a team with a 14% win rate?", "should_trigger": true },
{ "query": "Deals keep slipping out and my win rate still looks fine - how do I set a target that accounts for that?", "should_trigger": true },
{ "query": "Set me up a weekly pipeline-to-plan model for next fiscal year.", "should_trigger": true },
{ "query": "we need to know if we have enough at-bats to hit the number", "should_trigger": true },
{ "query": "our forecast says we'll miss by $1.8M, how much pipeline closes that", "should_trigger": true },
{ "query": "How do I compute stage-weighted coverage instead of just adding up open deals?", "should_trigger": true },
{ "query": "What's the right coverage ratio for a 30-day-cycle inside sales team?", "should_trigger": true },
{ "query": "Should coverage targets be different per segment or one company-wide number?", "should_trigger": true },
{ "query": "quota is $22M next year, how big does the funnel have to be", "should_trigger": true },
{ "query": "When in the quarter is it too late to fix a shortfall?", "should_trigger": true },
{ "query": "What should our monthly pipeline generation target be if Q4 is always our biggest quarter?", "should_trigger": true },
{ "query": "Our CRO inherited a 4x rule from his last company. Does it apply here?", "should_trigger": true },
{ "query": "How do I prove to the board that our pipeline number is inflated?", "should_trigger": true },
{ "query": "how many opportunities do my AEs each need open right now", "should_trigger": true },
{ "query": "We snapshot pipeline every week - can we do something smarter than 1 over win rate?", "should_trigger": true },
{ "query": "What's the point of no return for a 120-day sales cycle in a quarterly period?", "should_trigger": true },
{ "query": "Model how much pipeline we need to reliably hit plan.", "should_trigger": true },
{ "query": "Half our open pipeline hasn't moved in six weeks. What's our real number?", "should_trigger": true },
{ "query": "our pipeline looks 4x but nothing converts, what number should leadership actually manage to", "should_trigger": true },
{ "query": "Do coverage ratios work for a B2C auto sales team?", "should_trigger": true },
{ "query": "Build the gap analysis for Q3 and tell me which lever to pull.", "should_trigger": true },
{ "query": "how much bigger does the funnel need to be if win rate drops from 23% to 19%", "should_trigger": true },
{ "query": "We only have 3 quarters of data - can we set a defensible target yet or not?", "should_trigger": true },
{ "query": "why did we hit plan last year at 2.6x and miss this year at 4.1x", "should_trigger": true },
{ "query": "I need a pipeline-to-quota ratio for each of my four segments.", "should_trigger": true },
{ "query": "what should the weekly pipeline review actually measure", "should_trigger": true },
{ "query": "Is there a way to tell whether we have a volume problem or a conversion problem?", "should_trigger": true },
{ "query": "How much quota should each AE carry next year?", "should_trigger": false },
{ "query": "Should we add an over-assignment cushion to the team quota?", "should_trigger": false },
{ "query": "How do I handle ramp relief for the reps who started in March?", "should_trigger": false },
{ "query": "Design our territory-weighted quota allocation.", "should_trigger": false },
{ "query": "What's a reasonable attainment benchmark for mid-market AEs?", "should_trigger": false },
{ "query": "Run a stale deal audit on this pipeline export before the QBR.", "should_trigger": false },
{ "query": "Which deals should we close out as no-decision before month end?", "should_trigger": false },
{ "query": "Our pipeline is full of junk - give me a cleanup checklist.", "should_trigger": false },
{ "query": "Flag every deal in this export missing a close date or an amount.", "should_trigger": false },
{ "query": "Why is our commit number never right?", "should_trigger": false },
{ "query": "Are my reps sandbagging the forecast?", "should_trigger": false },
{ "query": "Diagnose why our forecast accuracy sits at 58%.", "should_trigger": false },
{ "query": "Is this one deal real? Here are the call notes.", "should_trigger": false },
{ "query": "Score this opportunity against MEDDPICC.", "should_trigger": false },
{ "query": "Who's the economic buyer on the Ardenne account?", "should_trigger": false },
{ "query": "This deal has one contact and keeps ghosting us - what do I do?", "should_trigger": false },
{ "query": "Rewrite our stage exit criteria so they're buyer-verifiable.", "should_trigger": false },
{ "query": "Our stages are all named after rep activity - fix them.", "should_trigger": false },
{ "query": "Design our MQL to SQL to opportunity stage set from scratch.", "should_trigger": false },
{ "query": "Build us a bowtie funnel model.", "should_trigger": false },
{ "query": "Where should the accelerator kick in on our AE comp plan?", "should_trigger": false },
{ "query": "What base to variable split should an SDR be on?", "should_trigger": false },
{ "query": "Pods or assembly line for a 30-person sales team?", "should_trigger": false },
{ "query": "What's the right SDR to AE ratio for us?", "should_trigger": false },
{ "query": "What's our TAM in the German mid-market?", "should_trigger": false },
{ "query": "Size the SOM for our new vertical.", "should_trigger": false },
{ "query": "Define our ideal customer profile from last year's closed-won.", "should_trigger": false },
{ "query": "Build a weighted fit score for our account list.", "should_trigger": false },
{ "query": "Where should the cutoff sit between Tier 1 and Tier 2 accounts?", "should_trigger": false },
{ "query": "Should we go PLG or sales-led?", "should_trigger": false },
{ "query": "When do we hire our first salesperson?", "should_trigger": false },
{ "query": "Write me a cold call opener for a VP of Engineering.", "should_trigger": false },
{ "query": "How many touches should our outbound sequence have?", "should_trigger": false },
{ "query": "Why are my emails landing in spam?", "should_trigger": false },
{ "query": "Split test these three subject lines for me.", "should_trigger": false },
{ "query": "The buyer wants 20% off - what do I trade for it?", "should_trigger": false },
{ "query": "Build the ROI case for this deal.", "should_trigger": false },
{ "query": "How do I respond to 'we already use a competitor'?", "should_trigger": false },
{ "query": "Score this call transcript.", "should_trigger": false },
{ "query": "Write the follow-up email from these meeting notes.", "should_trigger": false },
{ "query": "What should I ask on a first discovery call?", "should_trigger": false },
{ "query": "Build a lead scoring model for inbound demo requests.", "should_trigger": false },
{ "query": "Our accounts-per-rep ratio drifted to 900:1 - what coverage model should each tier get?", "should_trigger": false }
]
}
references/conversion-inversion-method.md›
# The conversion-inversion method (week-3 pipeline conversion rate)
The rigorous alternative to `target = 1 ÷ win rate`, from Dave Kellogg's "Target Pipeline Coverage is Not the Inverse of Win Rate" (Kellblog; also discussed on his "SaaS Talk with the Metrics Brothers" podcast with Ray Rike).
## Why inverting win rate is structurally flawed
1. **Win rate is ambiguous.** A narrow win rate (wins ÷ wins + losses) and a broad one (wins ÷ wins + losses + no-decisions) produce very different numbers from the same pipeline, and most targets never state which was inverted.
2. **Win rate excludes slips.** A deal whose close date moves out of the period is neither a win nor a loss in most CRM reporting - but it consumes coverage exactly like a loss. Kellogg's rule of thumb across the deals he has studied: you win a third, you lose a third, and you slip a third.
3. **The timing is mismatched.** Coverage must be assessed at period start, from pipeline that exists then; win rate is only knowable once deals reach a terminal state, later. Inverting a lagging metric to set a leading target measures the wrong moment.
## The method
1. Snapshot total pipeline value at the **start of week 3** of the quarter - early enough to act on, late enough that sales can no longer argue the pipeline still needs scrubbing before being judged.
2. Compute **week-3 conversion rate** = new revenue closed in the period ÷ the week-3 snapshot value.
3. Take a **trailing 7-9-quarter average** - a single quarter is too noisy given normal deal-timing variance.
4. **Invert the trailing average** to get the target coverage ratio.
## Worked examples
- Trailing nine-quarter average week-3 conversion of **34%** inverts to a target of **1 ÷ 0.34 ≈ 2.86x**.
- A **25%** conversion rate implies roughly **4x** target coverage.
- Run it backwards as an audit: a handed-down "3x" target implies the org is assuming a 33% conversion rate. If nobody can defend that 33%, the target was never derived - it was inherited.
## Scope limit: long cycles only
The method assumes the sales cycle is significantly longer than the measurement period - in a 9-12-month-cycle business, everything that can close this quarter already exists at quarter start, which is what makes the snapshot meaningful. Under a ~30-day cycle, quarterly week-3 coverage is close to meaningless: two-thirds of the pipeline needed to close during the quarter hasn't been created yet at snapshot time. For short-cycle businesses, substitute **day-3 monthly snapshots** - the same "early enough to act, late enough to be real" logic at a cadence matching the cycle.
## When to adopt
Stay on simple 1÷win-rate inversion until the org holds **7+ quarters of clean pipeline-snapshot history** to average over - the simple version is easier to compute and communicate, and directionally correct. Treat conversion-inversion as the upgrade path for a mature RevOps function, not the day-one requirement.
Source caveat: Kellogg's worked examples come from his own enterprise-software operating experience. The method transfers across motions; the specific numbers may not.
references/coverage-benchmarks.md›
# Coverage benchmarks by segment, and how much to trust them
Use these bands to bootstrap a target when the org's own conversion history is missing or unstable - then replace them with the org's own math after ~2 closed quarters. Every band below reduces to the same mechanic: `coverage ≈ 1 ÷ win rate`.
## Segment bands (directional - ranges vary slightly across sources)
| Segment | Typical cycle | Typical win rate | Coverage band |
| --------------------------------------- | ------------- | ---------------- | ------------- |
| High-velocity SMB / assisted self-serve | ~30 days | 40-60% | 1.7x-2.5x |
| Mid-market / sales-assisted | 60-90 days | 20-40% | 2.5x-4x |
| Enterprise field sales | 120-180 days | 9-25% | 4x-7x |
| Strategic / mega-deals | 180+ days | 10-15% | 7x-10x |
For a genuinely **new motion** (not just a new rep in an established one), neither win rate nor cycle length is known yet - run a more conservative 5-7x until conversion stabilizes, then invert the real number.
## Why motion - not just deal size - moves the band
- **Buying-committee size depresses win rate.** Published counts for a complex B2B decision range from ~5-7 (HBR, 2017) through 6-10 (Gartner) to 13 (Forrester, 2024) - sources define "complex deal" differently, so cite the range, never one number. Each added stakeholder is a veto point.
- **Cycle volatility.** SMB deals enter and exit fast; some practitioners argue that volatility warrants _more_ SMB coverage than its win rate implies, others less - the literature doesn't resolve it. Segment and use the org's own history instead of picking a side.
- **Threading requirements.** Enterprise deals need many engaged contacts, and under-threaded deals silently decay late - the quantified evidence is in the quality-evidence reference.
## Coverage targets drift as win rates drift
Bridge Group's AE research (the most methodologically transparent series in this space - consistent survey methodology since 2006, no product riding on the findings) recorded median win rate on qualified pipeline falling from 23% (2022) to 19% (2024). It states the implication directly: that four-point drop moves required coverage from 4.3x to 5.3x. Hence the standing trigger rule in the workflow: recompute a segment's target whenever its win rate moves ~2+ points, rather than waiting for the annual planning cycle.
## Source reliability, for citing any of the above
- **Most independent:** Bridge Group (transparent long-running survey) and Dixon & McKenna's _The JOLT Effect_ (2.5M recorded sales conversations, published methodology).
- **Rigorous but self-sourced:** Dave Kellogg - the deepest public methodology on target derivation, with worked examples drawn from his own enterprise-software career rather than a broad sample.
- **Vendor-published, directionally useful, not independently audited:** ORM Technologies, Clari, Gong, UserGems, SaaStr's stated rules of thumb. Read the data, discount the framing - each has a product whose value rises if you believe your pipeline needs their rigor.
## Contested claims - flag, don't resolve
- **The flat 3x rule** (SaaStr's much-cited default) is widely criticized as a relic of 1990s six-figure/~33%-win-rate/9-month-cycle enterprise selling; it remains the most common anchor in the wild. Use it only as a zero-data starting point, never as a defensible target.
- **1÷win-rate vs conversion-inversion:** most sources still teach the simple inversion; Kellogg's conversion-rate method is the rigorous upgrade. Both are legitimate at different data maturities.
- **Raw vs weighted as "the" number:** one camp frames coverage as a capacity question (compute it raw), the other as a forecast-honesty question (compute it weighted). Resolve it as different jobs - raw answers "enough at-bats?", weighted answers "what will this produce?" - and always report both.
references/gap-math.md›
# Pipeline gap math
Turns a coverage ratio into the number a team can act on: how many dollars (or units) of new pipeline must be created, by whom, by when.
## The deficit formula
1. **Remaining quota** = full-period quota − closed-won to date.
2. **Expected close from existing pipeline** = Σ(deal value × the org's own historical close rate for that stage) - never rep-supplied confidence. Compute it on the _adjusted_ pipeline (stale, out-of-period, repeatedly slipped, and single-threaded late-stage deals stripped out); a deficit computed on inflated pipeline is false comfort.
3. **Pipeline deficit** = remaining quota − expected close.
Worked example (illustrative arithmetic, not sourced data): $500K remaining quota, $320K expected close from weighted pipeline → **$180K deficit**.
## Per-rep new-pipeline-required
Divide each rep's own remaining-quota gap by **that rep's historical win rate** - never a team blanket average; a new rep at 15% and a tenured rep at 40% need materially different pipeline to close the same gap. Then window it against cycle length: only new pipeline created before the point of no return (period length − median cycle) counts toward _this_ period; the rest is next period's opening coverage.
## Stage-level coverage: locating the gap
`Stage coverage = (pipeline at stage × stage close rate) ÷ (quota × that stage's required contribution)`, computed per stage. Strong late-stage with weak early-stage coverage predicts a gap _next_ period even when this one looks fine - a generation problem and a conversion problem need different fixes.
## The direction diagnostic
Read how raw and weighted coverage move relative to each other before prescribing anything:
- **Raw falling, weighted rising** → deals are dropping out without replacement → a **generation** problem. Run a dedicated generation sprint - but only while it can still land before the point of no return.
- **Raw stable, weighted flat** → deals enter but don't progress → a **qualification/execution** problem. Tighten stage-gate qualification, coach stuck deals, purge zombies. Do not respond by adding more low-quality volume - that grows the fiction.
- **Past the point of no return** → re-forecast the period down honestly, accelerate existing late-stage deals, and redirect generation at _next_ period's opening pipeline.
## The four levers, ranked
- efficiency: `raise win rate / stage progression > accelerate late-stage deals > generate more pipeline > increase deal size`
- value: `raise win rate (compounds - permanently lowers the coverage the segment needs) > increase deal size (compounds, but structural) > generate more pipeline (a one-off refill) > accelerate (borrows from next period, roughly net-zero across the pair)`
- effort: `increase deal size (quarters of packaging, pricing and ICP work - a standing job) > generate more pipeline (a quarter of sustained pipegen, and only the share landing before the point of no return counts) > raise win rate (a quarter of coaching and stage-gate discipline) > accelerate (days, on deals that already exist)`
1. **Raise win rate / stage progression.** Tighten stage-gate qualification, coach stuck deals, thread late-stage deals running thin on engaged contacts. Better conversion lowers required coverage permanently, so it pays this period and every one after.
2. **Accelerate existing deals.** The only lever still live once the point of no return has passed. Cap how much of the gap may be filled this way: each pull-forward costs a concession now and a hole in next period's opening pipeline.
3. **Generate more pipeline.** Slow and effort-heavy, and under loose qualification it inflates the deficit instead of closing it. Only pipeline created before the point of no return counts toward this period.
4. **Increase deal size.** Structural - repackaging, repricing, moving up-market. Slowest of the four to move.
Default lever: **raise win rate / stage progression.** Promote acceleration the moment the segment passes its point of no return, and generation when the direction diagnostic reads "raw falling, weighted rising" - a genuine volume shortfall that no amount of conversion work fixes.
The efficiency order starves **increase deal size**: it carries real compounding value, but a payback measured in quarters loses every ratio round to levers that land inside this period. Promote it anyway when the segment's misses trace to deals landing below the size the model assumed rather than to too few of them - no conversion or generation work repairs a wrong price point. Treat this ordering as a default, not a law: re-rank it against the team's own position, since an org already running tight qualification has little conversion headroom left and should generate instead.
## Threshold playbook
Pre-agreed, threshold-triggered responses remove emotion and inconsistency from the mid-period call. One template - recalibrate the breakpoints to the segment's own target band before using it; 2x is an emergency for a mid-market team needing 3-4x and normal mid-period for a high-velocity team needing 2x:
| Coverage vs segment target | Response |
| -------------------------- | --------------------------------------------------------- |
| Above target | Maintain; shift attention from volume to quality |
| At target | Healthy; balance across the four levers |
| Moderately below | Increase generation investment (~25% more pipegen effort) |
| Far below | Emergency protocols; executive intervention |
## Cadence and ownership
- **Measure weekly, never monthly.** Only ~20% of day-1 in-period pipeline typically closes in-period; a 4x day-one ratio can be 2x by week 6, and monthly measurement surfaces the decay after it stops being actionable.
- **Owner split:** RevOps owns reporting truth - the dashboards and gap-to-plan views - so leadership isn't debating metric definitions inside the decision meeting. Sales leadership owns the corrective decisions on top.
- Keep deal-level coaching (weekly manager reviews) separate from the aggregate coverage review; blending them turns both into a close-date interrogation.
- **Re-baselining the quota is the last resort**, handled at the monthly/quarterly strategic level - reserved for a segment persistently under-covered _despite_ strong close rates (a structural creation problem) or for territory/quota assumptions that were wrong. That decision belongs to a quota-derivation exercise, not to this model.
references/quality-evidence.md›
# Quality evidence behind the credibility adjustment
Quantified, sourced evidence for why raw - and even stage-weighted - coverage lies when the pipeline is stale, single-threaded, padded, or indecision-heavy. Cite these as evidence for making quality adjustments; none is a universal constant, and the exact magnitudes vary by dataset.
## The headline arithmetic
**A 4x ratio with 30% stale deals is really 2.8x.** The prescription: compute a third number beyond raw and weighted, **adjusted coverage**, which strips stale, out-of-period, repeatedly slipped, and single-threaded late-stage deals from the total before dividing by quota. Act on that one.
The phantom-pipeline gap between raw and credible coverage is directionally consistent across independent measurements, but varies in magnitude:
- One benchmark pair puts median raw at ~3.4x against median weighted at ~1.8x for the same population. Teams that hit plan and teams that miss carry similar _raw_ coverage; the split shows up in weighted, ~2.1x+ for hitters vs ~1.2x for missers.
- ORM Technologies' starker rule of thumb: **four turns of nominal ≈ one turn of credible**.
- A worked comparison elsewhere collapses $4M unweighted to $1.2M weighted.
Treat "raw materially exceeds weighted" as the universal diagnostic, and the specific multiple as a property of whichever pipeline was sampled.
## Stale / zombie deals
- Deals parked in one stage for months inflate coverage with dollars that will not close. Common staleness thresholds: no activity in 14-21 days (some orgs 30-45+).
- A threshold-free diagnostic: in most pipelines, **the age of deals won is about half the age of deals lost** - an old open deal is usually dying, not maturing.
- The perverse incentive: a flat coverage mandate itself incentivizes reps to hoard zombies to hit the number - the metric manufactures the fake pipeline it was meant to prevent. Manage to the adjusted number to break the loop.
## Single-threading
Two independent large-sample analyses converge:
- **Gong** (~1.8M opportunities):
- Winning deals carry roughly twice the buyer contacts of losing ones.
- Multi-threading lifts win rate by an average of **130%** on deals over $50K.
- Strategic enterprise deals average 17 contacts.
- **UserGems** (ML analysis of 500 closed opportunities): a single-threaded deal carries roughly a **5%** win probability versus **30%** with five engaged people.
Implication: on a late-stage deal, engaged-contact count is often a better health signal than the CRM stage label. Flag any late-stage deal with fewer than ~3 engaged contacts as at-risk in the adjustment, regardless of rep optimism.
## No-decision and indecision
_The JOLT Effect_ (Dixon & McKenna, 2022; 2.5M recorded sales conversations): **40-60% of deals stall in "no decision"** rather than being lost to a competitor.
Win rate by buyer indecision level:
- Low indecision: 45-55%.
- Moderate indecision: ~25-30%.
- High indecision: **below 5%**.
A pipeline concentrated in indecision-prone deals is structurally near-unwinnable at any raw coverage level - a large share of visible "open pipeline" was never going to convert.
## Slips and pushes
- A slipped deal is _less_ likely to close than a comparable deal that never moved.
- Strong teams convert ~80% of committed deals on time; weaker teams convert ~60% (Clari).
- Roughly 60% of forecasted B2B deals slip to the next quarter (CSO Insights).
- Mechanics: increment a push counter on every close-date move, require a slip reason, and **discount twice-pushed deals** in the adjustment rather than carrying them at full weight.
## Sandbagging detection
Reps banking deals for future periods or holding commit-quality deals in "best case" corrupt the model in both directions. Audit deals that jump to closed-won from an early stage, and deals closing right at period-end: in one quarter Kellogg reviewed, 25 of 56 closed deals had been pulled in from future quarters - a create-and-close pattern that "suggests close dates are being sandbagged." Sandbagging signals a comp or culture problem, not a data problem; fixing the CRM field won't fix the incentive.
references/seasonal-index-build.md›
# Building the seasonal index
Seasonality is a factor built from the org's own closed-won history - never a universal constant copied from a blog. The index exists to stop a specific false alarm: a flat weekly creation target structurally reads "behind plan" in month 1 of every quarter and "ahead" in month 3, triggering pipeline-generation panic when nothing is wrong.
## The sourced shape (a starting hypothesis, not a law)
One forecasting vendor (ORM Technologies) reports this shape across its B2B SaaS customer base - a single-vendor pattern, so validate it against your own multi-year history before trusting it:
- **Across the year:** Q4 > Q2 > Q3 > Q1. Buyer-side "use-it-or-lose-it" budget flush drives the Q4 strength; Q1 stays the weakest stretch year after year.
- **Within any quarter:** month 3 > month 2 > month 1. A Q4-month-3 window compounds both effects.
## Fiscal-calendar variants
The shape follows the _buyers'_ fiscal years, not the calendar:
- A US-federal-heavy customer base surges in August-September, ahead of the September 30 federal year-end.
- UK- and Japan-heavy customer bases surge around March.
Build the index from your own customer mix - a calendar-quarter index applied to a March-fiscal-year customer base misreads its strongest month as an anomaly.
## Build method
1. Pull **4-8 quarters** (roughly two full annual cycles) of closed-won by month.
2. Compute each month's share of its year's total; average across the years to get a monthly index (average month = 1.00).
3. Apply the index to weekly/monthly pipeline-creation targets: target for month _m_ = flat target × index(_m_), shifted earlier by one median sales cycle (pipeline that closes in a strong month must be _created_ a cycle before it).
4. Refresh annually; rebuild when the customer mix shifts (new geography, new vertical, a government segment added).
## Worked example (illustrative arithmetic, not sourced data)
**Input:** two years of closed-won for a calendar-fiscal B2B team, quarterly shares averaging Q1 18%, Q2 26%, Q3 24%, Q4 32% (matching the Q4 > Q2 > Q3 > Q1 shape). A $12M annual new-pipeline-creation plan.
**Output:**
- Quarterly indices: 0.72 / 1.04 / 0.96 / 1.28.
- Q1 creation target: $2.16M (not $3M flat).
- Q4-equivalent creation target: $3.84M, in the window shifted one cycle earlier.
In month 1 of any quarter, the same logic expects roughly a quarter, not a third, of that quarter's closings. A dashboard comparing month-1 actuals to a flat monthly target would flag a ~25% "miss" that the index shows is the normal shape of the year.
## The deliberate buffer is separate
Experienced leaders run coverage above the mathematical minimum (1 ÷ conversion rate) specifically to absorb slippage, competitive losses, and quarter-end push-outs. That buffer is a deliberate management choice layered on top of the formula - additive to the seasonal index, not a substitute for it, and not an error in the formula.
SKILL.md›
---
name: sales-pipeline-coverage-modeling
description: Models how much pipeline a team needs relative to quota - coverage ratios derived from win rates (raw multiplier, stage-weighted, conversion-inversion), segment-level coverage targets, in-quarter timing and the point of no return, seasonality indexing, and pipeline-gap math that turns a ratio into new-pipeline-required. A macro modeling exercise for sales leadership and RevOps, covering B2B and high-velocity/B2C motions. Use whenever the user mentions pipeline coverage, 3x pipeline, a pipeline gap, forecast shortfall, or "we missed quota with 4x coverage", even without the word coverage. Do NOT use for deriving the quota itself (mbfinotti/sales-skills@sales-quota-setting) or inspecting one deal (mbfinotti/sales-skills@deal-red-flags).
license: MIT
metadata:
author: Maya-Beth Finotti
version: "1.3.5"
---
# Sales Pipeline Coverage Modeling
You are a revenue-planning advisor to sales leadership and RevOps. Build the model that answers "how much pipeline do we need, by when, to reliably hit quota": per-segment coverage targets derived from conversion history, a credibility-adjusted read of the pipeline that exists today, and gap math that turns the difference into action.
Stay at modeling altitude:
- Deriving the quota itself belongs to mbfinotti/sales-skills@sales-quota-setting.
- Running the recurring stale-deal audit belongs to mbfinotti/revops-skills@sales-pipeline-hygiene.
- Pipeline quality enters this skill only as an input: a ratio computed on stale, padded pipeline is fiction. Strip what isn't credible before dividing.
## Invocation examples
- _"What pipeline coverage should we target next year?"_ - full model, steps 1-10.
- _"We have 3.8x coverage - are we safe this quarter?"_ - credibility check plus timing (steps 5-6), then gap math (step 8) against the existing target. Don't rebuild targets mid-quarter.
- _"We carried 4x all quarter and still missed."_ - diagnostic entry: check the win-rate definition behind the target (step 4), the raw-vs-weighted-vs-adjusted spread (step 5), and the timing (step 6). One of the three is lying.
- _"How much new pipeline must each rep create by week 6?"_ - gap math only (step 8), per rep.
## Interview
One question per message; offer the choices given. Skip anything prior context already answers.
1. Does a quota already exist for the period, and who set it? If none exists, derive it first with mbfinotti/sales-skills@sales-quota-setting - coverage is a ratio, and it needs its denominator.
2. What motion and segments: (a) high-velocity SMB / assisted self-serve, (b) mid-market, (c) enterprise or strategic field sales, (d) mixed - and per segment, typical deal size and sales-cycle length?
3. B2B, B2C, or mixed? For pure self-serve PLG, stop here - coverage doesn't apply (see B2B vs B2C below).
4. What conversion history exists: (a) 7+ quarters of pipeline snapshots, (b) 2+ closed quarters of win rates by segment and stage, (c) little - new team, product, or territory?
5. What fiscal calendar do you and your buyers run on - calendar quarters, offset fiscal year, US-federal or UK/Japan-heavy customer mix? This sets the period boundaries and the seasonal index.
6. Where in the period are we - planning before it starts, early (weeks 1-4), mid, or late? Late in the period changes which levers are still live (step 6).
7. Can the CRM report stage age, last-activity date, close-date push count, and engaged-contact count per deal? These gate the credibility adjustment in step 5.
8. By what date must the model land, and what decision waits on it - annual plan, hiring, an in-quarter save?
9. One-off or compounding: (a) answer today's "are we covered" question, (b) build the standing per-segment model the org re-reads weekly?
10. Effort ceiling: analyst hours, snapshot infrastructure in place, and appetite for new CRM discipline?
Re-rank the method ladder below against answers 8-10 before proposing anything, and say which answer moved what:
- A mid-quarter deadline deletes the conversion-inversion rung - it needs quarters of snapshot history you cannot collect now - and points the work at gap math on whatever targets exist.
- A compounding mandate (9b) promotes conversion-inversion despite its losing efficiency ratio; a one-off (9a) keeps the default rung.
- A low effort ceiling deletes stage-weighting when stage probabilities can't be calibrated - a badly calibrated weighted number is worse than an honestly blunt raw one. Name which rung you struck and why.
## Brainstorm before you model
Coverage targets harden into mandates fast - once "we need 4x" reaches the field it drives behavior, including the bad behavior in Failure modes. Surface assumptions first.
1. After the interview, present 2-3 candidate approaches (drawn from the ladder, adapted to the answers) with trade-offs and one explicit recommendation. Ask remaining clarifying questions one at a time, multiple-choice where possible.
2. Get explicit approval on the approach before computing anything.
3. Build the model section by section, validating each with the user before the next: segment targets → credibility-adjusted current coverage → timing and seasonality → gap and levers → governance. A wrong target invalidates everything downstream.
4. Gate finalization on approval of the assembled model.
If your harness has persistent memory, store the approved per-segment targets, the rate definition each one inverts, the seasonal index, and the measurement cadence - the weekly re-read and next period's rerun start from the record, not from scratch.
## Choose the coverage method
Three rungs, all answering "what multiple of quota must the pipeline be":
- efficiency: `raw multiplier > stage-weighted > conversion-inversion`
- value: `conversion-inversion > stage-weighted > raw multiplier`
- effort: `conversion-inversion (quarters of weekly snapshots, a standing job) > stage-weighted (a calibration pass over closed deals) > raw multiplier (an hour, from CRM history)`
1. **Raw multiplier.** Target = 1 ÷ win rate, per segment; pipeline counted at face value. State which win rate you inverted - narrow (wins ÷ (wins + losses)) or broad (no-decisions included) - the two invert to very different targets. With no stable history, borrow a segment band ([coverage-benchmarks.md](./references/coverage-benchmarks.md)) and replace it after ~2 closed quarters.
2. **Stage-weighted.** The pipeline side becomes Σ(deal value × the org's own historical close rate for that stage) - never rep-supplied confidence. Requires consistent stage definitions and enough closed history to calibrate; without them, stay on rung 1 against a higher target.
3. **Conversion-inversion.** Target = 1 ÷ trailing 7-9-quarter average week-3 pipeline conversion rate (revenue closed in the period ÷ pipeline at the start of week 3). The most defensible target, because it prices in the slips and no-decisions that win rate ignores. Method, critique, and worked examples: [conversion-inversion-method.md](./references/conversion-inversion-method.md).
Default rung: **raw multiplier** - and compute the stage-weighted number alongside it from the start wherever stage history allows, because the raw-vs-weighted _gap_ is itself the risk signal (step 5). Promote the target to conversion-inversion once the org holds 7+ quarters of clean snapshots and its sales cycle runs meaningfully longer than the measurement period.
The efficiency order starves conversion-inversion - highest value, highest effort, it loses every ratio round. Promote it anyway for a long-cycle enterprise org whose misses come from slips and no-decisions rather than losses: that is exactly the failure win-rate inversion cannot see. This ordering is a default, not a law - re-rank against what you know about the user; a RevOps team already snapshotting weekly gets rung 3 near-free.
## Workflow
1. **Fix the denominator.** Take the quota as given - from the user or a mbfinotti/sales-skills@sales-quota-setting run. Never re-derive it here; if it looks implausible, say so and hand it back.
2. **Segment before computing.** Never produce one company-wide number: model per motion/segment, product line, and lead source, and set per-rep floors from each rep's own history where tenure varies. A blended 3.4x can hide a healthy SMB line sitting next to a starved enterprise one. Segment bands and the win rates behind them: [coverage-benchmarks.md](./references/coverage-benchmarks.md).
3. **Set the target per segment** on the chosen rung. Treat any inherited flat "3x" as an assumption to test, never a law. Sanity anchors:
- A flat 3x only holds at a ~33% win rate.
- A 50%+ SMB motion needs ~2x.
- A 15% enterprise motion needs ~5-6x.
4. **State each target's assumption out loud.** Write next to it the rate it inverts and that rate's definition. A target handed down bare can't be audited; inverting it back exposes the win rate it silently assumes.
5. **Compute three coverage numbers side by side: raw, weighted, adjusted.** Adjusted strips deals that are stale, dated outside the period, repeatedly push-slipped, or single-threaded at late stage, before dividing. Expect divergence - raw runs roughly double weighted in the wild, and the starkest sourced framing is "4 turns of nominal ≈ 1 turn of credible"; a widening raw-vs-weighted gap is the earliest quality alarm. Evidence and thresholds: [quality-evidence.md](./references/quality-evidence.md).
6. **Time-index the model.** Compute each segment's point of no return: period length − median sales cycle. Pipeline created after it cannot close in-period, and only ~20% of the pipeline dated to close in a quarter on day 1 actually closes in it.
- Measure coverage weekly.
- Shift mid-period attention to late-stage coverage of _remaining_ quota.
- Run gap analysis by week 4-6 of a quarterly cycle.
- By week 10, only acceleration or an honest re-forecast remains.
7. **Build the seasonal index from the org's own closed-won history** (4-8 quarters) and apply it to weekly or monthly pipeline-creation targets. A flat creation target reads "behind" every month 1 and "ahead" every month 3 even when nothing is wrong. Build method, sourced shape, fiscal-calendar variants: [seasonal-index-build.md](./references/seasonal-index-build.md).
8. **Run the gap math.**
1. Deficit = remaining quota − expected close from adjusted pipeline.
2. Convert it to per-rep new-pipeline-required using each rep's own rate.
3. Diagnose generation vs conversion from how raw and weighted move relative to each other.
4. Pick a lever.
Default to raising win rate and stage progression - it compounds, lowering the coverage the segment needs from here on. Promote acceleration once the segment is past its point of no return, and generation only when the diagnostic shows a genuine volume shortfall. Formulas, worked example, the ranked levers, threshold playbook: [gap-math.md](./references/gap-math.md).
9. **Write the governance.** Name the owner split - RevOps owns reporting truth, sales leadership owns decisions on top of it. Recompute a segment's target whenever its win rate moves ~2+ points. Cap pull-forward: it costs twice, a concession now plus a hole in next period's opening pipeline.
10. **Assemble the output** (shape below), run the Measurement check, and iterate until it passes.
## B2B vs B2C / high-velocity
The logic transfers; the cadence and the unit do not.
**Transfers as-is, explicitly:**
- The 1÷conversion mechanic.
- Segment-before-compute.
- The own-data seasonal index.
- The gap math.
A B2C insurance or auto team dividing its remaining target by its own close rate runs the same model.
**Differs:**
- **Quarterly snapshots are meaningless under a ~30-day cycle** - most of the period's closable pipeline doesn't exist yet at quarter start. Model monthly with an early-period snapshot (the day-3 monthly equivalent of the week-3 quarterly one), or model volume and velocity directly: leads needed per week = target units ÷ lead-to-close rate.
- **The unit is count, not value.** High-velocity and B2C coverage is usually a unit ratio (deals, policies, cars) against a monthly target; value-weighting adds little when tickets are near-uniform.
- **Pure self-serve PLG has no coverage ratio at all** - there is no quota-bearing pipeline. It runs on activation, time-to-value, and PQL volume; coverage becomes meaningful only once a sales-assist layer exists, with PQLs feeding the pipeline. Choosing that motion is mbfinotti/sales-skills@sales-motion's job.
- **Mid-period gaps are recoverable in short cycles.** A fast-turnover team can still generate and close inside the period, where a long-cycle team is already past its point of no return - the same formula, opposite implications.
## Output shape
```
MODEL: period · fiscal calendar · quota input and who set it
SEGMENTS: per segment - method rung · rate inverted (and its definition) · target coverage
COVERAGE NOW: per segment - raw · weighted · adjusted · flag when raw and weighted diverge
TIMING: point of no return per segment · measurement cadence · seasonal index (own-data or borrowed)
GAP: deficit per segment · new-pipeline-required per rep · lever chosen and the diagnostic behind it
GOVERNANCE: owner split · target-recompute trigger · pull-forward cap
```
## Failure modes
- **One blended company-wide ratio** - erases exactly the signal segmentation exists to surface. Fix: step 2, always.
- **The flat 3x rule as law** - it encodes a ~33% win-rate assumption from a different era of enterprise selling. Fix: invert your own segment's rate (step 3).
- **Inverting an unstated win rate** - narrow and broad definitions invert to very different targets, and neither counts slips: roughly, you win a third, lose a third, and slip a third. Fix: step 4; move to conversion-inversion when slips dominate the misses.
- **The mandate manufacturing its own pipeline** - a flat multiple imposed on reps incentivizes zombie hoarding and quarter-end padding, rotting the very number it was meant to guarantee. Fix: manage to the adjusted number, never raw; gate stages on qualification.
- **Gap analysis after the point of no return** - a week-11 gap can't be closed by generation; the sales cycle won't complete. Fix: week 4-6, per step 6.
- **A quantity fix for a quality gap** - raw stable while weighted stays flat means deals enter but don't progress; adding volume grows the fiction. Diagnose direction first ([gap-math.md](./references/gap-math.md)).
- **Flat creation targets with no seasonal index** - structurally "behind" every month 1, triggering pipeline-generation panic nothing justifies.
- **Quarterly coverage on a 30-day cycle** - measures pipeline that mostly doesn't exist yet. Switch to the monthly variant.
- **Uncapped pull-forward** - fills today's gap by discounting deals and digging next period's hole.
## Measurement
The model is not done until all of these pass; iterate to 100%:
- Every segment target names its method rung and the exact rate (with definition) it inverts.
- Raw, weighted, and adjusted coverage appear side by side for every segment - never one number.
- Each segment's point of no return is computed from that segment's own median cycle, not copied across.
- The seasonal index is built from the org's own history, or explicitly marked as a borrowed default awaiting 4-8 quarters of data.
- Any deleted rung or option is named as deleted, with the interview answer that deleted it.
Outcome KPIs through the period:
- Attainment vs prediction: segments hitting target coverage should hit quota at roughly the modeled rate. Systematic misses at on-target coverage mean the inverted rate is wrong - recompute it, don't raise the multiple.
- Raw-vs-weighted gap trend per segment - widening means quality decay before attainment shows it.
- Share of day-1 in-period pipeline that actually closed in-period, tracked against the ~20% directional baseline to calibrate the org's own decay curve.
- Week-3 (or day-3) snapshot conversion vs forecast, once rung 3 is running.
## References
- See mbfinotti/sales-skills@sales-quota-setting for deriving the quota this model covers - run it first when no quota exists.
- See mbfinotti/sales-skills@sales-motion for choosing the sales motion; the motion decides which segment band and measurement cadence apply here.
- See mbfinotti/revops-skills@sales-pipeline-hygiene for the recurring stale-deal audit whose findings feed step 5's adjusted number.
- See mbfinotti/revops-skills@sales-forecast-diagnostic for diagnosing an unreliable forecast - a different question than whether coverage is sufficient.
- See [./references/coverage-benchmarks.md](./references/coverage-benchmarks.md) for segment bands, the mechanism behind them, and source reliability.
- See [./references/conversion-inversion-method.md](./references/conversion-inversion-method.md) for the week-3 conversion method and its worked examples.
- See [./references/gap-math.md](./references/gap-math.md) for the deficit formula, per-rep math, direction diagnostic, levers, and threshold playbook.
- See [./references/seasonal-index-build.md](./references/seasonal-index-build.md) for the index build method and fiscal-calendar variants.
- See [./references/quality-evidence.md](./references/quality-evidence.md) for the quantified evidence behind the credibility adjustment.