How to Calculate CAC by Channel (and the Mistakes That Make It Fiction)
The channel CAC formula fits in one line: spend attributed to a channel in a period, divided by new customers sourced from that channel in that period. Nobody gets this wrong because the division is hard. They get it wrong because both inputs are usually broken, and the broken version still produces a confident-looking number.
The numerator is broken because most teams count only ad platform spend. The data tools, the agency retainer, the conference booth, the contractor who runs the webinars — none of it shows up, and in our experience that’s often a third or more of real acquisition spend. The denominator is broken because it depends on a CRM source field that nobody audits, filled in by whichever integration got there first or by a rep picking the top option in a dropdown.
Fix both inputs and the formula takes care of itself. Here’s how we do it.
The numerator: complete spend by channel
Three requirements, in order of how often they’re violated.
Full coverage. Ad platform spend is the easy part — it’s in the platform’s billing tab. The rest lives in your accounting system or your credit card statement: data and enrichment tools, agency and contractor fees, sponsorships, event costs, content production. If you’re only counting Meta and Google invoices, you’re computing the CAC of your ad spend, not the CAC of your acquisition. Events deserve special care: a conference paid in January that happens in April should be allocated to the months it actually drives pipeline, not the month the invoice cleared. The mechanics of pulling all of this together without a data warehouse — a spend ledger, a channel mapping, a monthly close — are the subject of our pillar guide on tracking marketing spend without a warehouse.
One explicit convention for shared costs. There are three defensible definitions of “spend”: media-only (platform spend alone), media-plus-tools (add the vendors and agencies), and fully-loaded (add people costs — SDR salaries, marketing headcount, sales commissions). Any of the three can be the right choice. Mixing them is never the right choice, and it’s the most common way channel comparisons turn into fiction: paid search gets measured media-only while outbound carries every SDR salary, and surprise, paid search wins. Pick one convention, label every number with it, and if you report fully-loaded, decide upfront how shared costs (a brand designer, a marketing ops hire) get allocated — evenly, by spend share, or excluded entirely. Written down, any of these is fine.
Channel definitions that match the CRM. If your spend ledger says “LinkedIn Ads” and your CRM source field says “Paid Social,” you can’t divide one by the other without a mapping table. Build that table once: every spend line maps to exactly one channel, and that channel list is the same list your CRM source field uses. Fewer, broader channels beat many precise ones you can’t keep consistent.
The denominator: customers by channel
The denominator is a CRM query — closed-won deals in a period, grouped by source — which means it’s only as good as the CRM behind it.
The source field has to be filled, and believably. Run the query before you trust it: what percentage of last quarter’s closed-won deals have a source at all? What percentage say “Direct” or “Other” or “Unknown”? If a third of your wins are unattributed, your channel CAC is being computed on the remaining two-thirds and silently scaled wrong. This is a data quality problem before it’s an attribution problem, and it’s fixed the same way any CRM problem is fixed — explicit rules, audited regularly. Our CRM cleanup process covers the general discipline; for the specific plumbing that gets source data into the CRM correctly in the first place, see UTM tracking best practices.
An explicit attribution model, stated in plain language. Not a vendor’s multi-touch algorithm — a sentence a human can repeat: “first known touch within 180 days of close” or “the source on the contact at the time the deal was created.” Single-touch models are crude, and they’re also auditable, which matters more. Pick one, write it down where the reports live, and stop relitigating it monthly. The teams that argue about attribution models every quarter never actually get to the part where they reallocate budget.
A definition of “customer.” New logo only, or expansion too? Counting expansion revenue in a channel’s denominator flatters whatever channel originally sourced the account, years after the fact. For channel CAC, new logos is the cleaner convention; track expansion economics separately.
The two-table method
This is the whole mechanism. No warehouse, no attribution platform — two tables and a stated lag.
Table A: spend by channel by month. Every spend line from your ledger, mapped to a channel, allocated to the right month.
Table B: closed-won count (and new ARR) by channel by cohort month. Pulled from the CRM using your stated attribution model.
CAC = A ÷ B, with one B2B-specific adjustment: spend and the customers it produces don’t land in the same month. Offset the two tables by your median sales cycle. If your median cycle is roughly three months, divide March’s closed-won customers by December–January’s spend, not March’s. The offset doesn’t need to be precise — it needs to be stated and consistent, so a spend cut in one month doesn’t masquerade as a CAC improvement the same month.
A worked example — illustrative numbers, not client data, with a one-month lag for simplicity:
| Channel | Spend (Jan) | New customers (Feb cohort) | Channel CAC |
|---|---|---|---|
| Paid search | $30,000 | 5 | $6,000 |
| Outbound (tools + agency) | $18,000 | 2 | $9,000 |
| Events | $24,000 | 3 | $8,000 |
Three channels, three different stories — and note that the outbound and events lines only exist because the ledger captured non-platform spend. A media-only version of this table would show paid search competing against two channels with a $0 numerator, which is how teams convince themselves ads are the only thing working.
Read it as a trend, not a verdict
At B2B volumes, a single month of channel CAC is mostly noise. Five customers from paid search in February versus three in March is not a 67% CAC deterioration; it’s two deals of variance. Use a rolling three-month window for the actual decision-making, and keep the monthly table as the raw feed.
Watch payback alongside CAC: CAC ÷ monthly gross profit per customer. A channel whose CAC is rising but whose deal sizes are rising faster is getting better, not worse, and only payback shows it.
And treat any sudden CAC improvement with suspicion before celebration. In our experience, a channel CAC that drops sharply in one month is more often a data problem than a performance breakthrough: the source field started defaulting differently after a form change, an integration started overwriting attribution, or last month’s spend got restated after an invoice moved. Check the inputs first. The genuine wins survive the check.
Why the platform’s CPA always looks better
Run this exercise once and you’ll never un-see it: add up the conversions every ad platform claims for a month, then count your actual new customers. The platform total will be larger — sometimes dramatically — because every platform claims every conversion it touched, under attribution rules it wrote, with windows it chose. A buyer who saw a LinkedIn ad, clicked a Google ad, and attended your webinar is one customer in your CRM and a claimed conversion on three vendor dashboards.
Platform CPA is useful for optimizing within a platform — comparing campaigns against each other under consistent (if self-serving) rules. It is not a CAC, and it should never be compared against one. The number that allocates next quarter’s budget has to reconcile to closed-won deals in the CRM, or you’re reading three vendors’ homework graded by themselves.
Where to start
Build Table A this week — the spend ledger with channel mapping is the part most teams are missing, and it’s a spreadsheet, not a project. Then audit the source field on last quarter’s closed-won deals before trusting Table B. If you want the CRM-side checks automated, our open-source toolkit audits source completeness and closed-won hygiene against HubSpot and Salesforce with evidence behind every finding — but the method stands on its own: complete spend, a believable source field, one stated attribution window, and a lag you wrote down on purpose.
Frequently asked questions
What is a good CAC?
There isn't a universal good number, and anyone quoting one is selling something. CAC only means anything relative to what a customer is worth to you, which is why payback period — CAC divided by monthly gross profit per customer — is the better question. A CAC that pays back in eight months can be excellent; the same dollar figure with a thin-margin product can be ruinous. Judge your channels against your own economics and your own trend, not a benchmark.
Should I use blended CAC or channel CAC?
Both, for different jobs. Blended CAC — all acquisition spend over all new customers — is the honest top-line number for board reporting and unit economics, because it can't be gamed by attribution choices. Channel CAC is the operating number: it tells you where the next dollar should go. The mistake is using blended CAC to make channel decisions (it hides the loser subsidizing the winner) or presenting a favorable channel CAC as if it were the whole picture.
Should salaries be included in CAC?
Pick a convention and label it. Media-only CAC (just platform spend), media-plus-tools (add martech, data vendors, agencies), and fully-loaded (add the people: SDRs, marketers, sales comp) are all defensible definitions. What's not defensible is mixing them — comparing a media-only paid-search CAC against a fully-loaded outbound CAC will always make outbound look terrible and ads look brilliant. State which convention each number uses, every time it appears.
Why doesn't my channel CAC match the CPA my ad platform reports?
Because the platform grades its own homework. Every ad platform claims credit for every conversion it touched under its own attribution rules — view-through windows, modeled conversions, click windows you didn't choose. Your CRM-based CAC counts a customer once and assigns them to one channel. The platforms will collectively report more conversions than you have customers. When the two disagree, the CRM number — reconciled to closed-won deals — is the one connected to revenue.
How long should the attribution window be for B2B?
Long enough to cover most of your real buying journey, short enough that the attribution is still believable. For B2B with a multi-month cycle, something like first known touch within 90 to 180 days is a common, defensible choice. The specific number matters less than picking one, writing it down, and applying it consistently — a window that changes every time someone dislikes the result isn't a window, it's a negotiation.