Answers
ROAS is going up, so why is the store making less money?
The short answer
ROAS can rise while the store makes less because ROAS only divides the revenue a platform credits to your ads by what you spent. It leaves out product cost, discounts, shipping, payment fees and refunds, and it doesn't tell new customers from people who would have bought anyway. So a campaign can post a better ROAS by selling discounted bundles, or by claiming repeat buyers, while each order leaves less money behind. Check the margin on the orders, and how many of them came from new customers, before you trust the ROAS trend.
Want to check this on your own numbers?
Thexly matches each payment to the campaign visit that led to it, so you can see which campaigns brought in money that cleared. Start a 14-day free trial, no card needed.
No card required.
The question
In October 2026, someone on r/FacebookAds asked the question in the title: ROAS was going up, so why was the store making less money (r/FacebookAds thread)? Their own answer was a good start: "ROAS only compares attributed revenue with advertising spend." As they put it, "A better dashboard number can therefore exist alongside weaker business results."
They ended by asking the group: "When your ROAS and profit move in opposite directions, which number do you check first?"
Why ROAS and profit split
Meta defines purchase ROAS as "purchase conversion value divided by amount spent" (Meta Business Help Center). Nothing in that sum knows what the order cost you to fulfil. Three things tend to pull the two numbers apart.
The mix of what sells. The poster wrote that "An ad may generate a high ROAS by selling low-margin items or discounted bundles." The ad platform sees the order value. It doesn't see that the margin on a 25% off bundle is a fraction of the margin on a full price order.
Who is buying. Retargeting and repeat buyers often look cheap to reach. One reply put it plainly: "Retargeting and repeat purchases can make the dashboard look great while acquisition is quietly getting more expensive." If more of the credited revenue comes from people who already knew you, ROAS goes up while the cost of each new customer climbs.
What the platform counts. Meta counts purchases under its own attribution setting (7-day click, 1-day view and 1-day engagement by default) and says statistical modeling may be used where data is partial or missing (Meta Business Help Center). That credited value isn't the same as the payments that cleared, and refunds arrive weeks later. For the gap between Meta's ROAS and your bank, see Meta ROAS vs your bank account.
An illustrative example
Made-up numbers, here to show the idea. Not a client result.
In September a store spends €10,000 on Meta. Meta reports €30,000 in purchase value, so ROAS is 3.0. Payments from those campaigns come to €27,000, and the gross margin on those orders is 50%. That's €13,500 of margin, and €3,500 left after the ad spend.
In October the store runs a 25% off bundle. Spend stays at €10,000 and Meta reports €36,000, so ROAS rises to 3.6. Payments come to €28,000, but the bundle pulls the margin on those orders down to 35%. That's €9,800 of margin, a €200 loss after the ad spend.
ROAS went up by a fifth. The month went from money left over to money lost. Nothing in the dashboard was wrong. It was answering a different question.
Running into this across several clients?
One workspace per client shows which campaigns brought in payments that cleared, next to what each platform reported, before the ROAS trend goes in the monthly report.
A check to run on your own store
Do this for the two periods where ROAS and profit moved apart.
1. Pull payments for the same dates. Use what your payment provider received, not the platform's purchase value. Match refunds back to the original order dates, so this month's sales aren't netted against last month's returns.
2. Split new and returning customers. Use your store data. If the share of returning orders went up, the ROAS rise may be repeat buyers.
3. Work out the margin per order. Price, minus product cost, discount, shipping and payment fees. Discounts and bundles show up here first.
4. Take ad spend off the margin. This is the contribution after ads. It's the number that went down, so it's the one to track next to ROAS.
5. Put each platform's claim next to the payments. The platform vs payment gap calculator does this from three numbers. To see what ROAS you need to cover your costs, use the break-even ROAS calculator.
What the replies got right
We read every visible reply on 27 Oct 2026. Of the 7 replies that answered the question, 5 pointed to contribution margin, the cost of new customers, or both. A few lines stood out:
- "ROAS going up while money going down usually means you are selling more of the wrong stuff"
- "The new vs returning customer split is the one that explains most of the “ROAS up, profit down” mystery."
- "Average ROAS can keep climbing while that last customer is already losing you money, since new customers get pricier as you scale."
- "a 5x roas doesnt mean much if discounts, cogs, shipping or returning customer attribution are doing all the heavy lifting."
- "I would match refunds back to the original order dates too."
Another reply summed up where to look: "The store data usually tells the more honest story." The poster landed in the same place: "I treat it as one diagnostic metric rather than the final score."
Where Thexly fits
Thexly covers the payments side of step 5. It matches each payment from your payment provider to the campaign visit that led to it, so you can see which campaigns brought in money that cleared, next to what each platform claimed. It doesn't work out your product costs or margin; those stay in your own numbers. It doesn't change what Meta or Google report, and you still read spend from each platform. If you track blended numbers too, the MER calculator puts total revenue against total spend.
Put last month's payments next to the claims
Start a 14-day free trial, no card needed, and put last month's payments next to what each platform claimed for the same campaigns.
No card required.
FAQ