Platform ROAS vs true ROAS: why your ads make sales but no profit

A ROAS of 5 feels like a win — until you notice the platform computed it on gross attributed sales, before fees, vouchers, shipping, and COGS, and while still counting orders that were later returned or cancelled. The dashboard number is a revenue ratio wearing a profit costume. A primer on what platform ROAS hides and how true ROAS is calculated across Shopee, Lazada, and TikTok Shop.

May 29, 20266 min readBhum Soonjun · DataGlass Research

Ads

Shopee's own Ads Help Center defines the metric in one line: ROAS is "advertising-attributed revenue divided by advertising expenditure." Lazada and TikTok Shop report it the same way. It is mathematically clean and operationally misleading — because every term in "advertising-attributed revenue" is gross, pre-cost, and counts orders that were later returned or cancelled. The number on your dashboard is a revenue ratio wearing a profit costume.

A ROAS of 5 does not mean you made five baht. It means five baht of sales were attributed before a single cost was subtracted.

This post argues that platform ROAS and true profit have come apart far enough that optimising to the dashboard number is how disciplined sellers lose money without noticing. True ROAS — attributed revenue net of marketplace fees, vouchers, the shipping cost-share, and COGS, and net of the returns and cancellations the platform already counted — is the only version that tells you whether an ad made money. What would falsify the argument: if platform ROAS and true ROAS tracked within a few percent, the distinction would be pedantic. In the accounts we model they routinely differ by 3–4×.

What the platform number leaves out

Read the definition again: revenue, attributed, gross. Four large variable costs never enter the numerator — the commission and transaction fee (Shopee non-Mall 1–6%, Mall 3–12% per the Help Center), the seller-funded voucher, the free-shipping cost-share, and the cost of the goods themselves. On TikTok Shop the affiliate commission — up to ~20% per Seller University — is a fifth line the dashboard ROAS ignores. Subtract them and a campaign reporting 5.0 frequently lands near 1.3 in true terms: barely above break-even, sometimes below. This is the inverse of a low ACoS reading well — both metrics flatter you because both are computed on gross sales, not on contribution margin.

There is a second, quieter distortion that even careful "calculate your true ROAS" guides miss. The attributed revenue in the numerator includes orders that were later returned or cancelled. Marketplaces attribute the sale at order time; the reversal lands days later and is not retroactively pulled out of the ROAS you already saw. So the dashboard credits your ad for revenue that never settled. On categories with high return rates — fashion, footwear, anything size-dependent — this alone can inflate reported ROAS by double digits before any cost is even considered.

Why this makes you spend on the wrong campaigns

The damage is not just that the number is too high; it is that the error is uneven across campaigns. A campaign selling a 50%-COGS, high-voucher, return-prone SKU overstates far more than one selling a 25%-COGS, no-voucher, low-return SKU. Rank your campaigns by platform ROAS and you are ranking them by how much each one lies, not by how much each one earns. The platform's automated Target ROAS bidding then pours budget toward the campaigns with the largest overstatement, and the ad waste compounds — because the optimisation target is the inflated number.

A 5.0 dashboard ROAS, netted to true ROAS — Shopee, monthly
Platform ROAS = attributed sales / ad spend = THB 100,000 / THB 20,000 = 5.0   <- what the dashboard shows

Subtract the cost stack the numerator never sees:
  - COGS (50%)                 -THB 50,000
  - commission + fee (~10%)    -THB 10,000
  - seller-funded voucher (5%) -THB  5,000
  - free-shipping share (~3%)  -THB  3,000
  Contribution before ads       = THB 32,000

True ROAS = THB 32,000 / THB 20,000 = 1.6

Then: ~8% of the attributed orders were returned or cancelled - already counted in the 5.0.
Adjusted true ROAS  ~=  1.3   <- what actually reached the bank
Same 5.0 dashboard ROAS, three platforms — what true ROAS survives
Line (as % of attributed sales)ShopeeLazadaTikTok Shop
COGS50%50%50%
Commission + transaction fee~10%~10%~8%
Seller-funded voucher~5%~5%~5%
Free-shipping / program cost-share~3%~3%~3%
Affiliate commission~12%
Returns + cancellations (counted in numerator)~8%~8%~12%
Platform ROAS (dashboard)5.05.05.0
True ROAS (after the above)~1.4~1.4~0.9

Illustrative cost shares on a representative campaign at a 5.0 reported ROAS. The same dashboard number survives as ~1.4 on Shopee and Lazada but falls below 1.0 on TikTok Shop, because the affiliate commission and higher return rate eat the contribution the numerator pretended was profit. The metric is identical across platforms; what it hides is not.

How to read true ROAS instead

The fix is to compute, per SKU, attributed revenue minus the full variable cost stack minus the returns/cancellation reversal, divided by ad spend — and then compare it to that SKU's break-even ROAS rather than to a single account-wide target. The arithmetic is simple; the work is the data plumbing — reconstructing fees, vouchers, COGS, and settled-versus-reversed orders per line. Operationally, this is what DataGlass computes: every campaign ranked against its own SKU's break-even bar on true ROAS, with returns netted out, so the budget decision follows the profit instead of the costume. The companion methodology post — how to calculate true Shopee ROAS — works the per-SKU formula in full.

