Indian FMCG brands operate two structurally lagged sales ledgers — primary sales from the brand to the distributor or CFA and secondary sales from the distributor to the retailer reported via DMS. The arithmetic gap between them is stock-in-trade, the pipeline inventory sitting in the channel, and it is the canonical demand-truth signal for the category. DMS feeds routinely run 2 to 3 days behind real secondary transactions, distributor cycle-boundary timing distorts month-end reporting, and trade-spend accruals booked against primary sales rather than confirmed secondary pull-through inflate stock-in-trade and convert into stale Section 15(2) claims when the pipeline fails to sell through.
Build the canonical stock-in-trade equation per distributor per SKU per period: closing stock-in-trade equals opening stock-in-trade plus primary sales minus secondary sales minus returns minus damages. Source primary sales from SAP SD or equivalent order-to-cash module net of credit notes, secondary sales from the DMS or distributor portal net of retailer returns, RTV returns from the reverse-logistics ledger, and damages from the breakage-and-damage register. Run a DMS-feed completeness check at every cycle close — file presence, row count variance versus trailing average, schema integrity, partition coverage — and refuse to book trade-spend accruals against distributors whose feed is incomplete. Cross-validate calculated stock-in-trade against the distributor's declared closing stock and surface variances beyond tolerance for sales-and-operations review.
Distributor master with GSTIN, PAN, CFA mapping, geography, DMS connection metadata; SKU master with HSN, category, current MRP, current trade-margin structure; primary-sales feed from the brand's order-to-cash with invoice and credit-note flow; secondary-sales feed from DMS with daily granularity and a configurable feed-completeness SLA per distributor; RTV register from reverse logistics; breakage-and-damage register from regional claims processing; scheme master with Section 15(2) treatment flag governing accrual eligibility; stock-in-trade target band per category (typical 14 to 35 days of secondary sales); cycle-boundary lock window that holds month-end accrual until DMS feed completeness exceeds threshold.
A per-distributor per-SKU stock-in-trade register reconciled cycle by cycle, with primary-to-secondary ratio drift, stock-in-trade days-of-secondary-sales, RTV and damage trend, and a DMS-feed completeness score. Channel-stuffing signature alerts at the quarter close — primary-versus-secondary growth gap, pipeline DSO extension, post-stuffing RTV spike, stale-claim conversion rate. A scheme-accrual eligibility filter that books trade-spend only against confirmed secondary pull-through, isolating stale-claim exposure to the speculative-accrual leg. A cross-foot of the channel inventory liability into the distributor receivable and trade-spend GL accounts, with audit-grade variance documentation for Ind AS 115 revenue recognition disclosure.
A national FMCG brand’s regional commercial controller pulls the May 2026 channel report on the morning of 5 June and notices something off. Primary sales to the Maharashtra and Gujarat distributor network for the month landed at ₹38.7 crore — a healthy 11 percent over April. Secondary sales reported through the DMS across the same 287 distributors closed at ₹31.4 crore, a 3 percent dip versus April. Calculated stock-in-trade — the pipeline inventory equation of opening plus primary minus secondary minus returns minus damages — moved from 24.2 days of trailing secondary sales at the end of April to 31.6 days at the end of May. The brand’s published target band is 18 to 28 days. The Gujarat regional sales head is pushing back that the DMS feed for the last two days of May has not yet flowed through and that the gap will close once the feed completes. The controller’s job is to figure out, before the trade-spend accrual is booked for May, how much of the ₹7.3 crore primary-secondary gap is real pipeline inventory that will sell through in June, and how much is either a delayed-DMS-feed artefact or — more dangerously — a quarter-end channel-stuffing pattern that will return as RTV and stale claims through the June and July cycles. This is secondary sales gap stock-in-trade reconciliation FMCG at the working level, and the reconciliation discipline that resolves it is what separates a clean read on demand from a Section 15(2) audit finding three quarters later.
Quick reference
| Aspect | Detail |
|---|---|
| Primary sales source | Brand SAP SD / Oracle O2C; dispatched invoices net of credit notes |
| Secondary sales source | DMS or distributor portal; retailer invoices net of returns |
| Stock-in-trade equation | Opening + primary − secondary − returns − damages |
| Typical DMS feed lag | 2 to 3 days at month-end; longer at quarter-end |
| Target stock-in-trade band | 14 to 28 days for foods; 21 to 35 days for personal care |
| Channel-stuffing red flags | Primary/secondary growth gap; pipeline DSO extension; post-stuffing RTV spike |
| GST overlay | Section 15(2) CGST — scheme accrual cannot link to invoices that do not yet exist |
| Credit-note window | Section 34 CGST — by 30 November following FY of original supply |
| Distributor commission TDS | Section 393(1) Sl. 18, code 1015/1016 — 5% (legacy 194H), cash leg only |
| Ind AS overlay | Ind AS 115 right-of-return and extended-credit considerations |
What the primary-versus-secondary channel actually looks like in India
Indian FMCG distribution runs through a multi-tier general-trade pyramid that translates brand-to-retailer demand into two structurally different ledgers. The brand dispatches finished goods from its plant or contract-manufacturing facility to a CFA — the Carrying and Forwarding Agent, who is typically a third-party logistics partner holding inventory on the brand’s behalf. The CFA invoices the distributor on the brand’s behalf, and the dispatch from CFA stock to distributor stock is recorded as primary sales in the brand’s SAP SD module. The distributor then invoices the retailer — a kirana, a chemist, a modern-trade chain back-office, or a sub-stockist who in turn invoices smaller retailers — and that retailer-facing invoice is the secondary sale, recorded in the distributor’s own books and reported back to the brand through the DMS (distributor management system). Stock-in-trade is the pipeline inventory sitting between those two flows. At any given moment, the brand’s distribution network is holding goods that have been primary-sold (booked as revenue in the brand’s P&L) but not yet secondary-sold (still pipeline inventory, still in the distributor’s warehouse or transit). For ITC’s Aashirvaad atta as the canonical worked example — a market-leading branded atta SKU with national distribution through general trade — the brand dispatches roughly twelve to fifteen thousand metric tonnes per month through 1,400-plus distributors. The CFA-to-distributor flow is recorded daily through SAP SD with EDI integration to the CFA warehouse-management system. The distributor-to-retailer flow is recorded daily through the brand’s DMS — a custom application that the distributor’s back-office uses to invoice retailers, track scheme eligibility, and report secondary sales upward to the brand’s central commercial finance team. The reconciliation problem sits in the structural mismatch between these two ledgers. Primary sales are recorded in real time at dispatch — the SAP SD invoice fires the moment the CFA loads the truck. Secondary sales are recorded by the distributor’s back-office through the DMS, which means the speed of the report is gated by the distributor’s clerical bandwidth, the DMS integration, and the distributor’s cycle-boundary behaviour. For a brand running DMS distributor management system reconciliation across a national network, the gap between dispatched primary sales and reported secondary sales is the canonical demand-truth signal — and the integrity of that signal is gated by the operational quality of the DMS feed.
The Section 15(2) overlay — trade-spend accrual against pipeline that has not yet sold through
The single most consequential GST decision in stock-in-trade reconciliation is whether trade-spend scheme accruals booked against the primary-sales push are eligible for Section 15(2) value reduction when the pipeline eventually sells through. Section 15(2) of the CGST Act lays down a three-prong test for post-supply discount qualification: the discount must be established by an agreement at or before the time of supply, the discount must be specifically linked to the relevant invoices, and the recipient must reverse the ITC attributable to the discount amount. Schemes accrued against secondary sales that have not yet occurred fail the second prong by construction — there is no secondary-sale invoice yet to link the credit note to. The accrual sits in the trade-spend liability account as a speculative provision, and the Section 34 credit-note cycle cannot trigger until the pull-through invoice exists. This creates two reconciliation rules that the trade-spend accrual engine must enforce. First, schemes whose qualification is gated on the actual secondary sale (slab discounts on retailer pull-through, growth-over-base schemes measured on confirmed retail demand, BTL claims for in-store activations) cannot be accrued at the primary-sales dispatch — they must be accrued only when the secondary sale is reported through the DMS. Brands that compress the accrual into primary dispatch are over-accruing against the pipeline, and the over-accrual converts into stale claims when the pipeline fails to flow through within the scheme window. Second, distributor commission paid in cash under Section 393(1) Sl. 18 (legacy Section 194H, payment codes 1015 and 1016 at 5%) is on the gross primary-sales value at the time the commission is paid, not on the secondary-sales pull-through — the commission TDS leg therefore runs on a different reconciliation surface than the trade-spend scheme accruals, and the distributor commission TDS coverage for the FMCG cluster covers the rate and threshold mechanics in detail. The CBIC GST 2.0 transition — Notifications 09 to 16/2025-CTR effective 22 September 2025 — adds a rate-anchoring layer to the stock-in-trade reconciliation. For soaps, shampoos, toothpaste, biscuits at HSN 1905, chocolates, and metal kitchenware moved from the 18% or 12% slab to 5%, the inventory dispatched from the CFA before 22 September at the old rate continues to sell through the channel at the new 5% output rate. The credit-note cycle on retro schemes that span the transition must anchor to the original dispatch rate per Section 34, not to the rate at the time of credit-note issue. The stock-in-trade register must therefore carry a rate-effective-date field per HSN per dispatch tranche so that the trade-spend reconciliation can resolve each accrual to the right anchor rate.
A worked example — ITC Aashirvaad atta May 2026 cycle close
ITC’s Aashirvaad atta franchise — by public reporting the highest-volume branded atta SKU in India — runs through a national distribution network of approximately 1,400 general-trade distributors plus modern-trade direct accounts. For the worked example, take a single regional slice: the Maharashtra plus Gujarat zone, 287 distributors, primary-secondary reconciliation for the May 2026 cycle. Illustrative — public disclosures do not reveal internal distributor counts, regional primary-sales values, or DMS feed gap percentages. The figures here are representative of the operating pattern for a national personal-care or foods FMCG franchise, not actual ITC numbers. Cross-verify against your own SAP SD export and DMS feed before action. The primary sales feed from SAP SD for the 287 distributors closed the month at ₹38.7 crore — 11.2 percent higher than April. The DMS-reported secondary sales for the same network at the cycle close came in at ₹31.4 crore — 3.1 percent down from April. The opening stock-in-trade carried in from the end-of-April reconciliation was ₹25.6 crore at distributor cost (approximately 24.2 days of trailing secondary sales). Returns to the distributor through the RTV reverse-logistics channel ran at ₹1.1 crore; damages recorded in the breakage-and-damage register ran at ₹0.3 crore. Plugging the equation: closing stock-in-trade equals 25.6 + 38.7 − 31.4 − 1.1 − 0.3 = ₹31.5 crore, which on the trailing secondary-sales average of ₹0.997 crore per day works out to 31.6 days of pipeline. That is 3.6 days over the brand’s published target ceiling of 28 days.
| ITC Aashirvaad atta — Maharashtra + Gujarat reconciliation (May 2026 cycle) | ₹ crore |
|---|---|
| Opening stock-in-trade (1 May 2026, distributor cost) | 25.6 |
| Primary sales (CFA to distributor, dispatched May) | 38.7 |
| Secondary sales (distributor to retailer, DMS-reported May) | 31.4 |
| Returns to distributor (RTV from retailers) | 1.1 |
| Damages (breakage-and-damage register) | 0.3 |
| Calculated closing stock-in-trade (31 May 2026) | 31.5 |
| Trailing-30-day secondary-sales average per day | 0.997 |
| Calculated days of stock-in-trade (closing) | 31.6 days |
| Brand target band (foods category) | 14 to 28 days |
| DMS feed completeness at 5 June pull | 92% |
| DMS feed shortfall estimate (last 2 days of May) | 1.8 to 2.4 |
| The reconciliation surfaces three actionable findings. First, the DMS feed completeness at the morning-of-5-June pull stood at 92 percent, with the last two days of May only partially reported — a missing-feed shortfall estimate of ₹1.8 to ₹2.4 crore in unreported secondary sales. Adjusting calculated stock-in-trade by the midpoint of that shortfall (₹2.1 crore) brings the pipeline back to ₹29.4 crore, or 29.5 days of secondary — still above the target ceiling but within the routine month-end-noise band, and likely to close to within target as the feed completes through 8 to 10 June. | |
| Second, the primary-sales growth at 11.2 percent over April runs materially ahead of the secondary-sales trajectory (down 3.1 percent), and the primary-to-secondary ratio drifted from 1.18 in April to 1.23 in May. The ratio drift is the leading channel-stuffing signature, and the regional controller’s task is to test whether the May primary push is sustainable demand or quarter-anticipation by the field sales force ahead of the June quarter close. The reconciliation engine flags 14 distributors whose primary-sales growth exceeded 25 percent month-on-month with secondary-sales growth below the regional average — these become the named test set for the channel-stuffing audit, with the general trade distributor pyramid reconciliation discipline drilling into super-stockist-to-sub-stockist secondary pull-through patterns. | |
| Third, the trade-spend accrual for the May cycle — which would otherwise be booked at the blended 14.2 percent rate on primary sales (₹5.5 crore) — is restricted to the confirmed secondary-sales base of ₹31.4 crore plus the feed-completeness adjustment of ₹2.1 crore, totalling ₹33.5 crore at the same blended rate (₹4.76 crore). The ₹0.74 crore difference is held back as a primary-sales-driven speculative provision, separately tagged, and accrued only when the corresponding secondary pull-through is confirmed in the June and July DMS feeds. The discipline isolates the stale-claim exposure to the speculative leg, keeping the Section 15(2) qualifying accrual clean. |
Common reconciliation breakages
Five operational breakages recur in primary-versus-secondary reconciliation across the Indian FMCG category, and each has a control that catches it before it flows into the trade-spend GL.
- DMS feed incompleteness at cycle close. The distributor’s back-office runs out of bandwidth in the final 48 to 72 hours of the cycle and the DMS feed lags by 2 to 3 days. The trade-spend accrual is booked against incomplete secondary-sales data, the accrual base is therefore understated, and the catch-up flows into the following cycle as an unexpected accrual spike. The control is a per-distributor DMS-feed completeness score before accrual is run, and a hold-window that delays accrual booking until the score crosses a threshold.
- Cycle-boundary timing shift by the distributor. Distributors on the edge of a slab-discount tier or growth-over-base scheme threshold delay reporting some secondary sales into the next cycle to manage their own scheme qualification. The brand’s reported secondary sales for the cycle is understated, the primary-to-secondary ratio drifts upward, and the trade-spend accrual reads as if the pipeline expanded faster than it actually did. The control is a per-distributor secondary-sales seasonality check that flags shifts beyond historical noise bands at the cycle boundary for sales-and-operations review.
- RTV and damages reported with a 5 to 10 day lag. Returns from retailers to the distributor and damage write-offs come through reverse-logistics on a delayed cycle, so the stock-in-trade calculation at cycle close is always partially incomplete on the deductive legs. The accrual base is therefore overstated and the closing stock-in-trade is understated. The control is a trailing-period RTV-and-damage projection layered onto the cycle close, with the projection reconciled in the following cycle when the actual flow lands. The return-to-vendor damage credit-note coverage for the FMCG cluster covers the RTV documentation chain in detail.
- Channel stuffing at the quarter or year close. Field sales pushes primary dispatch aggressively to hit a quarter-end target irrespective of confirmed secondary pull-through, and the pipeline DSO extends well beyond the target band. The pattern shows up in four signatures: primary-to-secondary growth gap, pipeline DSO extension, RTV spike in the cycles after the stuffed quarter, and stale-claim conversion rate above blended average. The control is a quarter-end channel-stuffing detector that surfaces all four signatures per distributor and per geography to the audit committee ahead of the statutory close, aligned to Ind AS 115 right-of-return testing.
- Primary-sales accrual rate applied to non-qualifying schemes. The accrual engine applies the blended scheme rate to all primary sales without distinguishing between schemes that accrue on dispatch (e.g., a published slab discount printed on the invoice line, qualifying as a Section 15(2) automatic value reduction) and schemes that accrue on confirmed secondary pull-through (e.g., a growth-over-base rebate measured on retail demand). The accrual base is mis-modelled and the trade-spend liability is overstated. The control is a scheme-master Section 15(2) classification flag that routes each scheme to the right accrual trigger — primary dispatch versus secondary pull-through — and a pre-accrual scheme-master integrity check that refuses to accrue against schemes lacking the classification.
How a reconciliation platform handles this
A purpose-built reconciliation platform for Indian FMCG runs the primary-versus-secondary stock-in-trade equation as a continuous engine rather than a month-end exercise. It ingests the primary-sales feed from SAP SD or the equivalent order-to-cash module, the secondary-sales feed from the DMS, the RTV register from reverse logistics, and the breakage-and-damage register, with a per-distributor feed-completeness score that gates whether trade-spend accruals fire at the cycle close. It surfaces primary-to-secondary growth-gap drift, pipeline DSO extension, and channel-stuffing signatures at the quarter close per distributor and per geography. It anchors trade-spend accruals to the Section 15(2) classification per scheme, isolating the speculative-accrual leg from the qualifying leg so that stale-claim exposure is contained. Customer outcomes typical of the platform discipline include match-rate improvement from roughly 51 percent on legacy DMS-versus-SAP reconciliation to 88 percent on a structured channel reconciliation regime, with ISO 27001:2022 controls and DPDP Act 2023 alignment governing the data flow.