Product Metrics

Search

Ecommerce inventory planning: replenish, hold or promote

Ecommerce inventory planning per product: read GMROI, excess capital and revenue at risk together to decide what to replenish, hold, promote or deprioritise.

By , FounderPublished 9 min read

Ecommerce inventory planning is deciding, product by product, what to replenish, hold, promote or deprioritise. Forecasting units is only the input; the plan is the decision.

I worked the method through four illustrative products with every formula shown: profit, stock capital and availability read side by side, then one decision rule that turns them into an action.

Which numbers does ecommerce inventory planning use?

Ecommerce inventory planning reads three lenses per product: profit through GMROI, stock capital through excess capital at cost, and availability through revenue at risk. POAS then says whether advertising the product pays.

Lens Metric Formula Question it answers
Profit GMROI Annual gross profit ÷ average inventory at cost What does each euro of stock earn?
Stock capital Excess capital Excess units × unit cost How much cash sits above what you need?
Availability Revenue at risk Units at risk × price excl. VAT How many sales can stock not meet before the delivery?

GMROI is gross margin return on investment: the gross profit each euro held in stock at cost earns in a year. Excess units are sellable units − (weekly demand × weeks to next delivery + safety stock), never below zero.

Units at risk are max(0, weekly demand × weeks to next delivery − sellable units). Revenue at risk is an estimate of exposure, not a booked loss, and stockout cost covers how to estimate it.

Why one lens on its own misleads

Each metric is blind to what the other two measure. GMROI on its own says “buy more” for a product that is about to run out.

Excess inventory on its own says “promote”, even when every ad euro on that product loses money. Revenue at risk on its own says “reorder”, even for a product that only sells through unprofitable ads.

POAS, profit on ad spend, settles the ad question. A POAS of 1.0 is break-even: each euro of ads brings back one euro of profit.

What inputs do you need for each product?

You need eight inputs per product, all for the same date, and each with one precise meaning.

Input Meaning Used for
Annual gross profit Net sales after returns and discounts − cost of goods sold, last 12 months GMROI
Average inventory at cost Opening value plus 12 month-end values, ÷ 13 GMROI
Weekly demand Forecast units a week, from weeks with stock on hand Cover, risk, excess
Sellable units Units you can ship: not reserved, damaged or quarantined Cover, risk, excess
Weeks to next delivery Weeks until a confirmed delivery lands Risk, excess
Safety stock The buffer in units you chose to hold Excess
Price excl. VAT and unit cost Today’s selling price after discount; what you paid Revenue at risk, excess capital
POAS Profit ÷ ad spend for the product Ad decision

With no order placed yet, weeks to next delivery is the weeks until you order plus the supplier’s lead time. Cover is sellable units ÷ weekly demand, the same idea as days of inventory counted in weeks.

Size the buffer before you judge excess: the safety stock calculator works it out from demand and lead-time variation. Count a purchase order only when its date and quantity are firm.

How do you decide which products to replenish, hold or promote?

Decide on stock position first, then on POAS against break-even: a short product with POAS at or above 1.0 gets replenished, a short one below it gets its economics fixed first.

Stock position POAS ≥ break-even (1.0) POAS below break-even
At risk (units at risk > 0) Replenish; lower ad priority until the delivery lands Fix the economics before reordering
Excess (excess units > 0) Hold the next order; promote while profitable Deprioritise: review price, cost and clearance
Neither Keep: reorder on the usual date Keep stock lean; review price and cost

No product can be in both top rows. Excess starts only above demand to the delivery plus safety stock, so a product with units at risk has none.

GMROI sets the order within a cell, not the cell. The buying decision stays with you.

Review your products in five steps
  1. Fix the inputsSellable units, weekly demand from in-stock weeks, weeks to the next delivery, safety stock, price, unit cost and POAS per product.
  2. Check availabilityCover in weeks, units at risk until the delivery lands, and revenue at risk at today's price excl. VAT.
  3. Check stock capitalExcess units, and the capital they tie up at unit cost.
  4. Read profitGMROI over the last 12 months, and POAS against break-even 1.0.
  5. Place and rankPut each product in one cell of the decision matrix, then work down the list from the largest euro amount.

Which products should you review first?

Start with the products that have the most euros at stake, short or tied up in stock. With hundreds of products, ABC analysis gives the order.

ABC analysis ranks products by one value, such as gross profit, and labels the few that make up 80% of the total as A. The ABC analysis calculator splits your own export into A, B and C.

Worked example: four products through the decision rule

For example, take four products, a trail jacket, a canvas tote, a bottle holder and a merino beanie, and run each lens in turn. All figures are illustrative data.

Profit: GMROI and POAS

GMROI runs from 4.00 for the trail jacket to 0.50 for the bottle holder, and only the jacket and tote have a POAS at or above break-even.

