Shopify Reports Explained: Sales, Inventory and POS Data in One Place

David Lopes

TL;DR

  • Shopify reports are pre-built views of your store data (sales, finance, customers, inventory, behavior, marketing, and POS), gated by plan tier, with custom reports and ShopifyQL unlocking on Advanced and up. Know the mental model: the Analytics dashboard is the glance, reports are the detail, Live View is right now, and a KPI is a definition, not a number (gross vs net sales is where teammates argue).
  • The reports that actually drive budget aren't in there. Shopify "profit" subtracts COGS but not ad spend, and the newer native attribution reports (five models) go blank on Meta and Google cost, are single-touch and rule-based rather than deduplicated, and can't give LTV by channel or one online-plus-retail P&L. Native reports are genuinely enough for a single-channel store with no paid spend; past that, the Question Latency Tax compounds.
  • Polar fills the gap without a data-team build. Synthesizer turns "profit after ad spend and COGS" into one live number, Polar Pixel delivers a deduplicated blended ROAS with Meta and Google cost included, Causal Lift proves incrementality, and LifetimeID stitches online plus retail into one P&L and one honest CAC, live within 24 hours on a Snowflake you own.

Shopify reports are the built-in compilations of your store data, grouped into categories inside Shopify Analytics. Most operators only ever open three of the dozens that exist. Sales over time. A finance export. Maybe sessions. Here is the contrarian part. The reports you actually need to make money, profit after ad spend, a deduplicated blended ROAS that includes your Meta and Google cost, and lifetime value by acquisition channel, are still not in there, even after Shopify's newer attribution reports.

This guide maps every native Shopify report by category and by plan, including the newer channel-performance and attribution reports. It shows you how to find, run, customize, export, and schedule them. It treats POS reports as a first-class topic, not a footnote. And it is honest about where Shopify reporting stops.

One framing to carry through. Call it the Question Latency Tax. The real cost of reporting is not the report. It is the lag between asking a question and trusting the answer. Native Shopify reports tax you on that lag every time.

The Shopify reports decision matrix

Before the categories, here is the whole thesis in one object. Rows are the questions operators actually ask. Columns are whether Shopify reports answer them natively, partially, not at all, or whether you need a connected layer like Polar.

Operator question Native Shopify report With Polar
How are sales trending? Yes, native Same, plus benchmarks
What is my profit after ad spend and COGS? PartialCOGS only One live number
Which products are dead stock? PartialSell-through Yes, with margin context
What is my blended ROAS across channels? PartialNative attribution but no Meta or Google cost Yes, deduplicated, cost included
What is LTV by acquisition channel? Not possible natively Yes
How did the store do online plus retail? Not in one view One P&L, one CAC

Most rows go amber or red until the last column. That is not a knock on Shopify. It is the line between a store dashboard and a decision layer.

What are Shopify reports

Shopify reports are pre-built views of your store data, each shown as a graph plus a table, organized into categories inside Shopify Analytics. Sales, finance, customers, inventory, behavior, and marketing each get their own group. You pick a report, set a date range, and Shopify draws the chart and lists the rows.

People mix up three things in the admin, so let us draw the line.

The Analytics dashboard is the overview screen. It shows headline tiles like total sales, sessions, and conversion rate for a chosen period. It is a glance, not a deep dive.

Reports are the detailed views you open from the dashboard. This is where you filter, slice by dimension, and export. Since Shopify reorganized the Analytics area, reports live under their categories inside Analytics rather than a separate left-nav list.

Live View is the real-time map and counter. Useful on launch day or during a sale. Useless for anything historical.

So the mental model is simple. Dashboard for the glance, reports for the detail, Live View for right now. Good ecommerce analytics starts with knowing which of the three you actually need before you go hunting.

One more thing worth saying early. A KPI is a definition, not a number. Two Shopify reports can disagree because one counts gross sales and another counts net. Knowing the definition matters more than reading the figure.

