Skip to main content
How-To · 12 min read

Secondary Sales Gap and Stock-in-Trade Reconciliation for FMCG

Indian FMCG brands track demand through two structurally different ledgers — primary sales from the brand to the distributor and secondary sales from the distributor to the retailer. The gap between them is stock-in-trade, the pipeline inventory sitting in the channel, and reconciling it is the difference between a clean read on demand and a trade-spend accrual that turns into a stale-claim audit finding.

Terra Insight
Terra Insight Reconciliation Infrastructure

Content authored by practitioners with experience at Amazon India, Intuit QuickBooks, and the Tata Group. Meet the team →

Published 27 June 2026
Domain expertise
TDS Reconciliation GST Input Credit Platform Settlements NACH Batch Matching Bank Reconciliation Form 26AS Matching ERP Integrations Enterprise Finance Ops
Knowledge Card
Problem

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.

How It's Resolved

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.

Configuration

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.

Output

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

AspectDetail
Primary sales sourceBrand SAP SD / Oracle O2C; dispatched invoices net of credit notes
Secondary sales sourceDMS or distributor portal; retailer invoices net of returns
Stock-in-trade equationOpening + primary − secondary − returns − damages
Typical DMS feed lag2 to 3 days at month-end; longer at quarter-end
Target stock-in-trade band14 to 28 days for foods; 21 to 35 days for personal care
Channel-stuffing red flagsPrimary/secondary growth gap; pipeline DSO extension; post-stuffing RTV spike
GST overlaySection 15(2) CGST — scheme accrual cannot link to invoices that do not yet exist
Credit-note windowSection 34 CGST — by 30 November following FY of original supply
Distributor commission TDSSection 393(1) Sl. 18, code 1015/1016 — 5% (legacy 194H), cash leg only
Ind AS overlayInd 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 day0.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 pull92%
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.

Terra Insight
Terra Insight Reconciliation Infrastructure

Content authored by practitioners with experience at Amazon India, Intuit QuickBooks, and the Tata Group. Meet the team →

Published 27 June 2026
Domain expertise
TDS Reconciliation GST Input Credit Platform Settlements NACH Batch Matching Bank Reconciliation Form 26AS Matching ERP Integrations Enterprise Finance Ops
Primary reference: CBIC GST portal — for Section 15(2) CGST trade-discount valuation rules and the Section 34 credit-note window that gate whether stock-in-trade-linked scheme amounts can reduce taxable value when the pipeline actually sells through.

Frequently Asked Questions

What is stock-in-trade in the context of FMCG reconciliation?
Stock-in-trade is the pipeline inventory that an FMCG brand has dispatched to its distributors and CFAs (Carrying and Forwarding Agents) but which has not yet been sold through to retailers. It is the arithmetic difference between primary sales (brand to distributor) and secondary sales (distributor to retailer), adjusted for returns, damages, and closing distributor stock. For a brand running a national distribution network, stock-in-trade is the single most consequential operating number after secondary sales themselves — it determines how aggressive the next dispatch cycle can be, how much trade-spend accrual is real versus speculative, and whether the brand is reading true downstream demand or just primary-sales push. Mis-reading stock-in-trade by a few days at month-end is the most common cause of inflated demand forecasts and over-accrued trade-spend liability in Indian FMCG.
Why does the secondary-sales feed from the DMS often go missing or stale at month-end?
Four reasons recur in production. First, the distributor's own back-office bandwidth is concentrated on closing physical inventory counts and cycle-end ledger updates rather than on DMS data entry, so the DMS feed lags 2 to 3 days behind the actual secondary-sales transactions. Second, the DMS integration to the brand's secondary-sales hub typically runs nightly batch jobs that fail silently if the distributor's network drops or if the data export schema changes; nobody notices until month-end close because the daily file size variance falls within normal noise bands. Third, distributors at the cycle boundary delay reporting some secondary sales into the next cycle to manage their own scheme-tier qualification, particularly when a slab discount or growth-over-base scheme is on a knife edge. Fourth, returns and damages from the retailer end of the channel arrive on a 5 to 10 day lag from the secondary sale itself, so the secondary-sales-net-of-returns view is always partially incomplete at the close date. The reconciliation discipline that catches this is a per-distributor DMS-feed completeness check before the trade-spend accrual is booked.
How does the primary-minus-secondary equation actually work for stock-in-trade calculation?
The base equation is: closing stock-in-trade = opening stock-in-trade + primary sales − secondary sales − returns − damages. Each term is sourced from a different system. Primary sales come from the brand's SAP SD / Oracle order-to-cash module as dispatched invoices net of credit notes. Secondary sales come from the DMS or distributor portal as retailer-facing invoices net of retailer returns. Returns to the distributor (RTV — return to vendor) come from the brand's reverse-logistics ledger and are added back to stock-in-trade as recoverable pipeline. Damages come from the breakage-and-damage register and are net-removed from stock-in-trade because the inventory is destroyed rather than recoverable. The reconciliation engine must run the equation per distributor per SKU per period and surface variances against the distributor's own declared closing stock — the physical count or DMS-reported on-hand. A material gap between the calculated stock-in-trade and the declared closing stock is the leading indicator of either a primary-sales over-dispatch (channel stuffing) or a secondary-sales under-report (delayed DMS feed).
What is the Section 15(2) CGST implication when trade-spend is accrued on stock-in-trade that has not yet sold through?
Section 15(2) requires that for a post-supply discount to reduce taxable value, the discount must be specifically linked to the relevant invoices and the recipient must reverse ITC on the discount amount. Trade-spend scheme amounts accrued on secondary sales that have not yet occurred — i.e., schemes accrued against pipeline inventory expected to flow through — fail the linkage test by construction because there is no invoice yet to link to. The accrued amount cannot trigger a Section 34 credit note until the secondary sale actually happens and the matching invoice exists. Brands that aggressively book scheme accruals on primary-sales-driven projections (rather than on confirmed secondary-sales pull-through) routinely end up with stale claims in the 90-plus day ageing bucket — claims for inventory that sat in the channel and never sold, that the distributor cannot validly claim against, and that must be reversed at year-end with a corrective GSTR-1 amendment. The reconciliation rule is conservative: accrue only against confirmed pull-through, not against speculative pipeline movement.
How does channel stuffing show up in a secondary-sales-vs-primary-sales reconciliation?
Channel stuffing — pushing primary sales aggressively to hit a quarter-end or year-end target irrespective of downstream demand — leaves four signatures in the reconciliation. First, primary sales grow at a rate materially higher than secondary sales over the same period; the primary-to-secondary ratio drifts upward beyond historical norms. Second, stock-in-trade as a number of days of secondary sales (DSO of the pipeline) extends well beyond the brand's published target range, typically 21 to 35 days for personal care and 14 to 28 days for foods. Third, RTV returns and damages spike in the cycles immediately following the stuffed quarter, as distributors push back un-sellable inventory. Fourth, trade-spend accruals against the stuffed quarter's primary sales convert into stale claims at a higher rate than the brand's blended average. A reconciliation engine that surfaces all four signatures at the quarter close, per distributor and per geography, is the single most effective control against channel stuffing — and aligns with the audit committee's testing focus under Ind AS 115 revenue recognition standards on extended payment terms and right-of-return arrangements.

See how TransactIG handles reconciliation for your industry

Configuration takes 2–4 weeks. No code development required. ISO 27001:2022 certified.