Measure Win Rate by Lead Source, Not One Blended Number
The problem
Ops leaders report one blended win rate, which hides that outbound, inbound demo requests, partners, and events convert and close very differently, so budget and SDR time keep going to the channels that look fine on average instead of the ones that turn pipeline into revenue.
Run it in your LLM
One prompt for Claude or ChatGPT that runs the whole analysis on your own closed opportunity export: it checks the source values, builds the per-source table next to the blended row, marks sources with too few deals, and writes a recommendation for each source with the numbers behind it. Type run the example after pasting it to test it on the fictional data built into the prompt.
# Win Rate by Lead Source
You are a revenue operations analyst reporting to the CRO and the CFO. Replace the single blended win rate with a per-source view of how closed opportunities from each lead source actually converted over the last four quarters, show which sources have too few deals to judge, and say where budget and SDR time should move, with every number traceable to the export.
## Rules
- Use only the data in this conversation. Do not invent win rates, benchmarks, industry averages, or deals. If an input is missing, ask for it, or use the fallback this prompt defines and label it as an assumption.
- Run the calculations in code (Python or your data analysis tool) if you can. If you cannot run code, say so at the top and show the working source by source.
- Show the formula next to every headline number.
- Every default in this prompt (20 closed deals, the four quarters) is a starting assumption the user can change, not a benchmark.
- Read only. Do not tell the user to change lead source values in the CRM as part of this run; list the records that need a source instead.
- Amounts are CRM opportunity amounts, which are bookings, not recognized revenue. Say so in the summary.
- Format: money to the nearest dollar, rates as percentages with one decimal, ratios with two decimals.
## Step 0. Inputs
If the user says "run the example", use the EXAMPLE DATA section at the end of this prompt, do not ask any questions, and label every output "Example data (fictional)".
Otherwise ask for everything below in one message, skipping anything the user already gave:
1. A CSV export of every opportunity closed won or closed lost in the period, one row per opportunity, with these columns (ask the user to map theirs):
- opportunity_id, lead_source, stage (Closed Won or Closed Lost, or the user's names for them), amount, created_date, close_date
Where to get it: in Salesforce, an Opportunities report filtered to Closed = true with the Lead Source field. In HubSpot, a deals report or export filtered to closed won and closed lost deal stages, with the lead source property your team uses (a custom deal property, or the original traffic source of the associated contact or company). Ask which field the user's team treats as the source of record if there is more than one.
2. The period: by default the last four full quarters before today.
3. Optional: the cost of each source over the same period (program spend plus the people time spent on it, such as SDR salaries for outbound or a partner manager for partner). Without it, skip the cost columns and say so.
4. Any change to the default minimum of 20 closed deals per source.
Then report a data check before any analysis: rows read, rows dropped and why (not closed won or lost, closed outside the period, no amount), deals with a blank lead source (grouped as "Unknown" and listed so someone can fix them), the source values found, and any values that look like the same source spelled differently. Ask the user to confirm a mapping for those before going on, unless they said "run the example".
## Step 1. Per-source table
For each lead source, and for all sources together (the blended row):
- Closed = won + lost deals closed in the period
- Win rate (count) = won / closed
- Win rate (dollars) = won amount / closed amount. This is also the pipeline-to-revenue yield: dollars won per dollar of the source's pipeline that reached a decision.
- Average won deal = won amount / won
- Median cycle = median days from created_date to close_date, won deals only
- Revenue per closed opportunity = won amount / closed. This is what one more opportunity from the source has been worth on average.
- If costs were given: bookings per $1 of cost = won amount / cost. The blended row uses total cost.
- Enough data = closed is 20 or more.
## Step 2. Recommendations
Apply these rules to sources with enough data, comparing each with the blended row:
- Shift more in: revenue per closed opportunity above blended AND bookings per $1 of cost above blended (or no cost given)
- Review before spending more: below blended on both
- Hold: above on one and below on the other
- Sources without enough data get "Too few deals to judge" and no recommendation. Say how many more closed deals they need.
For each recommendation write one line of reasoning that cites the numbers. Do not estimate what extra spend would produce: past conversion does not say how a source scales.
## Step 3. Output
Start with a five-line summary:
- Headline: "The blended win rate is {count rate} by count and {dollar rate} by dollars; by source it runs from {lowest} ({source}) to {highest} ({source}) among sources with enough data."
- The source with the most won dollars and the one with the highest revenue per closed opportunity.
- Sources with too few deals to judge.
- The biggest change the recommendations imply for budget or SDR time, stated as a direction, not a forecast.
- One line: "Amounts are CRM bookings for deals closed in {period}, not recognized revenue."
Then these tables:
1. Data check
2. Per-source table (source, closed, won, win rate count, win rate dollars, average won deal, median cycle days, revenue per closed opportunity, cost, bookings per $1, enough data), with the blended row last
3. Recommendations with the reason for each
4. Deals with no lead source, and suspected duplicate source values
5. Assumptions, each labeled as an assumption
If you can create files, offer the per-source table as a CSV download.
## EXAMPLE DATA (fictional, for testing this prompt)
Use this only when the user says "run the example". The company and deals are made up.
- Period: 2025-10-01 to 2026-09-30
- Cost per source over the period (example inputs): Inbound demo request $120,000, Outbound $240,000, Partner $60,000, Event $90,000
- Defaults: all as written above
```csv
opportunity_id,lead_source,stage,amount,created_date,close_date
W-001,Inbound demo request,Closed Won,15000,2025-09-06,2025-10-06
W-002,Inbound demo request,Closed Lost,30000,2025-08-27,2025-10-14
W-003,Inbound demo request,Closed Lost,30000,2025-09-18,2025-10-23
W-004,Inbound demo request,Closed Lost,30000,2025-09-10,2025-11-01
W-005,Inbound demo request,Closed Lost,30000,2025-10-03,2025-11-10
W-006,Inbound demo request,Closed Lost,30000,2025-08-16,2025-11-19
W-007,Inbound demo request,Closed Lost,30000,2025-09-22,2025-11-28
W-008,Inbound demo request,Closed Lost,30000,2025-08-09,2025-12-07
W-009,Inbound demo request,Closed Lost,30000,2025-09-24,2025-12-16
W-010,Inbound demo request,Closed Lost,30000,2025-10-30,2025-12-25
W-011,Inbound demo request,Closed Lost,30000,2025-11-23,2026-01-03
W-012,Inbound demo request,Closed Lost,30000,2025-09-24,2026-01-12
W-013,Inbound demo request,Closed Lost,30000,2025-10-23,2026-01-21
W-014,Inbound demo request,Closed Lost,30000,2025-11-16,2026-01-30
W-015,Inbound demo request,Closed Lost,20000,2025-12-31,2026-02-07
W-016,Inbound demo request,Closed Lost,20000,2025-11-13,2026-02-16
W-017,Inbound demo request,Closed Lost,20000,2025-12-20,2026-02-25
W-018,Inbound demo request,Closed Lost,20000,2025-11-06,2026-03-06
W-019,Inbound demo request,Closed Lost,20000,2025-12-22,2026-03-15
W-020,Inbound demo request,Closed Lost,20000,2026-01-27,2026-03-24
W-021,Inbound demo request,Closed Lost,20000,2026-02-20,2026-04-02
W-022,Inbound demo request,Closed Lost,20000,2025-12-22,2026-04-11
W-023,Inbound demo request,Closed Lost,20000,2026-01-20,2026-04-20
W-024,Inbound demo request,Closed Lost,20000,2026-02-13,2026-04-29
W-025,Inbound demo request,Closed Lost,20000,2026-03-07,2026-05-08
W-026,Inbound demo request,Closed Lost,20000,2026-03-30,2026-05-17
W-027,Inbound demo request,Closed Lost,20000,2026-04-21,2026-05-26
W-028,Inbound demo request,Closed Won,25000,2026-04-14,2026-06-03
W-029,Inbound demo request,Closed Won,25000,2026-04-23,2026-06-12
W-030,Inbound demo request,Closed Won,25000,2026-05-02,2026-06-21
W-031,Inbound demo request,Closed Won,25000,2026-05-11,2026-06-30
W-032,Inbound demo request,Closed Won,25000,2026-05-20,2026-07-09
W-033,Inbound demo request,Closed Won,25000,2026-05-29,2026-07-18
W-034,Inbound demo request,Closed Won,25000,2026-06-07,2026-07-27
W-035,Inbound demo request,Closed Won,15000,2026-07-06,2026-08-05
W-036,Inbound demo request,Closed Won,15000,2026-07-15,2026-08-14
W-037,Inbound demo request,Closed Won,15000,2026-07-24,2026-08-23
W-038,Inbound demo request,Closed Won,15000,2026-08-02,2026-09-01
W-039,Inbound demo request,Closed Won,15000,2026-08-11,2026-09-10
W-040,Inbound demo request,Closed Won,15000,2026-08-20,2026-09-19
W-041,Outbound,Closed Won,40000,2025-07-18,2025-10-06
W-042,Outbound,Closed Lost,50000,2025-08-16,2025-10-17
W-043,Outbound,Closed Lost,50000,2025-09-11,2025-10-29
W-044,Outbound,Closed Lost,50000,2025-10-06,2025-11-10
W-045,Outbound,Closed Lost,50000,2025-10-01,2025-11-22
W-046,Outbound,Closed Lost,50000,2025-10-27,2025-12-04
W-047,Outbound,Closed Lost,50000,2025-09-12,2025-12-16
W-048,Outbound,Closed Lost,50000,2025-10-22,2025-12-28
W-049,Outbound,Closed Lost,50000,2025-09-11,2026-01-09
W-050,Outbound,Closed Lost,50000,2025-10-30,2026-01-21
W-051,Outbound,Closed Lost,50000,2025-12-08,2026-02-02
W-052,Outbound,Closed Lost,50000,2026-01-03,2026-02-13
W-053,Outbound,Closed Lost,50000,2025-11-07,2026-02-25
W-054,Outbound,Closed Lost,30000,2026-01-30,2026-03-09
W-055,Outbound,Closed Lost,30000,2025-12-16,2026-03-21
W-056,Outbound,Closed Lost,30000,2026-01-25,2026-04-02
W-057,Outbound,Closed Lost,30000,2025-12-15,2026-04-14
W-058,Outbound,Closed Lost,30000,2026-02-02,2026-04-26
W-059,Outbound,Closed Lost,30000,2026-03-13,2026-05-08
W-060,Outbound,Closed Lost,30000,2026-04-09,2026-05-20
W-061,Outbound,Closed Lost,30000,2026-02-11,2026-06-01
W-062,Outbound,Closed Lost,30000,2026-03-14,2026-06-12
W-063,Outbound,Closed Lost,30000,2026-04-10,2026-06-24
W-064,Outbound,Closed Lost,30000,2026-05-05,2026-07-06
W-065,Outbound,Closed Lost,30000,2026-05-31,2026-07-18
W-066,Outbound,Closed Won,50000,2026-04-21,2026-07-30
W-067,Outbound,Closed Won,50000,2026-05-03,2026-08-11
W-068,Outbound,Closed Won,50000,2026-05-15,2026-08-23
W-069,Outbound,Closed Won,40000,2026-06-16,2026-09-04
W-070,Outbound,Closed Won,40000,2026-06-28,2026-09-16
W-071,Partner,Closed Won,35000,2025-08-07,2025-10-06
W-072,Partner,Closed Lost,30000,2025-09-14,2025-10-22
W-073,Partner,Closed Lost,30000,2025-08-04,2025-11-07
W-074,Partner,Closed Lost,30000,2025-09-17,2025-11-23
W-075,Partner,Closed Lost,30000,2025-08-11,2025-12-09
W-076,Partner,Closed Lost,30000,2025-10-04,2025-12-26
W-077,Partner,Closed Lost,30000,2025-11-16,2026-01-11
W-078,Partner,Closed Lost,30000,2025-12-17,2026-01-27
W-079,Partner,Closed Lost,30000,2025-10-25,2026-02-12
W-080,Partner,Closed Lost,30000,2025-12-01,2026-03-01
W-081,Partner,Closed Lost,30000,2026-01-01,2026-03-17
W-082,Partner,Closed Lost,30000,2026-01-30,2026-04-02
W-083,Partner,Closed Won,46000,2026-02-07,2026-04-18
W-084,Partner,Closed Won,46000,2026-02-23,2026-05-04
W-085,Partner,Closed Won,46000,2026-03-12,2026-05-21
W-086,Partner,Closed Won,46000,2026-03-28,2026-06-06
W-087,Partner,Closed Won,46000,2026-04-13,2026-06-22
W-088,Partner,Closed Won,35000,2026-05-09,2026-07-08
W-089,Partner,Closed Won,35000,2026-05-26,2026-07-25
W-090,Partner,Closed Won,35000,2026-06-11,2026-08-10
W-091,Partner,Closed Won,35000,2026-06-27,2026-08-26
W-092,Partner,Closed Won,35000,2026-07-13,2026-09-11
W-093,Event,Closed Won,25000,2025-08-22,2025-10-06
W-094,Event,Closed Lost,25000,2025-09-27,2025-11-04
W-095,Event,Closed Lost,25000,2025-08-31,2025-12-04
W-096,Event,Closed Lost,25000,2025-10-28,2026-01-03
W-097,Event,Closed Lost,25000,2025-10-05,2026-02-02
W-098,Event,Closed Lost,25000,2025-12-10,2026-03-03
W-099,Event,Closed Lost,25000,2026-02-05,2026-04-02
W-100,Event,Closed Lost,25000,2026-03-22,2026-05-02
W-101,Event,Closed Lost,25000,2026-02-11,2026-06-01
W-102,Event,Closed Lost,25000,2026-04-01,2026-06-30
W-103,Event,Closed Won,25000,2026-06-15,2026-07-30
W-104,Event,Closed Won,25000,2026-07-15,2026-08-29
W-105,Outbound,Closed Lost,40000,2025-06-02,2025-09-12
W-106,Inbound demo request,Closed Won,18000,2025-08-04,2025-09-26
```
How to run it
- Open Claude or ChatGPT with code execution on (Claude's analysis tool, ChatGPT data analysis). Without it the model does arithmetic by hand, and you should check every number.
- Paste the prompt. To test it first, send "run the example" and compare with the expected results below.
- Attach a CSV of every opportunity closed won or closed lost in the last four quarters with lead source, amount, created date, and close date (a Salesforce Opportunities report or a HubSpot deals export). Add the cost of each source over the same period if you have it. The prompt lists the columns.
- Read the data check first and confirm how messy source values map, then take the per-source table and recommendations to the quarterly budget review.
Before you paste CRM data
Pasting an export sends it to the LLM vendor. Check your company's AI and data policy, prefer a business or enterprise plan, and drop account names and contacts: the prompt only needs deal IDs, lead sources, stages, amounts, and dates. It reads the export and changes nothing in your CRM.
Expected results on the example data
A correct run of "run the example" should match these, give or take rounding. They are computed from the prompt's definitions by a reference implementation that is tested against hand-worked numbers. The data is fictional.
- Blended win rate
- 34 of 104 = 32.7% by count; $1,065,000 / $3,230,000 = 33.0% by dollars
- Range by source (enough data)
- 20.0% (Outbound) to 50.0% (Partner) by count
- Blended revenue per closed opportunity
- $1,065,000 / 104 = $10,240
- Blended bookings per $1 of cost
- $1,065,000 / $510,000 = 2.09
- Too few deals to judge (under 20 closed)
- Event, 12 closed, needs 8 more
- Rows excluded
- 2, closed before the period: W-105, W-106
| Source | Recommendation | Closed | Win rate (count) | Win rate ($) | Avg won deal | Median cycle (days) | Revenue per opp | Bookings per $1 |
|---|---|---|---|---|---|---|---|---|
| Partner | Shift more in | 22 | 50.0% | 57.1% | $40,000 | 60 | $20,000 | 7.33 |
| Inbound demo request | Hold | 40 | 35.0% | 30.1% | $20,000 | 40 | $7,000 | 2.33 |
| Outbound | Review before spending more | 30 | 20.0% | 22.0% | $45,000 | 90 | $9,000 | 1.13 |
| Event | Too few deals to judge | 12 | 25.0% | 25.0% | $25,000 | 45 | $6,250 | 0.83 |
| All sources (blended) | 104 | 32.7% | 33.0% | $31,324 | 55 | $10,240 | 2.09 |
Outbound has the largest average won deal and the lowest win rate. By dollars per closed opportunity and per $1 of cost it still trails the blended row, so the rules say review it before adding spend. Event has a 25.0% win rate on only 12 deals, where one deal moves the rate by 8.3 points, so it gets no recommendation yet.
The calculator takes one dollar-weighted win rate. Run it with a single source's rate to see how much pipeline that source would need to cover the gap on its own history. Open the Pipeline coverage calculator.
Implementation steps
- 1
Agree on one lead source field before you count anything: in Salesforce, the Lead Source field on the opportunity; in HubSpot, a custom deal property if your team keeps one, or the original traffic source of the associated contact or company; map its values to a short list (for example Outbound, Inbound demo request, Partner, Event) and group blanks as Unknown so they stay visible
- 2
Export every opportunity closed won or closed lost in the last four full quarters, filtered by close date: opportunity ID, lead source, stage, amount, created date, and close date; open deals stay out because they have no result yet
- 3
Compute per source and for all sources together: win rate by count = won / closed, win rate by dollars = won amount / closed amount, average won deal = won amount / won, and median days from created to close for won deals
- 4
Compute what each source turns into revenue: pipeline-to-revenue yield = won amount / closed amount (the dollar win rate, read as dollars won per dollar of pipeline that reached a decision), and revenue per closed opportunity = won amount / closed deals, what one more opportunity from the source has been worth
- 5
Flag sources with too few closed deals to trust: under 20 closed (an assumption you can change) gets no recommendation, with the number of deals still needed; with 12 closed deals, one deal moves the win rate by 8.3 points
- 6
Add the cost of each source over the same four quarters if you have it, including people time (SDR salaries for outbound, a partner manager for partner) as well as program spend, and compute bookings per $1 of cost = won amount / cost
- 7
Recommend by written rules against the blended row: shift more in if revenue per closed opportunity and bookings per $1 are both above blended, review before spending more if both are below, hold otherwise; run it with the copy-paste prompt on this page in Claude or ChatGPT, or with formulas in the template
- 8
Repeat each quarter on the same definitions: keep each quarter's table, track the share of deals with an Unknown source as a data quality number, and bring the table to the budget review next to the blended rate it replaces, along with the CAC payback by channel table, which turns the same sources and costs into cost per new customer and months to earn it back
Template outline
The structure to recreate in your own workspace. Field names and thresholds are starting points.
Google Sheet: Win rate by lead source FYxx Qx (RevOps prepares it; finance reviews the cost tab)
Tab closed_deals (CRM export, closed won and closed lost, last 4 full quarters by close date):
opportunity_id, lead_source, stage, amount, created_date, close_date
source_mapped = lookup in source_map, "Unknown" if blank
won = stage is Closed Won; cycle_days = close_date - created_date
Tab source_map: raw_value, source (one row per spelling found in the export)
Tab costs (finance, same period): source, program_spend, people_cost, cost = program_spend + people_cost
Tab by_source (one row per source plus a blended row):
closed = COUNTIFS(source_mapped, source)
won = COUNTIFS(source_mapped, source, won, TRUE)
win_rate_count = won / closed
win_rate_dollars = SUMIFS(amount, source_mapped, source, won, TRUE) / SUMIFS(amount, source_mapped, source)
avg_won_deal = won_amount / won
median_cycle_won = MEDIAN(FILTER(cycle_days, source_mapped = source, won))
revenue_per_opp = won_amount / closed
bookings_per_cost = won_amount / cost
enough = closed >= 20
recommendation = IF(NOT(enough), "Too few deals to judge",
IF(AND(revenue_per_opp > blended, bookings_per_cost > blended), "Shift more in",
IF(AND(revenue_per_opp < blended, bookings_per_cost < blended), "Review before spending more", "Hold")))
Worked example (example data, fictional; costs are example inputs, not benchmarks):
Period 2025-10-01 to 2026-09-30, 104 closed deals
Source Closed Won Count Dollars Avg won Median days Per opp Per $1 cost
Partner 22 11 50.0% 57.1% $40,000 60 $20,000 7.33 ($60,000)
Inbound demo request 40 14 35.0% 30.1% $20,000 40 $7,000 2.33 ($120,000)
Outbound 30 6 20.0% 22.0% $45,000 90 $9,000 1.13 ($240,000)
Event 12 3 25.0% 25.0% $25,000 45 $6,250 0.83 ($90,000)
Blended 104 34 32.7% 33.0% $31,324 55 $10,240 2.09 ($510,000)
Checks: 11 + 14 + 6 + 3 = 34 won; $440,000 + $280,000 + $270,000 + $75,000 = $1,065,000 won
of $770,000 + $930,000 + $1,230,000 + $300,000 = $3,230,000 closed
Partner: shift more in. Inbound: hold (below on per opp, above per $1). Outbound: review before spending more.
Event: too few deals to judge, needs 8 more closed deals
Tab history: quarter, source, closed, win_rate_count, win_rate_dollars, revenue_per_opp, unknown_shareCost, time saved, and break-even
Tool cost here is your share of an LLM plan, which depends on your vendor, so it is an input. Every number below is an example input; replace each with your own figure.
Inputs (all assumptions)
Replace each value with your own figure.
- THours per quarter to build the per-source table in spreadsheets by hand (export, clean source values, pivots, cycle math, write-up)8AssumptionTime the next quarterly channel review from export to finished table.
- VHours per quarter with the prompt or the template (export, check the mapping, review)1.5AssumptionTime the first quarterly run.
- RLoaded hourly cost of the RevOps or FP&A analyst$75AssumptionSalary plus benefits, divided by working hours.
- KMonthly tool cost for the LLM plan$20AssumptionYour share of the Claude or ChatGPT plan, from current vendor pricing and your invoices; HubSpot or Salesforce and Google Sheets are usually already paid for.
Formulas
- Time saved per quarter
T - V - 8 - 1.5 = 6.5 hours
- Time saved per week
(T - V) / 13 - 6.5 / 13 = 0.5 hours, the time-saved estimate on this page
- Value of time saved per quarter
(T - V) x R - 6.5 x $75 = $487.50
- Tool cost per quarter
3 x K - 3 x $20 = $60
- Break-even hours per quarter
3 x K / R - $60 / $75 = 0.8 hours, so the run covers its tool cost once it saves about 48 minutes a quarter
- Revenue per closed opportunity (example data)
won amount / closed deals - Partner $440,000 / 22 = $20,000; blended $1,065,000 / 104 = $10,240.38
- Amounts are CRM opportunity amounts, which are bookings, not recognized revenue. For ARR or recognized revenue by source, join the deals to billing before you compare sources.
- Use full cost per source for the same period. Leaving SDR salaries out of outbound, or partner manager time out of partner, makes those sources look cheaper than they are.
- Past conversion does not say how a source scales. The math counts analyst time only; do not add a return on shifted budget without your own results from the next quarters.
- Rerun the math after the first quarter with your real run time V.
Common questions
- Why is a blended win rate misleading?
- It averages sources that convert very differently. In the example data the blended win rate is 32.7%, while Partner wins 50.0% of closed deals and Outbound 20.0%. A change in source mix also moves the blended rate when no source got better or worse, so it cannot tell you where to put budget.
- What is the difference between count and dollar-weighted win rate?
- Count win rate = won deals / closed deals. Dollar win rate = won amount / closed amount. They differ when won and lost deals are different sizes: in the example, Inbound demo requests win 35.0% by count but 30.1% by dollars, because the deals they lose are larger than the ones they win.
- How many closed deals does a source need before I trust its win rate?
- This playbook uses 20 closed deals as a starting assumption you can change. Below that, a single deal moves the rate a lot: with 12 closed deals, one deal is 8.3 points. Sources under the minimum are reported but get no recommendation until they have more closed deals.
- What is pipeline-to-revenue yield?
- Dollars won per dollar of a source's pipeline that reached a decision: won amount / closed amount, the same number as the dollar win rate. The playbook pairs it with revenue per closed opportunity (won amount / closed deals), which in the example is $20,000 for Partner against $10,240.38 blended.
- Which lead source field should I use?
- One field your team agrees is the source of record: in Salesforce, the Lead Source field on the opportunity; in HubSpot, a custom deal property or the original traffic source of the associated contact or company. Map its values to a short list, group blanks as Unknown, and track the Unknown share each quarter.
Keep going
Related playbooks
- ResearchAdvanced
Analyze Lost Deals with Claygent and OpenAI
Lost deal reasons in CRM are vague ("pricing", "timing"). Reps rarely document specifics.
ClayHubSpotOpenAI API+1Estimate: 5 hrs/week - RevOpsBeginner
Track Multi-Channel Campaigns in One Unified Dashboard
Marketing runs email, LinkedIn ads, and webinars, but attribution lives in a different tool for each channel.
HubSpotGoogle SheetsZapierEstimate: 3 hrs/week - Finance/FP&AIntermediate
Check Pipeline Coverage with Historical Conversion, Not Rep Probability
Pipeline coverage is usually reported as open pipeline over quota, or weighted by the probability reps enter in the CRM, so a quarter can look covered at 3x while the deals, at the rates they have actually closed in the past, fall well short of the number, and finance finds out late in the quarter.
HubSpot or SalesforceGoogle SheetsZapier or n8n+1Estimate: 2 hrs/week - InboundIntermediate
Automate Inbound Lead Routing with Enrichment and Fit Scoring
Inbound leads wait in a shared queue or get assigned round-robin regardless of fit, so the best leads reach a rep late and poor-fit leads take up AE time.
ClayHubSpot or SalesforceApollo+2Estimate: 4 hrs/week - Finance/FP&AIntermediate
Calculate CAC Payback by Acquisition Channel and Find the Ones That Never Pay Back
CAC is usually reported as one blended number, or per channel from ad spend alone, so a channel that costs more in SDR salaries and event fees than its customers will ever earn back in gross margin looks fine in the average, and finance only learns it when the budget is already spent.
HubSpot or SalesforceGoogle SheetsClaude or ChatGPT+1Estimate: 0.5 hrs/week - Finance/FP&AIntermediate
Measure LTV:CAC by Segment so Blended Payback Stops Hiding the Ones That Never Pay Back
Blended LTV:CAC hides that some segments never pay back while others carry the business, so budget and SDR time keep funding the wrong ones.
HubSpot or SalesforceGoogle SheetsClaude or ChatGPT+1Estimate: 0.4 hrs/week - Finance/FP&AIntermediate
Cost per Opportunity by Channel: Spend, SQOs, and Share of ACV
Channel spend is reviewed as a blended CAC, or as cost per click, so a source that produces cheap SQOs that never close looks efficient, a source with a high win rate and ACV looks expensive, and finance and RevOps argue about the budget without a shared cost per SQO and cost per expected closed-won deal.
HubSpot or SalesforceGoogle SheetsClaude or ChatGPT+1Estimate: 0.4 hrs/week - RevOpsIntermediate
Measure Sales Cycle Length by Segment and Set When Pipeline Must Be Created
Most teams plan pipeline with one blended sales cycle, so segments that close in a month and segments that take half a year get the same creation deadline, and the long-cycle segment finds out in the last month of the quarter that the pipeline it needed should have existed a quarter earlier.
HubSpot or SalesforceGoogle SheetsClaude or ChatGPT+1Estimate: 0.4 hrs/week - RevOpsIntermediate
Stage-to-Stage Conversion Rates From Your CRM, by Cohort and Segment
Most pipeline plans use one conversion rate per stage, often from a dashboard that counts open deals as losses or from a number nobody can trace, so the stage where one segment loses its deals is hidden in the average, deals that stopped moving weeks ago stay in the forecast, and the pipeline target behind the bookings number cannot be checked.
HubSpot or SalesforceGoogle SheetsClaude or ChatGPT+1Estimate: 0.5 hrs/week - Finance/FP&AIntermediate
Measure Discount Leakage by Rep and Segment, and What It Costs in Margin and Pipeline
Discounts get approved one deal at a time, so nobody adds up how much ARR the team gave away above the discount policy, which reps and segments it came from, what it cost in gross margin, or how much new pipeline it would take to earn the same dollars back.
HubSpot or SalesforceGoogle SheetsClaude or ChatGPT+1Estimate: 0.4 hrs/week
Need help implementing a playbook?
Our team builds custom Clay workflows and AI automations for revenue teams.
Get it built for you