Aahfil.

ROAS vs MER vs Contribution Margin: Which Number Should a Kuwait Store Run On?

What ROAS, MER and contribution margin each measure, one month in KWD where a healthy ROAS hides a loss, where each number misleads, and a weekly routine that uses all three.

·11 min read

ROAS vs MER vs contribution margin: what each one measures

A Kuwait store should run on contribution margin, check MER every week, and use ROAS only for decisions inside a single ad platform. ROAS tells you what a platform says its ads returned, MER tells you what the whole business took in for each dinar of advertising, and contribution margin tells you whether any money was left once the product, delivery and fees were paid.

ROAS. Return on ad spend is the revenue a platform attributes to its own ads divided by what you spent on that platform. Meta, Google, TikTok and Snapchat each calculate it with their own attribution rules, so it measures the platform's view of its contribution rather than what arrived in your bank account. It is fast, detailed and useful for choosing between ads, and the least reliable of the three for judging the business.

MER. Marketing efficiency ratio is total store revenue divided by total ad spend across every channel. Because it starts from your own sales figure rather than from four platforms' claims, nothing can be counted twice. It answers a blunter question than ROAS: for every dinar that went into advertising this week, how many dinars of sales came out, whichever channel deserves the credit.

Contribution margin. Contribution margin is revenue minus every cost that rises with each order, and contribution after marketing subtracts ad spend as well. In Kuwait that list is longer than a generic guide suggests: landed product cost, delivery to each governorate, KNET and card fees, packaging, and the cost of cash-on-delivery orders refused at the door. It is the only one of the three that tells you whether you made money.

Ready to start your Shopify store?

Start a free trial and try the platform for yourself.

One month, three answers: a worked example in KWD

Take an illustrative fashion store in a sale month. It takes 1,000 orders at an average of KD 20 after a 25 percent discount, so KD 20,000 of orders are placed. Six hundred are paid by KNET or card and 400 are cash on delivery. Assume 60 of those COD orders, or 15 percent, are refused at the door, leaving 940 delivered orders and KD 18,800 actually collected.

Ad spend for the month is KD 7,000: KD 4,500 on Meta, KD 1,500 on Google and KD 1,000 on TikTok. Meta's dashboard reports KD 18,000 of purchases, a ROAS of 4.0. Google reports KD 7,500, a ROAS of 5.0, and TikTok reports KD 2,000, a ROAS of 2.0. Together the platforms claim KD 27,500 from a store that took KD 20,000 of orders.

Now the costs, all assumed for the illustration. Landed product cost is KD 10 per delivered order, or KD 9,400. Picking, packaging and delivery run KD 2.5 per delivered order, or KD 2,350. Payment fees average KD 0.40 per prepaid order, or KD 240. Each refused COD order costs KD 3.5 for the failed attempt, the return trip and repacking, or KD 210. Contribution before advertising is KD 6,600.

Subtract the KD 7,000 of ad spend and the month lost KD 400, even though the biggest channel reported a ROAS of 4.0 and the blended platform figure was 3.93. MER on collected revenue was 2.69, while break-even MER, which is collected revenue divided by contribution before advertising, was 2.85. MER caught the loss. A fuller COD failure calculation, with staff time and tied-up stock, would make it larger.

Where ROAS misleads, and why retargeting always looks like the star

Every platform counts the same customer. A shopper who saw a TikTok video, tapped a Meta story and then searched your brand on Google can be claimed by all three, which is how KD 20,000 of orders became KD 27,500 of reported purchases in the example. Meta's attribution settings can credit a purchase within a window after someone clicks an ad and, depending on the setting chosen, after they only viewed it.

Retargeting and branded search benefit most, because they reach people who were already on their way to buying. A cart abandoner who returns through a retargeting ad was often coming back anyway, and in a market Kuwait's size your warm audiences overlap heavily with your existing customers. The campaign with the highest ROAS in a Kuwait account is often the one doing the least to create new demand.

Cash on delivery adds a distortion that is especially sharp in Kuwait. A pixel purchase event normally fires when the order is placed, not when the driver collects the cash, so a refused COD order stays in the platform's revenue for good. The more COD you take, the further platform ROAS drifts above reality, which is why the ROAS calculator should be given delivered, collected revenue rather than the Ads Manager figure.

