To calculate cost basis for thrifted clothing, add the shelf price, sales tax, and trip costs like mileage into one haul total, then divide that total across the items by expected resale value, not evenly. Do it once at intake and every sale gets an accurate profit line.
Here's the problem it fixes. You pay $186.40 at the register for 40 pieces, and your spreadsheet says each one cost whatever the tag said. The $4 flannel and the $38 leather jacket both get a cost that ignores tax, gas, and the fact that one of them will net ten times the other. Margin reports look great and your bank balance disagrees.
This post covers what goes into cost basis, which allocation method to use, a full 40-item example, and a template you can copy.
What goes into cost basis for a thrifted item
Cost basis is everything you spent to acquire an item and get it ready to sell. For thrifted clothing, the usual components are:
- Purchase price: what you paid at the register, after any discounts or color-tag sales.
- Sales tax: paid on the haul, so it belongs in the haul total.
- Acquisition mileage: the cost of the trip that produced the haul. Many resellers use the IRS standard mileage rate; check the current rate and ask your tax preparer how it applies to you.
- Direct prep costs: dry cleaning, a replacement button, stain remover. Track these per item when you can, since they only apply to some pieces.
Packaging, shipping, and marketplace fees are not part of acquisition cost. They belong on the sale side of the P&L. Keep them separate so you can see where margin actually leaks. If you're unsure what your tax situation allows, confirm with a tax professional.
Why per-item cost basis beats a haul average
Dividing a haul total by item count is the fastest method, and it's wrong in a predictable way. It overstates cost on low-value pieces and understates it on high-value ones. Your reports then say the cheap items lose money and the premium items are wildly profitable.
Per-item cost basis matters for three reasons:
- Accurate profit per sale. You see which sales actually made money.
- Better sourcing decisions. If knits consistently carry a high allocated cost and sell for little, you stop buying them.
- Clean tax records. When you sell an item, you know the cost of goods sold for that exact piece. That also makes your yearly reconciliation against a 1099-K far less painful.
Condition affects this too. A piece that grades Fair because of Fabric Condition issues will sell lower than the same piece graded Excellent, so a value-weighted allocation should reflect the grade you expect, not just the brand.
Choose an allocation method
You have three realistic options for splitting a multi-item purchase.
| Method | How it works | Best for | Weakness |
|---|---|---|---|
| Even split | Haul total ÷ item count | Uniform lots, like all $5 tees | Distorts margins on mixed hauls |
| Tag-price weighted | Each item's share of the shelf-price total | Stores with varied pricing | Tag prices often don't track resale value |
| Expected-value weighted | Each item's share of total expected resale value | Mixed hauls with brand and condition spread | Needs a quick value estimate per item |
For most mixed thrift hauls, use expected-value weighting. Thrift stores price by garment type, not brand, so tag price is a poor proxy for what a piece will sell for. The estimate doesn't need to be perfect. A rough comp-based number is enough, and the weighting adjusts the allocation, not the total. Whatever you pick, apply it consistently and write down which method you use.
How to calculate cost basis for thrifted clothing: a 6-step method
- Record the haul total at the register. Add shelf prices, discounts, and tax from the receipt. Photograph the receipt and attach it to the haul record.
- Add trip costs. Calculate mileage for the sourcing trip (round-trip miles × your mileage rate). If you visited several stores, split the trip cost across the hauls from that route rather than loading it onto one receipt.
- Sum into one allocable haul cost. Purchase price + tax + trip cost share = total to allocate.
- Assign each item an expected resale value. Use a quick comp check and a condition read. Note the tier you expect (NWT, NWOT, Excellent, Very Good, Good, Fair, or Poor) since it moves the number.
- Compute each item's weight. Item expected value ÷ total expected value of the haul.
- Multiply weight by allocable haul cost. That's the item's cost basis. Log it against the item's SKU and confirm the item costs add back up to the haul total.
The formula in one line: item cost basis = (item expected value ÷ haul expected value) × (purchase + tax + trip cost).
[Screenshot placeholder: haul intake screen showing receipt total, mileage, and per-item allocation columns]
Worked example: a 40-item haul
Say you shop two stores on one route and buy 40 items at the first.
- Shelf total: $172.00
- Sales tax: $14.40
- Register total: $186.40
- Route: 22 round-trip miles at $0.70 per mile (use the current rate for your year) = $15.40, with half of it, $7.70, assigned to this store's haul
Allocable haul cost: $186.40 + $7.70 = $194.10.
Compare the even split with expected-value weighting. Even split gives $194.10 ÷ 40 = $4.85 per item. Now look at three sample lines, assuming the 40 items have a total expected resale value of $1,150:
| Item | Tag price | Expected value | Weight | Cost basis | Even-split cost |
|---|---|---|---|---|---|
| Leather jacket (Very Good) | $24.00 | $120 | 10.43% | $20.25 | $4.85 |
| Wool sweater (Excellent) | $6.00 | $38 | 3.30% | $6.41 | $4.85 |
| Fleece pullover (Good) | $4.00 | $14 | 1.22% | $2.37 | $4.85 |
Suppose the jacket sells for $120 and the fleece for $14. With the even split, the jacket looks like it earned $115.15 before selling costs and the fleece $9.15. With value-weighted allocation, the jacket earned $99.75 and the fleece $11.63. The jacket was never as profitable as the even split implied, and the fleece wasn't as thin. That difference is what you need to see when deciding what to buy next time.
Round to the cent, then check that all 40 cost bases sum to $194.10. Put any rounding difference on the highest-value item.
Handle the edge cases
- Items you can't sell. Pieces with Poor Structural Integrity or Odor & Cleanliness problems that don't resolve may become donations or rags. Decide upfront whether to allocate to every item and write off the loss later, or exclude them at intake. Either works if you're consistent and keep records.
- Bundles and lots you sell together. Keep per-item cost basis, then sum the pieces on the sale.
- Repairs and cleaning. Add to that item's cost basis, not the haul. A $6 dry-cleaning charge on a coat is part of that coat's cost.
- Price changes after intake. If you re-estimate value after a closer look, don't re-run the whole allocation. Keep the intake numbers so your records stay stable.
- Returns. A return puts the item back in inventory with its original cost basis, plus any return shipping you absorb on the sale side.
A template for logging cost basis
Use one haul sheet and one item sheet. Columns that work:
Haul sheet: haul ID, date, store, receipt total, tax, mileage share, allocable cost, method used, receipt photo link.
Item sheet: SKU, haul ID, description, expected tier, expected value, weight, allocated cost, prep cost, total cost basis, status, sale price, fees, shipping, profit.
Link every SKU to its haul ID so the check is a single sum. That's the whole system for tracking cost of goods sold on clothing resale: one haul total, one allocation, one number per item. It works in a spreadsheet up to a few hundred active items. Past that, the manual entry is where errors start.
Where this fits in your month-end routine
Per-item cost basis pays off at reconciliation. When payouts land, you match each sale to its SKU, pull the cost basis, subtract fees and shipping, and get a true profit line. Pair it with the habit of grading honestly at intake. Accurate condition calls reduce returns, and returns are a cost line that distorts your margin if you ignore them.
FlipDesk handles the allocation math at intake: enter the receipt, tax, and mileage, set expected values, and each SKU gets its cost basis automatically. If you want to see how it feels, log your next haul in FlipDesk and compare the per-item numbers against your current sheet.