AiStaffo

Reconciling Consignment Stock Statements Against Your Ledger

Stock photo: warehouse shelves, documents, laptop
Photo: Daniel Andraski / Pexels

To reconcile a consignment stock statement, you take the units you shipped, subtract what sold and what came back, and compare the result with the stock the consignee reports on hand. Any difference, by SKU and by location, goes onto an exception list. Automation helps with the boring parts: collecting statements from email, WhatsApp and portals, reading the figures, running the arithmetic and sorting differences into groups such as unsold, damaged and unreported. A person still decides what to chase, what to write off and what to bill. The method works for any business that ships stock to a distributor or shop it does not own, whatever the size of the operation. The hard part is almost never the arithmetic. It is making sure the distributor's item codes map to yours and that both sides use the same cut-off date.

In short

  • Every consignment unit you shipped should be sold, returned or still on the consignee's shelf, and the reconciliation proves which.
  • Build the SKU map first, because most failed matches come from mismatched item codes.
  • Use the same cut-off date for shipments and statements, or timing differences will look like losses.
  • Automation should propose matches and sort exceptions; a named person approves write-offs and disputes.
  • Do not automate a process whose contract terms for ageing, damage and returns are still unclear.

Why unmatched consignment stock costs money

Consignment stock sits in another company's warehouse or shop, but you still own it until it sells. Every unit you shipped should therefore appear in one of three places: sold, returned, or still on the consignee's shelf. When the distributor's sell-through report does not match your ledger, the gap hides three costs. You may book revenue late or in the wrong month. You may never recover stock that was damaged or lost. And you may pay or be paid the wrong amount on the next settlement.

The scale of the problem is easier to see in retail inventory research than in consignment-specific data. A 2008 study by DeHoratius and Raman found that 65% of the inventory records it examined did not match physical counts. Secondary sources describe that sample differently, one as 37 stores of a major US retailer and another as 37 leading US retailers, so treat the figure as a sign of scale rather than a benchmark for your own business. No recent figure for consignment stock specifically is available, so the cost model below uses your own numbers.

Here is a simple way to size your exposure. Take the number of units you believe are at consignees and multiply the unmatched units in a month by your cost per unit. Suppose a supplier has 3,000 units on consignment and finds 150 units unexplained in one month, at a cost of 12 currency units each. That is 1,800 units of currency at risk for that month, before storage, handling and the staff time spent chasing. The figures are placeholders for the arithmetic only. Replace them with your own counts, and you have a number you can take to a decision.

The manual way and the automated way

Most teams start by downloading a spreadsheet from each distributor, copying numbers into their own file and hunting for differences by eye. That works while you have two consignees and a few dozen SKUs. It breaks as soon as the statements arrive in different layouts, on different days, or as photos of printed reports.

StepManual wayAutomated way
Statement intakeSomeone opens each email, portal or WhatsApp message and saves the fileStatements arrive in a shared mailbox or message thread and are filed automatically with the consignee's name and month
Reading the figuresTyped by hand from PDFs, screenshots or printed copiesExports are read directly; PDFs and photos go through document extraction and are flagged when a field is unclear
SKU matchingMatched by memory or by a shared spreadsheet that drifts over timeMatched through a saved SKU map that lists each consignee's item code against your own
Expected balanceCalculated per SKU in a spreadsheet, often with formula errorsCalculated with the same formula every month: opening stock plus shipments, less sales and returns
Exception listA list built at month end, usually lateA list generated on the same day statements arrive, sorted by category and value
Audit trailDepends on who saved which fileEvery statement, match and override is logged with a date and a name
Who decidesWhoever has timeA named person approves write-offs and disputes; the system proposes only

The table shows the division of labour clearly. Automation removes the copying and the arithmetic. It does not remove the judgement about a damaged case, a late statement or a consignee who reports a sale you cannot verify.

Step-by-step: how to automate the match

