sc-blog-real-roas

Your Meta ROAS is not your ROAS

Ads Manager counts an order the moment it is placed. Your bank counts it when the parcel is delivered and paid for. For an Indian D2C brand, the gap between those two numbers can be the whole profit margin.

Here is a real example, with the brand name left out. A jewellery store we run Meta ads for was reporting a 1.84x ROAS in Ads Manager. Healthy enough to keep scaling. Then we pulled the order reports from Shopify and matched them against cancellations and returns-to-origin. 38.7% of the ordered value never became revenue. The real return on that spend was 1.12x.

Why the numbers drift apart

Three things sit between an ad click and money in the account:

  • Cash on delivery. A COD order is a promise, not a payment. Some share of those promises get cancelled at the door.
  • Cancellations before dispatch. Impulse buys from a good hook cancel within hours. The pixel already fired.
  • Returns to origin. The parcel travels, comes back, and the courier bills you both ways.

None of this shows up in Ads Manager, because the platform only sees the purchase event. It has no idea what happened after.

What we track instead

Every client report we send has two ROAS columns. Platform ROAS, straight from Ads Manager, and Net ROAS, which is delivered revenue divided by spend. The second one decides the budget. When the two drift apart, the fix is rarely in the ads. It is usually in the checkout: prepaid incentives, an OTP on COD orders, or a confirmation call before dispatch.

The one-line version

If your agency reports only the number Meta gives them, they are reporting orders, not revenue. Ask for the delivered figure. If they cannot produce it, that is the answer.

Tags: No tags

Comments are closed.