COD in Egypt: why it changes all your numbers
In COD, an order is only an intention and not money yet. It still has to be confirmed, shipped and delivered, and the customer has to pay. The number that decides your profit is the share of orders actually delivered. The rest come back (RTO) and cost you shipping both ways for nothing. So your real cost per order is calculated on delivered orders, not on what shows in Ads Manager.
In Egypt, most selling happens through cash on delivery. That's no small detail at the end of the funnel. It changes how you measure performance from the first step. If you treat COD with the same logic as online payment, your numbers will look good while you lose money without noticing.
An order isn't a sale
With online payment, when an order happens the money is in. With COD, the order is only an intention. It still has to be confirmed, shipped and delivered, and the customer pays at that point. Between "placed an order" and "received and paid" there's real leakage: people who don't answer, people who cancel, people who aren't there at delivery. So the first thing to separate in your head: an order ≠ money.
That's the gap that makes one ad report say one thing while something else happens in the bank account. Ads Manager knows nothing about what happened after the click. It doesn't know whether this order was confirmed or not, delivered or returned. It only sees that someone entered their details and pressed a button, and for it that's enough to count as a "sale".
Delivery rate is the truth, not order count
The number your real profit hides behind is the share of orders that actually arrived and got paid for (Delivered). The rest come back (RTO) and cost you shipping both ways for nothing. So your real cost per order is calculated on the delivered order, not on the order that showed up in Ads Manager. A campaign that seems to bring cheap orders can be losing if the delivery rate is low. The reverse holds too: a campaign with a slightly higher cost per order can actually earn more if its delivery rate is high. The full details are in why orders come back in Egypt and how to reduce returns.
An example with numbers: why a campaign that looks profitable can be losing
Let me show this with a simple number instead of leaving it as theory. If you sell a product for 500 EGP and your margin after all costs (product, shipping, packaging, commissions) is 30%, your break-even ROAS is 1 ÷ 0.30 = 3.33. The full calculation, step by step, is in I get orders and I'm losing money.
Now add the COD layer to the same example. If your delivery rate is 70% instead of 100%, you effectively need to sell 10 orders to collect payment for just 7, and the ad cost was paid on all ten, not on the seven that arrived. So your real break-even isn't 3.33. It's a lot higher than that, because Ads Manager counts the order at registration and not at delivery.
It's the same logic that showed up in the fashion brand case that reached 44 million EGP in 9 months. What made 4.3 million EGP of ad spend actually come back as profit wasn't a change in media buying. It was a shipping company that raised the delivery rate to 75%. That means out of every 4 orders, 3 arrive and turn into money instead of getting lost in returns.
Attribution's effect also multiplies with COD
Another problem gets bigger with COD: the attribution window. The platform credits the sale to the ad the moment the order is registered, not the moment it's received and paid for. So the distance between "the number in Ads Manager" and "the money that actually came in" is made of two separate gaps: the attribution window gap (explained in detail in the ROAS in Ads Manager isn't always the real one), and the delivery gap we're talking about here. If you compare two campaigns without fixing both, you're comparing numbers that don't mean the same thing.
The funnel itself changes
For COD to work, the funnel has to be built around it: a phone number that's easy to collect, quick confirmation, enough trust for someone to order without paying, and as little friction as possible. That's what led us, in the case of the store where we removed the cart completely, to cancel the cart and make the journey a landing page with everything on it and a direct order form underneath. Fewer steps, and more people completing and confirming. The result in one month was 3.64 million EGP, a CVR of 3.14% (up 5.7%), and lost orders down 21.7%. The full architecture is in the right COD architecture, and if your store is on Shopify specifically, cash on delivery on Shopify explains the same idea on that platform.
It's important to separate two things here, because the fix is completely different. Lost orders happen before the order is even registered: a customer started the form and abandoned it. You fix that by shortening the funnel and simplifying the form. Returns (RTO) happen after the order was registered and shipped and no money came back. You fix that with confirmation and the quality of your shipping partner. Both waste money already paid for ads, but each needs a different fix.
The problem repeats in every conversation with the media buyer
If you ask a typical media buyer "is the campaign doing well?" and they say "yes, ROAS 4", the missing question is: is that number calculated on registered orders or delivered ones? And on which attribution window? If the answer isn't clear, or isn't consistent from one week to the next, you aren't evaluating performance. You're evaluating a way of presenting numbers. Other signs of the same problem are in signs your media buyer is burning your money, and if you're thinking of changing your media buyer altogether, how to choose a media buyer covers the questions to ask before you sign with anyone.
The practical fix isn't complicated. Ask for a weekly report that separates the two numbers from the start: the count of registered orders, and the count of delivered orders from the same batch after two weeks, once it has settled. If the media buyer can't give you that split, the problem isn't the ad. The problem is that nobody has a true view of performance.
Measure on delivered orders, or you're optimizing on a lie
If you tune your campaigns on "number of orders" without tying it to delivery rate and margin after returns, you're optimizing on a number that lies. The right decision gets made on the order that arrived and actually paid. That's the number that tells you the truth about each campaign.
To apply this in practice, track three numbers weekly instead of one: delivery rate (how many out of every 100 orders arrived), your break-even after multiplying margin by delivery rate, and your actual cost per order compared with those two. If you aren't sure how to read a campaign report in the first place, how to read a media buyer's report picks just 6 numbers to look at so you don't get lost among dozens. And if you aren't sure your pixel records these numbers correctly to begin with, start with how to know if my pixel is tracking correctly, because any decision made on wrong data will take you in the wrong direction.
Work out your break-even without pen and paper using the real profit calculator or the break-even calculator, and compare yourself with real market rates in the ecommerce benchmarks for Egypt and the Gulf so you know where you stand before you judge any number.
And if you feel the answer is more budget, read why raising the budget isn't always the answer first. Raising spend on a losing equation only makes the loss bigger.
This is part of my work as a Performance Marketer and Media Buyer in the Egyptian and Gulf markets. Details of the work are here and the results, with their numbers, are in the case studies.
Frequently asked questions
Why does COD change my calculations?
Because an order doesn't equal money. Between placing an order and receiving and paying, there's leakage: people who don't answer, people who cancel, people who aren't there at delivery. So you have to measure on delivered orders, not registered ones.
What does RTO mean?
Orders that come back without being received. They cost you shipping both ways for nothing, and they turn a campaign that seems to bring cheap orders into one that's actually losing.
What's the difference between lost orders and returned orders (RTO)?
Lost orders happen before the order is even registered, when a customer starts the form and abandons it. RTO happens after the order was registered and shipped and no money came back. Both waste money already paid for ads, but at different points in the funnel, and the fix is different.
How do I know if my campaign is really profitable on COD or only looks good?
Compare cost per order against your break-even after multiplying margin by the delivery rate, instead of against the revenue in Ads Manager. A campaign that seems to bring cheap orders can be losing if the delivery rate is low, and a campaign with a higher cost per order can earn more if the delivery rate is high.
Is the ROAS in Ads Manager wrong on COD?
It isn't wrong, but it's incomplete. Ads Manager counts the order value the moment it's registered, without knowing whether it will arrive or come back. The right number is the one that matches the money that actually came in after delivery, instead of the number on the ad dashboard.
Want me to look at your numbers?
Message me on WhatsApp