Product Annual gross profit Average stock at cost GMROI POAS
Trail jacket €36,000.00 €9,000.00 4.00 2.1
Canvas tote €12,000.00 €6,000.00 2.00 1.6
Bottle holder €1,500.00 €3,000.00 0.50 0.8
Merino beanie €2,400.00 €1,600.00 1.50 0.9
Bar chart of illustrative GMROI per product: trail jacket 4.00, canvas tote 2.00, merino beanie 1.50, bottle holder 0.50, against a weighted shop GMROI of 2.65.
The trail jacket earns €4.00 of gross profit per euro of stock and the bottle holder €0.50. Weighted by stock, the shop earns 2.65.Source: Calculated as annual gross profit ÷ average inventory at cost. Illustrative data
Show the data
GMROI per product against the weighted shop GMROI
ProductGMROI
Trail jacket4.00
Canvas tote2.00
Merino beanie1.50
Bottle holder0.50

The shop’s GMROI is €51,900.00 ÷ €19,600.00 = 2.65. Averaging the four product ratios gives 2.00, because it weights the €1,600.00 beanie the same as the €9,000.00 jacket. Sum first, then divide.

Bar chart of illustrative shares: trail jacket 69.4% of gross profit on 45.9% of stock, bottle holder 2.9% of gross profit on 15.3% of stock at cost.
The trail jacket holds 45.9% of the stock and earns 69.4% of the gross profit, which lifts the shop's GMROI above the mean of the four ratios.Source: Product annual gross profit ÷ €51,900.00; product average stock at cost ÷ €19,600.00. Illustrative data
Show the data
Share of shop gross profit and of stock at cost per product (%)
ProductShare of gross profitShare of stock at cost
Trail jacket69.4%45.9%
Canvas tote23.1%30.6%
Merino beanie4.6%8.2%
Bottle holder2.9%15.3%

Availability: cover and revenue at risk

Two products run out before their next delivery: the trail jacket with 30 units at risk and the merino beanie with 48.

Product Sellable units Demand a week Weeks to next delivery Cover (weeks)
Trail jacket 20 10 5 2.0
Canvas tote 300 15 3 20.0
Bottle holder 240 3 4 80.0
Merino beanie 16 8 8 2.0

The jacket needs 10 × 5 = 50 units before its delivery and has 20. The beanie needs 64 and has 16.

Product Units at risk Price excl. VAT Revenue at risk
Trail jacket 30 €149.99 €4,499.70
Merino beanie 48 €29.99 €1,439.52
Canvas tote, bottle holder 0 €39.99, €19.99 €0.00

Together that is €5,939.22. Valued at gross profit instead, the same units come to €2,699.70 and €575.52, €3,275.22 in total: an alternative view of the same units, never a figure to add.

Stock capital: excess units at cost

The canvas tote and the bottle holder hold €4,878.00 of excess capital at cost between them, and the other two hold none.

Product Cover needed (demand × weeks + safety) Excess units Unit cost Excess capital
Canvas tote 15 × 3 + 30 = 75 225 €14.00 €3,150.00
Bottle holder 3 × 4 + 12 = 24 216 €8.00 €1,728.00
Trail jacket 10 × 5 + 10 = 60 0 €60.00 €0.00
Merino beanie 8 × 8 + 8 = 72 0 €18.00 €0.00

The tote’s 225 excess units are 15 weeks of its demand; the bottle holder’s 216 are 72 weeks.

Bar chart of illustrative revenue at risk and excess capital: trail jacket €4,499.70 at risk, merino beanie €1,439.52, tote €3,150.00 and bottle holder €1,728.00 in excess.
No product carries both. The trail jacket and merino beanie put €5,939.22 at risk, while the tote and bottle holder tie up €4,878.00 in excess stock.Source: Revenue at risk = units at risk × price excl. VAT; excess capital = excess units × unit cost. Illustrative data
Show the data
Revenue at risk against excess capital at cost per product (€)
ProductRevenue at riskExcess capital at cost
Trail jacket€4,499.70€0.00
Canvas tote€0.00€3,150.00
Bottle holder€0.00€1,728.00
Merino beanie€1,439.52€0.00

The verdict per product

Each product lands in a different cell of the matrix.

Product Stock position POAS against 1.0 Decision
Trail jacket 30 units at risk 2.1, above Replenish
Merino beanie 48 units at risk 0.9, below Fix the economics
Canvas tote 225 excess units 1.6, above Hold and promote
Bottle holder 216 excess units 0.8, below Deprioritise

To apply the method to your own products, download the inventory planning worksheet (XLSX, free, no sign-up). It opens in Excel and Google Sheets and uses the same formulas and decision rule as this example.

Each row gets a suggested review, its reason and what to check first, such as season, returns and how firm the order is. Break-even POAS is a setting, 1.0 by default.

