# How to Reduce Excess and Obsolete Inventory in Ecommerce

Excess stock is a pacing problem and obsolete stock is a recovery problem, and they need different fixes. How to find both with an aging report, sell-through and turnover, decide between markdown and liquidation with real numbers, and book an E&O reserve that keeps gross margin honest.

---

- **Canonical URL:** https://dothecalculation.com/blog/business/how-to-reduce-excess-and-obsolete-inventory
- **Category:** Business
- **Author:** Do The Calculation Team
- **Published:** 2026-09-17
- **Reading time:** 14 min read
- **Publisher:** Do The Calculation (https://dothecalculation.com)
- **Methodology:** https://dothecalculation.com/methodology

---

## Two Problems That Look Like One

Open any warehouse report six months into running an ecommerce brand, and you will find it: a shelf, a bin, sometimes an entire pallet of stock that stopped moving a while ago and nobody quite noticed. It happens to well-run stores as often as sloppy ones. The difference is what happens next.

Excess and obsolete inventory, usually shortened to E&O, is often treated as a single problem, but it is really two. Excess inventory is stock held in quantities beyond what current demand supports. It is still sellable, just slower than planned. Obsolete inventory is stock unlikely to sell at a meaningful price at all, because the product was discontinued, replaced, or has fallen out of demand for good. Excess stock calls for slower buying and a push on demand. Obsolete stock is closer to a sunk cost, where the job is to recover as much cash as you can.

The distinction matters because the fix for each is different, and so is the accounting treatment. This guide walks through how to identify both, how to choose a clearance route with numbers rather than instinct, how to reflect lost value on the books, and how to stop the next batch from forming.

**Excess vs obsolete inventory**
|  | Excess inventory | Obsolete inventory |
| --- | --- | --- |
| What it is | More units than current demand will absorb in a reasonable time | Units unlikely to sell at a meaningful price at all |
| Typical cause | Overbuying, optimistic forecast, bulk discount | Discontinued, replaced, expired, or out of fashion |
| Still sells? | Yes, slowly | Rarely, and only at a steep discount |
| Main lever | Slow the reorders, push demand | Recover cash, write the value down |
| Accounting | Usually none beyond monitoring | Write-down, reserve, or write-off |

## Why Excess and Obsolete Inventory Builds Up

Dead stock rarely comes from one bad decision. It is usually the compounding effect of a few habits that each seem reasonable in isolation:

- Bulk ordering for a supplier discount without modelling how long the quantity will take to sell through. A 10% unit discount is quickly eaten by a year of holding cost.
- Forecasting off a single strong month instead of trailing sales and seasonality.
- No formal reorder point, so purchasing runs on instinct rather than a repeatable trigger tied to lead time and daily sales.
- Rapid SKU expansion: new colours, sizes, or bundles launched before the core product has proven steady demand.
- Holding last season's stock "just in case" when the data says it will not sell at full price again.

These are ordinary habits, and they add up whenever purchasing runs ahead of the numbers that should drive it. The stores that manage inventory well are not the ones that never overbuy. They catch it early and act before the carrying cost outweighs the recovery value.

## How to Identify Excess and Obsolete Inventory

Before touching a clearance strategy, get a clear read on what is actually sitting idle and why. This is much easier when purchasing, inventory, sales, and the general ledger draw on connected data instead of four separate exports, which is the practical case for [accounting system optimization](https://smallbizcontroller.io/accounting-system-optimization/) in a growing store: the aging report and the balance sheet end up telling the same story.

### Run an inventory aging report

An inventory aging report groups SKUs by how long they have sat since the last unit sold, usually in bands such as 0 to 90, 91 to 180, 181 to 365, and over 365 days. Inventory platforms such as Cin7, NetSuite, and Extensiv generate this directly, and Shopify's inventory reports cover days of inventory remaining and sell-through on its higher plans. If you are working from spreadsheets, pull the last sale date per SKU and calculate days since movement.

There is no universal cutoff where inventory officially becomes obsolete. A 90-day window is aggressive for a business with long replenishment cycles or genuinely seasonal products, and too generous for a fast fashion brand where a 45-day-old SKU is already stale. Set the bands against your own historical turnover, not a rule of thumb borrowed from a blog post, this one included.

### Measure sell-through, weeks of supply, and turnover

Aging tells you how long stock has sat. Sell-through, weeks of supply, and turnover tell you whether it is actually a problem.

**Three movement signals**

```
Sell-through rate = units sold ÷ units received × 100
Weeks of supply = units on hand ÷ average units sold per week
Inventory turnover = cost of goods sold ÷ average inventory at cost
Days inventory outstanding = 365 ÷ inventory turnover
```
- Some retailers calculate sell-through against beginning on-hand plus units received. Pick one definition and keep it, because the two produce different percentages for the same SKU.
- Use cost, not retail value, in the turnover formula so the numerator and denominator are measured the same way.

A SKU that is 90 days old but still selling at 15 to 20% of its stock each month is not dead stock. It is a slower mover you should reorder less of. A SKU with 220 units on hand selling 4 a week, on the other hand, has 55 weeks of supply, which is more than a year of cash parked on a shelf.

Turnover gives the same signal at category or store level, and it is one of the first numbers lenders and acquirers ask for. A store with $960,000 of annual COGS and $180,000 of average inventory turns 5.3 times a year, or about 68 days of inventory. The [inventory turnover calculator](/calculators/inventory-turnover-calculator) runs both figures from your own COGS and inventory balances.

> **Age is not the only signal** — The common mistake is treating age alone as the verdict. A SKU that is old but still converting needs a smaller reorder, not a clearance sale. A SKU that is old and flat needs a decision.

### Segment SKUs with ABC analysis

Once you have aging and movement data, segment. ABC analysis ranks SKUs by revenue or gross profit contribution. A common split puts the SKUs that together produce about 80% of revenue in A, the next 15% in B, and the long tail in C, though the thresholds are a convention you can adjust. A items are your top performers and rarely have an excess problem. B items are steady mid-tier stock worth monitoring. C items are where slow-moving and dead inventory concentrates, which keeps clearance effort on the SKUs actually dragging on cash flow instead of spreading it evenly across the catalogue.

## 5 Steps to Reduce Excess and Obsolete Inventory

### 1. Split slow-moving stock from dead stock

Combine the aging report, movement data, and ABC segments into one working list, then split it into two buckets. Slow-moving stock is recoverable at close to full margin with the right push. Dead stock is unlikely to sell without a steep discount or an alternate channel. Flag anything discontinued by the supplier or replaced by a newer version as dead regardless of age, since those rarely recover. This split decides everything that follows.

### 2. Calculate what holding the stock costs

This is the step most guides skip, and it is usually what convinces a founder to act. Carrying cost is not just warehouse rent. It includes storage and handling, insurance, the cost of capital tied up in stock, shrinkage and damage, obsolescence risk, and the opportunity cost of shelf space that could hold a product that turns.

**Annual carrying cost**

```
Carrying cost = average inventory value at cost × annual carrying cost rate
```
- A commonly used estimate puts the annual rate at 20 to 30% of inventory value. It varies with storage method, product fragility, and how expensive your capital is.

Run the math on your own dead stock. At a 25% annual rate, a SKU that has sat for eight months has already cost about a sixth of its value just by existing on the shelf, before you have recovered a dollar from selling it. Across the store in the example below, the $54,000 of stock older than 90 days costs roughly $13,500 a year, or $1,125 a month, to keep. The [inventory carrying cost calculator](/calculators/inventory-carrying-cost-calculator) builds the cost from its components if you do not want to assume a rate.

> **Selling on Amazon FBA** — For FBA sellers the carrying cost is not an estimate, it is an invoice. On top of monthly storage fees, Amazon adds an aged inventory surcharge to units stored beyond 181 days, and the rate rises as inventory ages further. Check the current schedule in Seller Central, then rerun unit economics in the [Amazon FBA profit calculator](/calculators/amazon-fba-profit-calculator) with the real storage charge rather than the launch estimate.

### 3. Choose the right clearance strategy

Match the tactic to how far the SKU has drifted from sellable:

**Clearance routes by how far a SKU has drifted**
| Route | Best for | What it protects | Watch out for |
| --- | --- | --- | --- |
| Bundling with a bestseller | Mildly slow stock | Price perception on the bestseller | Bundle margin, see [stacked discounts and BOGO math](/blog/business/stacked-discounts-bogo-deals-guide) |
| Email or SMS flash sale to your list | Moderately overstocked SKUs | Public price, since the discount stays private | Training subscribers to wait for sales |
| Public markdown | Seasonal stock at the end of its window | Speed | Margin, and a lower reference price once the sale ends |
| Liquidation (B-Stock, liquidators, wholesale) | Genuinely dead stock | Cash and warehouse space | Recovery is often 20 to 40 cents on the dollar, or less |
| Donation | Stock with near-zero resale value | Disposal cost, possible deduction | Tax rules and documentation, see step 4 |

Before a flash sale, work out where the discounted price leaves margin, not markup, since a 30% markdown on a product with a 50% markup leaves far less than people expect. The [margin vs markup guide](/blog/business/margin-vs-markup-comparison) shows why the two numbers diverge.

The expensive mistake is holding out for full margin on stock that has already shown it will not sell at full price. Every extra month in storage adds carrying cost and lowers what anyone will eventually pay. The decision gets clearer when you put numbers on it.

### Worked example: markdown or liquidate?

A store holds 300 units of a discontinued accessory that cost $18 each, $5,400 in total. A liquidator offers 30% of cost, $5.40 a unit, or $1,620 today. The alternative is a markdown to $24, with fulfilment and payment fees of about $6 a unit, so each sale nets $18 and simply recovers cost. Holding cost runs at 25% a year on the average value still on the shelf.

**Twelve months of markdown vs liquidating today**
|  | Liquidate today | Markdown sells 25/month | Markdown sells 8/month |
| --- | --- | --- | --- |
| Units sold at $24 in 12 months | 0 | 300 | 96 |
| Net from markdown sales | $0 | $5,400 | $1,728 |
| Carrying cost over the year | $0 | −$675 | −$1,134 |
| Leftover units liquidated at $5.40 | $1,620 (all 300 now) | $0 | $1,101.60 (204 units) |
| Economic value recovered | $1,620 | $4,725 | $1,695.60 |

If the markdown really moves 25 units a month, it recovers nearly three times what the liquidator offers. If it moves 8, a year of effort, email sends, and shelf space ends up worth $75.60 more than taking the offer on day one, and the leftover stock is a year older. The deciding input is the sales rate at the lower price, so test the markdown for two to four weeks and read the result before committing a whole season to it.

### 4. Account for write-downs and an E&O reserve

This is where the operational and financial sides of the problem connect, and it is the part operator-level advice most often leaves out.

If inventory has genuinely lost value, the books need to show it. That happens through a write-down, which reduces the recorded value to what the stock is realistically worth, a write-off, which removes stock with no remaining value entirely, or an obsolescence reserve, an allowance set up in advance for inventory expected to lose value. Leaving overstated inventory at full cost inflates reported assets and flatters gross margin, which becomes a real problem during financing, due diligence for a sale, or any decision made off numbers that do not reflect the shelf.

**Write-down, write-off, and reserve**
| Treatment | When it applies | Effect on the books |
| --- | --- | --- |
| Write-down | Stock still has some value, but less than cost | Inventory reduced to realisable value; the loss usually goes through cost of goods sold |
| Write-off | Stock has no value and is destroyed, donated, or scrapped | Remaining carrying value removed in full |
| E&O reserve | Loss is expected across aged stock but not yet tied to specific units | A contra-inventory allowance estimated from aging, adjusted each period |

Under US GAAP (ASC 330), inventory measured using FIFO or average cost is reported at the lower of cost and net realizable value, meaning the expected selling price less the costs to complete and sell. Inventory measured using LIFO or the retail inventory method still follows the older lower of cost or market test. Once written down under US GAAP, the reduced amount becomes the new cost and is not written back up if prices recover. IFRS ([IAS 2](https://www.ifrs.org/issued-standards/list-of-standards/ias-2-inventories/)) also measures inventory at the lower of cost and net realisable value, but does allow a reversal when value recovers.

Most stores that handle this well run it as a quarterly routine: pull the aging report, apply a reserve percentage to each age band, and book the adjustment so the balance sheet reflects what the inventory is actually worth. The percentages below are illustrative; yours should come from what aged stock has actually recovered in the past.

**Example E&O reserve on $180,000 of inventory at cost**
| Days since last sale | Inventory at cost | Reserve rate | Reserve |
| --- | --- | --- | --- |
| 0 to 90 | $126,000 | 0% | $0 |
| 91 to 180 | $28,000 | 15% | $4,200 |
| 181 to 365 | $16,000 | 50% | $8,000 |
| Over 365, or discontinued | $10,000 | 90% | $9,000 |
| Total | $180,000 | 11.8% | $21,200 |

Suppose that store had $400,000 of revenue and $240,000 of COGS in the quarter, a 40% gross margin. Booking the $21,200 reserve through cost of goods sold takes COGS to $261,200 and gross margin to 34.7%. That 5.3-point drop is not a new loss. It is a loss that had already happened on the shelf and was simply not yet visible. The [gross vs operating vs net margin guide](/blog/business/gross-vs-operating-vs-net-margin) shows how that flows down the rest of the P&L, and the [COGS calculator](/calculators/cogs-calculator) reconciles beginning inventory, purchases, and ending inventory once the adjustment is in.

> **Book reserves and tax deductions are not the same thing** — For US federal tax, a book reserve for obsolescence is not deductible on its own. In [Thor Power Tool Co. v. Commissioner](https://www.law.cornell.edu/supremecourt/text/439/522) (1979) the Supreme Court disallowed a write-down of excess stock that the company was still offering at its original prices. Goods that cannot be sold at normal prices because of damage, changes of style, odd lots, or similar causes can be valued at their bona fide selling price minus the direct cost of disposition, as [IRS Publication 538](https://www.irs.gov/publications/p538) explains, which is why records of the reduced-price offer or the disposal matter. For donations, C corporations, and any business donating food inventory, may qualify for an enhanced deduction when the goods go to a qualifying charity that uses them for the ill, the needy, or infants. Otherwise, [IRS Publication 526](https://www.irs.gov/publications/p526) limits the deduction for donated inventory to the smaller of its fair market value or its basis, and that amount cannot also be counted in cost of goods sold. The details depend on your accounting method and entity type, so treat this as a conversation for your accountant or fractional controller.

### 5. Prevent the next round of excess inventory

Clearing what is already sitting idle solves today's version of the problem. Preventing the next round means tightening the front end of purchasing:

- Set a real reorder point from lead time and average daily sales, plus safety stock sized to demand variability, rather than a round number that feels safe. The [safety stock calculator](/calculators/safety-stock-calculator) returns both, and the [EOQ vs reorder point vs safety stock guide](/blog/business/eoq-vs-reorder-point-vs-safety-stock) explains which question each one answers.
- Forecast from trailing 12-month sales plus known seasonality, not one strong month or a supplier's suggested order quantity.
- Cap each month's purchasing with an open-to-buy budget so orders cannot outrun the sales plan. The [open-to-buy calculator](/calculators/open-to-buy-calculator) builds it from planned sales, markdowns, and target inventory.
- Before taking a bulk discount, compare the saving with a year of carrying cost on the extra units. The [economic order quantity calculator](/calculators/eoq-calculator) shows the order size where ordering and holding costs balance.
- Run a quarterly SKU review so slow movers are flagged before carrying cost outpaces recovery value.
- Launch new products with a conservative first order and a defined reorder trigger, instead of a large first buy based on demand that has not been tested against real sales.

Tool: [Try the open-to-buy planner](https://dothecalculation.com/calculators/open-to-buy-calculator) — Set a monthly purchasing budget from planned sales, planned markdowns, and beginning and target inventory.

## Turn Excess Inventory Into a Cash-Flow Lever

The stores that handle this well do not treat excess and obsolete inventory as a once-a-year cleanup. They treat it as a recurring habit: run the aging report, check sell-through and turnover, segment with ABC analysis, clear each SKU through the channel that matches how far it has drifted, and make sure the accounting reflects what is on the shelf.

Done consistently, the routine frees up cash. Capital that has sat in dead stock for six months can go into inventory that turns, and fewer days of inventory shortens the time between paying a supplier and collecting from a customer. The [cash conversion cycle calculator](/calculators/cash-conversion-cycle-calculator) shows how many days that frees up.

Tool: [Try the inventory carrying cost calculator](https://dothecalculation.com/calculators/inventory-carrying-cost-calculator) — Build a holding cost from capital, warehouse rent, insurance, handling, and obsolescence, and see what your idle stock costs each year.

## What this does not cover

- Reserve percentages and aging bands are policy choices. The figures here illustrate the method and are not a standard; base yours on what aged stock has actually recovered.
- Perishable, regulated, or date-coded goods such as food, cosmetics, and supplements have expiry rules that override any aging band.
- Marketplace fee schedules, including Amazon storage and aged inventory surcharges, change regularly. Use the current published rates.
- Tax treatment of write-downs, disposals, and donations depends on jurisdiction, accounting method, and entity type. Confirm it with a qualified accountant before filing.

## Frequently Asked Questions

**What is excess and obsolete inventory?**

Excess inventory is stock held beyond current demand that is still sellable, typically at or near full price given time. Obsolete inventory is stock unlikely to sell at meaningful value at all, usually because it was discontinued, replaced, or demand has permanently dropped. Together they are often called E&O inventory.

**How do you identify obsolete inventory?**

Run an inventory aging report to see how long each SKU has sat since its last sale, then check sell-through, weeks of supply, and turnover to confirm whether it has genuinely stalled or is just a slower mover. Cross-check whether the product has been discontinued or replaced, since age alone does not always mean obsolete.

**What is an E&O reserve?**

An excess and obsolete inventory reserve is an allowance that reduces inventory on the balance sheet to reflect value expected to be lost on aged or discontinued stock. It is usually calculated by applying a percentage to each aging band and adjusted every quarter or month.

**What is the difference between an inventory write-down and a write-off?**

A write-down reduces the recorded value of stock that still has some value, for example to its net realizable value. A write-off removes stock with no remaining value, such as goods that are destroyed, scrapped, or donated.

**How often should you review aging inventory?**

Monthly suits fast-moving ecommerce catalogues with frequent SKU changes. Quarterly is reasonable for smaller stores or categories with longer sales cycles. The right cadence depends on how fast your catalogue turns, and the reserve should be updated at least as often as you close the books for reporting.

**How can you reduce excess inventory without hurting margins?**

Segment before you discount. Bundle slow movers with bestsellers instead of discounting broadly, use targeted promotions to your existing customer list before public markdowns, and reserve liquidation for stock that has proven it will not sell through normal channels. The goal is recovering the most value from each tier, not one blanket discount across the catalogue.

---

_Source: [Do The Calculation](https://dothecalculation.com/blog/business/how-to-reduce-excess-and-obsolete-inventory). Quote freely with attribution and a link to this page._
