Multi-store
Rolling up profit across multiple stores without losing your mind
Key takeaways
- Keeping each store in its own sheet is the right call operationally, but it makes "what did we actually make this month" surprisingly hard to answer.
- A separate, lightweight summary sheet that pulls from each store sheet beats merging everything into one giant tab.
- IMPORTRANGE plus QUERY is the standard combination for pulling numbers across sheets without manual copy-paste.
- Consistent column layout across every store sheet is what makes cross-store formulas possible at all; the moment one sheet's columns drift, the rollup breaks silently.
- Fetch Order Tracking keeps every store's Order Earning and AE Order Amount columns in the same position across sheets, which is what makes this rollup pattern reliable.
Running three, five, or a dozen eBay stores from separate sheets is the right operational choice; it keeps each store's tracking, refund state, and AE Order IDs clean and isolated. The trade-off shows up at the end of the month, when someone asks a simple question, "what did we actually make across everything", and the honest answer requires opening every sheet by hand.
Here is the layout we actually use to answer that question in seconds instead of an afternoon.
Why one giant combined sheet is the wrong instinct
The obvious fix looks like merging every store into one enormous tab. Resist it. A combined tab means every store's rows compete for the same header structure, a single formatting mistake affects every store at once, and giving a VA or client access to "the sheet" means giving them access to everyone else's numbers too. Separate sheets per store, with a lightweight rollup layer on top, keeps the isolation while still answering the combined question.
The rollup layer: one summary sheet, pulling from each store
Create a new, separate Google Sheet whose only job is to summarise. On its first tab, use IMPORTRANGE to pull the columns you actually need from each store sheet, typically the date, order earning, and AE order amount columns, into their own named range per store. You only need to authorise each IMPORTRANGE connection once.
From there, a QUERY formula on each imported range gives you monthly totals per store without touching the source sheets at all:
=QUERY(IMPORTRANGE("SHEET_URL","Sheet1!A:M"), "select Col2, sum(Col7)-sum(Col10) where Col2 is not null group by Col2 label sum(Col7)-sum(Col10) 'Profit'", 1)
Adjust the column letters to wherever your Order Earning and AE Order Amount columns actually sit; the formula itself does not care how many rows are in the source sheet, so it keeps working as each store grows.
Keep every store sheet's layout identical
This is the part that actually makes or breaks the rollup, and it has nothing to do with formulas. The moment one store's sheet has its Order Earning column in a different position than the others, every QUERY built against a fixed column letter silently pulls the wrong data instead of throwing an error. You will not notice until a total looks suspiciously low or high.
A rollup formula does not know it is reading the wrong column. It just returns a number, and a wrong number that looks plausible is far more dangerous than an obvious error.
The fix is discipline at setup time: every new store sheet should start from the same template, in the same column order, before a single order gets written to it. Retrofitting a rollup onto sheets that grew organically and differently is possible but much more painful.
Add a per-store breakdown, not just a grand total
A single combined number tells you whether the business made money; it does not tell you which store is carrying the rest. Build the summary tab with one row per store and a final total row, so a struggling store shows up immediately instead of hiding inside an average.
- Store name and this month's profit as the two core columns, sorted worst to best so problems surface at the top.
- Order count alongside profit, since a small store with great margins reads very differently from a large store barely breaking even.
- Month-over-month change, even as a simple percentage, turns a static snapshot into a trend you can actually act on.
Where this breaks down, and how to avoid it
IMPORTRANGE has real limits worth knowing before you build around it: it can be slow to refresh on very large sheets, and a source sheet's owner revoking access silently breaks the connection until re-authorised. For agencies running many stores under one super-admin structure rather than many separate Google accounts, this is far less of an issue since one identity owns every sheet.
This is exactly the setup Fetch Order Tracking is built for: every store's sheet uses the same column layout by default, so a rollup like this works the first time you build it, not after a round of manual cleanup. See how it works.
Frequently asked questions
Should I combine all my stores into one Google Sheet?
Generally no. Keeping each store in its own sheet preserves isolation for access control and reduces the blast radius of a formatting mistake. A separate summary sheet that pulls totals from each store sheet gives you the combined view without merging the underlying data.
What formula combination works best for cross-sheet profit rollups?
IMPORTRANGE to pull the relevant columns from each store sheet into a summary sheet, paired with QUERY to aggregate totals by month or by store. This avoids manual copy-paste and updates automatically as each store sheet grows.
Why did my rollup total suddenly look wrong?
The most common cause is a column layout mismatch: if one store's sheet has its Order Earning or AE Order Amount column in a different position than the others, a formula built around a fixed column letter will silently pull the wrong data instead of erroring out. Keeping every store sheet on an identical template prevents this.
Related guides
- Why setting up multi-store from day one saves you hours later
- Running eBay UK, US, and AU stores from one workspace
- Per-order profit visibility: the column that changes decisions