Skip to content

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.

A reason-code template distributors can adapt
CodeReasonWhen to use itWho acts on it
STOCKOut of stock across the networkItem normally stocked but unavailablePurchasing and inventory planning
LEADLead time not acceptableItem available only by special order or slow transferPurchasing, branch operations
PRICEPrice not acceptedCustomer cites price or a competitor quotePricing and sales management
NOTCARRIEDItem not carriedRequest for a product the company does not stock or listProduct management
SUBDECLSubstitute declinedAlternative offered and refusedProduct management, technical sales
QUOTELOSTQuote not convertedQuoted job went elsewhere or did not proceedOutside sales
CREDITCredit or account holdOrder blocked by credit statusCredit department
SPECTechnical or spec mismatchProduct could not meet the requirementTechnical sales
  1. 01Your work records
  2. 02Personal details removed
  3. 03You approve the release
  4. 04Licensed to AI developers
How it works with SourceX: Your work records → Personal details removed → You approve the release → Licensed to AI developers.Illustrative

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.

Reports that turn lost sales into decisions
ReportQuestion it answersFields it needs
Lost sales by item and branchWhat should we stock, and where?Item, branch, quantity, code, date
Lost sales by reasonAre we losing on stock, price or lead time?Code, item, customer segment
Not-carried requestsWhich new items or lines should we add?Requested description, quantity, customer, notes
Quote loss analysisWhere do competitors win, and why?Quote, reason, competitor, margin
Lost sales by supplierWhose 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.

See if your company qualifies