🎁 Early Access Open: Get 1 Month of Growth Tier Free when you sign up

Learn
EP09·codreconciliationd2cmarketplacemanga

The batch that doesn't balance

ByAmit Mishra·Founder, ReconPe·Narrated by Riya Bhattacharya, CA

Arjun shipped ₹96,000 in COD orders. His bank received ₹84,420. He thinks the courier took ₹11,580. Riya shows him why the week and the batch are different things — and what the ₹11,580 actually is.

1. THE TUESDAY MORNINGPanel 1 of 5
Arjun Mehta, a D2C founder in a dark navy t-shirt, stands at Riya's co-working desk holding his phone toward her. The screen shows Shopify COD dispatches of ₹96,000 against a bank credit of ₹84,420, with a ₹11,580 gap. Riya is seated, leaning slightly forward, looking at the phone — not at Arjun. First episode with two fully-rendered characters.

He has been staring at this number since 9 a.m.

Transcript
Dialogue — Riya

₹96,000 in COD sales last week. Bank got ₹84,420. That's ₹11,580 gone.

Side monologue

Arjun has been a client for eight months. In eight months, his COD total and his bank credit have never agreed on the first attempt.

2. THE FOUR STOPSPanel 2 of 5
Riya at her laptop pointing at a flow diagram: Buyer → Delivery Agent (deposits at courier hub within 24h) → Courier Pooled Account (batches across sellers) → Seller Bank via NEFT. A reference table below shows remittance SLAs — Delhivery 48h from hub deposit, Shadowfax weekly Tuesday/Friday, XpressBees and BlueDart 7 working days post-delivery. A flag annotation notes that a negative courier wallet balance defers the entire transfer to the next cycle.

Cash on delivery is not cash on delivery. It's cash on remittance cycle.

Transcript
Dialogue — Riya

Your ₹96,000 is 80 delivery agents, each holding cash until they deposit at a hub, which triggers Delhivery's batch, which triggers NEFT. That's why Tuesday's credit isn't Monday's orders.

Side monologue

The batch cycle and your dispatch week are two independent clocks. They never tick together.

3. THE PERIOD TRAPPanel 3 of 5
Riya's screen shows a split comparison. Left: Arjun's flawed mental model — one week of Shopify dispatches (₹96,000) versus one week's bank credit (₹84,420) labelled 'missing'. Right: the actual batch contents — 77 orders across three calendar weeks, plus 29 of this week's orders not in any batch yet. A callout box reads: 'The reconciliation unit is not the week. It is the order. Each order has an AWB.'

The comparison that breaks every COD reconciliation.

Transcript
Dialogue — Riya

Four orders from the week before last are in your Tuesday credit. And twenty-nine of this week's orders aren't in it yet.

Side monologue

The batch is not a week. It's a rolling window. The weekly total comparison will always produce a gap that means nothing.

4. THE DEDUCTIONSPanel 4 of 5
Riya pointing at a deduction waterfall on her screen: gross collected ₹92,400, less COD handling fee 2% (₹1,848), less GST on fee 18% (₹333), less weight discrepancy adjustment (₹199), plus prior-cycle deferred hold released (₹6,000) equals bank credit ₹84,420. Margin annotations explain each line: COD fee rate in contract, GST claimable as ITC with correct GSTIN, prior-cycle release from negative wallet deferral six weeks ago. Arjun's arm visible at the frame edge, leaning in.

Three deductions between gross collected and bank credit. All three are on the remittance report.

Transcript
Dialogue — Riya

COD fee plus GST on the fee. A weight adjustment. And ₹6,000 from a deferred batch six weeks ago that finally cleared. All of it line-itemised.

Side monologue

The fee is not in the contract headline. It is on the remittance report. Read the report before you read the bank statement.

