Does Shopify show profit? Partly, and the part misleads

Shopify shows gross profit for products that have a cost, and quietly drops the rest. What its numbers can and cannot tell you, the four gaps, and how to close them.

Profit31 Aug 202612 min read

Ibrahim Ölmez

Founder, nouz

You typed the question because you looked, and what you found did not feel like an answer: there is a cost field on the product page, there are reports with the word profit in them, and yet nothing anywhere says what your store actually made this month. That instinct is correct, and this post maps it precisely: what Shopify genuinely shows, the four gaps between its profit and yours, what those gaps do to the numbers on a real product, and how to get to a trustworthy figure whether or not you ever use our product.

  • Shopify can show gross profit per product, but only for products whose optional cost field is filled, and sales of uncosted products are dropped from profit reporting rather than shown as unknown.
  • The cost field holds one value with no history, so updating a supplier price silently reprices every past sale.
  • Shipping costs, payment fees, ad spend and overhead have no field at all; the dashboard's job ends where the money starts leaving.
  • On a €49 product, the flattering read says 62%; the honest walk ends at 37,3%. The gap is the four missing costs.
  • You can close the gaps by hand with exports and discipline, and this post shows how; the last section is honest about when that stops being fun.

What Shopify genuinely shows

Credit first, because the revenue half is excellent. Orders, discounts, returns as amounts, taxes, gross and net sales: all precise, all live, all correctly attributed to their day. Shopify also offers a cost-per-item field on every variant, and where that field is filled it can report a per-product gross profit: price minus recorded cost. If your question was only ever about the goods, and your catalogue's costs were complete and never changed, that reporting would carry you surprisingly far.

Both of those conditions fail in practice, and they fail quietly, which is the entire problem. Nothing in the interface warns you that the profit figure you are reading is built on a fraction of your sales, or that it changed retroactively last Tuesday when you edited a cost. The number looks equally confident either way.

The four gaps between Shopify's profit and yours

Gap one: uncosted sales vanish from the profit view. When a product has no recorded cost, its sales are dropped from profit reporting rather than flagged as unknown, so the reported margin describes only the disciplined half of your catalogue. The result is a survivor's average: the better your data hygiene on some products, the more confidently wrong the total reads. A store with costs on its ten old bestsellers and nothing on forty new products is reading a profit figure about a shop it no longer runs.

Gap two: the cost field has no memory. It holds exactly one value per variant, so when your supplier reprices and you dutifully update the field, every historical sale is re-priced at the new cost. Last quarter's margin changes without anyone touching last quarter. The full anatomy of this, including what it does to year-end reconciliation, is in what the COGS report leaves out; the one-line version is that a profit number you cannot re-derive next month is not a number, it is a mood.

Gap three: the costs of the order itself are nowhere. What you pay to pick, pack, box and ship a parcel has no field. Payment fees are technically known to the platform, since the gateway charges them per transaction, but they are never lined up against profit anywhere you can read. These per-order costs are precisely the ones that punish small baskets and split shipments, so their absence flatters exactly the orders that deserve scrutiny.

Gap four: the money you spend to get orders is invisible. Ad spend lives in Meta's, Google's and TikTok's own dashboards, each claiming credit in its own attribution window; rent, salaries, software and every other fixed cost live in your bank statements. Shopify never claimed to track them, which is fair, but it means the word profit anywhere in its interface always means something well above the line an operator actually lives on.

LineShopify showsA full statement needs
Revenue, discounts, returnsyes, preciselythe same, by day
Cost of goodsone static cost, where filled; uncosted sales droppeddated cost rules; gaps flagged, never dropped
Shipping and fulfilment costno fieldper parcel: carriage, picking, packaging
Payment feescharged, but not lined against profitper gateway, percentage plus fixed, on the gross
Ad spendnot presentper platform, on the spend date
Overheadnot presentprorated across the days it covers
The bottom linegross profit on costed itemsoperating profit, every morning
The statement, line by line: what Shopify's reporting holds against what a full P&L needs.

What the gaps do to one real product

Take the product our calculators use as their default: €49,00 on the shelf including 19% VAT, bought in for €18,50. The flattering read subtracts the cost from the shelf price and announces €30,50 of profit, a margin over 62%. It feels plausible, which is what makes it dangerous.

The honest walk starts by removing the €7,82 of VAT, because it was never yours: €41,18 of real revenue. The goods take €18,50, leaving €22,68, a 55,1% margin on the goods, and that is roughly where Shopify's best case ends. The parcel takes €6,40, the gateway takes €0,93 on the gross, and the unit's true contribution is €15,35, or 37,3%. Advertising has not been paid yet. The distance between 62% and 37,3% on a single unit is not an accounting nicety; multiplied over a month it is the difference between a store that thinks it can afford its ad budget and one that actually can. Run your own best seller through the profit margin calculator and you will have this picture in ten minutes.

Make Shopify's numbers useful anyway

  • Fill the cost field on every variant that sells, starting with your top twenty by revenue. An incomplete cost layer is the single biggest lie in the reporting, and it is yours to fix.
  • Keep a dated cost log outside Shopify: a sheet with variant, cost and the date it took effect. It is the history the field cannot hold, and the thing that lets you re-derive last quarter after a price change.
  • Read gross margin per product, never as a catalogue average: the average mixes your disciplined products with your dropped ones.
  • Reconcile one month of gateway payouts against that month's orders once. The fee reality, including the fixed fees on small and split payments, is educational in a way no rate card is.
  • Pull ad spend from the platforms' billing pages, not their dashboards, and put it under the month's gross profit by hand. That single subtraction is the most honest profit figure Shopify-plus-spreadsheet can produce.
  • Decide which day amounts belong to and never change it: refunds on the refund day, spend on the spend day. Consistency beats sophistication.

Three questions that always come next

Do profit apps see data Shopify hides from me? No. Every profit tool reads the same orders, refunds and transactions through the same API you could export yourself. What a real tracker adds is the layer Shopify does not have: your costs, with dates, per rule, plus the fee, logistics and ad layers, and the discipline of computing the statement the same way every night. The data is not secret; the assembly is the product.

Is the cost field at least right for my accountant? Treat it as unrelated. Your accountant works from invoices and inventory valuations under accounting rules, months in arrears and legally binding. The operating view answers a different question on a different calendar. Stores get into trouble by mistaking one for the other in both directions.

Why does my bank account disagree with every version of these numbers? Because cash runs on a third calendar: refunds land late, stock is paid before it sells, the VAT was never yours and payouts lag. That divergence has its own anatomy, walked euro by euro in making sales but no money in the bank.

Where this ends up

Shopify shows you the arriving half brilliantly and a costed sliver of the leaving half, and the honest answer to your question is: no, not profit as you mean it. The gap is closable by hand, with the checklist above and a tolerance for repetition, and closing it manually for even one week will teach you more about your store than a quarter of dashboard-watching. When the repetition wins, that assembled statement is exactly what a Shopify profit tracker automates: every line above, computed nightly from your own orders and your own dated costs, with the gaps flagged instead of dropped.

Written by

Ibrahim ÖlmezFounder, nouz

Builds the P&L engine behind nouz. Writes about the costs that decide whether a Shopify store is actually profitable.