Ranking campaigns by platform ROAS ranks them by how much each one overstates — not by how much each one earns.

Where this argument breaks

  • The 3–4× gap is not universal. Low-COGS, no-voucher, low-return SKUs show a small gap — for them platform ROAS is a decent proxy and the extra reconstruction does not pay.
  • True ROAS needs settled-order data, not just attributed-order data. If your reporting cannot separate returned and cancelled orders from completed ones, the returns adjustment is an estimate, not a measurement.
  • Below ~THB 200,000 monthly revenue, a conservative flat break-even target with a voucher cap usually beats per-SKU reconstruction on effort-adjusted terms.

Methodology

Public-data citations are the Shopee Ads Help Center (ROAS definition, Target ROAS bidding), the Shopee general Help Center (commission, transaction fee, Shop Voucher, Free Shipping Program), the Lazada Sponsored Solutions portal, the TikTok Shop Seller University affiliate-commission documentation, and Bain's e-Conomy SEA 2025 commentary on retail-media inflation. The 5.0→1.3 illustrative pattern and the 3–4× gap reflect Thai Shopee, Lazada, and TikTok Shop accounts in the THB 200K–50M monthly revenue range that we model directly, with cost stacks reconstructed from order-line data; they are not a population claim about all sellers. Worked examples are illustrative composites, not any single store's finances.

Take the next step

See your true ROAS, free.

DataGlass reconstructs every Shopee, Lazada, and TikTok Shop order down to the SKU — fees, vouchers, COGS, shipping, returns — and shows the ROAS that survives all of it, ranked against each SKU's own break-even bar. Not the dashboard number; the one your bank account agrees with.

Sources & further reading

  1. 01
    Shopee Ads Thailand — ROAS definition and Target ROAS

    Shopee's in-platform ROAS definition — "advertising-attributed revenue divided by advertising expenditure" — quoted verbatim in the opening. The metric the dashboard reports and Target ROAS bidding optimises toward.

    https://ads.shopee.co.th/learn/faq/493/1641

  2. 02
    Shopee — Seller commission and fee schedule (Help Center)

    Non-Mall (1–6%) vs Mall (3–12%) commission, transaction fees, Shop Voucher mechanics, and Free Shipping Program seller cost-share — the variable cost stack the platform ROAS numerator never subtracts.

    https://help.shopee.co.th/portal/article/77790

  3. 03
    Lazada Sponsored Solutions — Sponsored Search and Sponsored Discovery

    Lazada's seller-facing documentation showing that Sponsored Search and Sponsored Discovery both report ROAS the same gross, attributed way — the basis of the cross-platform comparison table.

    https://sponsoredsolutions.lazada.com/

  4. 04
    TikTok Shop — Affiliate commission schedule (Seller University)

    TikTok Shop affiliate commission reaching ~20% before platform commission — the extra cost line that drives TikTok true ROAS below Shopee's and Lazada's in the comparison table.

    https://seller-th.tiktok.com/university/essay?knowledge_id=10005772

  5. 05
    Bain & Company — e-Conomy SEA 2025: retail media

    Bain commentary on retail-media inflation across SEA marketplaces — the structural reason the platform-vs-true ROAS gap widens as ad costs rise.

    https://www.bain.com/insights/e-conomy-sea-2025/

More from the archive

  1. March 25, 2026

    How to calculate true Shopee ROAS for profit

    A methodology note. Shopee's in-platform ROAS is gross-revenue based and structurally biased toward overspend at scale. True ROAS is the same formula with one input substituted — and that substitution flips winners into losses on roughly half the typical Shopee catalog. With charts, three SKU profiles, sensitivity analysis, and the operating procedure that applies the substitution at production cadence.

  2. April 8, 2026

    How to reduce Shopee ad waste without killing sales

    On a typical Shopee account, 20–30% of ad spend runs at a structural loss the platform dashboard ranks as winning campaigns. Pausing "underperformers" misses the leak. A research note on the two structural defaults that cause hidden ad waste — and the audit that surfaces it without losing revenue.

  3. May 29, 2026

    What is e-commerce optimization?

    Optimization is not a marketing word — it is an operations-research discipline: use data and math to compute the best decision against an explicit objective. Point it at a Shopee, Lazada, or TikTok Shop store and the objective is true profit, not sales. A primer on why those two numbers stopped moving together, and what optimization actually answers.

  4. February 8, 2026

    The race to zero margin — and how Shopee, Lazada, and TikTok Shop got there

    Read the platform documentation end-to-end and the conclusion is uncomfortable: the discounts buyers see, the free shipping that drives conversion, and the affiliate spend that drives reach are all paid by the seller. The race-to-zero is the equilibrium output of that design.

  5. April 22, 2026

    How to increase profit on Shopee without just selling more

    The standard advice — chase ROAS, scale what works — is structurally biased toward overspend. Why platform ROAS misleads at scale, and the per-SKU break-even bar that replaces it.

Stop guessing. Start deploying.

Join the sellers using DataGlass to turn shop data into the next profit-maximizing action.