Blog · Forecast and pipeline · FMCG and CPG brands
How a CPG brand compares what it shipped to each retailer with what the retailer sold through, from the shipment ledger and the sell-out data: the channel inventory implied by the difference, weeks of cover per retailer and per SKU, the retailers where sell-in has run ahead of sell-out for a quarter, the promotions that loaded the channel, and why a strong shipment quarter with rising channel inventory is next quarter's problem.
A brand's shipment quarter is strong. Its sell-out data says the retailers sold less than they received, and the difference is sitting in distribution centres and backrooms. Next quarter's shipments will be short by that much, and the sales team will be asked why. This guide sets out sell-in against sell-out per retailer, weeks of cover, the rising-cover list, and the identity.
Per retailer, per SKU, per week:
Implied channel inventory = Σ sell-in to date − Σ sell-out to date, from a stated starting inventory Weeks of cover = implied inventory ÷ average weekly sell-out, trailing eight weeks Trend = weeks of cover now against the trailing four quarters' average
Per retailer:
Share of SKUs with rising cover; the sell-in value ahead of sell-out this quarter
Retailer identifiers only.
implied inventory ≥ −tolerance, per retailer per SKU per week
Inventory cannot be negative. Where the implied figure falls below zero by more than the tolerance, sell-out exceeds sell-in, and the sell-in data is missing shipments or the sell-out data double-counts. The row is listed, not floored.
| Retailer | SKU | Sell-in this qtr | Sell-out this qtr | Implied inventory | Weeks of cover | Trailing avg | Reading |
|---|---|---|---|---|---|---|---|
| R-2207 | K-104 | 48,000 | 31,000 | 41,000 | 11.4 | 5.2 | Rising: loaded |
| R-2207 | K-109 | 12,000 | 12,500 | 4,800 | 3.3 | 3.5 | Fine |
| R-4471 | K-104 | 30,000 | 29,000 | 9,200 | 2.8 | 3.0 | Fine |
| R-9034 | K-104 | 21,000 | 8,000 | 38,000 | 41 | 6.1 | Loaded; promo not in calendar |
Retailer R-2207 holds eleven weeks of K-104 against five normally. Seventeen thousand units of this quarter's revenue are next quarter's shortfall. Retailer R-9034 has forty-one weeks and no promotion in the calendar to explain it, which is a question for the account manager before it is a question from the CFO.
| Retailer | SKUs rising | Sell-in ahead of sell-out | Next-quarter shipment effect |
|---|---|---|---|
| R-2207 | 14 of 40 | $410,000 | −$410,000 at stated sell-out |
| R-9034 | 9 of 22 | $290,000 | −$290,000 |
Sell-in reported alone. A strong quarter that is next quarter's miss.
Sell-out coverage unstated. Weeks of cover computed on half the SKUs, presented as all.
Starting inventory unknown. The level is wrong; the trend still holds. State it as trend only.
Promotions not on the page. A legitimate promotional load looks like a loading, or the reverse.
Mapped once, the shipment ledger, the sell-out files and the promotion calendar produce implied inventory, weeks of cover, the trend and the identity every week. Covirage builds this from the exports as they are. The CPG brands page describes the setup, and the promo lift guide covers the promotional shipments that this measure separates from loading.
Retailer portals, distributor sell-out files or syndicated data, weekly per retailer and SKU. Coverage is rarely complete; the report shows the share of sell-in that has matching sell-out data and computes weeks of cover only where it does.
It depends on the retailer's replenishment cycle and the SKU's velocity. The useful comparison is each retailer-SKU against its own history: weeks of cover this quarter against the trailing four. Rising is the signal; the level is context.
A promotion pulls sell-out up and sell-in up together, and weeks of cover holds. A loading pushes sell-in up with sell-out flat, and weeks of cover rises. The promotion calendar on the same page says which shipments were promotional.