Home Docs How It Works How MarginOS resolves blended CAC

How MarginOS resolves blended CAC

Last updated: August 5, 2026 By Aron Baczoni

Quick Reference

Inputs

Paid ad accounts connected under Business Config, with enough spend history to span the window you are reading; synced Shopify orders so new customers are counted from real first orders; optionally an Average Customer Acquisition Cost set in Business Config as the fallback rung.

Outputs

A Blended Paid CAC on Command Center over a 90-day window and on Growth over your selected date range, badged with its provenance — spend-derived or operator-set — or N/A carrying the specific reason it could not be computed.

Outcomes

Know what you actually pay for the customers you buy, undiluted by organic acquisition, and know when that figure is genuinely unavailable instead of acting on a default someone invented for you.

MarginOS resolves your blended CAC from what you actually spent: total paid ad spend in the window, divided by the new customers those paid channels acquired in that same window. Organic customers are excluded from both halves. When MarginOS cannot compute that honestly — because your ad history does not reach back far enough, or because paid spend bought nobody — it falls back to the CAC you set yourself, and failing that it shows N/A. It never substitutes an industry average or a default constant, because every CAC-dependent number you look at afterwards would inherit that invention.

What is blended CAC?

Blended CAC is the average cost of acquiring one new customer across all your paid channels combined, rather than channel by channel. What a healthy CAC looks like for your category, and how it should relate to lifetime profit, are covered on the LTGP:CAC ratio benchmarks pillar. This page is about something narrower and more practical: how MarginOS arrives at your number from your data, and what it does when it can’t.

The word doing the work is paid. MarginOS reports a Blended Paid CAC — the spend you can control divided by the customers that spend bought. That is a deliberately stricter figure than the more common “total marketing spend ÷ all new customers,” and the difference matters when you are deciding whether to scale a channel.

Before you start

  • Connect your paid ad accounts under Business Config → Integrations. Spend has to be in MarginOS at daily campaign grain before a spend-derived CAC can exist.
  • Give the sync time to backfill history. A CAC over a 90-day window needs ad-spend history that reaches back 90 days — see why coverage matters below.
  • Optionally set an Average Customer Acquisition Cost in Business Config → Business Profile → Marketing. This is the fallback rung, and it is what keeps CAC-dependent metrics alive before your ad accounts are connected.
  • Have your Shopify orders synced, since the denominator is real new customers, not an estimate.

Where to see blended CAC in MarginOS

  1. Open Command Center. The Blended Paid CAC (90D) tile is the headline figure, and it is the CAC that the LTGP:CAC tile alongside it divides by.
  2. Open Growth for the same metric under your chosen date range — day, 7, 30, 60 or 90 days — so you can see CAC move as spend and acquisition move.
  3. Check the badge on the tile. Dynamic CAC means the number came from real ad spend in that window. Static (set by operator) means it is the figure you entered in Business Config.
  4. If the tile reads N/A, hover it. The tooltip distinguishes the three different reasons a CAC can be unavailable, and each one has a different fix.

What feeds the calculation

Input Where it comes from What it affects
Paid ad spend Your connected ad platforms, at daily campaign grain The numerator, and which channels count as “paid” at all
New customers Shopify orders — a customer’s first-ever order sets both their acquisition date and their channel The denominator
Channel attribution The acquisition channel assigned to that first order Whether a new customer is counted as paid-acquired or organic
Ad-history coverage The earliest date you have paid spend for Whether a given window can be computed at all
Your configured Average CAC Business Config → Business Profile → Marketing The fallback when there is no ad-spend history at all

How MarginOS resolves your CAC

There is one resolution order, and every CAC-dependent metric in the product uses it, so the CAC behind your payback tile is the same CAC behind your LTGP:CAC ratio.

1. Spend-derived CAC, when the window is fully covered. MarginOS identifies which channels had spend in the window, adds that spend up, counts the new customers whose first order was attributed to one of those channels in the same window, and divides. Nothing is hard-coded about which channels are “paid” — a channel is paid if it took money in that window.

2. Your configured CAC, but only when there is no ad-spend history at all. If you have never had paid spend recorded in any window, MarginOS uses the Average Customer Acquisition Cost you set, and labels the tile Static (set by operator) so the provenance is never ambiguous.

3. Otherwise, nothing. CAC is N/A, and LTGP:CAC, CAC payback and 30-day CAC recovery go N/A with it.

The important and slightly counter-intuitive part is the boundary between rungs 2 and 3. Your static CAC is not a universal safety net. Once you have real paid spend, a window that MarginOS cannot compute stays N/A rather than silently borrowing your static figure. If it did borrow, the tile would show a confident number for a window in which your actual acquisition cost is unknown — and you would scale on it.

Why a window can be uncomputable

Two situations produce an honest N/A even though you are spending money.

Your ad history does not span the window. If you connected Meta six weeks ago, a 90-day CAC would be six weeks of spend divided by ninety days of customers — a number that looks precise and is meaningfully too low. MarginOS withholds it instead, tells you the date your spend history begins, and resolves the window automatically as backfill fills in. Shorter windows on Growth often work while longer ones are still N/A, and that is the mechanism you are seeing.

Paid spend bought zero new customers. Dividing by zero is undefined, so MarginOS does not report a CAC — but it does show you the spend, because “we spent this and acquired nobody” is the actual finding. Reporting a CAC of $0 there would be precisely backwards.

