The ROAS You See Is a Lie
TikTok Ads Manager reports ROAS as a simple ratio: GMV divided by Ad Spend. This is revenue-based ROAS. It tells you how much gross merchandise value your ads generated relative to what you spent. It does not tell you whether you made money.
Platform ROAS ignores every cost between the sale and your bank account: referral fees (5-8% depending on category), affiliate commissions (5-20%), transaction fees (1-2%), logistics and shipping costs, COGS, small order fees, and tax obligations. These are not edge cases. They apply to every single order.
A concrete example: you spend £20 on ads and generate £100 in GMV. TikTok reports a 5x ROAS. Looks excellent. But break it down — referral fee £6, affiliate commission £12, transaction fee £1.50, shipping £8, small order fees £2, other platform charges £5.50. That’s £35 in fees. Your COGS is £40. You’re left with £5 actual profit from £100 in revenue. Your true Profit ROAS is £5 ÷ £20 = 0.25x. You paid £20 to make £5. That “5x ROAS” campaign is destroying margin.
Why Platform ROAS Misleads
TikTok’s incentive is to maximize GMV flowing through their platform. Their algorithm optimizes for conversions and revenue volume, not your profit. This misalignment has real consequences for how you interpret performance data.
Higher-priced items naturally show better ROAS numbers because the GMV per conversion is larger. But higher price doesn’t mean higher margin. A £50 product with 15% net margin and a £20 product with 40% net margin look very different in Ads Manager — but the cheaper product might be far more profitable per ad pound spent.
Affiliate-driven orders inflate GMV significantly while carrying 10-20% extra commission that platform ROAS completely ignores. A campaign that drives most of its volume through affiliate creators can show strong ROAS while the actual take-home per order is minimal.
Returns compound the problem. When a customer returns an order, the GMV still counts in your ROAS calculation for that period. The revenue reverses in settlement, but the ad spend is already gone. Your reported ROAS stays inflated while your actual economics deteriorate.
The result: sellers scale campaigns that look profitable on the dashboard but are actually bleeding money at the unit economics level. By the time settlement data reveals the truth, weeks of budget have been burned.
The Profit ROAS Formula
Profit ROAS = (Settled Revenue - All Platform Fees - COGS) ÷ Ad Spend
Or equivalently: Net Profit ÷ Ad Spend. This is the number that actually tells you whether your advertising is generating returns.
- Below 1.0 — you’re paying more in ads than you’re earning in profit. Every pound of ad spend is a net loss.
- Between 1.0 and 2.0 — marginal territory. Profitable on paper, but thin enough that volume fluctuations or fee changes could push you negative.
- Above 2.0 — genuinely profitable ad spend. You’re generating at least £2 of profit for every £1 spent on ads.
The fee components you need to subtract before calculating Profit ROAS:
- Referral fee — category-dependent, typically 5-8% of order value. This is TikTok’s core marketplace commission.
- Transaction fee — 1-2% per transaction for payment processing.
- Affiliate commission — if the order was driven by a creator, 5-20% depending on your commission structure.
- Small order fee — applied to orders below a platform-defined threshold. Varies by market.
- Logistics/shipping — either platform-subsidized or seller-paid depending on your fulfillment arrangement and any promotional shipping offers.
- COGS — your product cost including manufacturing, packaging, and inbound freight.
Every one of these must be accounted for at the order level. Averages across your catalog will mislead you because fee structures vary by product category, price point, and fulfillment method.
Per-SKU Attribution Matters
Campaign-level ROAS hides SKU-level problems. A campaign promoting 10 products might show a healthy 3x platform ROAS in aggregate — but two high-margin SKUs are subsidizing eight losers. Without per-SKU attribution, you can’t identify which products deserve more budget and which are burning it.
You need per-SPU (Standard Product Unit) ad spend attribution. Which specific products received how much spend, and what was the profit generated by each? This is the only way to make informed decisions about budget allocation.
TikTok’s Marketing API provides product-level spend data through campaign and ad group reporting dimensions. But spend data alone isn’t enough. You need to match it against per-order profit calculated from the Finance API’s settlement and transaction records. This cross-API join — matching Marketing API spend attribution to Finance API settlement data at the product level — is what makes the calculation non-trivial. The data lives in different systems, uses different identifiers, and settles on different timelines.
The Time Dimension
A SKU that was profitable last week might be losing money this week. TikTok’s algorithm dynamically shifts spend allocation across your ad groups based on predicted conversion rates. Audience fatigue, competitive pressure, and seasonal demand all change the economics of a given product-audience combination over time.
You need daily Profit ROAS tracking to spot trends before they burn through your budget. Single-day fluctuations are noise — the algorithm’s spend allocation varies naturally day to day. But a declining Profit ROAS trend over 5 or more consecutive days is a signal that something structural has changed. Investigate before the losses compound.
TikTok’s attribution window adds complexity. Conversions can be attributed to a click up to 7 days after it occurred. This means today’s reported performance includes conversions from clicks that happened up to a week ago. Your daily tracking needs to account for this lag — early data for any given day will be incomplete and will revise upward as late-attributed conversions come in.
What to Do About It
- Stop making budget decisions based on platform ROAS alone. It’s a vanity metric that conflates revenue with profit. Use it as a directional signal, not a decision-making input.
- Calculate Profit ROAS per SKU, not just per campaign. Aggregate numbers hide the products that are actually losing money. You need product-level visibility.
- Track daily trends. Single-day numbers are noise. Five-day trends are signal. Build a system that surfaces declining Profit ROAS before it becomes a budget problem.
- Set a minimum Profit ROAS threshold for each SKU based on your margin structure. A 60% margin product can tolerate lower Profit ROAS than a 20% margin product. Define your floor and enforce it.
- Review weekly: which SKUs are above threshold? Which are below? Pause or reduce spend on consistent losers. Reallocate budget to proven performers. This is where the actual optimization happens.
AxonRow calculates Profit ROAS automatically by joining TikTok Marketing API spend data with Finance API settlement data — per SKU, per day. See the Ad Analytics playbook chapter for the full breakdown of how each reporting dimension works.