5. THE ACTION LISTPanel 5 of 5
Arjun and Riya both seated at the desk, both laptops open. Arjun's screen shows the reconciliation summary: ₹11,580 gap fully explained as ₹2,380 in legitimate fees, ₹4,800 in RTOs to dispute, and ₹10,800 arriving next cycle. An action list shows: dispute 4 RTO AWBs with Delhivery, track 9 in-transit orders, claim ₹333 ITC on the COD fee invoice. Arjun's phone is face-down on the desk for the first time this episode. His expression is lighter.

Not ₹11,580 missing. ₹11,580 explained. Three items need work.

Transcript
Dialogue — Riya

So nothing's stolen. I have a dispute to file, nine orders to track, and ₹333 in ITC I was going to miss.

Side monologue

The reconciliation's product is not a matching total. It's the action list. The total is just how you know the list is complete.

The longer take

The instinct is obvious. You shipped ₹96,000 in COD orders this week. Your bank received ₹84,420. The ₹11,580 gap must be something someone didn't send you. Almost every D2C founder arrives with this framing, and almost every time, the framing is the problem. COD remittances are not a weekly summary of COD sales. They are a rolling window of delivered-and-deposited orders that spans multiple calendar weeks, nets out returns and fees, and lands in your bank on the courier's schedule — not yours.

The cash takes four stops. A customer hands ₹ to a delivery agent at the door. That agent deposits the cash at a courier hub — Delhivery requires this within 24 hours; in practice it can stretch. The courier pools that cash across hundreds of sellers into a single batch. When the batch closes — 48 hours from hub deposit for Delhivery, weekly runs for Shadowfax, 7 working days for XpressBees and BlueDart — the courier initiates a single NEFT credit to your bank. One NEFT. Containing orders from multiple prior weeks. Arjun's Tuesday credit held 51 orders from the current week, 22 from the prior week, and 4 from the week before that — delayed deliveries finally completed. It excluded 29 of his current-week dispatches, which close in next cycle. A week of dispatches and a batch are different things.

Inside the batch, three deductions happen before the NEFT leaves the courier's pooled account. The COD handling fee — Delhivery's standard rate is roughly 2% of the collected amount; most couriers charge between 1.5% and 4%. GST on that fee at 18%, which is a logistics service charge and claimable as ITC if your GSTIN is on the courier's invoice. Any weight or zone adjustment billed for the cycle, which may net against the COD remittance rather than arriving as a separate freight invoice. A fourth number sometimes surprises: if the courier's wallet ran negative in a prior cycle, the previous batch's remittance was deferred — and then releases weeks later as a bonus amount in a future credit. This is why Arjun's Tuesday bank credit included ₹6,000 from a deferred batch six weeks earlier.

The hardest part of COD reconciliation is not the fee arithmetic. It is knowing which orders are genuinely returned versus which have been marked returned without a delivery attempt. RTO is legitimate: the customer wasn't home, the address was wrong, the order was refused. But fake RTOs — where a field agent marks 'Customer Not Available' without attempting delivery, and the cash goes elsewhere — are a documented problem. The only way to catch them is AWB-level matching. Every order has an Air Waybill number; every remittance line has one too. When an order shows as RTO-with-no-return-scan, or RTO-then-redelivered-same-day, the anomaly surfaces. Tools purpose-built for COD reconciliation classify this as a distinct category precisely because it is common enough to warrant one.

The reconciliation's output is not a matching total. It is a list with four rows: settled (AWB found, amount matches), pending-in-SLA (delivered, remittance window still open, no action yet), overdue (window passed, no credit, raise a dispute), and RTO-to-verify (marked returned, confirm the return scan exists). That is what Riya gives Arjun at the end: not the number ₹11,580, but what to do with each rupee of it. For a seller at ₹25 lakh a month with 30% COD, getting this wrong silently costs more than the reconciliation work costs to do. The founders who skip it discover the loss months later, in aggregate, when the trail back to carrier and cycle is already cold.

New episode every Monday.

Riya teaches reconciliation in three panels a week. Free, ungated, no newsletter sign-up gate.

See all episodes