All articles
How-To

Shopify CSV Export: How to Use Bulk Data for Reporting and Auditing

Learn how to use Shopify's CSV product export for pricing reports, margin audits, and catalog health checks — with step-by-step formulas and examples.

2026-07-116 min readBy BulkOps.ai

Most Shopify merchants export their product catalog once — usually when something has gone badly wrong — and never look at the file again. That's a missed opportunity. Your Shopify CSV export is one of the most underused tools in ecommerce operations. It can tell you which products are dragging down your margins, which variants are missing cost data, and where your catalog has gaps that are quietly costing you sales.

This guide walks through exactly how to use Shopify's bulk export for reporting and auditing — with real formulas, not vague advice.

What Shopify's Product Export Actually Contains

Go to Shopify Admin → Products → Export, choose "All products" and "CSV for Excel, Numbers, or other spreadsheet applications," and you'll get a file with one row per variant. The columns that matter most for reporting and auditing are:

  • Title — product name
  • Variant SKU — blank means your tracking is broken
  • Variant Price — what you charge
  • Variant Compare At Price — your "was" price, if set
  • Cost per item — what you paid; often blank, which is the root of margin blindness
  • Variant Inventory Qty — units on hand
  • Status — active, draft, or archived
  • Tags — useful for filtering; messy if never standardized
  • Image Src — blank means no image on that variant

One important limitation: Shopify does not export revenue, order count, or sales data in the product CSV. For that, you need a separate orders export or the Analytics section. What the product CSV does give you is your full catalog structure — which is exactly what you need for a data quality audit.

How to Build a Margin Report from Your CSV

Open the export in Excel or Google Sheets. Add three calculated columns to the right of the existing data:

Column: Gross Margin %

In the first empty column (say, column Z), add this formula:

=(Variant Price - Cost per item) / Variant Price

Format as percentage. Any row showing below 30% is worth flagging — that's a thin margin before you account for Shopify fees (around 2.9% + 30¢ per transaction on Basic), shipping, and returns.

Column: Margin Flag

=IF(Z2<0.3, "LOW", IF(Z2="", "NO COST", "OK"))

This gives you a simple filter column. Sort by this column and you'll immediately see your two biggest problems: products priced below your margin floor, and products with no cost data at all.

Column: Revenue at Risk

=Variant Price * Variant Inventory Qty

This shows the dollar value of inventory you're holding at each margin level. If you have $12,000 of inventory flagged LOW or NO COST, that number focuses the mind quickly.

Concrete example: Say you sell Carhartt-style canvas work jackets. Your cost is $38, your price is $59. The margin formula gives you 35.6% — fine. But you also sell a heavyweight insulated version that costs $61 and you priced at $89 during a promotion two years ago and never updated. That's a 31.5% margin before fees. After Shopify's 2.9% transaction fee and $8 average shipping contribution, you're at roughly 26% net. Not great. The CSV makes this visible in 10 minutes.

Running a Catalog Audit with the Export

A catalog audit answers one question: which products are incomplete, and what's the business impact? Here's how to run one from the CSV:

Missing SKUs

Filter where "Variant SKU" is blank. SKU-less products can't be tracked in warehouse systems, can't be mapped to purchase orders, and often indicate a product that was created quickly and never properly set up. Count the affected rows and divide by total rows — if more than 5% of your catalog has no SKU, your inventory tracking is compromised.

Missing Cost Data

Filter where "Cost per item" is blank. This is the most financially dangerous gap. Without cost data, you can't calculate margin, can't set formula-based prices, and can't run meaningful profitability reports. For many stores, this affects 20–40% of products — especially older catalog items imported before merchants started tracking COGS seriously.

Missing Images

Filter where "Image Src" is blank. Variants without images either show a placeholder or inherit from the parent product, depending on your theme. Either way, it's a conversion risk. A Lodge cast iron skillet variant that shows no image because a color option was added but never photographed loses a significant percentage of clicks.

Draft Products That Should Be Active (or Archived)

Filter where "Status" is "draft." These products aren't visible to customers. Sometimes that's intentional — pre-launch products, seasonal items you haven't restocked. But often, drafts are products that were never finished and have been silently sitting in limbo for months. The CSV export includes them, which Shopify's main product list doesn't always surface prominently.

Duplicate or Inconsistent Tags

Export the Tags column into a separate sheet and use a pivot table (or =UNIQUE() in Google Sheets) to see every distinct tag in use. Stores that have been running for 2+ years often have variants like "sale", "Sale", "SALE", and "on-sale" all doing the same job — just inconsistently applied. This kills automated collection rules that depend on exact tag matching.

Building a Regular Reporting Cadence

A one-time audit is useful; a regular cadence is how you actually stay on top of catalog health. Consider scheduling:

  • Weekly: Export and re-run your margin flag formula. Flag any products that have drifted below your margin floor — this catches cases where your supplier raised costs but your prices didn't update.
  • Monthly: Full data quality audit — missing SKUs, missing cost data, missing images, draft status check. Takes about 30 minutes with a saved spreadsheet template.
  • Quarterly: Cross-reference product CSV with your orders export. Which active products have sold zero units in 90 days? Those are candidates for archiving or repricing.

Where the CSV Workflow Breaks Down

The CSV approach is genuinely useful, but it has real limits. Every time you export, you're working with a snapshot — if your catalog changes while you're analyzing it, the data is already stale. More importantly, the CSV is read-only for analysis: when you find the 23 products with missing cost data, you have to go back into Shopify one by one to fix them, or do a re-import with a corrected CSV (which introduces its own error risk).

BulkOps's Data Insights panel flags the same issues — missing cost data, missing images, missing SKUs, low margins — directly inside the app, against your live catalog. When you find a gap, you can fix it in the same screen without leaving to a spreadsheet. For stores with 200+ products, that closes the loop that the CSV workflow leaves open.


If you're running these audits manually from spreadsheet exports every month, BulkOps's Data Insights tab surfaces all the same gaps automatically — missing cost data, low margins, missing SKUs — against your live catalog. Install BulkOps →

Shopify CSV export product dataShopify bulk data reportingShopify product audit CSVShopify catalog data export

Try BulkOps.ai free on your store

Everything covered in this article is built into BulkOps.ai. Free plan for stores up to 50 products — no credit card required.

Add to Shopify — Free

Was this helpful?