How to find and run reports in Shopify

Shopify reports sit under Admin, then Analytics, then Reports. That is the path. If you used Shopify before the Analytics reorg, the old standalone Reports link is gone, folded into the Analytics section with the dashboard and Live View. The full list of report types lives in Shopify's Help Center.

Open any report and you can reshape it. Here is how to run one well.

Filtering, date ranges, and editing columns

Shopify reports let you set a date range at the top, then add filters and edit which columns show. Want sales by product for last month, only one channel? Set the range, filter by channel, add the product dimension. The chart redraws and the table updates. This is the core loop for most questions.

How to export a Shopify report to CSV

Shopify reports export to CSV from the export button on the report. This is how most operators get data into a spreadsheet for deeper math. Be aware of the ceiling. Large date ranges and high-row reports can hit export limits and split into multiple files or truncate, which turns one question into a stitching job.

Can you schedule Shopify reports

Shopify reports can be sent on a schedule as emailed exports, though the cleanest scheduling often depends on your plan tier or a reporting app. The intent is fine. The friction shows up when a teammate needs the same report every Monday and someone ends up exporting it by hand instead.

That manual loop is the Question Latency Tax in miniature. Export, open, paste, recompute, send. Repeat next Monday.

With Polar: Polar refreshes your governed metrics every 15 minutes after a 24-hour setup, and any report or financial summary can run on a cadence to inbox or Slack without a manual export. Ask Polar, the conversational layer, can build or send the view for you, with citations and a Data Debug Sheet so anyone can trace a number back to its source. The Monday-morning copy-paste disappears.

Every Shopify report category, explained

Shopify reports group into categories. Here is what each one covers and where each one quietly stops.

Shopify sales reports

Shopify sales reports break down what you sold. Sales over time, sales by product, sales by channel, and sales by staff are the workhorses. This is the most-opened category by far.

Define your terms here, because this is where numbers fight. Gross sales is product price times quantity, before discounts, returns, taxes, and shipping. Net sales is gross sales minus discounts and returns. Two teammates quoting "sales" from two reports will disagree if one reads gross and the other reads net. A KPI is a definition, not a number.

Shopify sales reports answer "what happened" cleanly. They do not answer "was it profitable," because cost is not in the same view.

Finance and profit reports

Finance reports cover the money mechanics. Finances summary, taxes, and payouts reconcile what Shopify owes you and what you owe in tax. Profit reports add cost of goods, so you can see margin if you have loaded COGS per product.

Here is the catch that trips up almost every operator. "Profit" in Shopify means revenue minus COGS. It does not subtract ad spend. So a product can look profitable in the report and lose money once you count what you paid Meta and Google to sell it. There is no native Shopify report for profit after ad spend in one number.

A common pattern: an operator opens sales over time, then exports the finances summary, then drops both into a spreadsheet to subtract ad spend by hand, three times a week. That manual reconciliation is the Question Latency Tax, paid in full.

With Polar: Polar's Synthesizer semantic layer ships 400-plus pre-built ecommerce metrics with one governed definition each, so "profit after ad spend and COGS" is a single live number, not a spreadsheet ritual. Pull ad spend, COGS, shipping, and fees into one profit after ad spend and COGS view, and add Custom Metrics for any business-specific logic. No data team required.

Shopify inventory reports

Shopify inventory reports tell you what you are holding and how fast it moves. The month-end snapshot shows units on hand at period close. ABC analysis ranks products by revenue contribution. Sell-through rate is units sold divided by units received, a read on whether stock is actually moving. Days of inventory remaining projects when you run out at the current pace.

Sell-through is the one to internalize. A high sell-through means demand is outrunning supply. A low one means cash is sitting on a shelf. Shopify inventory reports flag the dead stock. They do not tell you the margin you are bleeding by holding it, because cost and ad-acquisition data live elsewhere.

Customer reports

