Field Notes/Ads Technical

Break-even ROAS is the zero line: the Target ROAS that actually maximizes Shopee profit

Setting your Target ROAS to your break-even ROAS does not protect profit — it targets exactly zero, for every possible volume. The target that maximizes profit is break-even marked up three times: by the demand your ads did not create, by the price your own expansion pays, and by the gap between your average click and your last one. On mid-market parameters those compound to 3.3×, moving the correct target on a 20%-margin product from 5.00 to 16.67.

September 1, 202612 min readBhum Soonjun · DataGlass Labs Research
Profit at break-even ROAS
0

For every volume, every budget, every elasticity

Markups on break-even
3

Attribution, click supply, value decay

Correct target, 20% margin
16.67

Against a break-even of 5.00

Reported ÷ marginal, at the optimum
2.38×

One campaign, one instant, two readings

Ads

"The curve is asymmetric about break-even: above it a mis-set target forgoes profit, below it destroys capital, and the reciprocal makes the second far the steeper of the two."
— DataGlass Labs, CTR & Target ROAS under CPM and CPC, Corollary 1c [1]

That is Corollary 1c of the note this post unpacks, and it contradicts the advice everyone gives — ours included, until now. The standard guidance is to compute break-even ROAS as one divided by your contribution margin and set your Target ROAS above it. The first half is right. The second half is far too weak, because break-even is not a floor you stand on. It is the line where the whole of your margin goes to the auction while the campaign reports itself perfectly on target.

The Target ROAS that maximizes profit
R*_profit  =  ( a / m ) x ( 1 + 1/e ) / ( 1 - d )

  m = contribution retained per baht of attributed GMV
  a = attributed GMV / incremental GMV       (>= 1)
  e = elasticity of click supply to price
  d = rate at which the marginal click decays in value

  1/m alone is BREAK-EVEN. The other three factors are
  the reason break-even is not a floor.

The reason is visible in one line of algebra. Setting the target exactly at break-even permits a bid equal to the entire contribution a click carries. Profit is then exactly zero at every possible volume, so no amount of scale rescues it. The three factors beside 1/m in the formula above are what separate the line where profit vanishes from the target that maximises it.

The thesis: the Target ROAS that maximizes profit is break-even multiplied by three separate markups, none of which appears anywhere in marketplace ad reporting. On plausible mid-market parameters those markups compound to more than 3x, which moves the correct target on a 20%-margin product from 5.00 to about 16.7. A campaign that entered 5.00 and reports 5.00 is not on target. It is spending roughly eight times what it should. What would falsify this: a click-supply curve flat enough that buying more volume did not raise the price of the volume you were already buying.

Why break-even earns exactly zero

Write m for the contribution you retain per baht of attributed GMV — what survives cost of goods, category commission, transaction and payment fees, seller-funded vouchers, the free-shipping cost share and a returns reserve, every line of which is set out in Shopee Thailand’s published fee schedule [2]. Break-even ROAS is 1 ÷ m: the return at which advertising revenue covers advertising cost and nothing else. Now put that target into the bid ceiling derived in how Shopee ads bidding works. The permitted price per click becomes exactly the contribution a click carries.

Profit at the ceiling, as a function of the entered target
profit(bid at ceiling) = ( m x v  -  v / R* ) x Q

  at R* = 1/m :  m x v - v/R* = m x v - m x v = 0

  -> zero profit, for EVERY Q, k and elasticity.
     The volume is real, the GMV is the largest on the page,
     and all of the contribution goes to the auction.

The zero is independent of volume, and that is the part that catches people out. A seller at break-even who raises spend buys more clicks, more attributed GMV and more reported revenue — and still earns nothing, at any volume the campaign can reach. Clicks, orders, revenue and the platform’s own ROAS reading all improve. Profit does not, because there is no quantity of clicks bought at exactly their own contribution that adds up to more than zero.

The curve is asymmetric, and the wrong side is much steeper

