Table Of Contents

Table Of Contents

Table Of Contents

Common Shopify Profit Report Oversights and How to Avoid Them

Tell us your #1 roadblock to

earn more profit.

Tell us your #1 roadblock to

earning more profit.

Tell us your #1

roadblock to

earn more profit.

Share

Common Shopify Profit Report Oversights and How to Avoid Them

Shopify profit reports stop at gross profit. See what's missing, why it matters, and how to track true net profit across your store

Get shopify profit report

You open the Shopify dashboard on a Sunday night to answer one question. How much money did the store actually make this month?

Sales are there. Gross profit is there. The number you came for isn't.

So you export a CSV and start stitching. Custom COGS that Shopify's "Cost per item" field doesn't fully capture. Shipping costs from ShipStation that change every time a carrier updates rates. Transaction fees from Stripe and PayPal that Shopify only tracks when you use Shopify Payments. Ad spend from Meta, Google, and TikTok. The 3PL invoice. The contractor bill.

Two hours later you have a net profit number. It's lower than you thought. And you know you'll be doing this again next month.

This is the gap Shopify profit reports leave open. Here's what's missing, why it matters, and what to do about it.

TL;DR

  • Shopify profit reports stop at gross profit. They don't account for transaction fees from third-party gateways, inbound shipping, third-party fulfillment costs, ad spend, refunds, or operating expenses.

  • The result is a profit number that's typically 30 to 50 percentage points higher than reality on the product level, and meaningfully wrong at the store level.

  • Six blind spots cause most of the damage: inbound shipping in COGS, payment processing fees, refunds and discounts, fulfillment and packaging, external ad spend and operation expenses.

  • Manual consolidation in a spreadsheet works once. It breaks the moment costs change, which they do constantly.

  • A profit analytics layer built for Shopify automates the consolidation and gives you a live net profit view across orders, products, channels, and customers.

What Shopify profit reports actually show you

Shopify's reporting suite covers the basics well. The Finance reports show sales, returns, taxes, and tips. The Profit by product report (available on Shopify and higher plans) shows gross profit per SKU based on the "Cost per item" field you've entered. The sales reports break revenue down by channel, location, and time.

The ceiling is gross profit. Gross profit is revenue minus the cost of goods sold, where COGS is whatever number you typed into the "Cost per item" field. That's it. Every cost that sits below the gross profit line, which is most of the costs that determine whether your store is profitable, is either absent from the reports or only partially captured.

Three structural limits make this harder to fix from inside Shopify:

  • Cost per item is a single number. You can't change it for different date ranges, so if your unit cost dropped from $14 to $11 in March, your gross profit numbers for January and February are still wrong.

  • Advanced reports gate behind higher plans. The Profit by product report, custom reports, and most filtering live on Shopify, Advanced, and Plus. Stores on Basic see a thinner slice.

  • Third-party data doesn't flow back in. Shipping costs from ShipStation, fees from PayPal, ad spend from Meta, sales channel fees, contractor invoices from your bank account, none of this is in Shopify's native reports unless you build it yourself.

That's the foundation. Now let's look at what gets missed.

6 things Shopify profit reports leave out

1. Inbound shipping, freight, and duties are not in COGS

When you enter "Cost per item" in Shopify, you're entering what you paid your supplier for the product. You're usually not entering the freight to get it to your warehouse, the customs duty, or the inbound handling fee from your 3PL.

For a brand importing from overseas, inbound shipping and duties can add 15 to 30% on top of the supplier cost. A product that looks like it has a 60% gross margin in Shopify might actually have a 45% margin once landed cost is included. You can fix this by inflating "Cost per item" to reflect landed cost, but then you lose visibility into the supplier price itself, and the number is wrong again the next time freight rates move.

2. Transaction fees only count if you use Shopify Payments

Shopify's reports track transaction fees cleanly when the merchant uses Shopify Payments. The moment you take payment through Stripe, PayPal, Affirm, Klarna, or any other gateway, Shopify charges you an additional transaction fee (0.5% to 2% depending on your plan), and that fee is not consistently surfaced in the profit reports. The gateway's own fee (typically 2.9% + 30¢ on Stripe and PayPal) isn't pulled in either.

