1. Paste your items
2. The plan
Every item
| Item | Take it? | Best schedule | Expected net | Chance it sells | Fixed 30/60 rule | Never mark down | Slow season | Worth taking at price | or at shop share |
|---|
Totals
| Rule | Expected net |
|---|
Prefer a CLI?
Same logic, zero dependencies, one command — reads a file or stdin:
node cli.mjs plan items.csv --weeks 12 --lift 0.35 --levels 0,10,25,40,50 --json cat items.csv | node cli.mjs plan - --handling 2
Get cli.mjs and engine.mjs — Node 18+, nothing to install, no network call. More: How should a consignment shop mark down? 30/60/90-day schedule math.
What's recognised
| Input | Handling |
|---|
The schedule is exact for the numbers you type (dynamic programming over every non-decreasing schedule, up to 200 items). Seasonality, consignor price-floor agreements, items that sell as a group and unsold-item returns or donation value are not modelled; enter shelf cost and sell rates as they really are for you.
Common questions
Does it upload my item list?
No. The browser page works on the text you paste, in your own browser, and never sends it anywhere. The CLI reads a local file or stdin and makes no network call.
How is the best schedule found?
Each week an item can sell with a chance that rises with the discount, and every week on the floor costs shelf space. The tool works backwards week by week over the markdown levels you allow, never raising a price, and keeps the schedule with the highest expected net to the shop. It is checked against trying every possible schedule in the tests.
Why would it tell me to decline an item?
If the shop's cut of the likely sale does not cover shelf space and handling, taking the item loses money even at the best schedule. The tool says what price or shop share would make the item worth taking.
Where do the sell rates and the lift come from?
From your own history: how many weeks items like this usually sit, and how much faster they sell after a markdown. They are your estimates, so treat the plan as a decision aid, not a forecast.
Who is it for?
Consignment and resale boutiques, thrift and vintage shops and furniture consignors deciding when to mark things down and what to accept.