Below break-even the loss is not symmetric with the profit forgone above it. The permitted price is the value of a click divided by the target, so it is reciprocal in the target: cutting the target raises the bid without limit. Above break-even the most you can lose is the finite amount you were going to make. Below it, there is no bound at all. Here is the same campaign from the previous post — a click worth THB 10.00, a 20% contribution margin, break-even at 5.00, iso-elastic click supply at elasticity 1.5 — swept across entered targets with a slack budget.

One campaign, budget slack, five entered targets. Every visible metric improves all the way down. Only the last column reverses.
Target enteredBid (THB)Clicks/daySpend (THB)Attributed GMV (THB)Profit after ads (THB)
8.33 — the optimum here1.201,0001,20010,000+800
6.321.581,5142,39615,141+632
5.00 — break-even2.002,1524,30321,5170
4.002.503,0077,51830,070−1,504
3.003.334,63015,43246,296−6,173

Computed on an assumed iso-elastic click-supply curve with elasticity 1.5, fitted to no account. Source: DataGlass Labs technical note, worked example, Case 3 [1].

Setting the target two points below break-even loses THB 6,173 a day — nearly eight times the most this campaign could ever have earned — while posting the largest GMV on the page, four and a half times the optimum’s. Clicks, orders, revenue, and the platform’s own ROAS reading against a lowered target all look better as the campaign walks off the cliff.

Daily profit against the entered Target ROAS — the asymmetry in figures
-6,173-4,429.8-2,686.5-943.38003.004.005.006.328.3310.0012.00
Profit after ads, THB/dayTarget ROAS entered

The peak sits at 8.33 on these parameters and the curve falls away gently to its right — overshooting the target forgoes a bounded amount. To the left of break-even at 5.00 it falls without bound, because the permitted bid is reciprocal in the target. Computed on the assumed supply curve.

Break-even ROAS is the zero line, not a floor. Above it you forgo a bounded profit; below it there is nothing bounding the loss.

Markup one: buying more volume reprices the volume you already had

The first markup has nothing to do with attribution or with your product. It is a property of buying anything in an auction. Winning more clicks requires bidding higher, and the higher bid is paid on every click you were already winning, not only on the marginal one. So the cost of the next click is not the price you see. It is the price you see, multiplied by one plus the reciprocal of the elasticity of click supply.

The marginal cost of a click
observed price per click:   p
marginal cost of a click:   c = p x ( 1 + 1/e )

profit is maximized where  m x v = c,  not where  m x v = p

so the profit-maximizing target on this markup alone is

  R*  =  (1/m) x (1 + 1/e)      i.e. break-even, marked up

The elasticity e is finite for any real campaign — audiences are not unlimited — so the markup is strictly greater than one, always. Only as click supply becomes perfectly elastic does bidding to break-even become correct, and perfectly elastic supply means an infinite audience at a fixed price, which is not a description of any marketplace. The table below shows what the markup is worth on a 20%-margin product, where break-even is 5.00 throughout.

The click-supply markup, at a 20% contribution margin (break-even ROAS 5.00).
Click-supply elasticityMarkup (1 + 1/e)Profit-maximizing targetBid, where full contribution = THB 2.00
0.5 — near-saturated audience3.00x15.00THB 0.67
1.02.00x10.00THB 1.00
1.51.67x8.33THB 1.20
3.01.33x6.67THB 1.50
Unlimited supply (theoretical)1.00x5.00THB 2.00

Computed, not measured. The lower the elasticity — the more saturated your audience — the further above break-even the correct target sits. Source: DataGlass Labs technical note, Lemma 1c [1].

Markup two: some of the credited GMV was going to happen anyway

The second markup is attribution inflation: the ratio of GMV the platform credits to your ads to GMV your ads actually caused. Write it as a. The evidence that a is materially above one is not speculative. In eBay’s large-scale field experiment, Blake, Nosko and Tadelis found that returns to branded paid search were close to zero once measured against a proper control — the traffic converted whether or not the ad ran [3]. Lewis and Rao showed separately that the statistical power required to detect true advertising returns is far beyond what most campaigns can supply, which is why attributed figures dominate the record [4].

