Industry Opinion · 9 min read · Published August 4, 2026
Why You're Calculating Your ROAS Wrong (And the Honest Math Most Brands Skip)
Revenue divided by ad spend. Hand the number to the founder. Make decisions on it. That formula is wrong in two ways at once, and it is quietly sending your budget to the wrong campaigns.
Founder, BTB Audits. $150M+ in ad spend managed across Meta and Google
This piece is part of the Honest Audit Manifesto, the full BTB worldview on what is broken in the DTC (direct-to-consumer) ad audit category.
Every DTC operator uses the same broken formula. Revenue divided by ad spend. Hand the number to the founder. Make decisions based on it.
The math is wrong in two ways at once. The revenue on top is inflated, because each platform over-credits itself. The revenue on top is also incomplete, because it counts only the first purchase and ignores every repeat order after it.
So brands cut campaigns that are profitable. Brands scale campaigns that are not. They do it with a number they trust and should not trust.
The honest version takes 20 minutes to learn. It rewrites almost every campaign decision you will make this year. The patterns repeat across $150M+ in ad spend managed across Meta and Google. The brands using honest math do not spend more or less than the brands using broken math. They spend it on completely different campaigns.
Most brands treat the first sale as the whole story. The research says the opposite. Harvard Business Review, citing Bain & Company, reports that increasing customer retention rates by 5 percent increases profits by 25 to 95 percent. A ROAS number built on first-purchase revenue is blind to that whole effect. Fix the math, and the repeat revenue you already earn starts showing up in the decisions you make.
The ROAS calculation everyone uses
Here is the formula every operator runs.
ROAS = Revenue / Ad Spend
Two problems live inside that simple line.
Problem 1: Which revenue? Most operators use either Meta-reported revenue or first-purchase Shopify revenue. Meta-reported revenue is over-credited by 20 to 40 percent, which is why your reports never match (see why your ad reports show 3 different numbers). First-purchase Shopify revenue is correct for that one sale, but it ignores every repeat order.
Problem 2: Which ad spend? Most operators use the direct platform spend only. They leave out agency fees, tracking tool costs, creative production, and their own time. The true cost is usually 15 to 30 percent larger than the reported one.
So the standard number inflates the top and shrinks the bottom at the same time. The result drifts a long way from reality.
Here is a worked example to make it concrete. A DTC brand reports 4.2x Meta ROAS to its founder.
The brand was scaling on the 4.2x number. They were paying for the gap and did not know it. You can size the same gap on your own account with the attribution reconciliation calculator.
| Formula element | Standard (wrong) | Honest (right) |
|---|---|---|
| Numerator | Platform-reported revenue | Attribution-reconciled gross profit |
| Time horizon | First purchase only | 12 to 36 months of repeat behavior |
| Cost included | Direct ad spend only | Ad spend plus agency, creative, and support |
| Result | Inflated by 30 to 60 percent in most accounts | Reflects actual unit economics |
| Decision usefulness | Surface signal | Actionable metric |
The honest ROAS formula
The corrected version has a name. Call it True ROAS, and use it as a separate metric from standard ROAS.
True ROAS = LTV-adjusted gross profit / Total acquisition cost
LTV-adjusted gross profit is the profit a customer brings over a set time window (90 days, 12 months, 24 months, or 36 months), not just the first order. LTV stands for lifetime value. You work it out like this:
LTV = Avg gross profit per order × Avg orders in the window × Retention adjustment
Total acquisition cost is everything you spent to win that customer. That includes:
- Direct ad spend across Meta, Google, and Amazon
- Agency or in-house management fees, split across channels
- Creative production costs
- Tracking and measurement tool costs
- Customer service (CS) costs tied to acquisition, which most brands forget
- Discount costs, if you run acquisition offers
To run True ROAS, you have to track 5 things most operators do not:
- Repeat purchase rates by cohort (a cohort is a group of customers who first bought in the same month), not blended across everyone
- Gross profit margin on the products those customers buy
- The time gap between orders, which changes by category
- Total customer service cost per new customer, the line item that is usually missed
- Attribution-reconciled revenue, not the platform-reported number
The research backs up why repeat orders matter so much. Shopify's own retention work shows that repeat customers drive 44 percent of revenue and 46 percent of orders while making up only 21 percent of the customer base. A formula that stops at the first sale throws most of that away.
The first time an operator runs True ROAS, they almost always find one of two things. Their winning campaigns win by even more than they thought, because repeat revenue is real. Or their best-reported campaigns lose money once the math is honest. For the gross-margin math underneath a healthy number, see the gross-margin math behind a good ROAS.
Where the LTV:CAC ratio fits
LTV:CAC and ROAS are cousins, not twins.
ROAS asks a short question. For every dollar I put into ads, how many dollars come back?
LTV:CAC asks the longer one. Over a customer's whole life with me, how does the profit they bring compare to what I paid to get them? CAC stands for customer acquisition cost.
The link is simple. LTV:CAC is the full time-horizon version of True ROAS. Same idea, said over a longer window. Here are the standard health bands.
- 3:1 or higher. Healthy unit economics (the profit math on one customer). You can scale.
- 2:1 to 3:1. Tight. Scaling works, but only with discipline.
- 1.5:1 to 2:1. At risk. The structure needs attention.
- Below 1.5:1. You lose money per customer. Scaling burns cash.
Here is the mistake that costs operators money. They assume 3:1 LTV:CAC at 12 months is the same as 3.0x first-purchase ROAS. It is not. A campaign at 2.0x first-purchase ROAS, in a category with a 35 percent second-purchase rate and 67 percent order-value growth, can hit 4.5:1 LTV:CAC at 24 months. It looks like a loser on the standard metric. It is a winner. The operator who cuts it on first-purchase ROAS cuts the wrong thing.
If you want to run this on your own account, the True LTV Calculator projects the cohort math across 90-day, 12-month, 24-month, and 36-month windows.
Three decisions that change when you fix the math
This is the part that touches your account this week. Three decisions flip once the math gets honest.
Decision 1: which campaigns to cut versus scale. The standard move is to cut anything below break-even ROAS and scale anything above it. The honest move is slower. Campaigns at 1.5x to 2.5x first-purchase ROAS, with strong repeat rates and growing order value, are often profitable over a lifetime. Check the cohort behavior before you cut. The pattern that bleeds money most: cutting top-of-funnel campaigns that look weak on first purchase but feed the repeat engine driving 70 percent of future revenue.
Decision 2: how much to spend on retention versus acquisition. The standard view treats retention as an afterthought. The honest view flips it. Retention spend (email, post-purchase offers, SMS text messages, loyalty) is what makes acquisition spend pay off. Brands that underfund retention are mis-measuring their acquisition math, because the repeat revenue that justifies the cost never shows up. At $20K+ in monthly ad spend, retention should run 15 to 25 percent of acquisition spend, not the 5 to 10 percent most brands settle for. One of the highest-impact moves here is the post-purchase upsell flow that builds repeat revenue.
Decision 3: what target ROAS to set. The standard target is 1.2x to 1.5x above break-even. The honest target runs two numbers at once. Set first-purchase ROAS at or slightly below break-even for acquisition campaigns. Set 24-month LTV:CAC targets at 3.5:1 or higher. First-purchase ROAS becomes a trigger to investigate. LTV:CAC becomes the real profit metric. Start with the break-even ROAS calculator to find your floor.
| First-purchase ROAS | LTV:CAC (24-month) | Decision |
|---|---|---|
| Above 3.5x | Above 3.5:1 | Healthy. Scale. |
| 2.0x to 3.5x | Above 3.5:1 | Acquisition is funding future profit. Keep running. |
| 2.0x to 3.5x | 2.0:1 to 3.5:1 | Tight. Watch the retention numbers. |
| Below 2.0x | Above 3.5:1 | Looks odd, but it works if retention is real. |
| Below 2.0x | Below 2.0:1 | Unprofitable. Cut or rebuild. |
| Above 3.5x | Below 2.0:1 | Rare. One-time high order value, no repeat. Check the source. |
A DTC supplements brand found its best campaign on first-purchase ROAS (3.8x) was only its second-best on lifetime math. A different campaign reported 2.4x first-purchase ROAS but delivered 5.1:1 LTV:CAC over 24 months, against the 3.8x campaign's 4.2:1. They had been scaling the wrong winner.
How to implement honest math
Three steps. None of them need new software you do not already have.
Step 1: build the cohort tracking. Use Shopify's customer reports, or a tool like Triple Whale, Polar, or Northbeam, to track repeat rates by acquisition channel. The tool matters less than the habit. Even a quarterly cohort review in a spreadsheet works.
Step 2: recalculate True ROAS for the last 12 months. Pull the cohort data. Work out True ROAS by channel. Compare it to what the platforms reported. That gap is what you have been operating blind to. For most brands it runs 20 to 40 percent.
Step 3: reset your decision rules. Stop cutting campaigns on first-purchase ROAS alone. Stop scaling on platform-reported ROAS alone. Move every campaign decision to True ROAS plus LTV:CAC. Then re-check monthly.
The closing point is the one that surprises people. The brands using honest math do not spend more or less than the brands using broken math. They spend it on different campaigns. The campaigns that survive honest scrutiny are usually not the ones the standard metric promotes. Run that for 12 to 24 months and the unit economics get dramatically better. The brands that skip this are flying blind by choice.
The math problem nobody wants to name
The DTC industry has a math problem nobody wants to say out loud. Every operator and every agency calculates ROAS the same broken way. Divide the revenue Meta or Google reports by the ad spend. Hand the number to the founder. Watch the founder make decisions on it.
The math is wrong twice. It is wrong because platform-reported revenue is inflated. It is wrong because first-purchase revenue ignores the repeat economics that decide real profit.
The result is predictable. Brands cut campaigns that are profitable on a lifetime basis but look weak on first purchase. Brands scale campaigns that look strong on first purchase but fall apart on honest math.
The agencies do not fix this. The broken math makes their reports look better, so the incentive runs the wrong way. The platforms do not fix it either. They have no reason to publish an honest, lifetime-adjusted ROAS that shrinks their own credit. That is the same incentive problem behind how agencies sit comfortable behind inflated reports.
So the brands fix it themselves, or it does not get fixed. I will say it plainly. The honest math takes 20 minutes to learn, and it rewrites every campaign decision a brand makes for the next year. The patterns repeat across $150M+ in managed ad spend. The brands that learn it stop guessing. The brands that do not keep paying for a gap they cannot see.
Frequently asked questions
Common questions
About ROAS calculation
What is the real way to calculate ROAS?
Use True ROAS, not the standard formula. True ROAS is lifetime-value-adjusted gross profit divided by total acquisition cost. The numerator is attribution-reconciled gross profit over a 12 to 36 month window, not first-purchase platform revenue. The denominator is the full cost of acquiring the customer, including ad spend, agency fees, creative, tracking tools, and customer service. The standard formula of platform revenue divided by direct ad spend inflates the top and shrinks the bottom, so the result is usually 30 to 60 percent off.
How do I include repeat customers in my ROAS calculation?
Track repeat purchases by cohort, which is a group of customers who first bought in the same month. Work out the average gross profit per order, the average number of orders in your chosen window, and a retention adjustment. Multiply those together to get lifetime value. That figure replaces first-purchase revenue in the numerator. Most brands find that repeat orders carry the majority of real profit, so leaving them out makes profitable campaigns look like losers.
Why is my Meta ROAS different from my actual ROI?
Because Meta-reported revenue is over-credited by 20 to 40 percent, and the standard formula leaves out most of your real costs. Return on investment (ROI) reflects what hits your profit and loss statement after every cost. Reported ROAS reflects what Meta claims it drove. Reconcile platform revenue against Shopify-actual revenue, add the full acquisition cost, and the two numbers move much closer together.
About BTB Audits
How does BTB Audits calculate True ROAS?
Every audit reconciles platform-claimed revenue against Shopify-actual revenue first, then adds the full acquisition cost, including agency fees, creative, tracking tools, and customer service. From there we project lifetime value by cohort across 90-day, 12-month, 24-month, and 36-month windows and compare it to acquisition cost. The Free Quick Scan flags the size of the gap from public data signals. The paid Forensic Report sizes it exactly from your own dashboards.
Counterarguments
Isn't first-purchase ROAS what every agency uses?
Yes, and that is the problem. First-purchase ROAS is easy to report and it makes agency numbers look better, so it became the default. But it ignores the repeat revenue that decides whether a customer is profitable. A campaign at 2.0x first-purchase ROAS can be a 4.5:1 lifetime winner. The widely used metric is the one quietly steering budget to the wrong campaigns.
What is the difference between ROAS and LTV:CAC?
ROAS asks how many dollars come back for every dollar spent on ads, usually over a short window. LTV:CAC asks how the profit a customer brings over their whole life compares to what you paid to acquire them. LTV:CAC is the longer time-horizon version of True ROAS. Use first-purchase ROAS as a trigger to investigate, and use LTV:CAC as the real profitability metric.
If your ROAS number is built on platform-reported revenue and direct ad spend alone, it is wrong in two directions at once. The Free Quick Scan sizes the gap on your account before your next scaling call.
If you don't have four to six hours, or you want a second pair of eyes that's managed $150M+ across Meta and Google, the Free Quick Scan is what I built for that. I'll record a private 5 to 7 minute Loom walking through the leaks I find on your account using public data only. You'll have it in 48 hours.
Get Your Free Quick Scan →Keep reading on honest math, ROAS, and attribution
Aditya Chaturvedi is the founder of BTB Audits. He has managed $150M+ in ad spend across Meta and Google for DTC, SaaS, and lead-gen brands. The math in this post comes from auditing accounts where the reported ROAS and the founder's real profit told two different stories. Read more on the BTB Audits blog.