ROI per thrift store location = (revenue from items sourced there minus total cost of the trip, including your time valued at an hourly rate) divided by that total cost. Run this per store over 5-10 trips and you'll find that your "go-to" location is often not your most profitable one. It's just the closest.
Most resellers track cost per item: what they paid at the register. That's the least useful number in your business. It ignores the 40 minutes you spent driving there, the 90 minutes you spent digging through racks, and the gas you burned getting there and back. A $6 flannel that took two hours round-trip to find isn't a $6 flannel. It's a $6 flannel plus roughly $35-50 of your labor, depending on what you value your hour at. Track enough trips this way and you'll see which stores are quietly draining your sourcing time for mediocre returns, and which ones you've been underrating because they don't feel exciting to shop.
The Real Cost of a Thrift Stop (Beyond the Price Tag)
Every thrift stop has four cost components, and resellers who only track the first one are flying blind:
- Purchase cost: what you actually paid at the register, your cost basis for tax purposes. Include sales tax and any bag or cart fees.
- Drive cost: round-trip mileage at the current IRS standard mileage rate or your actual gas cost, plus vehicle wear. The IRS rate changes almost every year (it was 67 cents/mile for 2024 and 70 cents for 2025), so check the current figure and update your sheet each January. If you deduct mileage on your taxes, keep a log with date, destination, and miles anyway. The same log feeds this calculation.
- Time cost: total minutes from leaving your house to getting back, multiplied by what your hour is worth. If you can list and sell items at $25/hour of effective effort, that's your baseline. Don't undervalue this. It's the number that changes everything.
- Processing cost: the time to photograph, grade, measure, and list what you bought. A store that yields fifteen items in ninety minutes but every item needs heavy pilling assessment and stain documentation costs you more downstream than a store that yields ten clean, easy-to-grade pieces.
Add these together and you get your true cost per trip. Compare that to what you actually resold those items for, and you have a real ROI number, not a vibe.
Here's the math on a single example trip. Drive: 24 round-trip miles at $0.70 = $16.80. Time: 2.25 hours (45 minutes of driving, 90 minutes in store) at $25/hour = $56.25. Purchase: 9 items for $38. Processing: 9 items at 6 minutes each = 54 minutes, or $22.50. Total cost: $133.55. If those nine items sell for $215 combined, net profit is $81.45 and ROI is about 61%. Looking at the register total alone, you'd have thought you made 5x your money.
One more cost most people skip: items that never sell. If 2 of those 9 pieces age out and get donated back, their purchase and processing cost stays in the trip total with zero revenue against it. Leave them in. That's exactly the drag you're trying to measure.
The ROI Formula to Calculate ROI Per Thrift Store Location
Use this per store, calculated over a rolling set of trips (five minimum, ten is better, because one great trip skews the average):
ROI % = (Total Revenue − Total Cost) ÷ Total Cost × 100
Where Total Cost = Purchase Cost + Drive Cost + Time Cost + Processing Cost, summed across all trips to that location. Total Revenue = actual sold price of everything sourced there, not listed price, not estimated comp. Use net revenue if you want a true picture: subtract eBay final value fees, shipping you paid, and promoted listing fees from the sold price. If an item hasn't sold yet, either exclude it or use a conservative comp-based estimate and flag it as unrealized.
This single formula answers the question every serious sourcer eventually asks: which thrift stores are worth your sourcing time, and which ones are habit. A store with a 220% ROI on $400 invested over six trips is outperforming a store with 90% ROI on $600 invested, even though the second one "feels" bigger because you spend more there.
Watch the maturity problem, too. Trips from the last three weeks will always look worse than they are, because items haven't sold yet. Calculate ROI on trips that are at least 60-90 days old, or report sold-to-date and sell-through percentage side by side.
Building Your Thrift Store ROI Tracker: Step by Step
Whether you build a cost per hour thrift sourcing spreadsheet or use a FlipDesk sourcing log, the structure is the same:
- Create one row per trip with columns for store name, date, drive time, drive distance, in-store time, purchase cost, and item count.
- Set your hourly labor rate once and apply it consistently. Use what you actually earn per effective sourcing hour based on your last quarter's numbers, not an aspirational figure.
- Log drive time and distance for every trip, even short ones. Five minutes feels free. It isn't, over 200 trips a year.
- Record purchase cost per trip as one lump sum, then break it out per item only when you tag and SKU each piece.
- Assign a SKU to each item as you process it, linking it back to the store and trip row so revenue can be traced back later.
- Log processing minutes per trip (photographing, measuring, grading, listing) so heavy-repair hauls show their real cost.
- When an item sells, log the sold price and fees against its SKU, which rolls up to the store-level total.
- Recalculate ROI per store monthly. Rank your stores from highest to lowest ROI, not highest to lowest raw profit. A small store with high ROI is worth more of your time than a big store with mediocre ROI.
[Screenshot placeholder: FlipDesk sourcing log showing per-trip cost breakdown rolling up to per-store ROI]
If you're doing this in a spreadsheet, one SUMIFS formula per store pulling from your trip tab and your sales tab does the job. The usual failure is the SKU link: if you can't tie a sold item back to a store, the whole exercise collapses. Put the store code in the SKU itself (for example GWA-0412-017 for Goodwill A, trip of April 12, item 17).
What the Numbers Actually Look Like
Here's an anonymized example from a mixed-category reseller running four regular stops over six weeks:
| Store | Avg trip cost (drive+time+purchase) | Avg items sourced/trip | Avg revenue/trip | Net profit/trip | ROI | Cost per hour |
|---|---|---|---|---|---|---|
| Suburban Goodwill A | $71 | 9 | $210 | $139 | 196% | $14.20 |
| Boutique consignment thrift | $96 | 4 | $260 | $164 | 171% | $32.00 |
| Downtown Goodwill B ("favorite") | $88 | 11 | $150 | $62 | 70% | $29.30 |
| Rural estate-adjacent thrift | $140 | 6 | $310 | $170 | 121% | $18.70 |
Downtown Goodwill B was this reseller's most-visited store: closest to home, familiar layout, comfortable racks. It was also the worst performer by ROI. It generated the most items per trip but the lowest average sale price, because the inventory skewed heavily toward high-wear basics that graded out at Good or Fair more often than Excellent or Very Good. Volume without condition quality doesn't translate to revenue. Suburban Goodwill A, visited less often, turned out to be the quiet workhorse.
Note the boutique consignment thrift: only 4 items per trip, but the second-best ROI. Item count is a vanity metric. Revenue per hour of total effort is the one to watch.
Routing Like a Pro: Sequencing Stops by ROI Tier
Once you have ROI ranked per store, thrift sourcing route planning profitability stops being about geography and starts being about hierarchy. Build your route in tiers:
- Tier 1 (highest ROI): visit every week, first stop of the day when you have the most energy and time to dig.
- Tier 2 (solid, moderate ROI): visit every 10-14 days, second or third stop, shorter browse window.
- Tier 3 (low ROI but occasionally strong for a specific category): visit monthly or only when you're already in the area for something else.
- Tier 4 (negative or break-even ROI): stop visiting, or visit only opportunistically when a tip comes in about a restock or estate donation.
You're not planning a route to see the most stores. You're planning a route that front-loads your best-performing hour of the day at your best-performing location. Most resellers do the opposite: they hit the closest store first out of habit, then arrive at the high-ROI store tired, with less time and less patience to dig.
Also ask each Tier 1 store about its schedule. Many chains restock on set days and run color-tag or half-price sales on a weekly rotation. Log the day of the week on each trip row. After ten or so visits, you'll see whether Tuesday morning really beats Saturday afternoon at that location, and you can build the route around it.
When to Cut a Store Loose
A store earns a spot on your route. It doesn't keep it by default. Cut a store when any of these hold true over a rolling 90-day window:
- ROI has stayed under 50% for three consecutive months with no seasonal explanation (holiday donation dumps, back-to-school clearouts).
- Cost per hour sourced there exceeds your effective hourly rate from selling. You're paying to shop, not earning to shop.
- Item condition has degraded: more pieces are grading Fair or Poor on Fabric Condition and Structural Integrity than in prior months, meaning even good finds sell for less.
- A closer or equal-distance store has overtaken it in ROI for two straight tracking periods.
Don't cut a store on one bad trip. Thrift inventory is noisy, and a slow Tuesday doesn't mean the store is dead. Cut on trend, not on incident.
Why Condition Grade Is Part of the ROI Story
Two stores can produce the same number of items per trip and still post wildly different ROI, because the revenue side of the equation is driven by condition, not just style or brand. A rack of graphic tees that grade out mostly Very Good and Excellent will out-earn a rack of the same brand grading mostly Good and Fair, even at identical sourcing cost. That's why your ROI tracker should log condition grade alongside SKU and store. It helps with pricing accuracy, and it shows you over time which stores consistently produce higher-grade inventory across the five factors: Fabric Condition, Structural Integrity, Cosmetic Appearance, Functional Elements, and Odor & Cleanliness. A store whose donations skew toward barely-worn NWT or NWOT pieces from a wealthier zip code will beat a store full of heavily-loved Good-grade basics, dollar for dollar, almost every time.
Condition also shows up on the cost side. Pieces that grade Fair or Poor tend to bring more returns and "not as described" disputes, and those refunds come straight out of that store's revenue. Tag refunds back to the SKU so a store's ROI reflects what you kept, not what you sold and then paid back.
Try It on Your Next Route
You don't need six months of data to start. Pick your next four thrift stops, log drive time, in-store time, and purchase cost for each, and grade what you bring home honestly. After three trips per store, run the ROI formula and see which stop actually earns its place on your route. FlipDesk's sourcing log rolls this up automatically (trip cost to SKU to sold price), so by month two you're ranking stores on real numbers instead of gut feel.