Attribution inflation enters as a haircut on the margin: your true contribution per credited baht is m ÷ a rather than m. Every result above survives that substitution unchanged, which is a convenient property — it means a is a multiplier on the correct target rather than a separate correction. Note that a is the one parameter here that platform reporting cannot supply even in principle. It requires a holdout or a geo test.

Markup three: the average click is worth more than the marginal one

The third markup is the one that makes the reported number structurally misleading rather than merely optimistic. A campaign buys its cheapest, best-converting traffic first. As it expands, the value of the marginal click declines. Write d for the rate of that decay. Then the average click across the campaign is worth 1 ÷ (1 − d) times the marginal one — and the Target ROAS is enforced on the average while the profit decision lives at the margin.

Reported ROAS against marginal ROAS at the profit optimum
at the profit optimum:

  reported ROAS  =  (a/m) x (1 + 1/e) / (1 - d)
  marginal ROAS  =   a/m

  reported / marginal  =  (1 + 1/e) / (1 - d)

Example at e = 1.5, d = 0.30:
  (1 + 0.667) / 0.70  =  2.38x

The same campaign, the same instant, measured two ways.

This overturns a comfortable reading — that a slack budget is inert. It is not. A target enforced on the campaign average keeps buying while the marginal click is already unprofitable, because the early cheap clicks hold the average up. The budget is then the only thing that stops the expansion, and raising it funds precisely the volume that lifts the price on every click and lowers the value of the last one.

How value decay compounds with the other two markups. Break-even 5.00; attribution inflation 1.4; click-supply elasticity 1.5.
Value decay dMarkup 1/(1−d)Reported ÷ marginal ROASProfit-maximizing target
0.00 — no decay1.00x1.67x11.67
0.151.18x1.96x13.73
0.301.43x2.38x16.67
0.451.82x3.03x21.21

Computed on stated parameters. Attribution inflation needs a holdout or geo test to estimate and cannot be read off platform reporting; value decay needs bid-level variation. Source: DataGlass Labs technical note, Lemma 1d [1].

The same campaign, measured properly

Take the campaign from the top of this post and remove the two flattering assumptions. Let the marginal click decay at 0.30, normalised so the average click is still worth THB 10.00 at 1,000 clicks. Let attribution inflate by 1.4 — meaning 29% of credited GMV is demand the campaign captured rather than created, well inside the range the eBay experiment implies for branded traffic [3]. The seller enters 5.00, the break-even figure, as the guides advise.

A campaign reporting itself exactly on target, and the same campaign at the target that maximizes profit.
Per dayEntered target 5.00Optimum, target 16.67
Bid / observed effective CPCTHB 1.71THB 0.74
Marginal cost of a clickTHB 2.85THB 1.24
Clicks1,696488
SpendTHB 2,895THB 363
Attributed GMVTHB 14,476THB 6,054
Reported ROAS5.0016.67
Marginal ROAS2.107.00
Profit on a true, incremental basis−THB 827+THB 502

Attribution inflation 1.4, value decay 0.30, click-supply elasticity 1.5, contribution margin 20%. Computed on assumed parameters; no account was measured. Source: DataGlass Labs technical note, worked example, Case 4 [1].

The campaign reporting itself on target is spending eight times what it should and losing THB 827 a day. Its reported 5.00 is an average over 1,696 clicks; the 1,696th click returns 2.10 against the 7.00 it must clear to pay for itself. The reported figure cannot disclose this, because the average is held up by the first few hundred clicks, which are cheap and convert well. The corrected target of 16.67 is break-even of 5.00 multiplied by 1.40 for attribution, by 1.67 because extra volume reprices every click, and by 1.43 because the average click beats the marginal one.

A campaign hitting its Target ROAS exactly is not evidence that the target was right. It is evidence that the platform did what you asked.

