Logistics and distribution
How to track lost sales at a distributor, and why the records matter
By SourceX Editorial · Updated
Short answer
To track lost sales at a distributor, record every inquiry, quote or order line that does not ship, at the moment it happens, with a reason code, item, quantity, customer and the person who captured it. Sales history only shows demand you filled; lost-sale records show the rest, which improves stocking, pricing and later AI work.
Key takeaways
- A lost sale is demand that will never ship, whether the cause was stock, price, lead time or an item the company does not carry.
- A short list of mutually exclusive reason codes captured at order entry beats a long list nobody uses.
- Sales history alone understates demand for items that stocked out, so lost-sale records correct forecasts.
- Lost-sale logs linked to quotes and orders become part of a distributor's exception history, which AI developers value.
What counts as a lost sale?#
A lost sale is any customer demand the distributor did not fill and will not ship later. A contractor who calls for an out-of-stock item and buys it elsewhere is a lost sale. So is a quote that goes to a competitor on price, or a request for a product the branch does not carry.
Lost sales differ from backorders and cancellations. A backorder still ships; it is delayed demand. A cancellation is a lost sale if the reason was availability or price, but not if the customer's project was cancelled. Keeping these categories apart is what makes the data useful later.
A reason-code template distributors can adapt#
A reason-code template works when the codes are few, mutually exclusive and tied to a decision someone can make. Treat the table as a starting point and adjust the wording to your lines and branches.
Add a free-text note field. Codes make the data countable; notes explain the exceptions, such as which competitor had stock, what substitute was offered and why it was refused.
| Code | Reason | When to use it | Who acts on it |
|---|---|---|---|
| STOCK | Out of stock across the network | Item normally stocked but unavailable | Purchasing and inventory planning |
| LEAD | Lead time not acceptable | Item available only by special order or slow transfer | Purchasing, branch operations |
| PRICE | Price not accepted | Customer cites price or a competitor quote | Pricing and sales management |
| NOTCARRIED | Item not carried | Request for a product the company does not stock or list | Product management |
| SUBDECL | Substitute declined | Alternative offered and refused | Product management, technical sales |
| QUOTELOST | Quote not converted | Quoted job went elsewhere or did not proceed | Outside sales |
| CREDIT | Credit or account hold | Order blocked by credit status | Credit department |
| SPEC | Technical or spec mismatch | Product could not meet the requirement | Technical sales |
- 01Your work records
- 02Personal details removed
- 03You approve the release
- 04Licensed to AI developers
How to capture lost sales at the counter, on the phone and online#
Capture works only at the moment of the lost sale, because nobody reconstructs demand a day later. Build the step into each channel's normal flow rather than adding a separate task.
Many distribution ERPs include a lost-sale or lost-business entry. If yours does not, a custom table or a short CRM form linked to item and customer numbers works, as long as it captures the same fields every time: date, branch, customer, item or description, quantity, code, note and the person entering it.
- Counter and phone orders: when a line cannot be filled, the ERP prompts for a lost-sale entry before the line is removed.
- Quotes: when a quote expires or is marked lost, require a reason code and a competitor field where known.
- Ecommerce: log searches with no result, out-of-stock product views and abandoned carts with unavailable items as separate demand signals.
- Inside and outside sales: give reps a quick CRM form for requests that never reach order entry.
- Branch transfers: record when a transfer was offered and refused because of timing.
- Review: managers go through lost sales by code and branch on a regular schedule and close the loop with purchasing and pricing.
Reports that turn lost sales into decisions#
Lost-sales data earns its keep in a handful of standing reports. Each report should lead to a decision owned by a named function, or staff will stop entering codes.
| Report | Question it answers | Fields it needs |
|---|---|---|
| Lost sales by item and branch | What should we stock, and where? | Item, branch, quantity, code, date |
| Lost sales by reason | Are we losing on stock, price or lead time? | Code, item, customer segment |
| Not-carried requests | Which new items or lines should we add? | Requested description, quantity, customer, notes |
| Quote loss analysis | Where do competitors win, and why? | Quote, reason, competitor, margin |
| Lost sales by supplier | Whose fill problems cost us business? | Item, supplier, code, dates |
Why unfilled demand records matter for forecasting and AI#
Unfilled demand records matter because sales history only shows demand that was filled. When an item stocks out, recorded sales drop to what was available, and a forecast built on those sales learns to stock less. Planners call this censored demand, and lost-sale records are the most direct way to correct it.
The same records carry value beyond forecasting. A lost-sale entry linked to the quote, the substitute offered, the customer's response and the next order is a small record of judgment under constraint. AI developers training models for purchasing, pricing and customer service look for this kind of linked exception history, because clean order lines alone do not show how decisions were made.
That gives lost sales a second life: the log that fixes a forecast can become part of an order and exception package licensed to AI developers, with customer identities removed and the distributor keeping ownership.
Mistakes that ruin lost-sales data#
Most failed lost-sales programs fail in predictable ways, and each one shows up quickly in the data as empty fields or a single overused code.
- Too many codes, so staff pick whichever appears first.
- Optional entry, so only the most diligent branches record anything.
- Logging lost sales later from memory, which loses quantity and timing.
- Mixing backorders and project cancellations with true lost sales.
- Deleting lost-sale tables during an ERP upgrade because they look like noise.
- Never reviewing the data, which tells staff it does not matter.
Illustrative: an MRO distributor starts recording what it misses#
Illustrative: a fictional industrial MRO distributor with several branches runs Epicor for orders and inventory and a CRM for outside sales. It has never recorded lost sales, and branch managers believe stockouts are rare.
The COO turns on the ERP's lost-sale prompt with a short code list and asks outside reps to log lost quotes in the CRM. After a full season, the reports show that most losses come from lead time on slow-moving bearing and power transmission items rather than price, and that one branch keeps getting requests for a product family the company does not carry.
Purchasing adjusts stocking at the affected branches and product management adds the requested family. The lost-sale log, now linked to quotes and orders, also becomes part of the order exception history the company inventories when it reviews licensing options.
How SourceX looks at lost-sale records#
SourceX inventories lost-sale logs as order exception records in the Supply step of the SourceX five-step transaction, alongside quotes, orders, returns and service tickets. Under the SourceX Enterprise Data Value Framework, these records score on human-generated signal, domain expertise and recency, while data cleanliness depends on how consistently branches used the codes.
Nothing is shared in the initial fit check. If a package proceeds, Preparation removes customer names and contacts, and the distributor approves every step before Delivery.
Frequently asked questions
How many reason codes should we use?
Use as few codes as cover the decisions you actually make, and keep each one mutually exclusive. If staff keep reaching for a catch-all code, read the notes and split out a new code. If a code is never used, remove it.
Should lost quotes count as lost sales?
Track them, but keep them distinguishable. A lost quote often reflects price or competition on a project, while a counter lost sale usually reflects availability. A separate code or source field lets you report them together or apart.
How do we get counter staff to record lost sales?
Make it part of order entry rather than a separate task, keep the codes short, and show staff what changed because of their entries, such as an item added to stock. Managers who review lost sales visibly get better data.
Can lost-sale records be licensed?
Often, as part of a broader order and exception package. Records that connect a request, the reason it was lost, the substitute offered and what happened next are useful to AI developers. Customer names and contacts are removed, and supplier pricing is stripped where agreements require.
Do web searches with no results count as lost sales?
Treat them as a separate demand signal. A no-result search shows intent but not quantity or certainty. Logged alongside counter lost sales, they help product management spot items customers expect you to carry.
Related resources
See if your company qualifies
A short company assessment. No data uploads are needed.