← shelfkit.ai · Guides

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 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.

FieldRequiredAny of these header names are accepted
SKUYesSKU · Variant SKU · Product variant SKU · Item SKU · Product SKU
MonthYesMonth · Sales month · Period · Reporting month · Report month
Units soldYesUnits sold · Net items sold · Items sold · Qty sold · Quantity sold · Units · Qty · Net quantity
TitleNo — falls back to the SKUVariant 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 SKUSKU, Lineitem quantityUnits sold, Lineitem nameTitle (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.

Already use Claude? Setup is one paste:
/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 — 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.