Blog

Cold Email Agency ROI: How to Calculate CAC and Payback Before You Hire

Quick answer

Turn the agency's quote into a cost per meeting, turn that into a cost per qualified opportunity, then apply your own close rate and deal value to get a customer acquisition cost (CAC) and a payback period in months. Run that math before you sign, on a worst case as well as the agency's best case, not after three months when the invoices are already landing.

The math, before anything else

I'm Hlib Storchak. I build outbound systems for B2B founders and sales teams, and almost every agency conversation I see from the buyer's side skips straight from "here's our pricing" to "let's start," with no step in between where anyone actually checks whether the number makes sense against the buyer's own business. Here it is in one line: cost per meeting, divided by your qualified rate, divided by your close rate, times your deal value, tells you your real CAC. Divide CAC by what a customer is worth to you per month, and you get payback in months. That's the whole model. Everything below is just how to fill in the inputs honestly.

The three numbers you need before you sign

An agency's pitch deck will hand you two of these numbers and quietly skip the third. You need all three, and the third one is yours to bring, not theirs to estimate.

  • The quote. Whatever they're charging, retainer, pay-per-meeting, or hybrid. Ask for the exact structure in writing, not a round number over a call.
  • A believable meeting range, not their best month. Ask for a range and ask what it's based on: their own book of similar clients, or a generic deck number. If they can't point to anything, assume the low end.
  • Your own close rate and deal value. This is the number no agency can give you honestly, because it depends on your sales process, not theirs. If you don't already track it, that's the actual first step, before any of the rest of this.

Tip. If a prospective agency's own ROI projection already includes your close rate and deal value baked into their numbers rather than asking you for them, that's worth a direct question: where did those figures come from, and do they match what your own pipeline reports actually show.

Step 1: turn the quote into a cost per meeting

Take the monthly quote and divide it by the number of meetings in the range they gave you, using the low end first. A $6,000 a month retainer against a quoted range of 8 to 15 meetings gives you $750 at the low end and $400 at the high end, a near-2x spread from one number alone, which is exactly why the low end is the one to build your real decision on. I've pulled actual quoted ranges from named agencies, not generic estimates, in a head to head on CIENCE and Leadium, if you want a sense of what a real quote looks like before you run this math on your own.

If the agency prices per meeting rather than by retainer, this step is already done for you, the quoted per-meeting rate is your cost per meeting. The honest version of that number still needs the next two steps, because a cheap meeting that never turns into an opportunity is not actually cheap.

Step 2: turn cost per meeting into cost per qualified opportunity

Not every booked meeting is a real opportunity. Ask the agency directly what share of their booked meetings show up and what share of those meet whatever bar you'd call "qualified," by title, budget, or fit. A reasonable range across most B2B cold email and LinkedIn programs is 70 to 85% show rate and 50 to 75% qualified share of shows, though your own segment can sit outside that. Divide cost per meeting by the qualified share to get cost per qualified opportunity. At $750 a meeting and a 60% qualified share, that's $1,250 per qualified opportunity, the number that actually enters your pipeline math, not the raw meetings count an agency will lead a pitch with.

Step 3: calculate CAC the way finance will actually ask for it

Multiply cost per qualified opportunity by the inverse of your own close rate. If one in four qualified opportunities closes, that's a 25% close rate, so divide cost per qualified opportunity by 0.25. At $1,250 per opportunity and a 25% close rate, CAC is $5,000. This is the number a finance team actually wants, not cost per meeting, because it's the figure that compares directly against deal value, something cost per meeting alone can't do.

StepFormulaWhat it tells you
1. Cost per meetingMonthly quote ÷ meetings (low end)Raw cost of a booked slot
2. Cost per qualified oppCost per meeting ÷ qualified shareCost of a meeting worth pursuing
3. CACCost per qualified opp ÷ close rateTrue acquisition cost per customer
4. Payback (months)CAC ÷ monthly revenue per customerHow long the deal takes to earn itself back

Step 4: build the payback period, and what counts as good

Divide CAC by the average monthly revenue a new customer brings in. At $5,000 CAC and $500 a month in revenue per customer, payback is 10 months. Whether that's good depends entirely on your own business, but a useful outside reference point: the 2026 Aleph and Benchmarkit SaaS and AI Performance Benchmarks report, built on full-year 2025 data from 342 B2B SaaS companies, puts the median CAC payback period at 16 months across the 198 companies that reported it, with the top quartile at 6 months or less and the bottom quartile at 24 months or more. That's a general SaaS benchmark, not an outbound-specific one, so treat it as a sanity check on your own number rather than a target to hit exactly: if your agency-driven CAC payback lands meaningfully past 24 months, that's worth questioning before you renew, not after a full year of invoices.

Step 5: stress-test it with a worse case

Run the whole model twice: once on the agency's quoted range, once on a deliberately worse one, say the bottom of their meeting range, a 10-point lower qualified share, and a close rate 5 points under your historical average. If the worse case still produces a payback period you could live with, the deal has real margin for error. If the worse case pushes payback past whatever you decided was your ceiling in step 4, you're betting the agency's best month shows up every month, which is the single most common way these contracts disappoint, not fraud or bad faith, just an optimistic base case nobody stress-tested before signing.

A worked example, start to finish

Every number below is a stated assumption, not a researched fact about any real agency. Swap in your own before you act on any of it.

InputBest caseWorse case
Monthly quote$6,000$6,000
Meetings/month128
Cost per meeting$500$750
Qualified share65%50%
Cost per qualified opp$769$1,500
Close rate25%18%
CAC$3,077$8,333
Revenue per customer/mo$500$500
Payback~6.2 months~16.7 months

