Download the Free Template
Download the free reseller spreadsheet template (CSV) — no email required, no signup, no catch.
It's a plain CSV file, so it opens in anything: Google Sheets, Excel, Numbers, or LibreOffice. To get started:
- Google Sheets: Go to File → Import → Upload, select the CSV, and choose "Replace spreadsheet". Done.
- Excel: Open the file directly, then save it as .xlsx so your formulas and formatting stick.
The template includes three realistic example rows — a sold pair of Jordan 1s, a sold vintage Patagonia fleece, and a Pokemon Elite Trainer Box that's still listed — so you can see exactly how a filled-in row should look. Delete them once you've added your own inventory.
One honest note before you scroll further: CSV files can't store live formulas, so the Net Profit and ROI cells in the download contain the example results, not the formulas themselves. The Notes column tells you which formula to add in each spot, and the formulas section below walks through every one of them. It takes about two minutes to set up.
What's Inside: Column-by-Column Walkthrough
The template has 16 columns. Here's what each one is for and why it earns its place:
- Item Name (A): Full descriptive name — brand, model, colorway. "Nike Air Jordan 1 Retro High OG Chicago" beats "Jordans" when you're searching 200 rows later.
- Brand (B): Separate column so you can filter and see which brands actually make you money.
- Size (C): Shoe size, clothing size, or blank for items without one (sealed product, electronics).
- Condition (D): New, Like New, Very Good, Good, Fair. Be consistent — it matters when you review what sells.
- SKU (E): Your own internal ID (e.g. AJ1-CHI-105). Invaluable once you have duplicate items or bin storage.
- Purchase Price (F): What you actually paid, including tax. This is your cost basis for every profit calculation.
- Purchase Date (G): Lets you spot aged inventory — money sitting on a shelf instead of compounding.
- Platform Listed (H): eBay, StockX, Grailed, Depop, etc. Needed to apply the right fee math.
- Sale Price (I): The gross sale amount. Leave blank until sold.
- Sale Date (J): Combined with Purchase Date, this gives you days-to-sell — one of the most underrated metrics in reselling.
- Platform Fees (K): Total marketplace + payment processing fees for the sale. The fees section gives you the real numbers per platform.
- Shipping Cost (L): What shipping cost you (label + materials), not what the buyer paid.
- Net Profit (M): Formula column: sale price minus cost, fees, and shipping. The only number that actually matters.
- ROI % (N): Formula column: net profit divided by purchase price. Tells you which sourcing is worth repeating.
- Status (O): In Stock / Listed / Sold. Filtering on this column gives you an instant view of unsold inventory.
- Notes (P): Flaws, storage bin, order numbers, or anything future-you will want to know.
Add the Formulas (Net Profit, ROI, Totals)
Because CSV files can't hold live formulas, you add these once after importing. They work identically in Google Sheets and Excel. Row 2 is your first data row; adjust the row number as needed and drag the formula down.
1. Net Profit (column M)
In cell M2:
=I2-F2-K2-L2
That's Sale Price − Purchase Price − Platform Fees − Shipping Cost. To keep unsold rows blank instead of showing a negative number, use this version instead:
=IF(I2="","",I2-F2-K2-L2)
2. ROI % (column N)
In cell N2:
=IF(M2="","",M2/F2)
Then format the column as a percentage (Format → Number → Percent in Sheets). A $60.50 profit on a $180 purchase shows as 33.6%.
3. Summary totals (put these anywhere above or beside your table)
- Total profit from sold items:
=SUMIF(O:O,"Sold",M:M) - Number of items sold:
=COUNTIF(O:O,"Sold") - Average ROI on sold items:
=AVERAGEIF(O:O,"Sold",N:N) - Capital tied up in unsold inventory:
=SUMIFS(F:F,O:O,"<>Sold") - Average days to sell:
=AVERAGE(ARRAYFORMULA(IF(J2:J="",,J2:J-G2:G)))(Google Sheets)
Once M2 and N2 are in place, select both cells and drag the fill handle down a few hundred rows. Every future sale calculates itself.
How to Track Fees Per Platform
The Platform Fees column is where most spreadsheet trackers go wrong. Guessing "about 10%" quietly distorts every profit number downstream. Here are the real fee structures (US rates, accurate as of July 2026) and a ready-made formula for each:
| Platform | Fee Structure | Formula for cell K2 |
|---|---|---|
| eBay (most categories) | 13.6% final value fee on the total sale (item + shipping charged), plus a per-order fee of $0.30 (orders $10 or under) or $0.40 (over $10) | =ROUND(I2*0.136+0.4,2) |
| eBay (sneakers over $150) | 8% final value fee, per-order fee waived | =ROUND(I2*0.08,2) |
| StockX | 9% transaction fee (Level 1 sellers; drops to 7% at Level 5) + 3% payment processing | =ROUND(I2*0.12,2) |
| Grailed | 9% commission + payment processing of 3.49% + $0.49 | =ROUND(I2*0.09+I2*0.0349+0.49,2) |
| Depop (US) | No selling fee; payment processing of 3.3% + $0.45 (Australian sellers pay a 10% selling fee on top) | =ROUND(I2*0.033+0.45,2) |
A few important caveats:
- eBay fees vary by category. 13.6% covers most categories, but books and music run 15.3%, handbags and jewelry 15%, watches 15% on the first $1,000, and guitars just 6.7%. eBay also calculates its fee on item price plus shipping charged to the buyer — if you charge for shipping, add it to the formula.
- Promoted listings are extra. If you run eBay promoted listings at, say, 5%, that comes off the top too and belongs in your fees column.
- Fees change. Platforms adjust their fee schedules regularly. Re-check the official fee pages every few months, because a stale formula silently corrupts every row you add after the change.
The practical approach: put the matching formula in K2 based on the platform in column H, or use a nested IF like =IF(H2="eBay",ROUND(I2*0.136+0.4,2),IF(H2="StockX",ROUND(I2*0.12,2),...)) — with the tradeoff that the formula gets harder to maintain with every platform you add.
Spreadsheet Workflow Tips
A spreadsheet only works if it stays current. These habits keep it trustworthy:
- Log purchases the day you buy. The number one way spreadsheets die is a backlog of un-entered sourcing hauls. Enter items before they go on the shelf.
- Record sales from the payout, not the listing. Enter the actual fee and actual shipping cost from the order details screen. Estimates drift; payouts don't.
- Use data validation on the Status column. In Sheets: Data → Data validation → dropdown with "In Stock", "Listed", "Sold". This prevents typos like "sold " (trailing space) that silently break your SUMIF totals.
- Freeze the header row (View → Freeze → 1 row) so column names stay visible as your inventory grows.
- One row per unit, not per product. If you have three of the same shoe, use three rows with distinct SKUs (AJ1-CHI-105-1, -2, -3). Each unit can have a different cost and sell on a different platform.
- Do a monthly reconcile. Once a month, compare your spreadsheet's sold total against your actual platform payouts. If they don't match, find out why before the gap grows.
- Never delete sold rows. Filter them out of view instead. Your sold history is your tax record and your best sourcing data.
- Back it up. Google Sheets handles this automatically; if you're in Excel, keep the file in OneDrive/Dropbox or export a copy monthly.
When a Spreadsheet Stops Scaling
Let's be honest: this template is genuinely enough for a lot of resellers. If you're moving 5–20 items a month on one or two platforms, a well-kept spreadsheet costs nothing and does the job. Plenty of sellers run their whole first year on one.
But there's a predictable point where the spreadsheet becomes the bottleneck, and it shows up as four specific problems:
- Manual fee math on every sale. Every sale means looking up (or trusting last quarter's memory of) the right fee structure, applying category exceptions, and typing the result. At 40+ sales a month across platforms, this is real time — and each entry is a chance to be wrong. Dedicated tools calculate eBay, StockX, Grailed, and Depop fees automatically from the sale price.
- No live market data. Your spreadsheet knows what you paid, but not what your inventory is worth today. To reprice, you open StockX or eBay sold listings item by item. Software with market data integration shows current values against your cost basis without leaving the page.
- No aged-stock alerts. The Purchase Date column technically contains the answer to "what's been sitting too long?" — but a spreadsheet never taps you on the shoulder. Stale inventory quietly ties up capital until you happen to sort by that column.
- Error-prone copy/paste across platforms. Selling on eBay, StockX, and Grailed simultaneously means transcribing three payout formats into one sheet. One mistyped fee or a formula that didn't fill down, and your profit numbers are fiction until your monthly reconcile catches it — if it does.
None of these are spreadsheet skill problems. They're structural: a spreadsheet is a passive document, and past a certain volume you need something that does the math for you and flags what needs attention.
Importing Your Spreadsheet Into ResellAIO
If you hit that ceiling, the work you put into this template isn't wasted — it becomes your migration path.
ResellAIO ($10/month flat) has CSV import built in, so the inventory you've tracked in this exact template can be brought straight over: item names, brands, sizes, conditions, purchase prices, purchase dates, and SKUs all map to inventory fields. From there:
- Platform fees for eBay, StockX, Grailed, and Depop are calculated automatically when you record a sale — no more fee formulas to maintain.
- StockX market data shows what your sneakers and collectibles are worth right now, next to what you paid.
- Profit, ROI, and expenses are tracked continuously instead of at your monthly reconcile.
And if you're not there yet? Use the spreadsheet. It's free, it's yours, and it teaches you exactly which numbers matter — which makes you better at reselling whether or not you ever switch tools.