The scariest message a reseller can get is not a lowball offer. It’s two “your item sold!” notifications, from two different marketplaces, for the same item, forty minutes apart.
I double-sold a leather jacket that way in my second year of reselling. One buyer got the jacket, the other got a groveling cancellation, and my Poshmark metrics ate the damage for a month. That was the day I stopped treating inventory tracking as admin work and started treating it as the actual business. Sourcing is the fun part; tracking is the part that decides whether you’re running a business or an expensive hobby with a garage full of mystery bins.
Here’s the system I’ve landed on after five years and roughly 4,000 items, in a form you can copy this weekend.
One item, one SKU, one row. No exceptions.
Everything starts with a SKU system, and yours can be dumb. Mine is: bin number, dash, item number. B14-203 means bin 14, item 203. Written on a masking tape tag, on the item, the moment it comes home from sourcing. Not after it’s photographed, not after it’s listed. The moment it enters the house.
Then every item gets exactly one row in one master spreadsheet. Not one sheet per marketplace. Not one tab per month. One master sheet, one row per item, forever. The columns that have earned their place in mine:
- SKU, description, brand, size, category
- Date sourced and source (which estate sale, which thrift, which bulk lot)
- COGS (what the item actually cost you; more below)
- Listed price and the date first listed
- Where it’s listed (one column per marketplace with a simple Y/N or the listing URL)
- Status: sourced, listed, sold, shipped, returned, donated
- Sold price, sold date, marketplace it sold on, fees, shipping cost
That “where it’s listed” cluster is your double-sell insurance. The rule that saves you: when an item sells anywhere, you delist it everywhere else before you print the label. Not tonight. Before the label. The sheet is what tells you where else it lives, which is the entire reason it exists.
Cross-listing without the chaos
Cross-listing is not optional anymore. My sell-through roughly doubled when I went from eBay-only to eBay plus Poshmark plus Mercari, and category-specific venues (Depop for Y2K stuff, Facebook Marketplace for anything too heavy to ship) add more on top. If you’re mostly in apparel, the fashion-side coverage at Clever Fashion Media is useful for figuring out which platforms actually move which brands before you spread yourself across five apps.
But every marketplace you add multiplies the bookkeeping. Three rules keep it sane:
- The master sheet is the truth. Marketplace dashboards are views; your sheet is reality. If they disagree, a listing is wrong somewhere, and you find it today.
- Batch your delisting. Sold items get delisted from other platforms immediately, but I also run a Sunday sweep comparing active listings on each platform against the sheet’s status column. Stragglers happen; the sweep catches them.
- Log fees per marketplace at sale time, not at tax time. eBay, Poshmark, and Mercari all take different cuts, and if you record only the sale price, your “profit” numbers are fiction.
COGS tracking: the part everyone skips until tax season
Cost of goods sold is where most resellers’ spreadsheets quietly lie to them. Two failure modes:
Bulk lots. You paid $60 for a bin of 30 items. The lazy move is entering $2 per item. The honest move is allocating by expected value: the two jackets that carry the lot get $15 each, the filler tees get 50 cents. Your per-item profit numbers become dramatically more truthful, and so does your understanding of which lots to buy again.
The invisible costs. Mileage to the estate sale, poly mailers, tape, cleaning supplies. You don’t need to allocate every roll of tape per item, but they belong in a monthly overhead line you subtract before declaring victory. My rule of thumb after tracking it properly: real overhead added about 8% on top of my naive COGS. That’s the difference between a 30% margin and a 22% margin, which is the difference between decisions that look fine and decisions that are fine.
Every sold row in my sheet computes: sold price, minus fees, minus shipping I paid, minus COGS, equals true profit. One formula, copied down 4,000 rows. Those 4,000 rows are the only honest report of the business I have.
Dead stock: the aging report that pays your rent
Here’s the reseller math nobody wants to do: every item sitting in a bin is cash you already spent, earning nothing. Dead stock doesn’t feel like a loss because you never see the money leave twice. But bin space is finite, sourcing capital is finite, and your time re-organizing stale inventory is very finite.
The fix is an aging column: today’s date minus the date-listed, in days. Then I run a simple ladder:
- 0 to 60 days: normal. Leave it alone.
- 61 to 120 days: price drop, refresh photos, relist so it surfaces as new.
- 121 to 240 days: aggressive drop or bundle it into a lot.
- 240+ days: it goes in the donate/bulk-out pile. Take the L, harvest the bin space and the tax receipt, buy better inventory with the attention.
Running this ladder monthly did more for my profit than any sourcing trick I’ve learned. The aging column is also the fastest cure for the hoarder voice that says “it’ll sell eventually.” The column knows. It’s been 314 days. It will not sell eventually.
When the sheet itself becomes the problem
Around item 2,000, my master sheet stopped being a tool and started being a patient. Scrolling lagged, my phone choked on it at sourcing sales (exactly when I need it, standing in a garage asking “do I already have too many Patagonia pullovers?”), and I genuinely couldn’t tell how big the thing had gotten.
Out of curiosity I ran mine through this free cell counter and it came back at just over 96,000 cells, which explained a lot about the scroll lag. It turns out one-row-per-item times five years times 24 columns is a genuinely large spreadsheet, and knowing the real number helped me decide what to archive versus what to keep hot. If your master sheet has been growing since 2021, it’s worth a minute to find out what you’re actually asking your poor spreadsheet app to hold.
My practical advice at that scale: archive sold items older than two calendar years into a separate closed-books sheet (you still need them for taxes, you don’t need them at a bin sale), keep the live sheet lean, and make sure whatever you’re using can handle the row count you’ll have in two more years, not the one you have today.
Start smaller than this
If you’re at 50 items and this sounds like overkill, it is. Start with SKU, description, COGS, listed-where, status, and sold price. Six columns. The rest of the system above is what those six columns grow into once the double-sell scare or the tax-season scramble happens to you, and one of them will.
The spreadsheet is not the fun part of reselling. But it’s the part that knows which sourcing trips actually made money, which marketplace is quietly eating your margin, and which bin is full of 314-day-old regret. Give it one honest hour a week and it will pay you back like your best bulk lot ever did.