Customer reports split your base. First-time versus returning customers, cohort-style retention over time, and at-risk customers who have not bought in a while. Returning customer rate is the headline retention read.

These are genuinely useful for a single-channel store. They start to crack when a customer buys online and in a retail location, because Shopify struggles to see those as one person.

Behavior reports

Behavior reports cover the funnel before purchase. Sessions, conversion rate by device, top landing pages, and sessions by referrer. They tell you how traffic moves through the store, but they stop at the session. They do not tie a session back to what you spent to earn it.

Shopify marketing and attribution reports (the newer ones)

This is the part of Shopify reporting that changed most recently, so it is worth its own section. Shopify's marketing reports, in the Growth area of Analytics, now include real channel-performance and attribution reporting, not just a session-by-referrer list.

What the native attribution report does

Shopify's attribution reporting lets you switch between five attribution models: last non-direct click (the default), last click, first click, any click, and linear. So you can ask which channels introduced a customer (first click) versus which closed the sale (last click), and see how the picture shifts between models. Available metrics include sales, sessions, orders, AOV, conversion rate, new versus returning customers, and for some channels cost, ROAS, CPA, CTR, impressions, and clicks. Attribution data in this section is available from October 1, 2021 onward. Shopify's Help Center documents the marketing performance reports in full.

Credit where due: this is a genuine upgrade. For a store leaning on organic, email, and referral traffic, native attribution now answers a lot of the "which channel drove this" question without a third-party tool.

Where the native attribution report stops

The gaps are specific, and they land exactly where paid-heavy DTC brands live.

It does not show cost or ROAS for Meta or Google. In Shopify's own words, "Facebook and Google campaigns don't display metrics such as cost, ROAS, CPA, or CTR," so for your two biggest paid channels you still have to open Ads Manager to see spend. Native ROAS exists, but not for the channels where you spend the most.

It is single-touch and rule-based, not deduplicated across platforms. First click, last click, and linear are attribution rules applied to the traffic Shopify can see. They do not reconcile the same customer being claimed by Meta, Google, and Klaviyo at once, so they cannot hand you one honest, deduplicated blended ROAS.

It only sees what passes its own tracking. Signal loss from browser and consent changes still applies, and attribution here is correlation, not incrementality, so it cannot tell you whether a channel actually caused the sale.

That is the gap the last sections of this guide are about.

With Polar: Polar reconciles spend, clicks, and revenue across Meta, Google, TikTok, and Klaviyo into one deduplicated blended ROAS, cost included, through the click-based Polar Pixel that applies one conversion definition identically across platforms. Where Shopify's native report goes blank on Meta and Google cost, Polar fills it in, and Causal Lift adds the incrementality test that proves which spend actually caused sales instead of merely getting credited by a click rule.

Shopify POS reports for retail and omnichannel

Shopify POS reports cover the retail side of the business, and most guides bury them in one line. They deserve more.

What POS reports cover

Shopify POS reports break down in-person sales by location, by staff, by register, and by device, plus cash tracking for till reconciliation. If you run physical stores or pop-ups, this is where you see retail sales by staff and which location is pulling weight. Shopify's POS documentation covers the setup.

So yes, Shopify POS has reports, and they are solid for a single retail view.

The omnichannel gap

Here is where it falls apart. Online and retail rarely sit in one trustworthy view. Your online reports live in one place, your POS reports in another, and stitching them into a single P&L is manual.

Worse is what we call the omnichannel-CAC trap. When a shopper sees an online ad, then buys in store, native tools cannot connect those two events. Paid gets no credit for the retail sale, or blended CAC over-credits paid because the retail revenue is missing from the denominator. Either way, your customer acquisition cost is wrong, and you make budget decisions on a broken number.

