Skip to main content
Retail / D2C

Cutting COD returns by a third without touching revenue

D2C apparel brand. Risk-segmented checkout: WhatsApp order confirmation, pincode-level rules from their own courier history and prepaid nudges — RTO down by a third with conversion roughly flat.

At a glance

150+
Clients served
1,550+
Projects delivered
14
Industries
9+
Years in business
31% → 21%COD RTO
+8%Prepaid share
₹6.2L/moReverse-logistics saved

Timeline

8 weeks

Team

4 people

Stack

Next.js · Razorpay · Shiprocket API · WhatsApp Business API

Sector reality

The world this system had to work in

Cash on delivery is a third of Indian e-commerce and most of its risk. COD orders convert far better than prepaid and return to origin far more often; every RTO costs two-way shipping, packaging and a week of working capital. The naive fixes — disabling COD or blanket fees — trade real revenue for a small reduction in risk.

The challenge

Cash on delivery drove 58% of orders — and 31% of them returned to origin. Blanket COD fees were being considered; the brand wanted the revenue without the risk.

What we found on day one

  • 58% of orders were COD and 31% of those returned to origin, absorbing most of the brand's logistics budget
  • No visibility into which pincodes, products or customers drove returns — decisions were made on anecdote
  • Orders shipped without confirmation, so refusals were discovered only when the courier gave up
  • Prepaid checkout was clunky enough that customers defaulted to COD even when they intended to pay
What we built

The solution

We built a risk-segmented checkout and operations layer on the brand's Next.js storefront: pincode risk scores computed from 18 months of the brand's own courier data, WhatsApp order confirmation for COD with a two-hour window before dispatch, repeat-refuser flags, partial COD fees only for high-risk pincodes, a UPI-first prepaid flow with small nudges, and a returns dashboard tracking refusals, pincode trends and courier SLAs.

01

Pincode risk engine

Return probability per pincode from the brand's own history, refreshed weekly.

02

COD confirmation flow

WhatsApp confirmation with a two-hour response window; unconfirmed orders held before dispatch.

03

Repeat-refuser detection

Customer-level flags across phone, address and device signals with prepaid-only fallback.

04

UPI-first checkout

One-page checkout with UPI intent first, saved addresses and a small prepaid discount.

05

Shipping integration

Shiprocket rates, labels, NDR workflows and courier SLA tracking per pincode.

06

Returns & margin dashboard

RTO rate, reverse-logistics cost and net revenue per order for the operations team.

Integrated with

RazorpayShiprocket APIWhatsApp Business APIMeta & Google product feedsGoogle Analytics 4
How we ran it

Our approach, step by step

01

Built pincode risk scores from 18 months of the brand's own courier return data — not generic blacklists.

02

Added WhatsApp order confirmation for COD orders with a two-hour response window before dispatch.

03

Introduced prepaid nudges (small discount, UPI-first checkout) funded by the RTO savings.

04

Built a returns dashboard the ops team actually uses: refusal flags, pincode trends and courier SLA tracking.

Measured results

The outcome

  • COD return-to-origin fell from 31% to 21% within eight weeks of launch.
  • Prepaid share rose eight percentage points, funded by discounts smaller than the RTO cost they replaced.
  • Reverse-logistics spend dropped by about ₹6.2 lakh per month while overall conversion stayed roughly flat.
  • The operations team now decides pincode rules from data, reviewed weekly on the returns dashboard.
“We kept COD and cut returns by a third. The dashboard changed how our ops team talks about pincodes — it's numbers now, not gut feel.”

Aisha Khan

Co-founder, D2C apparel brand

Free · 30 minutes · No obligation

Book a scoping call with a software architect — not a sales bot.

You'll get a reply within one business day. We'll send a rough estimate in 3 days and a fixed proposal in 7.

Prefer to talk first? Phone, email and office address are on the contact page.