For a store running 30% of orders through PayPal, this is a meaningful gap. On $200,000 a month in PayPal revenue, you're looking at roughly $6,000 in gateway fees that don't appear in Shopify's profit view.

3. Refunds and discounts don't always net out the way you expect

Shopify tracks refunds and discounts, but the way they flow into the profit reports can mislead you. Discount amounts sometimes pull from the order's discount field and sometimes from automatic price reductions, and the two don't always reconcile. Refunds get tracked, but the cost of the goods that were returned (and may not be resaleable) often doesn't get credited back cleanly.

The result is a gross profit number that can look healthy while a 12% refund rate and a 20% discount rate are quietly eating into the actual margin.

4. Fulfillment, pick-pack, and packaging are not tracked

If you use Shopify Shipping, label costs are tracked. If you don't (most brands at any meaningful scale use a 3PL or ShipStation or ShipHero), the labels, pick-pack fees, packaging materials, and per-order handling charges sit entirely outside Shopify's reports.

These are not small. A typical 3PL charges $2.50 to $4 per order in pick-pack plus per-item fees, and packaging adds another $0.50 to $2 depending on the product. On a $35 AOV, fulfillment alone can run 10 to 15% of revenue.

5. External ad spend is invisible

This is the biggest one. Shopify shows you which channel an order is attributed to. It does not show you how much you spent on that channel. Meta lives in Meta. Google lives in Google. TikTok lives in TikTok. Agency retainers and creative production costs live in your bank statement.

If you don't pull these in manually, every profit number in Shopify is a gross profit number, not a net profit number. You cannot calculate CAC, you cannot calculate MER, and you cannot answer "are my ads profitable?" from inside Shopify.

6. Operating expenses live entirely outside Shopify

Even if you somehow tracked every variable cost above (landed COGS, fulfillment, transaction fees, ad spend, refunds), Shopify still wouldn't show you operating profit. Rent, payroll, software subscriptions, agency retainers, contractor invoices, your 3PL's monthly base fee, the Klaviyo bill, the Shopify plan itself, none of it is in the reports.

These are the costs that decide whether your business is profitable, not just whether each order is profitable. A store can run a healthy 35% contribution margin on every order and still lose money at the end of the month if operating expenses eat through what's left. For most DTC stores, operating expenses run 8 to 15% of revenue. Without them, "net profit" in Shopify is really just the contribution margin before fixed costs, which is a useful number but not the one that hits your bank account.

Get shopify profit report discovering all expenses

How to see profit on Shopify: the manual route

You can build a real net profit view in a spreadsheet. Here's the rough process types:

  1. Export Shopify orders for the period, with order subtotal, discount, tax, and shipping charged.

  2. Pull COGS by SKU and multiply against units sold. Adjust for landed cost.

  3. Export transaction fees from each payment gateway separately and reconcile to orders.

  4. Pull shipping costs from your fulfillment platform (ShipStation, ShipHero, or your 3PL invoice).

  5. Pull ad spend from each ad platform. Match the period.

  6. Add operating expenses for the period: rent, payroll, software, contractors, 3PL base fees, and agency retainers.

  7. Subtract everything from net revenue. That's your net profit.

This works the first time. Then your supplier raises prices, your 3PL adjusts its rate card, you add Klaviyo to the stack, freight changes, and you're rebuilding the spreadsheet. Most founders do this monthly, get a number, and use it to make decisions for the next 30 days, by which point the cost structure has already shifted again.

There's also a deeper problem with the manual route: it gives you a store-level number, but not a product-level or channel-level one. You can see that the store made $17,000 in net profit. You can't easily see which products contributed to it, which channels paid back, or which campaigns lost money.

What a real net profit view looks like

A net profit view that actually helps you make decisions has four properties. It's automated, granular, reconciled, and available daily.

This is the gap Bloom, our profit app for Shopify stores, was built to close. It pulls Shopify orders, COGS, third-party shipping, transaction fees, ad spend from Google, Meta, TikTok, Klaviyo data, and operating expenses into a single live view, then does the math for every order, product, channel, and day.

