Inquiry ROI Calculator: Cost per Acquisition, Deal Value, and Sales Hours
1. Why Most Teams’ ROI Is Fake
Most DTC site teams calculate ROI like this: we spent USD 5,000 on ads this month and closed USD 50,000 in deals, so ROI is 10x. This is wrong in three places: it only counts ad spend, ignoring tool subscriptions and content labor; the denominator uses closed customers but ignores how many sales hours each deal took; and the output only counts first-order value, ignoring repeat-purchase LTV from B2B customers.
Here’s the counterintuitive part: once you count sales hours, a channel you thought was profitable may actually be losing money. Say a channel brings inquiries with a high close rate, but each closed customer needs 15 hours of sales follow-up. At a loaded sales cost of USD 35/hour, that’s USD 525 in labor per deal. If the customer’s first order is only worth USD 1,500 with a 30% margin, that’s just USD 450, so the deal is actually a loss.
| Wrong Calculation | What’s Missed | Actual Distortion | Consequence |
|---|---|---|---|
| Counting only ad spend | Tools, content labor, sales hours | ROI inflated 2 to 5 times | Blindly increasing budget on losing channels |
| Using inquiry count as the denominator | Junk and invalid inquiries | CAC looks very low | Don’t know true acquisition cost |
| Using first-order value | Repeat purchases and LTV | Underestimating long-term value | Cutting channels with repeat purchases |
| Not counting sales hours | Follow-up hours per deal | Hides labor cost | Treating labor-heavy channels as high-quality |
ROI isn’t a number for reporting, it’s a tool for deciding budget. If the calculation itself is wrong, budget decisions based on it are wrong. For attribution model choices, see How to calculate lead attribution correctly, and for ROI comparisons across channels, see Inquiry Source Channel Analysis.
2. CAC: The Denominator Is Closed Customers, Not Inquiry Count
The CAC formula is simple: total spend divided by the number of closed customers. The catch is the denominator — it has to be closed customers, not leads. Divide by leads and you get cost per lead, not cost per customer. The two numbers differ by your conversion rate.
For example: this month you spent USD 10,000, received 200 leads, and closed 10 customers. Cost per lead is USD 50, but your real CAC is USD 1,000. If you make decisions based on USD 50, the channel looks cheap; in reality you paid USD 1,000 for every closed customer. For B2B, the healthy benchmark is CAC under 15% of closed revenue and LTV/CAC above 3.
| Cost item | Monthly amount | Description | Often missed? |
|---|---|---|---|
| Ad spend | USD 5,000 | Google, LinkedIn ads | No |
| Tool subscriptions | USD 500 | CRM, email, support tools | Yes |
| Content labor | USD 2,000 | Allocated blog and video production | Yes |
| Sales hours | USD 3,500 | 10 customers × 10 hours × USD 35 | Most often missed |
| Total spend | USD 11,000 | — | — |
| Real CAC (÷ 10 customers) | USD 1,100 | — | — |
How to calculate sales hours: first tally the total sales hours each closed customer took from first touch to signed contract (emails, calls, quotes, and negotiations all count), then multiply by the rep’s loaded hourly cost. Loaded cost is not base salary — it is base salary plus payroll taxes, benefits, and overhead allocation, expressed as an hourly cost. A rep earning USD 5,000 a month has a loaded cost of roughly USD 35 to 45 per hour. For the basics of tracking lead hours, see Lead status lifecycle.
3. Sales hours: the biggest hidden cost
Sales hours are the item most often left out of ROI calculations, yet in B2B they are often the largest. B2B sales cycles run 3 to 6 months, and each customer may need 10 to 20 hours of sales follow-up. Leave those hours out of your costs and you will mistake labor-heavy channels for high-quality ones.
Sales hours vary widely by channel. Leads from Google ads tend to be clear about what they want, so 5 hours of follow-up closes the deal; leads from LinkedIn may need long-term nurturing, taking 20 hours to close. Ignore hours and the two channels look similar in ROI; count them and the Google channel costs far less.
| Channel | Closed customers | Average sales hours | Hourly cost | Real CAC | First-order revenue |
|---|---|---|---|---|---|
| Google ads | 4 | 6 hours | USD 210 per deal | USD 960 | USD 12,000 |
| 3 | 18 hours | USD 630 per deal | USD 1,380 | USD 15,000 | |
| Organic blog search | 2 | 12 hours | USD 420 per deal | USD 720 | USD 8,000 |
| Retargeting ads | 1 | 8 hours | USD 280 per deal | USD 1,080 | USD 6,000 |
Example: In the table above, LinkedIn has the highest first-order value (USD 15,000), so it looks like the best channel. But once you factor in sales hours, LinkedIn’s true CAC is USD 1,380, or 9.2% of the closed deal value; the blog’s organic search CAC is USD 720, or 9.0% of the closed deal value. The two are about the same. But the blog channel doesn’t need ongoing ad spend, so it pays off more over the long run. You can only make this call when you factor in sales hours.
4. Output: Use LTV, not first-order value
The biggest difference between B2B and B2C is repeat purchases. With B2C, first-order ROI is enough, because customers buy once and leave; with B2B, a customer may stay for 3 to 5 years and repurchase several times a year. If you calculate ROI using only first-order value, you’ll systematically underestimate the long-term value of B2B channels and cut the channels with modest first orders but steady repeat purchases.
How to calculate LTV (customer lifetime value): first-order value times expected number of repeat purchases, times average repeat purchase value. Use a 2-year repurchase cycle for a conservative estimate and 3 years for an aggressive one. In B2B manufacturing, LTV is usually 3 to 8 times the first order. The healthy line is LTV/CAC above 3, meaning a customer’s lifetime revenue is at least 3 times the cost of acquiring them.
| Metrics | How to calculate | Healthy range | What to do if you’re below the healthy line |
|---|---|---|---|
| CAC as a share of first-order value | CAC ÷ first-order value | ≤15% | Improve conversion rate or raise prices |
| LTV/CAC | LTV ÷ CAC | ≥3 | Cut underperforming channels or lower acquisition costs |
| CAC payback period | CAC ÷ monthly gross profit | ≤12 months | Shorten the sales cycle or raise gross profit |
| Sales hours as a share of total spend | Labor cost ÷ total spend | ≤40% | Improve your pitch or lead quality |
Example: You find a channel with an LTV/CAC of only 1.8, below the healthy line. But when you break it down, this channel’s new customers have small first orders, yet a 60% repeat purchase rate, and their second-year repurchase value is 2 times the first order. Factor in 2-year LTV, and the LTV/CAC is actually 4.2, which is healthy. The problem isn’t channel quality; it’s that your time window is too short. For how to track repeat purchase data, see Lead status lifecycle.
5. Decision rules for ROI calculation
You calculate ROI to make three decisions, not to report numbers: increase budget, cut budget, or optimize. Each decision has clear triggers. Don’t go by gut feel and say “this channel seems good”—let the numbers speak.
| Decision | Trigger | Action |
|---|---|---|
| Increase budget | LTV/CAC >5 for 2 consecutive months | Increase next month’s budget by 30% |
| Keep as is | LTV/CAC 3 至 5 | Keep the current budget |
| Watch | LTV/CAC 2 至 3 | Hold steady and look for ways to optimize |
| Cut budget | LTV/CAC <2 for 2 consecutive months | Halve next month’s budget |
| Stop | LTV/CAC <1 with no improvement for 3 months | Stop spending and review why |
A final note: ROI math only works if your tracking is accurate. If leads are lost between the form and your CRM, if sales hours go unlogged, or if closed customers aren’t tagged with a source, your ROI will be wrong. For the tracking basics, see Connecting Website Leads to the CRM, for channel analysis, see Inquiry Source Channel Analysis, and for sales KPI design, see Sales KPI Performance.
FAQ
How do you calculate inquiry ROI accurately?
Why are sales hours the biggest hidden cost?
Should CAC use inquiries or closed customers as the denominator?
Why should B2B use LTV instead of first-order revenue?
What are healthy ROI benchmarks?
How do you track sales hours for each closed customer?
Final thoughts
Most teams calculate inquiry ROI wrong: they count only ad spend, not sales hours; they use inquiry count as the denominator instead of closed customers; and they measure output by first-order revenue instead of LTV. The ROI that comes out looks great, but any budget decision based on it is probably wrong.
Three steps to fix it: first, include sales hours in cost by multiplying loaded hourly cost by the hours spent per deal; second, the CAC denominator must be closed customers, not inquiries; third, for B2B use LTV, not first-order revenue, with a healthy LTV/CAC above 3. Once you’ve done these three steps, you’ll know which channels actually make money and which just look busy.
One line worth remembering: inquiry ROI that ignores sales hours is self-deception. In B2B, your biggest cost isn’t ads, it’s the hours your team spends on every inquiry.
