CLEARANCE MARKDOWN PLANNER · RUNS IN YOUR BROWSER · NOTHING UPLOADED

How deep, and how soon, should you mark down what is left?

Tell it how many units you have, how many weeks you have to sell them and what the leftovers are worth. Paste your recent sales (date, price, units) and it measures how your buyers respond to price, then plans the week-by-week markdown that maximises expected revenue. It shows what that beats (hold the price, one big cut, a fixed ladder), what to do if you fall behind or get ahead of plan, and how much the plan loses if your price response is not what the data suggests.

Your sales and costs never leave this browser tab. A statistical plan from figures you supply, not advice. Not legal, tax, or financial advice.

Your stock

How buyers respond to price

Use one product (or one group you price together). At least 8 weeks with sales, with the price moving at least 5%. Days are added into weeks starting Monday; the price for a week is the units-weighted average. No history? Skip it and enter the two numbers below.

Enter your stock and either paste sales or type an elasticity, then click Plan.

How it is calculated

Price response: weekly units are regressed on price in logs, ln(units) = a + e·ln(price/current) + c·week, by ordinary least squares; e is the elasticity and c the weekly fade in demand. The time term is dropped if price and time move together too closely to separate them (correlation above 0.85) or there are fewer than 10 weeks. The slope is then combined with a typical-retail prior of -2.0 (standard deviation 1.0, a judgement, not a measured constant) by inverse-variance weighting, so noisy data counts for less; the standard error has a floor of 0.15. A positive slope is set aside. Demand: each week's sales are a negative-binomial draw with mean base × (price/current)e × fadeweek and variance mean + (k·mean)², where k is the residual spread of your fit (default 0.25). The plan: a finite-horizon dynamic program over (week, units left, current price level). Prices are the current price less 0, 10, 20… up to your maximum in steps of 10%, and only move downward. Each week it picks the price that maximises expected revenue now plus the best expected value for next week's stock, less any price-change cost; at the end each unsold unit is worth your salvage value. Comparisons: the simple rules are evaluated by the same recursion, so the gap is exact, not simulated. Range of outcomes: 4,000 simulated seasons of the plan with a fixed seed. Robustness: the plan is re-evaluated, then re-optimised, at the low and high ends of the 80% interval on elasticity. Above 1,000 units the plan is computed in lots, which is slightly smoother.

Not modelled: competitors' prices, promotions or ads, stock that can be reordered, cannibalisation of other products, buyers who wait for the next cut, channel or shipping costs, and price points such as 9.99. Cost is treated as sunk: it changes the profit shown, not the plan. Unverified: checked against simulated data with known elasticity and against closed-form cases in unit tests, not against a published retailer dataset or a commercial pricing tool.

Common questions

How deep and how soon should I mark down leftover inventory?

It depends on three things: how many units you have against how many you expect to sell at full price, how many weeks are left before the stock is worth little or nothing, and how strongly buyers respond to a lower price. This tool puts those into a dynamic program that, for every possible stock level in every remaining week, picks the price that maximises expected revenue plus what the leftovers will fetch. With plenty of stock the plan starts cutting early and deepens in steps; with little stock it holds the price, because every unit will sell anyway.

What is price elasticity and how is it measured here?

Elasticity is the percentage change in units sold for a 1% change in price. An elasticity of -2 means a 10% price cut sells about 20% more units. The tool measures it from your own history by regressing the log of weekly units on the log of price, with a time trend so that demand fading over the season is not mistaken for a price effect. The estimate is then blended with a typical retail value of -2 in proportion to how noisy your data is, so a thin history cannot produce a wild number.

How much sales history do I need?

At least 8 weeks that had sales, and the price has to have moved by at least 5% in that time; if you never changed the price, your data cannot say how buyers respond to it. More price variation helps more than more weeks at the same price. If your history is too thin, enter an elasticity yourself: the tool shows how much the plan would lose if your number is off.

Why not just mark everything 30% off near the end?

Sometimes that is nearly as good, and the tool shows you the comparison. A fixed cut ignores how many units you actually have left: if you are well ahead of pace it discounts stock that would have sold at full price, and if you are far behind it cuts too late. The dynamic plan reads the stock you actually hold each week.

What do the behind and ahead columns mean?

A plan is only useful if you can follow it after the first week goes differently. For each week the tool shows the markdown it would choose if you are on the planned stock level, if you have 25% more units left than planned (behind), and if you have 25% fewer (ahead). Check your stock at the start of each week and read the row.

What does salvage value mean?

It is what you get for each unit that is still unsold at the end of the window: a liquidator's price, a return-to-vendor credit, or a donation receipt value. Enter a negative number if leftovers cost you money to store or dispose of. A better salvage route means the plan discounts less, because unsold stock hurts less.

Is my sales data uploaded anywhere?

No. Your rows are read and analyzed in this browser tab. Nothing is sent to a server, there are no accounts or cookies, and the tool never stores your sales or costs. It works offline once the page has loaded.