That's the same quote, the same monthly spend, producing a payback period that moves from excellent to merely acceptable depending only on how optimistic the qualified share and close rate assumptions are. Neither case is dishonest, they're both plausible for a real program. The point of running both is deciding in advance which one you can live with, rather than finding out which one you got three months into the retainer.

How the pricing model changes this math

Retainer, pay-per-meeting, and hybrid pricing push the risk in this model to different places. A retainer puts the volume risk entirely on you, a slow month still costs the full quote. Pay-per-meeting puts more of that risk on the agency, but typically at a higher per-unit price once you compare it against a retainer's blended rate. Hybrid splits the difference, a lower base plus a per-meeting or per-opportunity kicker. None of the three changes the CAC math itself, you still run the same four steps, but it does change which input is most likely to swing: retainer pricing makes your payback number most sensitive to the actual meeting count you get, while pay-per-meeting makes it most sensitive to the qualified share and close rate, since the cost per meeting is already fixed. I go through the three models and what drives the quoted number itself in more depth in a full breakdown of outbound agency pricing in 2026, which is worth reading before you negotiate the structure, not just the number.

Agency vs in-house vs fractional: how the math shifts

The same four steps apply to an in-house hire or a fractional GTM lead, with different inputs. An in-house SDR's "quote" is fully loaded comp plus tooling plus ramp time, usually three to four months before meetings start at all, which pushes payback out further at the start even if the steady-state CAC ends up lower once ramped. A fractional lead sits between the two, lower fixed cost than a full-time hire, but without an agency's existing infrastructure and bench, which usually means a longer stand-up period than an agency and a shorter one than a from-scratch internal hire. I've laid out the fuller operational trade-offs, not just the cost side, between all three models in a direct comparison of agency vs in-house, which this ROI math is meant to sit alongside, not replace: use that piece to decide which model fits your stage, then use the math above to vet whichever option's actual quote lands on your desk.

Tracking it for real once the engine is live

The model above is a pre-hire filter, not a one-time exercise. Once the agency is live, the same four numbers, cost per meeting, qualified share, close rate, and CAC, need to come from your own CRM each month, not from the agency's end-of-quarter report. This is the setup I run for clients: a standing monthly view of the real numbers against the assumptions used to sign the deal, so a slipping qualified share or close rate shows up in month two, not at renewal. I cover the full set of outbound metrics worth tracking on a weekly and monthly cadence, cost per meeting and payback included, in a separate piece on the metrics that actually measure outbound, which is the dashboard version of the one-time math in this article.

The mistake I see most often

The mistake I see most often when I take over an account is a company that ran exactly zero version of this math before signing, and is now three invoices in trying to reconstruct it from memory to decide whether to renew. By then the honest comparison, best case against worse case against what actually happened, has to be rebuilt from scattered CRM notes instead of a model that was written down on day one. Run the numbers before you sign. Keep the same spreadsheet open every month after. It takes twenty minutes and it's the difference between a renewal decision grounded in your own numbers and one grounded in whoever pitched the loudest.

Key takeaways

  • CAC from an agency quote is cost per meeting, divided by qualified share, divided by close rate. Cost per meeting alone is not CAC.
  • Payback is CAC divided by monthly revenue per customer. A 2026 cross-industry SaaS benchmark puts the median at 16 months, top quartile at 6 or under, treat it as a sanity check, not a target.
  • Always run the model twice: the agency's quoted range, and a deliberately worse case. The gap between the two tells you how much margin for error the deal actually has.
  • Retainer pricing makes payback most sensitive to meeting volume. Pay-per-meeting makes it most sensitive to qualified share and close rate.
  • This is a pre-hire filter, not a one-time exercise. Track the same four numbers monthly once the engine is live, from your own CRM, not the agency's report.

FAQ

What counts as a good payback period for an outbound agency?

There's no single number that fits every business, but a useful outside reference is the 2026 Aleph and Benchmarkit SaaS benchmarks report, which puts the median B2B SaaS CAC payback at 16 months, with top-quartile companies at 6 months or under. If your agency-driven CAC payback lands well past 24 months, treat that as a prompt to revisit the assumptions, not as an automatic no, since deal value and sales cycle length vary enormously by business.

How is CAC different from cost per meeting?

Cost per meeting only accounts for the agency's quote and the raw number of meetings booked. CAC also factors in how many of those meetings are actually qualified and what share of qualified meetings your own team closes. Two agencies can quote the same cost per meeting and produce very different CAC once you apply your real qualified share and close rate.

Should I ask the agency for their own ROI numbers?

Ask for their quote and their own estimate of meeting volume and qualified share, since they have real data on that from similar clients. Don't accept their estimate of your close rate or deal value, since that depends on your sales process, not theirs, and is the one input you should always bring yourself.

Does this math work for pay-per-meeting pricing too?

Yes. The per-meeting rate becomes your cost per meeting directly, skipping the first division. From there the same three remaining steps, qualified share, close rate, and payback, apply exactly the same way.

How often should I re-run this once an agency is live?

Monthly, using your own CRM's real numbers rather than the agency's report. A qualified share or close rate that's drifting from the assumptions you signed on will show up within two or three months if you're checking, and within a full year, at renewal, if you're not.

Want this math run on your own numbers?

There are three ways to work with me on this: done-for-you outbound where I build and run the engine behind the numbers, fractional Head of GTM where I plug in and own the CAC and payback math for your whole motion, or standing up the function inside your own team so your people can run it without me.

Book a call