What this changes about optimizing Shopee profit

The same three markups on a different product
markup block  =  a x (1 + 1/e) / (1 - d)
              =  1.4 x 1.6667 / 0.70  =  3.333x

A 35% contribution accessory
  break-even ROAS = 1 / 0.35           =  2.857
  profit-maximizing target = 2.857 x 3.333 =  9.52

A 20% contribution appliance
  break-even ROAS = 1 / 0.20           =  5.00
  profit-maximizing target = 5.00 x 3.333 = 16.67

Same shop, same ad account, same auction.
One shop-wide Target ROAS cannot be right for both.

Three practical consequences, in the order they are worth acting on. First, stop treating break-even as a safety line — it is the zero line, and a target set at or below it bids above the profit optimum by construction. If you have not computed it per product, our free break-even ROAS calculator does the arithmetic. Second, the correct target is product-specific and margin-specific, because break-even is 1 ÷ m and m varies across a catalogue far more than most sellers assume once vouchers and the free-shipping cost share are attributed per SKU. Third, a budget is not a crude instrument. It is the only lever denominated in money spent rather than value claimed, and in the loss region it is the only thing that can bound the damage: at a target of 4.00 in the budget sweep in how Shopee ads bidding works, a THB 2,400 budget turns a loss of THB 1,504 into a profit of THB 631, a swing of THB 2,135 a day.

Where this argument breaks

  • The click-supply curve is assumed iso-elastic and is not fitted to any account. Elasticity almost certainly varies by product, by daypart and by how saturated the campaign already is, and the markup is sensitive to it — the difference between elasticity 0.5 and 3.0 moves the correct target from 15.00 to 6.67 on the same product.
  • Attribution inflation cannot be read off platform reporting. Estimating it requires a holdout or a geo test, and the eBay result [3] is a branded-search finding at one large retailer, not a Shopee constant. Treat 1.4 as an illustrative parameter, not a benchmark.
  • Value decay requires bid-level variation to identify. A campaign that has never varied its bid contains no information about how quickly its marginal click loses value.
  • The optimum is derived for one campaign in isolation. With several campaigns and a shared budget, the correct rule is to equalise marginal return across them, and a per-campaign optimum is only the right answer when the budget is genuinely unconstrained.
  • All of this prices a static auction. It says nothing about how competitors respond if many sellers raise their targets at once, which would lower clearing prices and raise every optimum in the market.

Methodology

No claim in this post rests on DataGlass customer data. The three markups and the profit-optimum formula are derived from the definitions stated in our technical note [1], which uses no dataset. Every table is arithmetic on stated parameters — a 2% click conversion rate, a THB 500 attributed order value, a 20% contribution margin, iso-elastic click supply, and where noted an attribution inflation of 1.4 and a value decay of 0.30 — chosen to be representative of a mid-market Thai marketplace listing rather than fitted to one. The two empirical results cited for attribution inflation are Blake, Nosko and Tadelis in Econometrica [3] and Lewis and Rao in the Quarterly Journal of Economics [4], neither of which is a Shopee study. Our own measured Shopee figures, including CPC and CPM by hour of day across 333.9 million impressions, are published separately as an open CC BY 4.0 dataset [5].

Frequently asked questions

Take the next step

Set the target on the number that decides, not the one that reports.

DataGlass reconstructs contribution per product from your Shopee, Lazada and TikTok Shop order lines — cost of goods, commission, payment fees, vouchers, the free-shipping cost share and a returns reserve — then derives the Target ROAS each product can carry and reports the marginal return alongside the platform’s average.