Step 1: Build one SKU map before you automate anything

Each distributor describes the same product in its own way. One uses your barcode, another uses its internal code, and a third uses a short description with no code at all. Start with a single table that lists every SKU you ship, its barcode if you have one, and the code each consignee uses for it. Keep this table in one place with a named owner. Every later step depends on it, and most failed matches trace back to a missing or outdated row.

Step 2: Collect the statements in one place

Ask each consignee to send statements in the same way every month. A portal export or a spreadsheet is best. A PDF attached to an email is workable. A photo sent on WhatsApp is the hardest to use. WhatsApp is still useful for the request itself. Meta's WhatsApp Cloud API lets a business send and receive messages, including documents, and it reports delivery and read status, so the system can send a reminder on the first working day and log whether it arrived. Route inbound files into one folder, labelled by consignee and month.

For PDFs and photos, use optical character recognition with an extraction service. Google Document AI's Invoice Parser returns header fields such as invoice number and totals, plus line items, each with a confidence score. It is built for invoices and is an extraction step, not an approval step, so a sell-through statement needs its own check. One independent practical evaluation of the parser found that header data read reliably while line items on complicated tables were weaker, so test your own statement layouts before you rely on the output.

Step 3: Work out the expected closing balance

For each SKU, at each consignee location, calculate the balance the consignee should hold. Start with the opening stock from last month's close. Add what you shipped in. Subtract the units the consignee reports as sold and the units returned to you. The result should equal the stock count the consignee reports at close. Run this in a spreadsheet at first, or in your inventory system if it can track stock held at a customer's site. Use the same cut-off date for shipments and statements. If the distributor closes its books on the 28th and you close on the 31st, your differences will look like losses when they are timing.

Step 4: Match and classify every difference

Compare the expected closing balance with the reported count, SKU by SKU. Zero difference means the record is clean. Any other difference goes through a short set of checks: did a shipment arrive after the cut-off, is there a return that was not reported, is the SKU mapping wrong, or is the difference real. A large language model can help here by reading a messy comment field or a note in an email and suggesting which category it belongs to. It should not post anything to your ledger. Each suggested match needs a rule or a person to confirm it.

Step 5: Produce the monthly exception list

The output of the whole process is a short list, not a report. It should group the open differences into the categories that drive action:

  1. Unsold stock held beyond the period the agreement allows, with the number of days and the value.
  2. Damaged units reported by the consignee, with photos or a note where the agreement requires them.
  3. Unreported units, where the expected balance is higher than the reported count and no sale or return explains the gap.
  4. Sales that do not match your records, such as units reported as sold that you never shipped.
  5. Mapping and timing errors, which should shrink over time as the SKU map improves.

Sort each category by value so the largest items are reviewed first. Assign a named person to each line, and set a date for the consignee's reply. A reviewer then approves the write-offs, sends the chasers, and agrees the settlement figures. Keep the list and the decisions for the audit trail.

What breaks and how to prevent it

The most common failure is the SKU map going out of date. A new product launch, a renamed item or a consignee that quietly changes its codes will create a run of false differences in the next statement. Prevent this by reviewing the map each time a product is added or retired, and by treating any new unmatched code as an exception rather than letting the system guess.

Second, statements arrive late or on a different cut-off. A consignee that reports on the last working day of the month and a supplier that closes on the first will look out of step every month. Agree a single reporting date in writing and state it in the statement request.

Third, document extraction misreads digits, especially in blurred photos and faxed copies. Set a rule that any field below your confidence threshold, or any total that does not add up, goes to a person. Do not let the system silently accept it.

Fourth, returns and damaged units are often missing from statements altogether. The arithmetic will then show units as unreported when they were in fact sent back. Ask consignees to report returns and damage on the same statement, and check the returns against goods-received notes at your own warehouse.

