Lokally is launching on the Shopify App Store soon.

COD & RTO

Shopify COD RTO Reduction Playbook (2026): How Indian D2C Brands Can Cut Returns

Step-by-step 2026 playbook for Indian Shopify stores to cut Cash on Delivery RTO. How to identify high-risk pincodes, hide COD only where it hurts, and encourage prepaid orders.

By the Lokally team5 min read
  • RTO
  • COD
  • india d2c
  • playbook
  • returns
  • shopify rto
  • shiprocket

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):

  1. Filter for COD orders
  2. Cross-reference with your logistics partner's return report
  3. 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

  1. Lokally → Regions → add a region, for example High RTO, and paste your pincodes (one per line or comma-separated)
  2. Lokally → Payment rules → on Cash on Delivery, click Add Rule, choose the High RTO region and Always hide
  3. Optional: in the Cash on delivery limit card, hide COD above an order value (for example ₹2,500) for all regions or per region
  4. 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 RTO region
  • 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

  1. Re-export orders and returns
  2. Compare RTO rate in blocked vs unblocked pincodes
  3. Check for new high-RTO clusters to add to the restriction list
  4. 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

WeekAction
Week 1Export data, identify top 200 high-RTO pincodes, set up Lokally restriction rule
Week 2Add the regional announcement bar and prepaid discount rule
Week 4First review: measure RTO in restricted vs unrestricted pincodes
Week 6Second review: expand restriction list if initial results confirm model
Month 3Stable 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.

Ready to try Lokally?

7-day free trial at launch. Billed through Shopify, cancel anytime.