A distributor reports 4,000 units sold and 1,200 in stock, but the supplier's shipments into the market say 3,000 and the last known stock was 900. Each number is plausible; together they do not add up. Distributor reconciliation works when opening stock, receipts, sales, returns and closing stock balance through one equation, with timing and adjustment differences kept visible instead of absorbed.
This guide defines the stock equation for distributor data, names the source event behind every term, walks a worked bridge and sets the timing, returns, tolerance and exception rules that keep the reconciliation defensible.
The stock equation
Opening stock + receipts − sell-out − returns − damages − shrinkage = closing stock. Give every term a source: opening and closing stock from distributor reports or counts, receipts from delivery notes or purchase orders, sell-out from the distributor sell-out file, returns from credit notes and damages and shrinkage from adjustment documents. If you have any five terms, the sixth is implied.
The equation is the reconciliation. Compute the implied closing stock from the flows and compare it with the reported closing stock. The difference is a movement the equation cannot see, not a rounding error. A term without a source becomes a hidden residual.
The source event behind each term
Each term records a different event, so the same difference can have different causes. Sell-out records sell-through to the customer; receipts record product entering the distributor's warehouse; stock records what remains. Compare at a grain all three sources support, product-distributor-month at a minimum, and state the grain and the calendar before comparing.
If a source reports at a different grain, standardize it through a canonical schema first rather than forcing the comparison at a level the data does not reach.
A worked bridge
The table shows one product and one distributor for a month. Each term has a source and the implied closing stock is compared with the reported stock.
| Term | Value | Source |
|---|---|---|
| Opening stock | 900 | Distributor stock report at the start of the month |
| Receipts | 3,000 | Delivery notes in the month |
| Sell-out | 2,400 | Distributor sell-out file |
| Returns | 100 | Credit notes |
| Damages and shrinkage | 40 | Adjustment report |
| Implied closing stock | 1,360 | 900 + 3,000 − 2,400 − 100 − 40 |
| Reported closing stock | 1,320 | Distributor stock report at the end of the month |
| Difference | 40 | Open exception |
The equation implies 1,360, but the report says 1,320. Forty units become an open exception with a movement hypothesis. The bridge turned a vague mismatch into a single visible term with a source for every other part of the flow.
Timing and the boundary
Distributor reporting weeks can differ from the supplier's calendar, and a delivery booked near the cutoff can appear in the sell-out of the next month. As with reporting cutoffs, these are calendar effects: carry them forward with evidence and expect them to clear in the following period.
A timing difference that does not clear has stopped being a timing issue. Investigate it only then, because at that point it is a movement or a data-quality problem wearing a calendar costume.
Returns and damages as their own terms
Returns to the supplier and damages in the warehouse move stock without any sell-out record. Give each its own term with its own source, so they are not absorbed into the residual. If the implied closing stock sits systematically above the report, the likely cause is a movement category missing from the equation.
A clean bridge depends on the movement list being explicit and versioned. Add a category when the evidence points to it instead of widening the residual.
Tolerance as a decision
Tolerance is a stated, documented decision: when the difference at a grain is within tolerance, it is signed off with the reason recorded. Set tolerance by materiality and history, not by habit. An unexplained difference above tolerance is an exception; one below tolerance is still recorded and reviewed.
Sign-off when the equation balances within tolerance is the control. If it does not balance, the documented residual is the decision, not the number.
The exception workflow
Give every open difference a record: category, owner, status, evidence and the first and last month seen. Use a cause-based taxonomy, not a symptom-based one: timing or carry-forward, missing movement, identifier gap, genuine variance and source quality are categories; unmatched and unclear are symptoms.
Aging and recurrence tell you when a correction becomes a process fix. Publish a short monthly exception report with count and value by category, owner and status, so the same differences are resolved rather than rediscovered.
Practical takeaway
Reconcile distributor inventory and sales through one stock equation at a stated grain. Name the source event for every term, keep timing, returns, damages and tolerances explicit, and run the difference through a visible exception workflow. The result is a bridge the supplier, the finance team and the distributor can read the same way.
Marksyte's data reconciliation and controls service can design the stock equation, the source mapping, the tolerances and the exception workflow across distributor, sell-out and stock sources.
- Understand the broader sell-in and sell-out bridge
- Consolidate sell-out data from multiple distributors
- Bridge POS, shipments and inventory
- Standardize retailer and distributor Excel files
- See an illustrative FMCG data reconciliation case
- Explore data reconciliation and exception controls
- Explore managed data operations and analysis
Frequently asked questions
How do you reconcile distributor inventory and sales data?
Through one stock equation at a stated grain: opening stock plus receipts minus sell-out, returns, damages and shrinkage equals closing stock. Every term needs a source event, and the remaining difference becomes a classified exception.
What should balance in distributor inventory reconciliation?
Opening stock, receipts, sales, returns and closing stock. If you have any five terms, the sixth is implied; the implied closing stock should match the reported one within a stated tolerance.
What causes distributor stock and sales to disagree?
Usually a movement category missing from the equation, such as returns, damages or shrinkage, or a timing difference across calendars. Adding the term or carrying the timing difference forward explains the gap.