With Polar: Polar's LifetimeID stitches one persistent customer identity across DTC, POS, wholesale, and marketplaces using first-party pixel data plus hard purchase signals like email, customer ID, and order ID. That puts online plus retail into one P&L and one blended CAC, which is exactly what fixes the omnichannel-CAC trap. Square and Lightspeed POS data flow in alongside Shopify, so retail is not a second-class citizen.

Shopify reports by plan: what each tier actually includes

Shopify reports are gated by plan, and the gating is blunt. The reports you want often sit one tier above where you are.

On the Basic plan, reporting is minimal. You get the essentials and very little real sales or customer analysis. On Grow, the standard tier, you get the full marketing and customer reports most operators expect. On the Advanced plan, you get the custom report builder and deeper analytics. On Plus, you get the highest limits and the most flexibility. Check current details on Shopify's pricing page.

The practical translation. If you are on Basic and wondering why you cannot see a customer cohort report, you are not missing a setting. You are missing a plan tier. That is a real cost worth naming, because the upgrade is priced against features you may use once a month.

This is also where the next question lands. Once you are on Advanced, what do "advanced reports" actually mean?

Shopify advanced reports and custom reports

Shopify advanced reports are the custom-report capabilities that open up on the Advanced plan and above.

What "advanced reports" means

Shopify advanced reports let you build custom reports instead of only running pre-built ones. On the Advanced plan you get a custom report builder, and ShopifyQL, Shopify's query language, lets you write more precise report logic. Shopify documents ShopifyQL and custom reports for operators who want to go deeper.

Building a custom report step by step

To build one, open Analytics, then Reports, then create a custom report. Pick the data category, choose your columns and dimensions, apply filters, set the date range, and save. You can edit columns, sort, and export the result to CSV like any other report.

When native custom reports run out of road

Custom reports are powerful inside Shopify's own data. They hit a wall in three places. They cannot join ad platforms, email, and Shopify into one metric, including the Meta and Google cost the native attribution report leaves blank. They cannot reach back further than your export limits allow. And they cannot blend sources, because they only know what Shopify knows.

With Polar: Polar builds custom metrics and custom dimensions across 40-plus connectors, so a single report can join Meta, Google, TikTok, Klaviyo, and Shopify with one governed definition. You can create or edit those metrics through Ask Polar or the Polar MCP, the first commerce MCP in the Anthropic directory, and the AI reasons against the governed semantic layer rather than writing raw SQL against your tables. Cross-source custom reporting, without a data team.

What Shopify reports cannot show you, and what to do about it

Let us state the honest core. Even with the newer attribution reports, Shopify cannot show you profit after ad spend and COGS in one number. It cannot show a deduplicated blended ROAS that includes your Meta and Google cost, because native attribution goes blank on exactly those two channels. It cannot show LTV by acquisition channel. It cannot show a single online-plus-retail P&L. And its history is limited by export ceilings.

These are not edge cases. They are the questions that decide where the next dollar of ad budget goes. The report you actually need is not in there.

Now, the foil. You do not solve this by standing up a generic data stack. You do not need a warehouse plus Fivetran plus dbt project to answer a Monday-morning question. That is a six-month engineering effort aimed at a problem that should take a coffee to answer. The right tool stays inside the ecommerce ecosystem and speaks commerce out of the box.

With Polar: Polar puts blended ROAS across channels next to Shopify revenue, deduplicated through the click-based Polar Pixel that uses one conversion definition identical across Meta, Google, and TikTok, with the Meta and Google cost the native report omits. LTV by acquisition channel, profit after ad spend, and one omnichannel P&L all sit in the same governed layer, live within 24 hours of connecting. Each customer gets a dedicated Snowflake instance Polar provisions and operates, with full admin access and full data portability, so the data is yours to query, export, or replicate, not a black box.

Here is the longer arc. By 2028 the dashboard is a debug tool, not a product. The chart is where you go to check the machine, not where you go to make the decision. The decision gets made by agents and governed metrics that already know your definitions. Polar AI Agents, 62 of them across six departments, already read and reason over recurring decisions and surface the next move, instead of leaving you to read a chart and infer it. A native Shopify report cannot get there, because it was never built to.