Four products take a few minutes. A shop with 600 products needs a forecast, a delivery date and a cost for each, refreshed every time stock moves, and a spreadsheet is out of date by the time it is filled in.

Product Metrics reports GMROI, excess capital and revenue at risk per product and rolls them up by category, brand and price range. Inventory Insights adds projected demand, lead time, safety buffer, stock cover, reorder dates and slow movers with a reason.

What should you do with each product?

Each case has one action and one move to avoid: the move its best number invites.

Case Do Don’t
At risk, POAS ≥ 1.0 Replenish and lower ad priority until the delivery lands Increase priority while stock is short
At risk, POAS < 1.0 Review price, unit cost and ad priority before reordering Reorder the old quantity because it sold out
Excess, POAS ≥ 1.0 Hold the next order and promote while POAS stays above 1.0 Discount until POAS drops below 1.0
Excess, POAS < 1.0 Compare a markdown, a supplier return and a bulk sale Push it with ads that lose money

Replenish: the trail jacket

Reorder the trail jacket now, because demand before the delivery is 50 units and only 20 can ship. Bring the delivery forward if the supplier can, and set the next order with the reorder point calculator.

Lower its ad priority until the delivery lands. Extra clicks sell no extra units when demand already exceeds stock; they only empty the shelf sooner.

Product Segmentation sets ad priority per product with labels in Google Merchant Center. In Inventory Insights, a stock label you approve pauses a product at zero stock and resumes it when the restock lands.

Fix the economics: the merino beanie

The merino beanie sells out, but with a POAS of 0.9 every euro of ads returns €0.90 of profit. Its gross profit is €11.99 on a €29.99 price, 40%, against 60% for the jacket.

Check the price and the unit cost first, then lower its ad priority so fewer of its sales come from loss-making clicks. Reorder once the economics hold.

Hold and promote: the canvas tote

Skip or shrink the tote’s next order: it has 15 weeks of excess on a 3-week wait. With a POAS of 1.6, its ads pay, so give it more exposure.

Rerun the numbers before a promotion. If it doubles demand to 30 a week, for example, excess falls from 225 to 180 units: 300 − (30 × 3 + 30).

Deprioritise: the bottle holder

The bottle holder holds 72 weeks of excess and earns a GMROI of 0.50, so buy none and lower its ad priority, since its ads lose money.

Stock that has stopped selling altogether needs a different plan, covered in dead stock inventory.

When should you recalculate the plan?

Recalculate each time stock, the demand forecast or a purchase order changes, and before every big promotion. A plan built on last month’s stock goes wrong in six common situations.

Situation What goes wrong What to change
Before a seasonal peak A recent average understates demand, so stock looks excess Forecast for the coming season and keep the buffer
After the season A recent average overstates demand Lower the forecast and check excess again
New product launch No sales history and no 12-month GMROI Borrow demand from similar products; review weekly
High return rate Demand and gross profit look higher than they are Use net sales; count returns as sellable once restocked
Unreliable lead times Weeks to next delivery are too short Use the late-case delivery date or a larger safety stock
Partial deliveries One delivery date overstates stock Project stock week by week, confirmed quantities only

For seasonal products, compare GMROI with the same product’s earlier years, not with products sold all year.

High inventory turnover products reach their reorder point fastest, so they need the most frequent check.

Final thoughts

The products that need a decision rarely look wrong on their best number. The jacket’s GMROI hides its shortage; the tote’s healthy POAS hides 15 weeks of surplus.

Start with your ten largest products by gross profit. Work out cover, excess and POAS for each, place them in the matrix, and act on the cell rather than on the single metric that looks best.

Written by

, Founder of Product Metrics

Linkedin

Keep reading.

Frequently asked questions.

What is the difference between inventory planning and inventory analysis?

Inventory analysis measures what your stock is doing: GMROI, cover, turnover, excess and revenue at risk. Inventory planning turns those numbers into a decision per product, such as reorder, hold, promote or deprioritise, and a date to check it again.

Does a high GMROI always mean you should buy more?

No. A product that keeps running out holds little stock, so its GMROI looks high while the sales it missed count nowhere. Check revenue at risk and POAS before buying more: the trail jacket in the example earns a GMROI of 4.00 and still has 30 units at risk.

How do GMROI and inventory turnover differ?

Inventory turnover is cost of goods sold ÷ average inventory at cost, so it measures how fast stock sells. GMROI adds the margin. The two link exactly: GMROI = (gross profit ÷ cost of goods sold) × inventory turnover, so a product reaches the same GMROI through a high margin or fast sales.

See which of your products to push, fix or pause. Start with your own products, or a 30-second estimate.

See stock cover, slow movers and revenue at risk per product in Inventory Insights. Then see where all your products stand.

Find your hidden profit30-second estimate · no login
Analyse your products for freeFree analysis, no credit card

Questions, or want to spar about your products? Book a demo: a video call with Berend, then a demo account.