
Inventory accounting for D2C brands: getting COGS reconciliation right
Most D2C brands we onboard have a gross margin number on their P&L that they cannot defend at SKU level. The fix is a four-pillar reconciliation discipline, run weekly and monthly, that ties inventory movement to settlement to COGS.
Take any D2C brand selling on Amazon, Flipkart, Nykaa, Myntra, and a Shopify website. Ask the founder what their gross margin was last month. They will give you a number. Ask them to defend it at SKU level and reconcile it to the inventory movement. The conversation usually ends in five minutes with an admission that the number is directional, not precise.
D2C inventory accounting is hard for specific, identifiable reasons. The platforms each settle differently. Returns and RTOs flow back through the system on different timelines. Marketplace commissions vary by category and by tier. Shipping and packaging costs are sometimes COGS and sometimes opex depending on the contract. The result is a P&L with a plausible gross margin that nobody, including the controller, can fully trust.
We have built the inventory and COGS function for several D2C brands in the Rs. 5 to 200 crore revenue band. What works is a discipline, not a tool. The tools — Easyecom, Unicommerce, Vinculum, GreyMatter, Increff — are necessary but not sufficient. Below is the framework that works.
The accounting choice: weighted average vs FIFO, perpetual vs periodic
Two choices need to be made and documented before anything else.
Weighted average cost vs FIFO. For most D2C brands, weighted average is the right answer. SKUs are typically not aged enough for FIFO to make a material difference, and the operational simplicity of weighted average outweighs the precision of FIFO. We use FIFO only for brands where individual SKU cost varies by manufacturing batch (some food and supplement brands) or where there is a significant exchange-rate component to landed cost (imported SKUs).
Perpetual vs periodic. Perpetual is non-negotiable. A periodic inventory system that only adjusts COGS at month-end is a 1990s setup. Every D2C brand needs a perpetual inventory system that updates the inventory ledger on every dispatch, every return, every transfer, and every adjustment.
These are not minor choices. The auditor will ask, and Ind-AS 2 requires consistent application. Document the policy, get the audit committee or board to approve it, and apply it consistently.
The five COGS reconciliation challenges
Where the COGS number breaks, it breaks in one of five places.
Returns and RTOs
Return-to-origin (RTO) is the single largest source of inventory variance for fashion, apparel, and beauty brands. An RTO rate of 18 to 25 percent on a category like footwear means roughly a quarter of dispatched units come back, sometimes after 21 to 35 days in transit through the platform's logistics network.
The accounting question: when is the RTO unit removed from 'in transit / dispatched' inventory and added back to 'on hand' inventory, and at what cost? Most brands wait until the warehouse physically receives the RTO. The lag — sometimes 35 to 45 days from dispatch — creates a phantom inventory position on the books that does not match the warehouse reality.
The fix: a 'pipeline inventory' bucket on the books that captures dispatched-but-not-settled units, with a return-rate-adjusted reversal back to on-hand inventory based on the platform's reported RTO movements.
Warehouse-to-platform transfers
Brands selling on Amazon Fulfilled by Amazon (FBA) or Flipkart Smart send inventory to the platform's warehouse, where the platform then dispatches. The unit physically leaves the brand's warehouse weeks or months before it is sold. The accounting needs to keep that unit in the brand's books (still owned, just in transit) until the sale event triggers the COGS recognition.
Brands frequently mis-account this by recognising the cost when the unit leaves their warehouse. The result: gross margin understated by the FBA transfer cost in the month of transfer, then overstated when the actual sale happens in a later month.
Marketplace commission reconciliation
Amazon takes 8 to 22 percent. Flipkart takes 5 to 25 percent. Nykaa takes 18 to 35 percent. Myntra takes 18 to 35 percent. The exact rate depends on category, tier, and the brand's specific contract. The commission shows up in the platform's settlement file 7 to 30 days after the order, and the reconciliation between the gross order value, the commission, the platform fees, the GST on the commission, and the net settlement is non-trivial.
The COGS impact: commissions are not COGS, they are selling expense, but if you book them as a deduction from revenue (which many brands do for management reporting), then the gross margin number in the P&L is a 'contribution margin after platform fee' and not gross margin in the strict sense. Be consistent about which one you are reporting.
Shipping cost: passed-through vs absorbed
Some platforms charge shipping to the customer; some absorb it as part of the platform fee; some allow the brand to choose. For a Shopify website, shipping is usually a direct-to-customer charge that may or may not equal the actual logistics cost paid by the brand.
The accounting needs to separately track shipping revenue (if any), shipping cost, and the gap between them. Treating shipping as a wash because 'it nets to zero on average' loses signal on logistics margin and means a logistics cost increase shows up as a gross-margin compression with no obvious source.
Packaging cost: line item or COGS
Custom-printed boxes, mailers, void fill, inserts, sample sachets. For some brands, packaging is a meaningful part of unit cost (5 to 12 percent of landed cost). The accounting needs to decide whether packaging is captured in the standard cost of each SKU (and is therefore in COGS) or is captured as a separate line in fulfilment cost (and is therefore in opex).
Either treatment is defensible. The mistake is mixing them. We see brands that have packaging in COGS for some SKUs (because the supplier invoices the brand for the packaged unit) and packaging as opex for other SKUs (because the brand procures packaging separately). The resulting gross margin is non-comparable across SKUs and useless for pricing decisions.
The four pillars of reconciliation
Once the accounting policy is set, the reconciliation discipline takes over.
Pillar 1: inventory ledger to physical count, monthly
Every month, a cycle count of the warehouse, reconciled against the inventory ledger on the books. Variances investigated, written off as inventory adjustments, and signed off by the operations lead and the controller. The acceptable variance threshold should be set in advance — typically 0.5 to 1.5 percent of inventory value for a brand with disciplined operations.
Pillar 2: sales register to platform settlement, weekly
Every week, the sales register (orders booked on the brand's side) reconciled to the platform's settlement file. Mismatches investigated and resolved: cancelled orders, return reversals, fraud chargebacks, commission rate disputes, GST disputes on commission.
This is the single most labour-intensive reconciliation in a D2C finance team. A brand selling on five platforms with 10,000 orders a week needs a dedicated analyst for this work. The tools (Easyecom, GreyMatter) automate the matching; the human handles the exceptions.
Pillar 3: COGS expense to inventory movement, monthly
Every month, COGS recognised in the P&L should reconcile to the inventory movement in the ledger. Opening inventory + purchases + freight in - closing inventory = COGS. If the COGS in the P&L does not match this calculation, there is either an inventory ledger error or a purchase recording error, and the discrepancy needs to be resolved before close.
Pillar 4: gross margin by SKU, weekly
A weekly report of gross margin by SKU, ranked. The product team and the marketing team should be looking at this every Monday. SKUs with margins that have moved materially week-on-week get investigated: did the landed cost change, did the platform commission shift, did a promotional discount eat the margin, did the RTO rate spike.
Without the weekly SKU-level margin, the brand operates on aggregate margin only, and aggregate margin masks SKU-level problems that compound.
What this actually costs in finance team time
For a brand doing Rs. 30 to 80 crore of revenue across four platforms, the inventory and COGS function is a 1.5 to 2 FTE role: a senior accountant who owns the reconciliations, plus a junior who owns the settlement matching and the cycle count coordination with the warehouse.
Below Rs. 30 crore, the function is closer to 0.75 FTE and is usually outsourced. Above Rs. 80 crore, it grows to 2 to 3 FTE and benefits from a dedicated inventory accountant role that is distinct from the general ledger team.
What is non-negotiable, at every scale, is the discipline. Without the four pillars, the gross margin number on the P&L is a guess. With them, it is a number the founder can defend, the auditor can verify, and the board can act on.
References

