Re-reading a €200K-a-quarter paid account on CAC and payback instead of CPL — and why every one of its problems was invisible on the metrics it was managed on.
An analysis for an Italian SaaS company — payroll and HR software — on the paid-account data it supplied. Company name, campaign names and money figures are anonymised; money figures are rescaled by a single constant, so every rate, ratio, ranking and verdict is exactly as computed. Every number on this page is calculated live from the raw data below — nothing is hardcoded, and the levers are yours to move.
Eight campaigns, ranked by cost per lead (top) and by customer acquisition cost (bottom). The ranking almost fully inverts. The two cheapest lead sources are the two most expensive ways to acquire a customer.
CPL and cost per SQL are the metrics this account had been managed on, and they are the reason it was misallocated. Neither survives contact with the last two columns of the table.
Every campaign was re-evaluated on CAC (spend ÷ won) and payback (spend ÷ new MRR, in months of gross MRR), with an LTV:CAC view layered on top using two explicitly stated working assumptions — gross margin and average customer lifetime. No retention data was provided, so both are levers, not facts: move them and the last column recalculates.
80% margin and a 36-month lifetime are standard B2B SaaS working assumptions. LTV = MRR per deal × margin × lifetime. A common healthy benchmark is LTV:CAC ≥ 3×. Note which campaigns cross the line as you move the levers — and which never do.
The pattern in the ranking is systemic, not a coincidence. Every platform on the account optimised for the same event — a form submission — while lead-to-SQL rates ranged from 1.3% to 44.7%. Algorithms were being trained to buy cheap, low-intent leads. The CPL-versus-CAC inversion is the direct consequence: a measurement problem before it is a media problem.
62% of PMax leads came from searches containing the company's own name. Someone already searching the brand would very likely have converted through Brand Search or organic at near-zero incremental cost.
With no per-lead source data, conversions are assumed to distribute proportionally to the lead mix. The lever below is the share of those branded conversions treated as non-incremental. The conservative case is 100%; the verdict has to hold across the whole range, or it isn't a verdict.
Incremental CAC across the non-incrementality range. Even at 50% — half of branded conversions counted as genuinely PMax's — incremental CAC sits ~45% above the reported figure.
One caveat cuts against PMax, not for it: branded leads almost certainly convert better than non-branded ones, so proportional attribution likely understates the branded share of customers. The true incremental CAC is probably worse than the conservative estimate. The decision is therefore robust to any reasonable assumption: don't judge or scale PMax as-is. Apply brand exclusions, re-measure for four to six weeks on clean data, then decide against pre-declared thresholds.
At campaign level LinkedIn looked like a disaster. The segment breakdown told the opposite story.
Share of LinkedIn spend versus share of LinkedIn customers, by prospect company size.
48% of the campaign's spend went to companies with 200+ employees: one SQL, zero customers, and a segment outside the company's SMB core anyway. The 10–49 segment alone ran at a sub-month payback — among the best campaigns in the account.
Shutting down "LinkedIn" would have killed the account's best B2B targeting along with its worst. The unit of analysis is the segment, not the campaign.
The TikTok campaign was called "Video awareness". It optimised for form submissions like everything else.
So it couldn't be judged as awareness — no reach, brand-lift or branded-search-lift data existed — and it failed completely as the conversion campaign it was configured to be: 1.3% lead-to-SQL, one customer, a CAC that pays back in four and a half years. Two incompatible identities, zero measurable ones.
Upper-funnel assist effects — feeding branded search, filling the retargeting pool that produces the account's best CAC — are real in principle and unmeasured in this data. The honest move is not to guess their size but to measure it: branded-search volume against flight dates, and a geo-holdout if the effect looks material. Until then, the campaign either runs as actual awareness with awareness KPIs, or it doesn't run.
One structural lens ties the three distortions together: split spend by the job it does. Capture harvests demand that already exists. Generation creates it. Only generation can triple revenue.
Demand capture: Brand Search, retargeting and PMax's branded share. Demand generation: everything creating new demand. Awareness: the misconfigured TikTok campaign, shown as diagnosed, not as a forecast.
Capture ran at a sub-month payback, and it cannot be scaled: you cannot buy more people searching your brand. Generation was 78% of spend and ran at roughly three and a half times the CAC. That is the true price of new growth, and the number a paid role exists to improve. A dependency worth naming: retargeting harvests a pool filled by upper-funnel traffic. Cut all top-of-funnel spend and the pool shrinks with it.
Edit the quarterly budgets. Projected customers and new MRR recalculate on each component's own unit economics — LinkedIn at segment level, PMax at its incremental economics.
The loaded proposal is the day-one allocation. Two lines are frozen at current budgets on purpose: they host the two tests below, and their post-verdict levels are decided by the verdicts, not preset. Two lines show no projection at all: their budgets are being repurposed to work their old economics cannot price. The rule: project what continues, not what changes nature.
Projections extrapolate current unit economics linearly — an upper bound. Marginal CAC rises with scale, retargeting scales with its pool rather than its budget, and every projection inherits the optimisation-event bias the first experiment exists to fix. At unchanged budgets the projection sits below reported MRR: that gap is the PMax cannibalisation.
Reallocating the full budget immediately would assume the winners' unit economics hold linearly at any scale — the exact assumption this analysis dismantles. The money freed from losers is held as a validation reserve with pre-declared triggers: PMax's post-exclusion verdict, the first experiment's outcome, and marginal-CAC behaviour on the scaled search campaign. Budget follows evidence; it does not front-run it.
Fix what the algorithms optimise for. A whole family of the account's problems traces back to one configuration choice: every platform optimised on raw form submissions.
No platform ships an "MQL" or "SQL" event; you define these yourself and send them from your own systems. When a form is submitted, the pixel fires the standard lead event with a matching identifier — click IDs plus hashed email. The lead enters the CRM carrying that identifier, and every later stage change can be sent back to the platform as a custom event. Feed the loop consistently and delivery shifts toward users who resemble the ones that qualify, not the ones that fill forms.
Which stage feeds which platform is dictated by volume and latency. An MQL can be produced minutes after submission — dedupe, validation, competitor blacklist, firmographic enrichment from the company name the form already collects. An SQL takes days of sales work: excellent for measuring, usually too slow and sparse for optimising.
Not the only lever on lead quality — form friction, funnel architecture and post-lead validation all move the same metric — but the first to test, for three reasons: it is the only one that applies account-wide, it is containable in a single cell, and it compounds with the others instead of competing with them. Every later experiment optimises within the system; this one re-points it.
One organising rule: actions already supported by existing data start immediately; hypotheses get contained tests; the reserve spends nothing before its gate opens.
Three gaps this analysis had to work around. MQL tracking — the brief defined MQLs, but no MQL column existed, so the validation layer likely wasn't instrumented. Retention and margin by cohort — to replace the LTV levers above with observed numbers, which may re-rank the borderline campaigns. And a branded-search volume time series — to settle the awareness question with evidence instead of opinion.
Misallocated budget, a misconfigured campaign, an incoherent channel and a signal-quality problem — four different problems, one shared property: every one of them either looked fine or stayed hidden on the numbers the account was managed on.
Reported performance is accounting. Incremental performance is causality. A CAC without a counterfactual is a number with a decimal point. The work isn't choosing which campaign to scale; it's building the instruments that make that choice a decision rather than a guess — and refusing to move budget until they do.