Discount seasons make it worse. During White Friday, Ramadan or an Eid sale, ROAS rises because demand rises and retargeting catches people who were waiting for the offer, while the discount quietly removes margin from every order. A ROAS of 4.0 at full price and a ROAS of 4.0 at 25 percent off are not the same result, and ROAS on its own cannot tell them apart.

Where MER and contribution margin mislead you

MER hides the channel mix. A healthy MER says the whole machine is working, but it cannot tell you that Google is carrying the month while TikTok burns money, or the reverse. It is a business-level alarm, not a steering wheel, and cutting a channel because MER fell is guesswork unless you pair it with a holdout test or at least a sustained change in that channel's spend.

MER also flatters you when returning customers do the buying. Repeat orders, WhatsApp reorders and customers who came back for Eid all sit in total revenue, so MER can hold steady while you acquire almost nobody new. The fix is a second version: first-order revenue from new customers divided by ad spend, read alongside customer acquisition cost. If total MER is steady and new-customer MER is falling, growth is stalling.

Contribution margin misleads when its inputs are guesses. Landed cost has to include freight, customs and the exchange rate you paid your supplier at. Delivery cost varies by courier and by area, and a store delivering across all six governorates may not pay one flat rate. Payment fees differ between KNET and credit cards. If these are estimates nobody has updated since launch, the margin figure is fiction with decimal places.

It is also slow. Courier invoices, refused-order reports and gateway statements arrive days or weeks after the sale, so a true contribution figure for last week is rarely ready on Sunday morning. The practical answer is a per-order cost estimate you use weekly and correct monthly, which is how the break-even ROAS calculator works: price, product cost and per-order fees go in, and your break-even comes out.

A weekly routine that uses ROAS, MER and contribution margin together

Sunday, the business check. At the start of the Kuwaiti working week, pull last week's collected revenue from the store, not from Ads Manager, and total ad spend across every platform. Work out MER and compare it with your break-even MER. If MER sits below break-even, nothing else in the meeting matters until you know why: a sale, a stock problem, a spike in refused COD orders, or spend that ran ahead of demand.

Then the growth check. Count new customers and their first-order revenue, and divide ad spend by each. A rising cost per new customer alongside a steady total MER means returning buyers are hiding a slowdown. In a small market this is the number that warns you first that your audiences are saturating, because Kuwait runs out of new people sooner than a larger country does.

Only then, the platforms. Use ROAS inside each channel to decide which campaigns, ad sets and creatives get more or less budget. Give each platform its own target, set from your break-even figure and adjusted for how generously that platform attributes, rather than one number for all of them. ROAS is good at ranking ads against each other in the same account and poor at telling you whether the account is worth running.

Once a month, the true-up. Replace the estimates with real courier invoices, gateway statements, refused-order counts and landed costs, recalculate contribution after marketing, and update the per-order figures you use weekly. Plan ahead for discount seasons, because break-even moves the moment prices drop. If you are still setting up, you can start a free Shopify trial and keep order, payment and first-purchase data in one place for this routine.

Start your free Shopify trial

Frequently asked questions

What is the difference between ROAS and MER?+

ROAS is the revenue one ad platform attributes to its own ads divided by the spend on that platform, so it reflects that platform's attribution rules. MER is total store revenue divided by total ad spend across every channel, so nothing can be counted twice. Because Meta, Google and TikTok can each claim the same order, the sum of platform ROAS figures can run above what the store actually took in. Use ROAS to compare ads within one platform and MER to judge whether advertising as a whole is paying.

What is a good MER for an online store in Kuwait?+

There is no universal good MER, because it depends on your margins. Work out your own break-even MER instead: collected revenue divided by contribution before advertising, where contribution is revenue minus landed product cost, delivery, KNET and card fees, and the cost of refused cash-on-delivery orders. In an illustrative month with KD 18,800 collected and KD 6,600 of contribution before ads, break-even MER is 2.85. Anything below that loses money that month, however good an individual platform's ROAS looks.

How do I include failed cash-on-delivery orders in contribution margin?+

Count them in two places. First, remove refused orders from revenue, because the money was never collected, even though the ad platform may still count the purchase. Second, add the cost of each failed attempt, including the outbound delivery, the return trip and repacking, as a cost against the orders that did arrive. In a worked example where 60 of 400 COD orders were refused at an assumed KD 3.5 each, that added KD 210 of cost and removed KD 1,200 of revenue a platform had already counted.

Keep reading

All Measurement & ROI posts →