Slow stock needs a plan. A discount alone is not one. Before you lower a price, check how much each sale leaves, how many extra units you need to sell and whether you even have enough stock to cover that target.

Use the free inventory markdown calculator to test your own figures. It works in your browser. There is no store connection, upload or automatic price change.

Why 20% off can cost half your margin

Here is a worked example, not measured store performance. An item sells for $40 and costs $24. For this first calculation, there are no other costs or fees.

Per unitFull price20% off
Selling price$40$32
Product cost$24$24
Contribution left$16$8

The price falls by $8. The contribution also falls by $8. But $8 is half the original $16 contribution.

If you normally sell 20 units in the comparison period, those sales leave $320 before other costs. At the sale price, you need 40 units to leave the same $320. That is 100% more units, not 20% more.

This is a target. It does not mean a 20% discount will produce those extra buyers.

Add the costs that change the answer

Now include a 3% selling fee and $2 of other selling costs per unit. Put $50 into promoting the sale. Keep the same price, product cost and 20-unit baseline.

  • Full-price contribution per unit: $40 × 97% − $24 − $2 = $12.80.
  • Discounted contribution per unit: $32 × 97% − $24 − $2 = $5.04.
  • Baseline contribution: 20 × $12.80 = $256.
  • Sales needed after the discount: round up (($256 + $50) ÷ $5.04) = 61 units.

You need 41 more units than the baseline. Selling 60 leaves $252.40 after campaign cost, which misses the $256 target. Selling 61 leaves $257.44, which clears it.

The $5.04 is contribution after the entered product and selling costs. It is not net profit. Tax, returns, overhead and costs you did not enter remain outside this calculation.

Check stock before chasing more sales

Suppose you only have 30 units left. A 61-unit target cannot be reached from those units, even if every one sells.

That does not automatically make a clearance sale wrong. You may need cash, space or an end to storage costs. But it changes the question: are you trying to preserve contribution, release cash or clear space? These goals can lead to different choices.

Our tool keeps cash recovered separate from contribution. If the stock was paid for earlier, cash from selling it can be positive even when the price does not cover its full product cost. That still does not make the sale profitable.

Use your latest figures, with matching dates

Start with one product or variant. Gather its current price, landed product cost, units available, completed units sold and days it was in stock. Add fees, packing, shipping you pay and the proposed campaign budget.

Use in-stock days when estimating the observed sales pace. Ten sales over ten available days are different from ten sales over a month when the item was unavailable for most of it. Check how your own platform defines the field; do not silently substitute calendar days.

Shopify's inventory reports include sales pace, sell-through and remaining-inventory measures. A remaining-days value is unavailable when there are no sales; it is not proof the stock will never sell. Use these reports as inputs, then check the cost of your proposed action.

Recent does not mean instant. Shopify's product analytics describes a recent 30-day window with a usual processing delay. Google Merchant Center's Popular products updates weekly and says new data may take up to two weeks to appear. Check the observation period as well as the day you opened a report.

What we measured—and why it cannot pick your discount

We analyzed 541,909 historical invoice lines in UCI's Online Retail dataset, credited to Daqing Chen. The records come from one UK retailer in 2010–2011 and include wholesale customers.

After the stated filters, 525,783 positive invoice lines remain across 3,789 merchandise-shaped product codes. The top 379 codes by calculated gross invoice value account for about 61.30% of that value. The data page publishes the filters, counts, aggregate download and source checksum.

This shows how uneven one historical product mix was. It does not tell us which item in your store is slow today. The source has no product costs, stock-on-hand or reliable promotion labels. We cannot use it to claim a discount caused demand, improved profit or cleared dead stock.

That is why this tool starts with your figures rather than presenting an old sample as a live price recommendation.

Compare a few options before changing every price

Run the same costs and time window at 0%, 10%, 20% and your proposed discount. For each option, check contribution per unit, the whole-unit recovery target and the stock constraint.

If the target looks unrealistic, consider a smaller discount or campaign budget. Bundles, a different sales channel, supplier returns or holding the item may also deserve a separate cost comparison. None is automatically better.

Shopify Smart Pricing offers forecasting for eligible products using store history. Our calculator does something narrower: it shows the conditional arithmetic without a forecast, connection or purchase-history threshold. It cannot replace a demand test.

Your next step

Open the inventory markdown test, replace the example and compare the target with your actual stock and recent pace. If you test a promotion, record its dates, traffic, units, price, fees, returns and campaign spend. A simple before-and-after comparison can still be affected by seasonality and other changes.

Need help checking those assumptions? Request a free manual review. Share the question and non-sensitive totals; do not send customer records, store passwords or payment details.