Why organic customers are excluded

Folding organic customers into the denominator is the single most common way a CAC gets flattered. Every word-of-mouth order, every repeat-driven referral, every email signup that converts makes the number smaller without a single dollar of extra efficiency in your paid funnel.

MarginOS therefore excludes channels with no spend from both the numerator and the denominator. The figure answers one question: what am I paying, per customer, for the customers I am buying? That is the number you compare lifetime profit against when you decide whether to raise budget, because raising budget affects the paid funnel and not your word-of-mouth.

The consequence is worth stating plainly: a MarginOS Blended Paid CAC will usually look higher than a CAC you compute by hand from your ad dashboard and your total new-customer count. The gap is the organic acquisition that the hand calculation was quietly using to subsidise your paid performance. A paid channel that spent money and acquired nobody stays in the numerator too, so wasted spend raises CAC rather than disappearing from it.

Point-of-sale, marketplace and wholesale orders are excluded from the customer count as well — they are real revenue, but they are not customers your ad spend bought, and they are reported separately rather than blended in.

What each state on the tile means

What you see What it means What to do
A value with a Dynamic CAC badge Computed from your real spend and real new customers in that window. Nothing — this is the intended state.
A value with a Static (set by operator) badge Your configured Average CAC. MarginOS has no paid-spend history to work from. Connect your ad accounts to move to a spend-derived figure. Until then, keep the static value current — everything downstream inherits it.
N/A, “not enough ad-spend history” You have paid spend, but it does not reach back to the start of this window. Wait for backfill, or read a shorter window on Growth. This clears itself.
N/A, “zero new paid customers” Spend occurred in a fully covered window and acquired no new customers. Treat the disclosed spend as the finding. Check attribution and campaign targeting.
N/A, plus a No CAC available alert No paid-spend history anywhere and no configured Average CAC. Connect an ad account or set an Average CAC in Business Config. Every CAC-dependent metric is dark until you do.

Example

Over a 30-day window you spent $9,000 on paid search and $6,000 on paid social. In the same window you acquired 500 new customers: 180 whose first order came through paid search, 120 through paid social, and 200 organically — direct traffic, email, and word of mouth.

MarginOS reports a Blended Paid CAC of $50: $15,000 of spend divided by the 300 customers your paid channels acquired. The hand calculation most operators run — $15,000 ÷ 500 — gives $30, and that $20 gap is entirely the organic acquisition being used to make paid look cheaper than it is.

Now suppose you also ran $1,200 through a third paid channel that acquired nobody. The spend stays in the numerator, the denominator does not move, and CAC rises to $54. That is the intended behaviour: money spent without acquiring anyone is part of what your customers cost.

Finally, suppose your ad sync only reaches back three weeks. The 30-day tile reads N/A with a note showing where your spend history starts, while the 7-day tile computes normally — and the 30-day figure appears on its own once backfill catches up.

FAQ

Why is my MarginOS CAC higher than the CAC in my ad dashboard?

Ad platforms report cost per conversion using their own attribution, and each platform counts conversions it believes it caused — which means overlapping claims across platforms. MarginOS divides your total paid spend by the new customers your store actually gained, attributed once each, so no customer is credited twice. It also excludes organic customers from the denominator, where a hand calculation usually includes them.

Why does my CAC show N/A when I am clearly spending money?

There are two reasons and the tooltip distinguishes them. Either your ad-spend history does not yet reach back to the start of the window you are viewing, in which case a shorter window will work and the longer one resolves itself as backfill completes; or the window is fully covered but the spend acquired no new customers, in which case CAC is genuinely undefined and MarginOS shows you the spend instead.

I set an Average CAC in Business Config, so why is the tile still N/A?

Because you have real paid spend. The configured value is used only when MarginOS has no ad-spend history at all to compute from. Once real spend exists, a window MarginOS cannot compute stays N/A rather than being papered over with your static figure — otherwise the tile would report a confident number for a window whose real acquisition cost is unknown.

Does MarginOS ever use a default or industry-average CAC?

No. There is no default constant anywhere in the resolution. If neither a spend-derived CAC nor a configured one exists, CAC and every metric that divides by it report N/A, and MarginOS raises a data-health alert so you know the gap is in your inputs rather than in your business.

Which orders count as a new customer?

A customer counts once, on their first-ever order, and that order also determines which channel gets credited. Cancelled and test orders are excluded, as are orders with no customer identity attached. Point-of-sale, marketplace and wholesale orders do not count toward the acquisition denominator.

Does today’s ad spend affect today’s CAC?

No. The window closes at the end of yesterday, so a partial day of spend against a partial day of orders can never distort the figure. This is also why CAC does not move during the day.

What breaks if I have no CAC?

LTGP:CAC, CAC payback and 30-day CAC recovery are all undefined without a denominator, so all three render N/A. They come back the moment a real CAC exists, from either rung of the resolution.

Related

About the author

Aron Baczoni

Aron Baczoni is the founder of MarginOS and a former decade-long veteran of Google's Ads and Global Business Operations units. His work is focused on bridging the gap between AI's promise and its practical implementation for direct-to-consumer (DTC) brands, helping them build a sustainable competitive advantage through strategic, high-ROI AI solutions.

Read Aron's story

Get Your Profit & Inventory Command Center

See your real margins in real time, not in spreadsheets.

Get your Profit & Inventory Command Center

Or email sales@marginos.com to see your real margins on your own data.