To compare sales across multiple store locations correctly, you need the same set of numbers — revenue, order count, average ticket, and margin — for the same time period at every store, not just a revenue total pulled from each register at a different hour. Revenue alone hides the story: one store can post higher sales and still make less money than a smaller store with a better margin. Retailer OS puts these numbers together in a corporate roll-up so an owner can see them side by side instead of rebuilding the comparison in a spreadsheet every week.
What does it actually mean to compare sales across store locations?
Comparing sales across store locations means putting the same set of numbers — revenue, order count, average ticket, and margin — side by side for each store, over the same time window, so differences reflect real performance instead of when someone happened to pull a report. That last part matters more than most owners assume. A comparison run on Monday morning for Store A and Thursday afternoon for Store B isn't a comparison — it's two unrelated snapshots that happen to share a spreadsheet tab.
Done right, a store comparison answers questions a single-location report never can: which location is actually the most profitable, not just the busiest; whether a new store is ramping up on schedule; and which manager is running the tightest ship relative to their store's size and traffic.
Why do spreadsheet comparisons break down once you have more than one store?
A single store's numbers usually live in whatever POS report the register spits out. Add a second location and someone has to manually pull each store's report and paste it into one sheet. That process works for a month or two, then quietly falls apart.
- Reports get pulled at different times of day, so "today's sales" means different things per store
- Someone forgets to update the sheet for a location, and that store's row goes stale
- Margin gets left out entirely because it requires pulling cost data from a separate system
- Average ticket is calculated inconsistently — one manager divides by transactions, another by items sold
- A new location's ramp-up period gets compared against an established store's steady-state numbers, making the new store look like it's underperforming when it's actually on track
None of this is a discipline problem. It's what happens when the source data for each store lives in a different report, on a different schedule, with no shared definition of the numbers being compared. The fix isn't a stricter spreadsheet — it's putting every location's sales, orders, and margin in the same system so the comparison builds itself.
Which numbers should you actually compare across stores?
Revenue by itself tells you which store rang up the most money. It doesn't tell you which store made the most money, or which one is running efficiently. A useful store comparison layers four numbers together:
- Revenue — total sales for the period, the top-line number most owners check first
- Order count — how many transactions produced that revenue; a store with fewer, bigger orders is a different business than one with many small ones
- Average ticket — revenue divided by order count; a rising average ticket at one store and a flat one at another usually points to a merchandising or staffing difference worth investigating
- Margin — revenue minus cost of goods, as a percentage; the number that actually determines which store contributes more to the bottom line
For stores that have been open more than a year, same-store sales — comparing this year's period to the same period last year, excluding new locations — separates real growth from growth that's just new square footage coming online. It's worth tracking even where your reporting tool doesn't surface it on a dashboard yet.
Once revenue, orders, average ticket, and margin are steady, two supporting numbers round out the picture: **sell-through rate**, which shows whether a store is moving what it buys or sitting on it, and gross margin by category, which shows whether two stores selling similar totals are actually selling a similar mix. A deep dive on the category cut is in Gross Margin by Category: Where Your Store Actually Makes Money.
How do you set up a fair comparison between stores?
A comparison is only useful if the stores are actually being measured the same way. Six steps keep it honest:
- Pick one time window for every store — the same day, week, or month, pulled at the same cutoff, not "since I last checked"
- Look at revenue, orders, and average ticket together — a store with high revenue and low order count is winning on ticket size; a store with high revenue and high order count is winning on traffic; treating them the same hides which lever is actually working
- Add margin before drawing conclusions — a store with the highest revenue isn't automatically your best store if its margin is the thinnest
- Normalize for size where it matters — sales per square foot or per scheduled labor hour matter more than raw revenue when comparing a 800 sq ft store to a 3,000 sq ft one
- Compare trend, not just the snapshot — this month vs. last month, and this month vs. the same month last year, per store
- Give new locations a ramp-up window — exclude a store's first several months from same-store comparisons so it isn't judged against an established location's steady-state numbers
How does Retailer OS compare stores side by side?
Retailer OS prices and runs each physical location as its own store — $99.99/month per store, plus $9.99/month per user seat, so an owner running one store with one login pays a minimum of $109.98/month. An owner who runs several stores belongs to several store accounts in Retailer OS, and that's exactly the setup the corporate roll-up is built for: it compares revenue, orders, average ticket, and margin across the store accounts an owner belongs to, on one screen, without anyone exporting a report from each location and stitching them together.
Because every store runs its checkout, inventory, and card reconciliation the same way, the numbers feeding the roll-up are already apples-to-apples. Card payments across every location run on the merchant's own Stripe account, and Retailer OS reconciles register card payments against those Stripe charges automatically — so a margin comparison between two stores isn't undermined by one location's numbers including untracked processing fees and the other's not.
One honest limit worth knowing: same-store sales exists in Retailer OS's API today, but there's no dedicated screen for it yet. If you want to compare this year's period to last year's for the same set of stores, that comparison currently needs to be pulled rather than viewed on a built-in report. Everything else in this post — revenue, orders, average ticket, and margin, compared across the store accounts an owner belongs to — is available on the roll-up screen itself.
What's the difference between filtering by location and the corporate roll-up?
These solve two related but different problems. Reports inside Retailer OS can be filtered to one location or several, which is how a manager checks a single store's own numbers, or how an owner checks a subset of stores without pulling in every account they run. The corporate roll-up is the higher-level view: it's built specifically to compare revenue, orders, average ticket, and margin across the separate store accounts an owner belongs to, side by side, in one place. Use the location filter to drill into one store's day; use the roll-up to see how your stores stack up against each other.
This is also where the daily sales journal that goes to QuickBooks Online becomes useful beyond bookkeeping: because each store's day is posted per channel, a bookkeeper reconciling the books and an owner reading the roll-up are looking at numbers that trace back to the same source, instead of two different exports that might not match.
How often should you actually check these numbers?
Daily for the basics — revenue, orders, and average ticket per store — takes a few minutes and catches problems (a slow register, a promotion that didn't ring up, a staffing gap) while there's still time to fix them that week. Margin comparisons are worth a weekly look, since cost changes and category mix shift more slowly than daily transaction counts. A broader list of the numbers worth a daily glance, across every part of the store, is in Retail KPIs That Matter: 10 Numbers to Check Every Morning. Scheduled email digests can push the roll-up numbers to an owner's inbox instead of requiring a login every morning — a small habit that keeps a comparison from turning back into a once-a-month spreadsheet exercise.
Store comparisons only mean something if the underlying stock numbers are trustworthy too — a store that looks slow on revenue might simply be out of stock on its best sellers. If that's a live concern, it's worth pairing this with Available-to-Promise Inventory: Why Your Stock Count Isn't What You Can Actually Sell, which covers why on-hand and sellable aren't the same number, and Multi-Location Inventory Without the Spreadsheets for how the stock side of a multi-location business gets tracked in one ledger instead of one sheet per store.
Running more than one store and tired of stitching reports together to see how they compare? See how Retailer OS's multi-location tools put revenue, orders, average ticket, and margin for every store account you run on one screen — or check current pricing to see what it costs for your store count.
Last updated September 29, 2026