How does cash on delivery change ecommerce economics in Europe?
Cash on delivery turns a fraction of your orders into parcels that come back unpaid. Every refusal produces zero revenue, bills you for shipping in both directions, and still burns the ad spend that bought the order. Price that into your margin and breakeven before you scale, or the courier invoice will price it in for you.
TL;DR
- COD is still the default in much of Central and Southeastern Europe. Refusing to offer it does not make your store modern; it makes it smaller.
- Honest operator rejection rates run 3-10% of parcels. Slow delivery and impulse categories push you toward the top of that range.
- In our worked example store, 6% rejection at €7 round-trip shipping cuts per-order margin from €18.73 to €17.19 and moves breakeven ROAS from 2.14x to 2.33x.
- The fix stack, in order of impact: order confirmation by call or SMS, fast delivery, address validation, courier office and locker pickup, the right courier contract.
- Migrate buyers to prepaid with small, math-priced incentives. Keep COD where it is the trust bridge that wins the sale in the first place.
- The free breakeven calculator prices rejection rate directly: set your own rate and watch your real breakeven move.
Where COD still dominates, and why
We operate our own and client COD brands in Bulgaria and across the EU, and here is the ground truth the payment-provider slide decks skip: in much of Central and Southeastern Europe, cash at the door is not the fallback option. It is the default. Buyers with perfectly functional cards still pick COD, order after order, and they are not being irrational.
They are being careful. COD means you pay when the parcel is physically in your hands, which removes the oldest fear in ecommerce: sending money to a shop you have never heard of and receiving nothing. That habit formed in the years before online card payments felt safe, and habits formed around money outlive the conditions that created them. Some couriers here even offer an open-and-inspect option before the buyer pays. That is how deep the trust gap runs.
The part that costs you money is refusal psychology. A COD buyer makes the purchase decision twice. Once at checkout, where it is easy, and once at the door, days later, with real banknotes. Between those two moments the impulse cools, the salary date shifts, a partner asks what arrived, a competitor's parcel shows up first. Checkout is a promise. The doorstep is the payment.
You can resent this or you can price it. We treat COD the way we treat VAT: a condition of the market, not a flaw in the plan. The rest of this article is the pricing.
The rejection problem: zero revenue, double shipping
A refused parcel is the worst line in your P&L. Not low margin. Zero revenue, plus shipping paid twice, because the courier hands nothing over, hauls the box back to your warehouse, and bills you for both legs of the trip. You restock the product, write off the packaging, and move on. The ad platform does not.

That last part deserves its own paragraph. Your purchase event fired the moment the order was placed, so Meta and Google reported the conversion value, your dashboard ROAS absorbed it, and the money never arrived. On a COD-heavy store, platform-reported performance and bank-account performance drift apart by exactly your rejection rate. We have watched accounts celebrate a strong month in Ads Manager while the warehouse quietly filled a shelf with returned boxes.
How many come back? In our accounts, an honest range is 3-10% of parcels. Where you land inside it is mostly earned. Fast delivery, confirmed orders, and clean addresses keep you near the bottom. Slow delivery is the single biggest aggravator, because every extra day in transit is another day for the doorstep decision to go against you. Impulse categories sit structurally higher: the same emotional spike that made checkout easy makes the refusal easy too. And an order with a mistyped phone number never had a chance.
There is also a quieter cost: cash reconciliation. The courier collects your revenue at thousands of doors and remits it on a contract cycle, so your money spends days riding around in vans before it becomes yours. Someone on your team reconciles collected cash against delivered orders every week. None of that shows up in a ROAS column.
The real math: pricing a 6% rejection rate
Take the same store we walked through in our breakeven ROAS teardown: €40 AOV at 20% VAT, €8 landed product cost, €5.50 pick-pack-ship, €0.60 of payment and COD collection fees, €0.50 packaging. Net of VAT, a delivered order carries €18.73 of margin.
Now let 6% of parcels come back, at €7 round-trip courier cost per refusal:
Expected margin = margin x delivery rate - rejection rate x round-trip shipping
€17.19 = €18.73 x 0.94 - 0.06 x €7.00
That is €1.54 of margin per placed order, gone. Not per refused order. Per order, across everything you ship, because the 6% is baked into all of them. On 1,000 placed orders a month it looks like this: 60 refusals, €420 of round-trip courier fees, about €1,124 of delivered margin that never materialized, roughly €1,544 of total monthly drag.
Breakeven moves with it:
| Rejection rate | Expected margin per order | Breakeven ROAS |
|---|---|---|
| 0% | €18.73 | 2.14x |
| 3% | €17.96 | 2.23x |
| 6% (our example) | €17.19 | 2.33x |
| 10% | €16.16 | 2.48x |
The per-refusal view is uglier. At a planned 3.0x ROAS, each order costs €13.33 in ads. A delivered order nets €5.40 after that ad cost. A refused one is €20.33 of real cash out: the €13.33 that bought the order plus €7 of courier fees, against zero revenue. One refusal burns the profit of nearly four deliveries. That asymmetry is why rejection rate belongs on your weekly scorecard, not in a footnote of the quarterly review.
The calculator below prices rejection rate directly: it sits as an input next to VAT and payment fees. Put in your own rate and round-trip cost, and watch what your real breakeven and your CPA ceiling do.



