How to Calculate Profit After Meta Ads
Take contribution margin for the period, then subtract everything Meta advertising cost you: platform spend, agency fees, tax on ad invoices and creative production. Use total store margin against total spend rather than campaign-attributed revenue, because Meta's attributed figures overlap with other channels and cannot be summed into a reliable total.
Written by Atul Tirkey · Co-founder, NetNet
Updated September 6, 2026 · 4 min read
Meta will tell you what you spent and what it believes that spending produced. Neither figure is sufficient to work out whether the advertising made money, and the second one is actively misleading if used without adjustment.
Getting to a defensible profit number takes two decisions: which spend figure to use, and whether to work from attributed revenue at all.
Which spend number is the real one
The figure in the ads manager is media cost. The amount advertising actually cost the business is larger, usually by fifteen to twenty-five percent.
Tax on ad invoices. In many markets Meta charges tax on media. It leaves your bank account and belongs in the cost of advertising.
Agency fees. A retainer, or a percentage of spend, or both. This is money spent to acquire customers by any reasonable definition.
Creative production. Photography, video editing, product sent to creators, samples that never come back. Campaigns do not run without it.
Currency conversion. Accounts billed in a different currency carry a spread that never appears in any reporting interface.
Add them and the denominator of every efficiency calculation changes. A campaign at exactly break-even on media cost is losing money once the agency is paid — which is the specific situation this adjustment exists to catch.
Why attributed revenue cannot be summed
Meta reports conversions inside its own attribution windows: a purchase within some days of a click, or within some period of an impression being served.
Google does the same. So does every other platform. Each one claims a purchase it can see, and none of them deducts what another claimed. Sum the platforms and you routinely get more revenue than the store actually took — occasionally far more.
Worse, attributed revenue includes purchases that would have happened without any advertising: returning customers, people arriving from search who saw an ad three days earlier, buyers who were always going to buy.
None of this makes Meta’s numbers dishonest. They are answering “what did Meta see”, which is a legitimate question and a genuinely useful one for comparing two audiences or two creatives inside the same account. It is simply not the same question as “did the business make money”.
Working from the period instead
The way around it is to stop trying to attribute at all when calculating profitability.
Take total contribution margin for a calendar period. Subtract total advertising cost for the same period, adjusted as above. What remains is profit after advertising, and it reconciles to real money because neither input depends on an attribution model.
This figure has a known weakness — it includes organic and repeat revenue advertising did not buy, so it flatters spend efficiency. That is an acceptable trade for a number that cannot be inflated by overlapping windows, and it is the right number for the decision it usually informs: whether the current level of total spend is sustainable.
For the sharper question of whether individual campaigns deserve their budget, use contribution margin per order against acquisition cost per order, and accept that the comparison is directional rather than exact.
Where the calculation usually breaks
Four failures account for most incorrect profit-after-advertising figures, and all four are mechanical rather than conceptual.
Mismatched date ranges. Orders pulled on store timezone, spend pulled on account timezone, one of them inclusive of the end date and the other not. A day of spend at either boundary is enough to move a marginal month across break-even.
Gross profit used in place of contribution margin. Subtracting ad spend from gross profit leaves shipping, fees and packaging unpaid, and produces a number that looks like profit while being nothing of the sort. This is the most common single error, and it flatters the result by whatever those per-order costs happen to be.
Spend taken from the reporting interface rather than billing. Credits, refunds, currency conversion and tax all mean the two disagree. Billing is what left the bank.
Multiple ad accounts. Stores that have ever run a second account, a test account, or a separate one for a sub-brand routinely pull only the main one. The missing spend is invisible precisely because nobody remembers the account exists.
A useful safeguard: once a quarter, reconcile total advertising cost across every account against the actual money that left the business bank for advertising. If those two figures agree, the spend side of the calculation is sound. If they do not, no amount of care on the margin side will rescue the answer.
Reading the result
Three checks make the output actionable.
Profit after advertising, month over month. Rising while spend rises means scaling is working. Falling while spend rises means you are buying revenue at a loss, regardless of what any ROAS figure says.
Advertising as a percentage of contribution margin. In the example above, $35,035 of advertising against $47,600 of margin means seventy-four percent of every marginal dollar earned went to acquisition, leaving twenty-six percent for the fixed cost base. That ratio is often more diagnostic than the absolute figure.
Acquisition cost against contribution margin per order. The per-unit version of the same test, and the one that tells you how much headroom exists before an order stops paying for itself.
If all three are moving the wrong way while ROAS holds steady, the ROAS is measuring something that stopped mattering. The usual cause is that break-even moved rather than performance: margin fell a few points through discounting or product mix, and the same return that cleared the bar last quarter no longer does.
Calculating profit after Meta spend
Run this for a full calendar period rather than a rolling window, so the spend and the orders share the same boundaries.
About 45 minutes the first time
- 01
Fix one date range and apply it everywhere
Choose the period first and use identical start and end dates for orders and for ad spend. Mismatched ranges are the most common reason two people calculating the same month disagree.
- 02
Pull total contribution margin for the period
Use margin after all per-order costs, not gross profit. Gross profit still owes shipping, fees and packaging, so subtracting ad spend from it overstates what advertising left behind.
- 03
Take Meta spend from billing, not from the ads manager summary
The billing view includes tax and credits, and it reflects what actually left the bank rather than what the reporting interface estimated for the period.
- 04
Add agency fees and creative production
A retainer or percentage-of-spend fee is a cost of advertising. Leaving it out understates true acquisition cost by whatever the agency charges, which is often ten to twenty percent.
- 05
Subtract total advertising cost from contribution margin
What remains is profit after advertising for the period. It reconciles to real money because neither side of the subtraction depends on an attribution model.
- 06
Divide by orders to get the per-order view
Contribution margin per order against acquisition cost per order tells you whether the unit economics work, which the period total on its own cannot.
A month of Meta spend, reconciled
A store spending most of its acquisition budget on Meta, with the agency fee and invoice tax included where they belong.
- Contribution margin for the month
- $47,600
- Profit after advertising
- $12,565
- Share kept
- 26.4%
| Line | Relative size | Amount |
|---|---|---|
| Contribution margin for the month After all per-order costs | $47,600 | |
| Meta platform spend | $28,900 | |
| Tax on ad invoices 5% on media | $1,445 | |
| Agency management fee 10% of spend | $2,890 | |
| Creative production and samples | $1,800 | |
| Profit after advertising | $12,565 |
Meta's own reporting would have shown $28,900 of spend. The advertising actually cost $35,035 — twenty-one percent more — once tax, the agency fee and creative production were counted. That difference is the gap between a campaign that clears its break-even and one that does not.
Where the numbers come from
Every figure above traces to a specific field in a specific system. These are the ones that matter, and where each one goes wrong.
| Figure | Source | Where it breaks |
|---|---|---|
| Meta spend | Meta billing and payment history for the account | The ads manager summary can differ from billing because of credits, refunds and currency conversion. |
| Attributed revenue | Meta conversion reporting inside its click and view windows | Each platform attributes independently, so summing channels produces more revenue than the store actually took. |
| Contribution margin | Order-level costs for the same date range | Campaigns sell different product mixes, so a store-average margin misstates any single campaign. |
What this does not tell you
- Profit after advertising is a period figure that includes organic and returning-customer revenue. It tells you whether total spend was sustainable, not whether any individual campaign deserved its budget.
- It also ignores lag. Spend today produces orders over the following days and weeks, so a period boundary always cuts through campaigns that are still converting.
Frequently asked questions
Should I use Meta's reported ROAS to judge profitability?
Only as a within-channel comparison. Meta's attributed revenue overlaps with other platforms and includes purchases that would have happened anyway, so a ROAS derived from it cannot be compared against a break-even threshold calculated from real margin.
Do agency fees count as ad spend?
Yes. A retainer or percentage fee is money spent to acquire customers and belongs in acquisition cost. Excluding it typically understates the true cost of Meta advertising by ten to twenty percent, which is often the entire margin.
How do I handle the gap between spend and conversions?
Use whole calendar periods and accept that boundaries cut through converting campaigns. Over a month the lag mostly washes out; over a week it does not, which is why weekly profit-after-advertising figures are noisy.
Why is my blended CAC higher than Meta's cost per purchase?
Because blended CAC divides all acquisition spend by all new customers, while Meta's figure counts only purchases it claimed. The platform figure is always the more flattering of the two, and blended is the one that reconciles to your bank.
Keep reading — Ads, CAC & marketing profit
Why ROAS doesn't equal profitability
The break-even your ROAS has to clear.
Shopify contribution margin
The margin advertising has to be paid from.