In practice, that shows up as three reports you'd otherwise be building yourself.

Profit & Loss report

A live P&L for the store, laid out the way a CFO would read it. Revenue at the top, then product cost, fulfillment, ad spend, refunds and discounts, transaction fees, and operating expenses as separate lines below. Contribution Margin 1, CM2, and CM3 appear as you move down the waterfall, so the impact of each cost layer is visible. Filter by date range and the whole P&L recalculates.

Product profit report

Every SKU is ranked by net profit, not revenue. Each row shows units sold, revenue, true COGS, fulfillment cost, refunds and discounts, and ad spend attributed to that product based on the campaigns it appeared in. From there you see contribution margin and net profit per SKU. Sort by margin and the best-selling product is usually not the best-earning one.

Order profit report

The same view, drilled down to the individual order. Every order shows revenue, the COGS of the items in it, the shipping cost actually charged by the carrier, the transaction fee from the gateway used, refunds, and discounts. Useful for spotting loss-making order patterns: discount codes that push orders below break-even, free-shipping thresholds that erode margin, refund-heavy SKUs to re-price or pull.

See the gap: Shopify's profit view vs your real net profit

Take a product you sell for $100 on Shopify. Here's what the profit looks like in Shopify's reports versus what it looks like once every real cost is included:

Metric

Shopify report

Real net profit

Selling price

$100

$100

COGS

−$40

−$40

Shipping cost

Not included

−$10

Transaction fees

Not included

−$5

Ad spend (to acquire the customer)

Not included

−$20

Overhead (labor, rent, software)

Not included

−$8

Net profit

$60

$17

Profit margin

60%

17%

Same product, same sale, same store. The number Shopify shows you is $60. The number that actually hits your bank account is $17.

The decisions you make at 60% margin and 17% margin are entirely different. At 60%, you scale ad spend aggressively, you discount more freely,and you invest in a new product line. At 17%, you tighten everything. Which decision you make depends on whether you can see the real number.

This is the cost of relying on Shopify profit reports alone. Not that they're wrong, but that they stop too early.

FAQ

How do I see net profit on Shopify?

You can't see net profit inside Shopify alone. Shopify's profit reports stop at gross profit (revenue minus the "Cost per item" you entered). Net profit requires layering in third-party shipping costs, payment gateway fees, ad spend from external platforms, refunds, and operating expenses. You either build this manually in a spreadsheet or use a profit analytics tool that pulls all those data sources in automatically.

Why is my Shopify profit different from my bank account?

Three usual reasons. First, Shopify's gross profit doesn't subtract payment processing fees from third-party gateways like Stripe or PayPal. Second, it doesn't include ad spend, which for most DTC stores is the single largest variable cost. Third, it doesn't include third-party fulfillment costs, software, or operating expenses. Once those are added, your true net profit is usually 30 to 50 points lower than Shopify's gross profit number.

Does Shopify Profit by product report include all costs?

No. The Profit by product report uses the "Cost per item" field you've entered, which most merchants populate with the supplier cost only. It doesn't include inbound shipping, customs duty, payment processing fees, fulfillment costs, or ad spend allocated to that product. The gross profit it shows is a useful starting point but not a true product-level profit number.

Can I track shipping costs in Shopify if I don't use Shopify Shipping?

Not natively. Shopify's reports only capture shipping costs when you buy labels through Shopify Shipping. If you fulfill through a 3PL, ShipStation, ShipHero, or any third-party carrier, those costs need to be imported separately. Most merchants either build a manual reconciliation or use a Shopify app that integrates with their fulfillment platform.

Closing

The pattern is the same for almost every Shopify merchant who outgrows the basics. The dashboard gives you enough to feel oriented and not enough to make real decisions. The spreadsheet works until it doesn't. Eventually you need a system that pulls everything together and stays current.

You can try Bloom free, or book a demo call with the team if you want a guided look at your store's profit picture first.

Know Your Real Profit And
The Ads That Actually Sell.

No need to spend. Just try it on your store.