Shopify COD RTO Reduction Playbook: How Indian D2C Brands Can Cut Returns
Executive Summary & Key Takeaways
- The Problem: Blanket Cash on Delivery (COD) kills margins. With 30–40% average return rates in Tier 2/3 markets, every RTO costs brands ₹300–₹850 in reverse freight and packaging.
- The Mistake: Removing COD sitewide loses many genuine buyers who prefer to pay on delivery.
- The Playbook Solution: Extract high-RTO pincodes from Shiprocket or Delhivery, hide COD only in those pincodes using Lokally's Payment Rules, and offer a ₹50–100 discount there so shoppers have a reason to pay online.
- Measure it: Compare returns and orders in the restricted pincodes before and after, and adjust.
Indian D2C brands have a COD RTO problem that is structurally different from Western e-commerce returns. Understanding it correctly is the first step to reducing it.
The RTO Problem in Numbers
Indicative ranges from general industry commentary (not a Lokally study; your numbers will differ):
- Overall COD RTO rate: 25–40% across categories
- Fashion & apparel COD RTO: 35–55%
- Electronics & gadgets COD RTO: 15–25%
- FMCG / consumables COD RTO: 10–20%
- Pincode Concentration: In many stores, a small share of pincodes generates a large share of rejected deliveries.
Cost per returned COD order:
- Forward shipping (courier forward fee): ₹60–120
- Return shipping (courier reverse penalty): ₹80–150
- Repackaging, quality check, and damaged stock: ₹30–80
- Inventory holding time & ad CAC lost: ₹100–350
- Total Net Loss: ₹270–₹700 per return
For a brand dispatching 1,000 COD orders per month with 30% RTO (300 returns), that represents ₹81,000 to ₹2,10,000 in monthly losses from RTO alone.
Phase 1: Diagnose Your RTO Pattern
Export and analyse return data
From Shopify Admin → Orders → Export (last 6 months):
- Filter for COD orders
- Cross-reference with your logistics partner's return report
- Create a pivot: pincode → return count + return rate
What you're looking for
- Hot pincode clusters: groups of adjacent pincodes with 40%+ RTO
- Category concentration: does RTO spike for specific product categories?
- Seasonal patterns: does RTO increase around festivals (impulse ordering up, intent to keep down)?
Many stores find that a small share of their pincodes generates a large share of returns. If yours does, that's your primary target.
Phase 2: Surgical COD Restriction
Define your restriction list
Start with your top 100–200 highest-RTO pincodes. Sort by return count (not rate) - a pincode with 50 returns at 40% RTO is more impactful to fix than a pincode with 5 returns at 80% RTO.
Configure Lokally
- Lokally → Regions → add a region, for example
High RTO, and paste your pincodes (one per line or comma-separated) - Lokally → Payment rules → on Cash on Delivery, click Add Rule, choose the
High RTOregion and Always hide - Optional: in the Cash on delivery limit card, hide COD above an order value (for example ₹2,500) for all regions or per region
- Save
Tell shoppers before checkout
Add a Lokally announcement bar block in your theme editor, and in Lokally → Storefront content set its text for the High RTO region, for example:
"COD is not available at your pincode. Pay online by UPI, card or wallet."
Phase 3: Prepaid Conversion
Simply blocking COD converts some buyers to prepaid. Adding an incentive converts more.
Create a regional discount
Lokally → Pricing rules → Create pricing rule:
- Region: the same
High RTOregion - Discount: ₹50 to ₹100 off (or 5% off)
- Mention the prepaid offer in the region's announcement bar text
What to expect
In high-RTO pincodes where COD is hidden, some former COD buyers will pay online and some won't buy. Those who leave were more likely to refuse delivery anyway. Track orders and returns in the region month by month to see where your balance lands.
Phase 4: Monitor and Iterate
Monthly review cadence
- Re-export orders and returns
- Compare RTO rate in blocked vs unblocked pincodes
- Check for new high-RTO clusters to add to the restriction list
- Check conversion in blocked pincodes - if genuinely low, review whether discount incentive needs adjustment
When to expand the restriction list
Expand when:
- You've verified initial list shows RTO improvement (4–6 weeks)
- New pincode clusters emerge with 35%+ RTO
- Category-level RTO improves in restricted areas (signals the model works)
When NOT to expand further
Don't restrict pincodes where:
- RTO is below 25% (within acceptable range)
- Order volumes are too small for statistical significance
- The pincode is a major metro where COD conversion is important
Phase 5: Seasonal Adjustment
Festival periods
COD RTO typically spikes during major festival sale periods (Diwali, Flipkart/Amazon sale crossover). Consider:
- Temporarily expanding the restriction list by 20–30% during October–November
- Adding seasonal prepaid incentives specifically during high-RTO seasons
- Reverting to standard list after the season
Summary Timeline
| Week | Action |
|---|---|
| Week 1 | Export data, identify top 200 high-RTO pincodes, set up Lokally restriction rule |
| Week 2 | Add the regional announcement bar and prepaid discount rule |
| Week 4 | First review: measure RTO in restricted vs unrestricted pincodes |
| Week 6 | Second review: expand restriction list if initial results confirm model |
| Month 3 | Stable state: monthly data review cadence |
Setting up the Lokally side takes a short session; most of the work is analysing your order data. Give it 4–6 weeks before judging the results.