Sources & further reading

  1. 01
    DataGlass Labs — CTR & Target ROAS under CPM and CPC (technical note, 18 August 2026)

    Lemma 1c derives the profit optimum under constant click value and the asymmetry about break-even; Lemma 1d adds attribution inflation and value decay and gives the reported-to-marginal ratio. The worked-example tables are reproduced from Cases 3 and 4 of the same note.

    /assets/papers/DataGlass_CTR_and_Target_ROAS_under_CPM_and_CPC_2026-08-18.pdf

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

    Commission by category, transaction and payment fees, voucher mechanics and Free Shipping Program cost-share — the cost stack that determines the contribution margin m, and therefore break-even ROAS, per product.

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

  3. 03
    Blake, T., Nosko, C. & Tadelis, S. (2015) — Consumer Heterogeneity and Paid Search Effectiveness: A Large-Scale Field Experiment, Econometrica 83(1)

    The eBay field experiment finding returns to branded paid search close to zero once measured against a randomised control — the empirical basis for treating attribution inflation as materially above one rather than as a rounding error.

    https://onlinelibrary.wiley.com/doi/10.3982/ECTA12423

  4. 04
    Lewis, R. A. & Rao, J. M. (2015) — The Unfavorable Economics of Measuring the Returns to Advertising, Quarterly Journal of Economics 130(4)

    On the statistical power required to detect true advertising returns — why attributed figures dominate the record and why attribution inflation is rarely measured rather than rarely present.

    https://academic.oup.com/qje/article/130/4/1941/1916546

  5. 05
    DataGlass — Marketplace benchmarks (open dataset, CC BY 4.0)

    Aggregated first-party Shopee measurements of CPC, CPM, CTR, conversion rate and margin by hour of day across 9.11 million clicks and 333.9 million impressions — the measured counterpart to the assumed parameters used in this post.

    /research/marketplace-benchmarks

  6. 06
    Shopee Ads — GMV Max and Target ROAS bidding (Seller Education Hub)

    Shopee seller documentation on GMV Max as an auto-bid campaign type in which the seller enters a budget and a Target ROAS — the two instructions whose profit consequences this post prices.

    https://seller.shopee.co.th/edu/

More from the archive

  1. September 1, 2026

    How Shopee ads bidding works: what your Target ROAS and budget actually do to a bid

    How Shopee ads bidding works, derived: GMV Max gives you two boxes — a Target ROAS and a daily budget — and every guide treats them as two levers. They are not. Both collapse into a single threshold on value-to-cost before any bid is placed, only one is binding at a time, and the other is doing nothing at all. Here is the derivation, the three regimes a campaign can be in, and the one-line test that tells you which of your two levers is switched off.

  2. May 30, 2026

    What is Target ROAS? How to set it in Shopee GMV Max without burning profit

    What is Target ROAS? It is the revenue-to-ad-spend ratio Shopee GMV Max optimises toward — and on the Shopee fee schedule effective 4 August 2026, a THB 1,000 product with THB 600 of COGS is left with 7.7% margin before ads, so a Target ROAS of 5 recovers THB 0.39 of contribution per THB 1.00 of ad spend while the campaign reports that it hit its target. What Target ROAS means, how to set it in GMV Max, and the two formulas — break-even ROAS and target-margin ROAS — that protect your margin.

  3. 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.

  4. May 29, 2026

    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.

  5. September 1, 2026

    Shopee ad benchmarks 2026: what a click and a thousand impressions actually cost

    Across 333.9 million Shopee impressions and 9.11 million clicks on 80+ Thai shops, the price of a click varies 2.01× by hour of day while the rate at which people click varies 1.14×. CPC ranges THB 3.36 to THB 6.75, CPM ranges THB 89.16 to THB 200.15, and every behavioural input is nearly flat. The full table, the methodology, and the two ways a benchmark like this gets misused.

  6. April 22, 2026

    Why scaling Shopee ad budget grows revenue and shrinks profit

    A Shopee account moving its monthly ad budget from THB 40,000 to THB 100,000 commonly grows revenue 60% and loses a third of its net profit — and not one decision in that sequence looks wrong on the dashboard. The arithmetic of the scaling trap, why platform-reported ROAS is blind to it by construction, and the per-SKU break-even bar that stops it.

Stop guessing. Start deploying.

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