Thrift store inventory: one-of-one stock when reorder points don't apply
Thrift store inventory management runs on intake, not reorders: a four-station pipeline, three-question pricing, and the metrics that replace reorders.
InventoryX is in development and not available today. ClearStock is the live Shopify app.
Thursday, 2 p.m.: a pickup truck backs up to the dock with fourteen bags of donations. By the following Thursday, every sellable item in those bags should be priced, tagged, and findable in your POS. If it isn't, the store's inventory stopped being real somewhere around bag six, and the pile behind the curtain grew by a week.
Replenishment retailers have an entire discipline for buying more of what sells. A thrift store has no such luxury: nobody manufactures 1987 size-34 Levi's anymore, donations arrive on their own schedule, and every unit is unique. The model that fits is an intake machine — process, price, list — measured by age and sell-through rather than by reorder points. What replaces reordering, then? Two numbers: age of stock and sell-through by intake cohort. The pipeline that feeds them has four stations, pricing runs on three questions, and one-of-ones get a structuring convention that doesn't fight Shopify.
Why replenishment math breaks on used stock
Reorder points need three things a thrift store doesn't have. There's no supplier you can order from, no lead time you can wait through, and no repeatable SKU whose demand you can forecast. Donations are the supplier, and they're unpredictable in both volume and mix. Lead time doesn't exist. And velocity per SKU tells you nothing about the availability of the next unit, because there is no next unit.
So the operating decision changes shape. In a replenishment store the question is "when do I buy more?" In a thrift store the only lever on any unit is its price: the question is "what price moves this unit within N weeks?" Everything below serves that question — and it's why a thrift store that imports a wholesaler's playbook ends up with reorder software nobody opens and a pricing sheet nobody trusts.
One boundary worth drawing immediately: if the goods aren't yours — the donor or consignor gets paid when the item sells — that's a consignment model. It carries payout records and a different ownership of the stock, and the consignment inventory guide covers it. The rest of this article assumes you own the goods outright, the way most donation-based shops do.
The intake pipeline: four stations, one SLA
| Station | What happens | The rule |
|---|---|---|
| 1. Sort | Sellable / b-grade / recycle / trash | Unsellable goods leave the building the same day |
| 2. Prep | Clean, steam, minor repair | No item skips prep to "save time" |
| 3. Price & tag | Three-question rule below; barcode label printed | Price from the rule, not from mood |
| 4. Stock & list | Quantity 1 entered, address recorded, item shelved or listed | Dock-to-floor within 48 hours for apparel |
The SLA is the load-bearing rule. The unprocessed pile behind the curtain is inventory you own that no report can see, because it was never received into Shopify. It can't sell. It can't be found for a customer who asks. And it quietly anchors the whole back room. Receive at sort, not at floor: the moment an item is accepted, it exists in the system as a quantity of one.
Pricing: the three-question rule
Pricing is the highest-impact decision in the store, made thousands of times a week, usually by the newest staff member. A rule keeps it consistent:
| Question | If yes | If no |
|---|---|---|
| Is the brand identifiable and resale-relevant? | Run a comp check | Tier pricing |
| Are there recent sold comps (eBay, Poshmark, Grailed — check sold listings, not asking prices)? | Price at a house fraction of realized sold prices | Tier pricing |
| Is it flawed but sellable? | B-grade rack at a flat discount | Normal shelf |
Concretely, an illustrative house policy many shops converge on: recognized brands with sold comps price at 30–50% of the realized sold figure, rounded to $4.99/$9.99 endings. Everything unbranded falls to a flat tier sheet by category (tees $4.99, jeans $7.99, dresses $8.99, housewares $3.99–$9.99 — numbers are illustrative; your market sets them). Two gates protect the edges. Designer, fine jewelry, and collectibles go through a verification-and-research step before any price is assigned. Unsellable goods route out at station 1 rather than hiding on the floor. The flawed-but-sellable rack deserves its own signage and its own tier — the mechanics of selling that grade honestly are covered in the b-grade stock guide.
For-profit shops that buy by the pound or the bale should record an intake cost so margins mean something. Illustrative bale math: a $420 bale yielding roughly 840 sellable items allocates $0.50 per item — enter that as Cost per item at intake (high-value gate items carry their actual cost instead). Charity shops typically book donations at nominal value; your accountant sets the policy, the intake sheet just applies it consistently.
Structuring one-of-ones in Shopify
Two structures work; the first wins in most shops:
- One product per item, quantity 1. Each item gets its own photos, condition note, and price; search and listings behave like any other product. This is the clean default when every unit needs its own images anyway.
- Category parent with a variant per item. Fewer products to manage, and Shopify now supports up to 2,048 variants per product (Shopify Help Center, "Adding variants," accessed November 2026). The trade: every item shares imagery and description unless you add variant media, which gets thin fast at thrift scale.
Either way, the identity convention does the heavy lifting. Date-and-counter SKUs like 26-1104-0381 (year, month-day, sequence) record intake day inside the identifier, which feeds the aging metric below for free. Print a barcode label at station 3 and the same code does three jobs: scan to sell at the till, scan to find for a hold, scan to discount at the markdown pass. The setup details are in the Shopify barcode inventory guide. Condition, size, and category belong in metafields or tags so the floor can filter — the exact storage choice matters less than using one convention for a year straight.
An honest note from us: most inventory tooling — including InventoryX, which is in development — is built around replenishable stock, with velocity, reorder points, and buying lists. Stretching that machinery over one-of-one goods produces confident nonsense, and we'd rather say so. Where a read-only tracker does help a mixed store is the replenishable corner cases (new socks, greeting cards, consignment-adjacent consumables) and the out-of-stock-day record for anything you genuinely can reorder.
The two metrics that replace reorder points
Age of stock. Days since intake, per item. An inventory aging report built on the intake date baked into the SKU gives you the distribution in one afternoon: an illustrative house target is 90% of floor stock under eight weeks old. Age is the metric a reorder point would be if reordering existed.
Sell-through by intake cohort. Of the items processed in a given week, what fraction sold within four weeks (the sell-through rate guide covers the formula and its denominator trap). This measures your pricing, not just your speed: chronically low sell-through means the tier sheet is too high; chronically high sell-through with empty racks means you're underpricing the good stuff.
Together they drive the weekly markdown pass. An illustrative ladder many shops run: at 8 weeks, −25%; at 12 weeks, −50% or the outlet rack; anything past 16 weeks leaves via clearance channels. The ladder converts stale stock into cash while it still has value, which is the used-goods equivalent of a well-timed reorder.
Common questions
How do thrift stores keep track of inventory? Receive every accepted item at intake as a quantity-1 product with a dated SKU and a printed barcode, price it at the station, and get it to the floor within 48 hours. The system only stays real if the intake SLA holds — the unprocessed pile is inventory you own that no report can see.
How should a thrift store price donated items? Three questions at the pricing station: is the brand resale-relevant, are there recent sold comps, is the condition sellable? Brands with comps price at a house fraction of realized sold prices; everything else falls to a flat tier sheet; flawed goods drop to a b-grade rack; designer and collectibles pass a verification gate before pricing.
Do thrift stores need reorder points? No. There's no supplier to reorder from and no repeatable SKU to forecast, so a reorder point has nothing to act on. The controlling metrics are age of stock (days since intake) and sell-through by intake cohort — together they tell you whether pricing is right, which is the only lever you hold.
What should thrift stores do with unsellable donations? Sort them out at station one, before anything is priced: textile recycling, rag programs, or disposal, recorded so shrinkage doesn't absorb them. Flawed-but-sellable goods belong on a clearly marked b-grade rack rather than hidden in regular stock at full price.
How do you value donated inventory for accounting? Charities typically book donated goods at nominal value on intake; for-profit bale buyers allocate bale cost across sellable units — a $420 bale over roughly 840 items is about $0.50 each (illustrative). Enter the result as cost per item at intake so margins mean something, and let your accountant set the valuation policy.
Next step
Write the tier sheet this week — one page, laminated at the pricing station — and set the 48-hour intake SLA as a number someone owns. Then build the aging view off your intake-date SKUs and run the first markdown pass eight weeks from your oldest cohort; the spreadsheet structure for the aging view is in the inventory aging report guide.