Honesty note: when native Shopify reports are enough

Native Shopify reports are genuinely enough for some stores, and pretending otherwise would be dishonest. If you run one store, sell on one channel, spend nothing on paid ads, and check sales weekly, the built-in reports cover you. Sales over time, a finance summary, inventory snapshots, and the native attribution report will answer almost everything you ask.

The threshold is specific. Native reporting stops paying off the moment one of these is true. You run paid acquisition on Meta or Google and need true ROAS, the exact metrics native attribution leaves blank. You sell across more than one channel. You have retail plus online. Or a teammate asks the same question twice and gets two different numbers. Hit any of those and the Question Latency Tax starts compounding, and that is when a connected layer earns its keep.

FAQ

Shopify reports live under Admin, then Analytics, then Reports. Open Analytics from the admin sidebar, choose a report category, set your date range, and the graph plus table render. Your available reports depend on your plan tier.
Reports in Shopify are found under Analytics, then Reports, inside the admin. After the Analytics reorg, the old standalone Reports link is folded into the Analytics section alongside the dashboard and Live View.
Shopify offers reports across sales, finance, customers, inventory, behavior, and marketing categories, plus channel-performance and attribution reports and POS reports for retail. Higher plans add custom reports and deeper analytics.
Yes. Shopify's marketing reports include native attribution with five models: last non-direct click (default), last click, first click, any click, and linear. The catch is that Facebook and Google campaigns do not display cost, ROAS, CPA, or CTR there, so it cannot give you a true, deduplicated paid ROAS on its own.
Reports you cannot see are almost always gated by plan tier. The Basic plan includes minimal reporting, and most marketing and customer reports open up on Grow and above, with custom reports starting on Advanced.
The Shopify plan you need depends on the report. Basic gives essentials only, Grow adds full marketing and customer reports, and Advanced adds the custom report builder. Plus offers the highest limits.
Custom reports in Shopify are available from the Advanced plan, using the custom report builder and ShopifyQL. They work well inside Shopify data but cannot join external sources like ad platforms or email.
Shopify reports export to CSV using the export button on the report. Large date ranges can hit export limits and split into multiple files, so plan for stitching on big pulls.
Shopify reports can be scheduled as emailed CSV exports, though clean scheduling often depends on your plan tier or a reporting app. Many teams still end up exporting by hand on a recurring cadence.
Shopify POS reports exist and cover retail sales by location, by staff, by register, and cash tracking. They are solid for a single retail view but do not reconcile online and in-store into one P&L natively.
Shopify Analytics is the overview dashboard with headline tiles, while reports are the detailed, filterable views you open from it. Live View is the separate real-time screen.
The best Shopify reporting apps depend on the gap you are filling. Custom-report apps extend native slicing, while a connected analytics layer like Polar adds cross-source metrics such as deduplicated blended ROAS with Meta and Google cost and profit after ad spend that no native report or single-source app can produce.
Shopify cannot show profit after ad spend natively. Its profit reports subtract COGS but not ad spend, and its native attribution report does not even show Meta or Google cost, so true profit after ad spend requires connecting ad data, which a layer like Polar does in one governed number.

Book a 20-minute Polar walkthrough this week

You probably open the same three Shopify reports over and over, then do ad-spend math by hand. Book a 20-minute Polar walkthrough this week and we will rebuild your three most-opened Shopify reports as one live view, ad spend and COGS included. You bring the three reports. We bring the blended truth.

Table of contents

Make strategic decisions in minutes

See every metric that matters, in one place.

Book a demo

Ecommerce Benchmark

4,000+ brands, refreshed weekly.

See the benchmark

Frequently asked questions

Ready to stop guessing and start growing?

Make strategic decisions in minutes, not weeks.

Book a demo