Finally, automation can make a poor process faster without making it right. If the agreement does not say what happens to aged or damaged stock, the exception list will show the problem every month and nobody will be able to close it. Fix the contract terms first. The software cannot decide who bears the loss.

When not to automate

Automation is not worth it in every case. If you have one or two consignees who send a simple monthly spreadsheet and your stock values are low, a careful person with a template may finish the reconciliation in an hour and make fewer mistakes than a new system you have to maintain. The same applies if the consignee refuses to share item-level data, because the system then has nothing reliable to match against. A business with no item master, no agreed reporting date and no one who owns the SKU map should build those first. Automating a process nobody agreed on only produces faster disagreements.

What the work takes

The effort depends on three things: how many consignees you have, how many formats their statements arrive in, and how clean your product list is. The first cycle is usually the heaviest, because the SKU map, the statement formats and the exception rules are all new. Expect to spend your own time on the map, on the contract terms for ageing and damage, and on reviewing the first few exception lists closely. Once the rules are set, the monthly work shifts from copying figures to deciding on the exceptions that remain. The free audit measures these factors against your own data, so you get a figure for your business rather than a general estimate.

The accounting side

Under the accounting rules most often applied to consignment, the consignor keeps the goods as its own inventory until the end customer buys them, and records revenue at that point rather than on shipment. The consignee generally does not record the goods as an asset and books only its commission or fee on sale. This is why a clean statement matters: the sell-through figures decide when your revenue is recognised. Confirm the treatment for your own jurisdiction and reporting framework with your accountant before you change how you book consignment sales.

This explains the rule in general terms; it is not legal or tax advice for your case.

How AiStaffo would automate this

AiStaffo would connect your shipment records, the SKU map and the mailbox or WhatsApp thread where consignees send statements. Each month the system would request statements on a fixed date, file them by consignee, read the figures, run the expected-balance calculation and sort every difference into the exception categories. It would not post anything to your ledger or send a write-off. You or your finance lead would review the list, approve the chasers and decide on each write-off. Book a free automation audit to see how this would work with your own consignees and stock records.

Questions people ask

What is a consignment stock statement?
It is a report from the distributor or shop holding your goods that shows what was sold, what was returned, and what is still on hand. It lets you check that your own stock records agree with what the consignee holds. The statement is the consignee's view, so it needs to be checked against your shipment records.
How often should consignment stock be reconciled?
Monthly is the most common cadence, and some industry glossaries describe weekly or monthly sell-through reporting as typical. A high-volume product may need more frequent checks. The right frequency is the one written into the agreement, so both sides work to the same date.
Can an AI tool read consignment statements sent as PDFs or photos?
Document extraction tools can read the fields on a statement, but results vary with the layout and the quality of the photo. Google Document AI's Invoice Parser is designed for invoices and returns confidence scores for each field. Any field below your threshold, or any total that does not add up, should go to a person.
Who owns unsold consignment stock?
Under common accounting treatment, the consignor keeps the goods on its books until the end customer buys them. The consignee does not record the goods as its own inventory. The contract should state what happens to aged or damaged stock, because the accounting rule does not decide that for you.
Can WhatsApp be used to request consignment statements?
Yes. Meta's WhatsApp Cloud API can send messages and documents programmatically and reports delivery and read status. It works best as the request and reminder channel, with the statement itself sent in a structured format such as a spreadsheet. Confirm your business verification and messaging limits with Meta before you rely on it.
What should I do first if my statements never match?
Start with the SKU map and the cut-off date, because those cause most false differences. Ask each consignee to report returns and damage on the same statement. Only after those two are fixed does the remaining difference show whether a unit is truly unreported.

Book a free automation audit

Thirty minutes. We look at one process you run every week and tell you exactly what an AI worker would take off your desk, and what it would not.

We use these details only to reply to this request and prepare your audit, and keep them for up to two years. We send no marketing unless you tick the box above. Privacy policy

consignment stockinventory reconciliationsell through reportstock ledgerdistributor statements