How to export your sales history from Square
7 min read
In the Square Dashboard, go to Reports → Sales → Item Sales, set the date range, and click Export in the top right. That gets you a CSV of units sold per item. The part nobody mentions is that one export covers one date range, so a year of monthly history means either twelve exports or one detailed export you pivot yourself. Below is the exact path, the columns that matter, and how to get from Square’s shape to a file a forecast can actually read.
The five-click version
- Sign in to the Square Dashboard on a computer. The mobile app’s reports do not export.
- Open Reports in the left sidebar.
- Choose Sales, then Item Sales. This is the report keyed to what you sold rather than to how you were paid — Transactions and Sales Summary are the wrong reports for forecasting.
- Set the date range with the selector at the top. Custom dates are allowed; use the first and last day of a calendar month.
- Click Export in the top right and choose CSV.
If the export dialog shows a gear icon, it lets you choose between the columns currently on screen and every column Square holds. Take every column the first time. You can delete a column later; you cannot recover one you did not export without running the report again.
Which columns actually matter
Square’s Item Sales export is wider than it needs to be. A demand forecast reads three things, and only the first two are required.
| Square column | Needed? | What it does |
|---|---|---|
| Item | Required | The thing being forecast. One row per menu item. |
| Items Sold / Qty | Required | Units. This is the demand signal — the entire forecast is built on this column. |
| Gross Sales | Optional | Revenue for the period. Useful as a sanity check that the quantity column is not counting something else. |
| Net Sales, Discounts, Tax, Refunds | No | Money-side detail. It says nothing about how many portions left the kitchen. |
| Category | Nice to have | Makes the file readable when you have 200 items. Not used by the forecast. |
| Modifiers Applied | No | Unless you sell a modifier as a distinct portion, including it double-counts. |
How much history to pull
Three months is the practical floor — enough to establish a level and a rough direction. A full year is what unlocks seasonality, because a seasonal pattern cannot be measured until the calendar has repeated once. That is not a software limitation, it is arithmetic: with eleven months of data, no method can tell you whether last December was Christmas or a one-off.
| History exported | What a forecast can see | What it still cannot |
|---|---|---|
| Under 3 months | Roughly the current level | Trend or seasonality — treat any projection as a placeholder |
| 3–6 months | Level and direction of travel | Whether a rise is growth or the season |
| 6–11 months | Level, trend, and a partial seasonal shape | A confirmed annual pattern |
| 12 months or more | Level, trend, and a repeating seasonal pattern | Anything that has never happened before |
So export twelve months if you have them. If the restaurant opened seven months ago, export seven — a short honest history beats a padded one.
Getting from Square’s shape to a forecastable file
Here is the wrinkle. The Item Sales report totals a date range, so one export gives you one number per item. A forecast needs a series — the same item across consecutive months. Two ways to get there, and the boring one is faster.
Option A: twelve exports, one per month
Run the report twelve times, once per calendar month, and paste each result into a new column of a single spreadsheet. It sounds tedious and it takes about fifteen minutes. Name each column for the month it covers — Sep 2025, Oct 2025 — because that header is what tells an importer which month a number belongs to.
Option B: one detailed export, pivoted
If your export includes a date column at day or transaction level, pull the whole year in one go and build a pivot table: item as rows, month as columns, sum of quantity as values. Faster if you already live in spreadsheets, slower if you do not.
Either route is aiming at the same shape — one row per item, one column per month, units in the cells:
| Item Name | Unit Cost ($) | Selling Price ($) | Jan 2026 | Feb 2026 | Mar 2026 |
|---|---|---|---|---|---|
| Tomatoes | 2.50 | 7.00 | 40 | 38 | 44 |
| Chicken Breast | 3.20 | 9.50 | 120 | 118 | 126 |
| Avocados | 1.10 | 4.00 | 90 | 60 | 50 |
Only Item Name and the month columns are required. A blank cell is read as “this month was not supplied” rather than as a zero, so an item you did not stock in January should have an empty January cell. Writing 0 tells the forecast that demand genuinely fell to nothing, which is a different claim.
Three things that will bite you
A renamed item becomes two products
If “Burger” became “Smash Burger” in April, Square exports them as separate items and each gets half a year of history. Merge the rows before importing, or you forecast two half-products instead of one whole one.
Comps and voids
Depending on the report and your settings, comped items may or may not appear in the quantity column. If a comped plate still left the kitchen it consumed inventory and should count as demand. Check one month against what you remember before trusting all twelve.
Multiple locations
The dashboard filters by location, and exporting “all locations” gives you a combined series describing a restaurant that does not exist — the sum of two kitchens with different menus and different weekends. Export one location at a time.
What happens next
Once the file is in that shape, StocksSense reads it directly. A sales CSV export works from any POS, on any plan — Square is not special here, and the same reshaping applies to Toast, Clover, Lightspeed, or a spreadsheet somebody keeps by hand. Catalog sync with a supported POS is a separate thing, available when enabled for your account; the CSV path never requires it.
From there the arithmetic is the interesting part: what a year of monthly units actually tells you about next month’s order, and where a hand calculation and a model disagree. That is worked through line by line in the companion piece below.