Signal Engineering PREPAID vs COD OPTIMIZATION

Stop Treating Prepaid and COD Orders the Same

In India and Southeast Asia, 40-60% of COD orders never deliver. The algorithm doesn't know that. It's optimizing for orders that will be returned to sender.

9 min read

The order that never arrived

A customer in Jaipur browses Instagram at 11 PM. She sees your ad for a printed kurta set. She taps, scrolls the product page for 40 seconds, selects size M, and places a COD order for ₹2,500. Meta records a purchase event. Your dashboard celebrates: conversion at ₹380 CPA, ROAS 6.5x. The algorithm takes notes.

Six days later, a delivery agent stands outside an apartment in Vaishali Nagar. Nobody answers. He calls. The phone rings twice and goes to voicemail. He tries again the next morning. No answer. The package gets marked “Returned to Origin.” Delhivery charges you ₹120 for forward shipping and ₹120 for the return. The kurta goes back to your warehouse.

Your ad platform still counts this as a successful conversion worth ₹2,500. The algorithm learned from it. It is now looking for more people like her.


The RTO problem in numbers

This is not an edge case. For Indian D2C brands, COD accounts for 50-65% of orders. RTO rates on COD run 35-55% depending on tier city and product category. If you process 1,000 orders a month and 550 are COD with a 40% RTO rate, you lose ₹700 on each of those 220 returned orders. That is ₹1,54,000 per month in pure loss — while your ad platform reports record revenue.


What your ad platform thinks vs reality

MetricWhat the Platform ReportsWhat Actually Happened
Conversions1,000 purchases780 delivered orders
Revenue₹25,00,000₹19,50,000 (after 220 RTO)
ROAS6.5x4.2x (on delivered revenue)
CPA₹380₹490 (true cost per delivered order)
Profit”Healthy”Negative on 22% of all orders

The gap between what the platform believes and what your bank statement shows is the RTO gap. Every metric the algorithm optimizes against is inflated by ghost conversions that were never going to deliver.


Prepaid vs COD: the signal gap

The algorithm cannot tell the difference unless you tell it. Both send a “Purchase: ₹2,500” event. Both look identical in the conversion column. But one is money in your bank account and the other is a coin flip.


Risk-adjusted conversion values

The fix is simple. Stop sending the same value for both payment types. Adjust the conversion value based on the historical probability that the order will actually deliver.

Payment MethodOrder ValueDelivery RateRisk-Adjusted ValueSignal Sent to Platform
Prepaid UPI₹2,500~100%₹2,500Full value
Prepaid Card₹2,50095%₹2,375Near-full value
COD Metro (Tier 1)₹2,50065%₹1,625Discounted
COD Tier 2 city₹2,50050%₹1,250Half value
COD Tier 3 city₹2,50035%₹875Heavy discount

The algorithm now sees a prepaid UPI buyer as 2.8x more valuable than a COD buyer in a Tier 3 city. It shifts delivery toward audiences that are statistically more likely to pay upfront. It does not stop finding COD buyers entirely — it just stops overvaluing them.


How this changes algorithm behavior

Reported CPA goes up slightly. This scares most marketers. But the true CPA — cost per delivered order — drops by 31%. You are paying ₹40 more per reported conversion but saving ₹213 per actual delivered sale. The math is not close.


Feeding RTO data back

Step 1: Connect delivery status from your logistics partner

CustomerLabs integrates with Delhivery, Shiprocket, Shadowfax, Ecom Express, and most 3PL providers. When an order status changes to “Delivered” or “RTO,” the event fires automatically. No manual tracking.

Step 2: Wait 10 days, then update conversion values

Most RTO happens within 7-10 days of dispatch. CustomerLabs waits for the delivery window to close, then sends conversion adjustments to Meta CAPI and Google Ads. A delivered COD order retains its risk-adjusted value. An RTO order gets adjusted to ₹0. The algorithm learns the difference.

Step 3: Flag habitual RTO customers

Your CRM now has data on which customers have returned COD orders before. CustomerLabs builds a suppression audience of serial RTO offenders. These customers still see your ads, but they are excluded from COD-optimized campaigns. If they want to buy, they pay upfront.


Going further: prepaid incentives

Offer ₹100 off for prepaid payment. A ₹100 discount costs you ₹100. An RTO costs you ₹700. The discount pays for itself 7x over on every order that would have been COD.

Better yet, frame it as a reward, not a discount. “Pay online and get ₹100 instant cashback” converts better than “₹100 off for prepaid” because it feels like a gain, not a reduced price. Test both.


Campaign setup

Meta: Separate optimization by payment signal

Send Purchase_Prepaid events at full order value. Send Purchase_COD events at risk-adjusted value based on your city-tier RTO rates. Use “Maximize Value” bidding. Meta shifts delivery toward audiences that statistically pay upfront.

For high-AOV products (above ₹3,000), test prepaid-only ad sets. Disable COD at checkout for these campaigns. Your CPA will look higher. Your delivered ROAS will be dramatically better.

Google: Value-based bidding with delivery feedback

Import prepaid purchases at full value and COD purchases at risk-adjusted value. Use tROAS bidding. When RTO confirmation arrives, send conversion value adjustments via the Google Ads API. The algorithm learns which search queries and audience segments produce delivered revenue — not just placed orders.

NativeNook (Indian D2C): “After sending risk-adjusted values for COD vs. prepaid, our prepaid order ratio went from 38% to 61% in 8 weeks. RTO dropped from 42% to 18%. Same ad spend, 35% more delivered revenue.”


Results

BrandBeforeAfterImpact
NativeNook38% prepaid, 42% RTO61% prepaid, 18% RTO35% more delivered revenue
Rangoli Fashion₹690 effective CPA₹477 effective CPA31% reduction in true CPA
UrbanCraft HomeROAS 3.8x (reported)ROAS 5.2x (delivered)37% improvement on real revenue
Tier2Trends55% COD, ₹8L monthly RTO loss35% COD, ₹2.8L RTO loss₹5.2L saved per month

Verified G2 Review: “Customer Labs has helped us skyrocket ROAS and scale our campaigns. It solved issues with the traditional pixel post iOS changes.” — DTC Brand Marketer


Every ₹1 you “save” on COD costs you ₹3 in RTO

COD exists because Indian buyers want to verify before they commit. That is a valid customer behavior. The problem is not COD itself — it is that your ad platform treats a ₹2,500 COD order from a Tier 3 city with a 65% RTO history the same as a ₹2,500 UPI payment from a repeat buyer in Bangalore.

Risk-adjusted conversion values take three weeks to set up. The prepaid-to-COD ratio starts improving within the first two weeks as the algorithm recalibrates. Every percentage point that shifts from COD to prepaid is pure margin — no extra ad spend, no extra traffic, just fewer orders that never arrive.

“You can clearly see the lift in results after only 14 days.”
Jayesh Jain · Head of Analytics, The Sleep Company

Frequently asked questions

Which payment gateways does CustomerLabs support for prepaid/COD detection?

CustomerLabs integrates natively with Razorpay, Cashfree, PayU, PhonePe, and Paytm. For Shopify stores, payment mode is detected directly from the Shopify order API — no separate gateway integration needed. WooCommerce, Magento, and custom stores work via webhook or API integration. If your checkout exposes payment method in the order data, CustomerLabs can read it.

Ready to improve your signals?

Book a 30-minute walkthrough. We'll audit your current setup, show you what's missing, and map out a 3-week implementation plan.