True ROAS

ShopeeTikTok
The ROAS that nets out platform fees, COGS, and shipping — the only ROAS that tracks profit.

True ROAS is the return-on-ad-spend metric corrected for everything the platform-reported ROAS leaves out. Platform ROAS is ad revenue ÷ ad spend. True ROAS is net profit attributable to the ad ÷ ad spend.

You'll find it in the Ads section: every campaign is listed with its spend, orders, and True ROAS. Click a campaign to open its full breakdown — the Sankey plus day-by-day (and hour-by-hour on Shopee) performance.

Why the platform number lies

Platform-reported ROAS treats GMV as revenue and ignores:

  • Platform commission and transaction fees
  • COGS
  • Shipping cost
  • Returns and refunds

A 4× platform ROAS can be a loss when those are accounted for.

The two numbers, side by side

They answer different questions, so they break even at different places.

Platform-reported ROASTrue (profit-adjusted) ROAS
Formulaad revenue ÷ ad spendnet profit ÷ ad spend
Ad spend subtracted?NoYes — it's already inside the numerator
Break-even1 ÷ margin0
A 25% margin breaks even at4.00×0.00×

The single most common misreading is treating 1.00× as break-even for True ROAS. It isn't. At 1.00× you are doubling your money — a full baht of profit for every baht spent. A True ROAS of 0.44× is already profitable: you keep 44 satang of profit per baht of ad spend.

Anything above 0 makes money. Anything below 0 loses it.

How margin connects them

Margin is what turns one into the other. Starting from trueRoas = (revenue × margin − spend) ÷ spend and rearranging:

platform ROAS  = (1 + True ROAS) ÷ margin
True ROAS      = (platform ROAS × margin) − 1
break-even platform ROAS = 1 ÷ margin

Worked example at a 25% margin:

True ROAS goalPlatform ROAS you'd need
0.00× (break even)4.00×
0.20×4.80×
0.44×5.76×

Lower margin, higher platform ROAS needed for the same profit. At a 10% margin, break-even alone takes 10× platform ROAS.

DataGlass estimates that margin for you. Where a single campaign is in view it uses that campaign's own products, weighted by GMV; otherwise it falls back to the shop-wide estimate. Products without COGS weaken the estimate, which is why the conversion is hidden entirely when no margin can be established — a guessed margin would produce a confident-looking but wrong platform-ROAS target.

How DataGlass computes it

For every conversion attributed to an ad, the engine pulls:

  • The order's actual landed revenue (after fees and refunds)
  • The COGS for the SKUs in the order
  • The shipping cost
  • The ad spend allocated to that conversion

Then divides the resulting net profit by ad spend. The number you see is what actually hit your bank.

Using True ROAS for ad decisions

  • Bid up on campaigns where True ROAS > target.
  • Bid down or pause on campaigns where True ROAS < target, even if platform ROAS looks healthy.
  • Reallocate budget toward products with consistently high True ROAS.

This is what the Ad Actions in your queue are optimizing for.