An ad dashboard may report more purchase value than the store ultimately keeps. With cash on delivery (COD), an order may be placed, confirmed, shipped, refused, returned, partially refunded, or successfully delivered. A platform may not receive every later status unless the business sends an approved update. So platform-reported ROAS is useful for understanding attributed activity under that platform’s rules; it is not automatically the store’s reconciled return after cancellations, delivery failures, returns, and variable costs.
Use separate measures for the attributed purchase event, retained revenue, and contribution after advertising. Keep the order system, courier settlement, accounting definition, and platform report visible. A decision should use a consistent window and currency, especially when operations span Egypt, Saudi Arabia, and the UAE.
Separate the purchase event from retained revenue
Platform-attributed purchase value is what the advertising system received or attributed under its event and attribution settings. It may represent an order placed or another purchase event defined in the integration.
Retained revenue is revenue from orders delivered and kept, after cancellations, refunds, discounts, and other adjustments according to the company’s accounting policy. Decide consistently whether shipping collected from the customer is included or reported separately.
Contribution after ads subtracts product cost for retained orders, delivery costs borne by the store, unrecovered reverse-shipping or damage, payment fees, other variable costs, and advertising spend. This is a more useful operating measure than gross platform ROAS when the decision is whether the campaign contributes to profitable demand.
Do not subtract the cost of a product twice. Apply product cost to items kept and sold; add the loss on a returned item only when it cannot be resold or recovered. If the inventory or courier data is incomplete, show the unresolved amount rather than inventing an average.
Calculate the contribution with consistent rules
Contribution after ads = retained net revenue − cost of goods for retained orders − delivery cost paid by the store − unrecovered return cost − payment fees − other variable costs − ad spend.
Build the calculation from order IDs and financial records, not only the purchase value sent to an ad platform. Match the order status at a fixed cutoff date. Record late deliveries and pending courier settlements separately so they are not silently treated as successful sales or losses.
Illustrative example with hypothetical values
Suppose a reporting period shows 100 COD orders with a dashboard-attributed value of 100,000 EGP. After confirmation and delivery, 62 orders are kept, 15 are canceled before shipment, 13 are refused or returned, and 10 remain in transit at the cutoff. The 100,000 EGP is not yet retained revenue. Calculate retained value from the 62 kept orders using actual discounts and refunds. Keep the 10 pending orders visible until their status resolves.
Then subtract the cost of the goods that remained sold, store-paid delivery, unrecovered return shipping or damaged stock, payment and operating fees, and ad spend. The resulting contribution may be above or below zero even if the platform reports an attractive ROAS. The numbers here illustrate the method and are not a benchmark.
Reconcile order states before making a campaign decision
Use a stable order identifier across the store, courier, customer-service record, and any approved conversion feedback. Define the event meaning and timestamp: placed, confirmed, shipped, delivered, or retained after the return window. Avoid sending customer personal data in campaign URLs or an unapproved analytics destination.
Review delivery and return patterns by product, geography, courier, offer, and campaign when sample sizes allow. A high refusal rate may reflect a delivery promise, phone-confirmation process, stock issue, customer expectation, or service-area mismatch—not only ad targeting. Record reasons consistently before assigning cause.
Use a reporting cutoff that makes pending orders visible. One practical table separates placed, confirmed, shipped, delivered and kept, refused/returned, refunded, and unresolved orders. Reconcile orders and amounts at the same currency and period. When operating in multiple countries, keep local currency and tax treatment clear rather than summing unlike amounts.
Field experiment thread: Compare campaign decisions with post-delivery value
This is a proposed analysis method, not a claim of measured campaign results.
1/ Choose a reporting window and freeze the definition of a retained order and contribution.
2/ Match order IDs to courier outcomes and refunds at the same cutoff date. Separate pending shipments from completed states.
3/ Calculate platform-attributed purchase value, retained net revenue, and contribution after variable costs and ad spend as distinct columns.
4/ Compare campaigns or products only when the market, offer, attribution window, and maturity of order outcomes are reasonably comparable.
5/ Investigate return reasons and delivery costs before changing the audience or budget. Keep the alternative explanations visible.
6/ Use the business’s margin and risk rules to decide. If tracking or order matching is incomplete, label the conclusion provisional or inconclusive.
Tool-neutral prompt pack: Audit a COD ROAS reconciliation
Use aggregated or pseudonymized records and an approved analysis environment. Do not share names, phone numbers, addresses, or payment details.
“Reconcile these COD order records for [period and currency]. The store’s retained-revenue definition is [definition], contribution formula is [formula], and cutoff date is [date]. Separate placed, confirmed, shipped, delivered-and-kept, canceled, refused/returned, refunded, and pending orders. Match by the supplied non-identifying order key. Report platform-attributed value, retained net revenue, variable delivery/return/payment costs, ad spend, and contribution as separate measures. Flag unmatched, late, duplicated, or incomplete records. Do not infer missing states or allocate return reasons to an ad campaign without evidence. Show formulas, totals, and unresolved amounts.”
Check totals against the store, courier settlement, and accounting records. A generated reconciliation is not a source of truth until those records agree.
Short-video script: Why COD ROAS can overstate what the store keeps
Opening: “A COD purchase in Ads Manager is not always a delivered order.”
Scene 1: Show order stages: placed, confirmed, shipped, delivered, kept or returned.
Scene 2: Show three separate figures: platform-attributed value, retained revenue, and contribution after ads.
Scene 3: Subtract product, delivery, return, payment, and advertising costs using actual records.
Close: “Keep pending orders separate, reconcile by order ID, and use your accounting definition consistently.”
Educational carousel: Reconcile COD campaigns after delivery
- Platform value: what the ad system attributed under its settings.
- Order placed: the checkout event or record.
- Order confirmed and shipped: operational states, not completed sales.
- Delivered and kept: retained orders under your written definition.
- Returns and refunds: subtract actual amounts and unrecovered costs.
- Variable costs: product, store-paid delivery, payment, and other costs.
- Contribution after ads: retained revenue minus costs and spend.
- Pending orders: keep them separate until the status is known.
Stop-doing swipe file: Replace inflated COD ROAS claims
Stop: “The campaign made 100,000 EGP,” when the value is orders placed.
Use: “The platform attributed [value] to purchase events. The store records [retained value] from [delivered-and-kept orders] as of [cutoff date].”
Stop: Counting every shipped order as a sale.
Use: “We report shipped orders separately from delivered-and-kept orders; [pending] shipments remain unresolved.”
Stop: Subtracting product cost twice or ignoring reverse shipping.
Use: “We calculate cost on retained items and separately include unrecovered return cost where applicable.”
Stop: “This audience caused all the returns.”
Use: “Returns were [value] for [group]. Delivery, offer, stock, and service factors may also contribute; the records do not isolate cause.”
Hook–Value–Template: Report the money the store retains
Hook: “For COD, the useful question is not only what Ads Manager attributed—it is what the store kept after delivery and returns.”
Value: “Separating attributed purchase value, retained revenue, and contribution prevents placed or pending orders from being treated like completed profitable sales.”
Template: “For [period/market/currency], the platform attributed [value] to [event definition]. The store recorded [placed], [delivered-and-kept], [returned/refunded], and [pending] orders at [cutoff]. Retained net revenue under [accounting definition] was [amount]. We subtracted [variable costs] and [ad spend], leaving [contribution]. Unmatched or unresolved records are [items/amount]. This result does not establish [unmeasured attribution or cause].”
Measurement limits
Platform attribution and the store’s financial records answer different questions. Attribution windows, event timing, privacy choices, delayed courier updates, and matching gaps can all affect reconciliation. Agree the definition with finance and operations, and avoid treating this calculation as a universal accounting policy.