# Export Shopify sales by variant, by month — the columns Runway reads

ShelfKit guide · compiled August 25, 2026 · verified live against Shopify's own help docs — see sources inline

Updated August 2026

Runway projects when each component runs out from three pasted inputs — one of them is a
sales-by-variant-by-month export. This page is the exact Shopify admin path to get that export, the
real column names Runway's parser accepts, and a fallback that needs nothing beyond exporting a
report, for whichever plan you're on.

## How to read this page

Two labels appear throughout:

- **Shopify-documented** — read directly from Shopify's own help pages, fetched August 25, 2026.
- **plan unclear** — Shopify's own pages don't agree with each other, or don't say, so we're not
  asserting one answer. Every instance below says exactly what's uncertain and gives you a path that
  avoids the uncertainty entirely.

## What you'll end up with

[Runway](https://shelfkit.ai/tools/runway) reads a CSV with three required columns — a SKU, a month,
and units sold — plus an optional title. It doesn't care about column order, capitalization, or how
the header is punctuated: each header cell is lowercased and stripped of spaces/punctuation, then
matched against the list below. This is read directly out of the parser's own source, not guessed.

| Field | Required | Any of these header names are accepted |
|---|---|---|
| SKU | Yes | `SKU` · `Variant SKU` · `Product variant SKU` · `Item SKU` · `Product SKU` |
| Month | Yes | `Month` · `Sales month` · `Period` · `Reporting month` · `Report month` |
| Units sold | Yes | `Units sold` · `Net items sold` · `Items sold` · `Qty sold` · `Quantity sold` · `Units` · `Qty` · `Net quantity` |
| Title | No — falls back to the SKU | `Variant title` · `Product title` · `Product variant title` · `Title` · `Item name` · `Product name` · `Variant` |

The Month column accepts `2026-07`, `2026/07`, a full date like `2026-07-15` (the day is ignored), or
a named form like `July 2026`. Two rows with the same SKU and month are summed together, not
overwritten — so it's fine to paste multiple months' files one after another.

## The ~2-minute path

**1. Open Analytics → Reports.** *Shopify-documented.* In your Shopify admin, go to `Analytics` then
`Reports`.

**2. Open the default variant-sales report.** *Shopify-documented.* Shopify's own report-types
documentation names this report **"Total sales by product variant"**, with default columns
`Product title`, `Variant title`, `Variant SKU`, and `Net quantity` — every one of those already
matches the accepted-header table above. (Community discussion and some in-product copy also refer to
this report as "Sales by product variant SKU" — same report, different label.)

**3. Add a Month breakdown.** Open the report's configuration panel, then the `Dimensions` menu, click
the `⊕` button, choose `Month`, and click `Apply`. *Shopify-documented* for the menu labels themselves.

*Plan unclear:* Shopify's own Advanced-plan page states plainly: "The Advanced plan also allows you to
create custom reports and activate predicted values for certain reports." Its Grow-plan page
separately lists "the ability to create custom reports with data explorations" as included on Grow.
Those two pages don't fully agree, and neither one says whether adding one unsaved dimension —
without saving the report — is itself limited by plan. If the Dimensions menu or the Month option
isn't there for you, skip straight to the fallback below; it doesn't need this step at all.

**4. Export to CSV.** *Shopify-documented.* From the report, click the export icon (`↥ Export`),
choose `CSV`, and click `Export`. Shopify also offers XML, JSONL, and Parquet from the same menu —
pick CSV.

**5. Paste it into Runway.** That file already has everything Runway needs.

### What's confirmed everywhere, and what isn't

Confirmed on every plan, quoting Shopify's own analytics overview page: **"Shopify Analytics' main
features are available to merchants on any Shopify subscription plan."** Viewing the default report
and exporting it to CSV are both part of that. What we could not pin down is whether adding the Month
dimension without saving the report is gated the same way saving a custom report is — Shopify's own
plan pages don't agree, so this page doesn't guess. Use the fallback below if you'd rather skip the
question entirely.

## The fallback — works on every plan, no Dimensions menu needed

Both options below use only report controls and export mechanics that Shopify's own docs confirm are
available store-wide — no saved custom report, no Dimensions edit.

### Option A — one month at a time

Open the same **"Total sales by product variant"** report from Step 2 above. Set its date range to one
calendar month, then export to CSV — the date-range picker is a basic report control, not a saved
customization. Open the file, add a `Month` column, and fill it with that month (e.g. `2026-07`) for
every row. Repeat for each month you want covered, then paste the files into Runway one after another —
matching SKU+month rows get summed, so combining files is safe.

### Option B — the order export

*Shopify-documented* works on every plan with no Analytics dependency at all: from the `Orders` page,
click `Export`, choose your format under `Export as`, and click `Export orders`. The file includes
`Lineitem SKU`, `Lineitem quantity`, `Lineitem name`, and `Created at` per order line — none of those
header names are in Runway's accepted list as-is, so rename them before pasting: `Lineitem SKU` →
`SKU`, `Lineitem quantity` → `Units sold`, `Lineitem name` → `Title` (optional), and trim `Created at`
down to just the date (Runway reads `2026-07-15` fine, but not a full timestamp with a time and time
zone attached) under a `Month` header. Every order line becomes its own row at whatever quantity that
one order sold — that's fine, since Runway sums duplicate SKU+month rows rather than overwriting.

## Check your export before you paste it

Open the CSV. The first couple of lines from the default report, after adding Month, should look
roughly like this:

```
Product title,Variant title,Variant SKU,Net quantity,Month
Trail Bar,Trail Bar - Berry,TB-BERRY,45,2026-07
Trail Bar,Trail Bar - Citrus,TB-CITRUS,31,2026-07
```

If Runway tells you it couldn't find a SKU, month, or units-sold column, the header row is the first
thing to check against the accepted-header table above — a renamed or unusual column name is the most
common cause. If every row gets rejected for a bad month, check that the Month column doesn't still
carry a full timestamp (time and time zone included) instead of just a date.

## Paste it into Runway

Runway turns components + counts, this sales export, and your lead times into a reorder-runway
projection — no other setup. The page is still being finished; if it isn't fully live yet when you
click through, the guide above already tells you everything the export needs.

- Web: https://shelfkit.ai/tools/runway
- Plain-text / agent-readable version of this guide: https://shelfkit.ai/guides/shopify-sales-export.md

Install commands:

```
/plugin marketplace add BorisGearKit/cpg-skills
/plugin install production-planner@cpg-skills
```

Free to use for your business, including commercially, under the PolyForm Shield 1.0.0 license.

Want the wider picture beyond this one export? See our honest
[AI tools for CPG operations round-up](https://shelfkit.ai/guides/ai-tools-for-cpg-operations) —
organized by the job, including where ShelfKit is not the pick.

## Questions people ask

**What columns does Runway actually need?**
Three required columns — a SKU, a month, and units sold — plus an optional title. Header names and
column order don't matter: Runway matches on a normalized form (lowercased, punctuation and spaces
stripped), so "Variant SKU", "Product variant SKU", and "Item SKU" all read as the SKU column. See the
accepted-header table above for the full list, read directly from the parser's own code.

**Which Shopify plan do I need for this?**
None beyond whatever plan you're already on. Viewing and exporting the default sales reports works on
every Shopify plan — Shopify's own docs state "Shopify Analytics' main features are available to
merchants on any Shopify subscription plan." Shopify's Advanced-plan page separately states that
saving a customized report as a reusable custom report is an Advanced-plan feature; its Grow-plan page
describes "the ability to create custom reports with data explorations" as included on Grow. Those two
pages don't fully agree with each other, so we're not asserting which plan first lets you add an
unsaved Month column — if the option isn't there for you, use the fallback path instead, which needs
nothing beyond exporting a report.

**What if my Shopify admin doesn't show a Month option?**
Use the fallback path: run the same default report with the date range narrowed to one calendar month,
export it, and add a Month column yourself before pasting into Runway. That only uses the date-range
picker and Export, both confirmed to work on every plan — no Dimensions menu required.

**Does column order matter?**
No. Runway scans the header row for a match against each field's accepted names and doesn't care what
position it's in. One wrinkle worth knowing: Shopify's own report lists "Product title" before
"Variant title", and both are accepted names for the (optional) title column, so Runway keeps the
product-level title, not the more specific variant title. That's cosmetic — the SKU is still the exact
variant, and title is never used for the math.

**What if I don't use Shopify?**
Runway doesn't care which platform the export came from — it reads whatever CSV you paste, as long as
the header row has a recognizable SKU, month, and units-sold column. Any sales-by-SKU-by-month export
with those three facts in it will work; rename the headers first if your platform's own names aren't
in the accepted list above.

---

This guide reflects publicly available Shopify help-center pages as of August 25, 2026, cited inline.
It is not affiliated with or endorsed by Shopify. Menu labels and plan features change — verify
anything workflow-critical against your own admin.

ShelfKit · a GearKit company · boris@gearkit.ai · Privacy: https://shelfkit.ai/privacy · Terms:
https://shelfkit.ai/terms · © 2026 GearKit AI, LLC
