Short answer
A COD order is not paid revenue when it is placed.
For cash-on-delivery ecommerce, revenue becomes useful only after the order is delivered, the customer pays, and the collected cash is settled or clear enough to estimate after deductions.
Placed COD orders show demand. Delivered and paid COD orders show revenue.
Why this matters
Many dashboards record an order as soon as checkout is completed or a purchase event fires.
For prepaid ecommerce, payment may already be captured. For COD, payment has not happened yet.
The order can still fail because:
- the customer does not confirm
- the customer refuses delivery
- the address is incomplete
- the courier cannot reach the customer
- the customer does not have cash ready
- the parcel comes back as RTO
- COD remittance is delayed or adjusted
If you treat every placed COD order as revenue, you may scale ads into a loss.
The cleaner COD revenue funnel
Use these labels:
placed COD order value
-> confirmed COD order value
-> shipped COD order value
-> delivered and paid COD revenue
-> net remitted COD cash
Each step answers a different question.
Placed order value tells you whether ads and offers create demand. Delivered and paid revenue tells you whether the demand turned into cash. Net remitted COD cash tells you what the seller can actually use after courier or COD deductions.
Formula: placed value vs collected value
Start with:
placed COD order value = all COD order value created at checkout
Then calculate:
delivered paid COD revenue =
delivered and paid orders x average collected order value
Then:
placement-to-collection gap =
placed COD order value - delivered paid COD revenue
This gap is not always a loss by itself, because some orders may cancel before shipping. But it tells you how much dashboard revenue did not become delivered paid cash.
Why ROAS can be misleading
Ad platforms may calculate ROAS from purchase events or attributed order value. In COD, that value can be placed-order value rather than collected cash.
That creates two different metrics:
placed-order ROAS = placed COD order value / ad spend
collected COD ROAS = delivered and paid COD revenue / ad spend
If placed-order ROAS is much higher than collected COD ROAS, delivery and confirmation quality may be hiding the main profit leak.
What to track every week
Use a weekly COD view:
- placed COD orders
- confirmed orders
- shipped orders
- delivered and paid orders
- RTO orders
- cancelled before shipping
- pending shipments
- placed order value
- delivered paid revenue
- COD remittance received
- courier deductions
- ad spend
- product cost
- forward and RTO shipping
- COD fees
This is more useful than only tracking revenue, ROAS, and order count.
Common mistake: counting revenue too early
Counting placed COD orders as revenue can make these numbers look better than they are:
- campaign ROAS
- conversion value
- revenue
- average order value
- profit after ads
- target CPA
- growth rate
For COD profit decisions, separate demand from cash collection.
Source notes
Public logistics sources describe RTO as a shipment that fails delivery and returns to the seller. Shopify's return documentation separates post-delivery returns from refund and exchange workflows, which is different from COD RTO before successful payment. This page uses that distinction to keep COD revenue timing clear.
Use SellMira for collected COD profit
SellMira calculates the COD funnel from your inputs and shows:
-
placed-order ROAS
-
collected COD ROAS
-
COD-adjusted break-even ROAS
-
break-even CPA
-
RTO loss
-
delivery risk
-
margin status
-
main leak
-
first fix
FAQ
Are COD orders counted as revenue when placed?
For profit analysis, no. A COD order should become revenue only after delivery and payment collection, or after settlement is clear enough to estimate.
Why does my ad dashboard show revenue before cash is collected?
Ad dashboards often use purchase events or checkout order value. They may not know whether the COD parcel was later delivered and paid.
What is the safest COD revenue metric?
Collected COD revenue is safer than placed order value because it reflects delivered and paid orders.
Should prepaid and COD orders be analyzed together?
No. Keep them separate because payment timing, failed delivery risk, refunds, and cashflow are different.