Shopify Profit Tracking: Find Your Real Margin Per Order

Shopify profit tracking exists to answer one question your revenue dashboard cannot: after every real cost hits the order, what is actually left over. Revenue can climb every single month while your best selling product quietly loses money on every unit, because a top line chart never subtracts product cost, shipping, payment processing fees, the ad spend that produced the sale, and the returns that arrive weeks later. This guide walks through exactly what has to come off every order before the remainder can be called profit, and why a store that looks healthy in its own reports can be losing cash on its best seller for months before anyone notices.

Gyllion Redout · September 1, 2026

Illustration of a Shopify order breaking apart into product cost, shipping, fees, ad spend and returns to reveal true profit

What actually has to come off a Shopify order before it counts as profit?

Five things have to come off every order before the remainder can be called profit: the product cost of what shipped, the shipping cost you actually paid, the payment processing fee the order incurred, the ad spend fairly attributed to that specific sale, and a share of the returns and refunds that come back later. Revenue minus those five leaves the true margin per order, and skipping even one of them turns a profit number into a guess.

Most Shopify dashboards stop at revenue and maybe a return on ad spend figure pulled straight from the ad platform. That number is generous by design: an ad platform reports what it believes it caused, not what your bank account received. Cost of goods sold rarely appears at all unless you typed it into a product field yourself, and most merchants never do that for every variant.

Transaction and app costs are the quiet ones. Payment processing fees, currency conversion, and the handful of subscription apps running on every order add up to real money that never shows on a per order basis anywhere in a standard report. None of these costs disappear because a dashboard does not show them; they still leave your account.

  • Product cost of goods sold for the exact item that shipped
  • Shipping cost you actually paid the carrier, not the flat rate charged to the customer
  • Payment processing fee charged on that specific transaction
  • Ad spend attributed to the order, not just to the campaign it came from
  • A fair share of returns, refunds and chargebacks from that period

Why can revenue grow every month while your best product loses money?

Revenue can grow every month while your best selling product loses money because the two numbers measure different things: revenue counts every dollar that comes in, while net profit per order subtracts what it cost to make that dollar arrive. A product can win on volume and still lose on margin if its ad spend, its return rate, or its shipping cost outruns its price, and a growing top line hides that completely.

This shows up most often on the product that gets the most ad spend, because it is usually the one growing fastest in raw sales. If that product also carries a thinner margin than the rest of the catalogue, or a higher return rate because of sizing or fragility, more ad spend on it can mean more revenue and less actual money at the same time.

The fix is not to stop advertising the product. It is to see the true margin per order for that product specifically, so a decision to keep scaling it, raise its price, or cut its ad budget is made on what the order actually returned, rather than on how fast the top line is moving.

How do product costs quietly wreck the profit number?

Product costs wreck the profit number when they are missing or stale, because every calculation downstream is built on that one figure. If cost of goods sold is not entered for a variant, most tools either count that product as free or exclude it from margin reporting entirely, and either way the number on the screen stops matching the number in the bank.

Supplier prices also change more often than merchants update their records. A product costed at last year’s supplier rate looks more profitable than it is, sometimes by enough to make a losing product look like a winner for months, right up until a slow quarter forces someone to check the actual invoice.

Variants make this worse. A shirt in five sizes and three colors can carry fifteen different cost lines if the supplier prices them that way, and a profit tool that only supports one cost per product silently averages away the difference between the size that costs more to make and the one that does not.

Why does ad spend have to be attributed to the order, not just the campaign?

Ad spend has to be attributed to the specific order because a campaign level number tells you what you spent, not what any single sale actually cost to produce. Two orders from the same campaign can carry very different acquisition costs once you account for which ad, which audience and which day actually drove each one, and averaging across the whole campaign hides that spread.

This matters most when a store runs several products through the same campaigns. If ad spend is only tracked at the account or campaign level, every product effectively inherits the average acquisition cost of the whole account, which flatters the products riding on the back of a cheaper winner and unfairly penalizes standalone launches.

Order level attribution needs first party tracking that can actually see which visit turned into which purchase, because the ad platform’s own reported number is not built to answer this question. It reports what it believes it caused across a window it chooses, not the specific cost behind the order sitting in your store right now.

What do payment fees, shipping and returns really cost you?

Payment fees, real shipping cost and returns typically remove another meaningful slice of every order, and almost none of it is visible in a standard revenue report. A payment processor takes a percentage plus a fixed fee on every transaction, the shipping label you actually pay for is rarely the flat rate you charged the customer, and a returned order costs you the outbound shipping, the refund, and often the restocking on top.

Currency conversion adds a second layer for stores selling across borders, since the fee for accepting a foreign card is usually higher than the one for a domestic transaction. None of these amounts are large individually, which is exactly why they get ignored, but stacked across a month of orders they move the margin number by more than most merchants expect.

Returns are the cost that lands latest, sometimes weeks after the sale was already counted as profit. A product with a return rate high enough to matter needs that rate reflected in its own margin, not treated as a one off subtracted from a different month’s number.

  • Payment processing fees: a percentage plus a fixed amount on every transaction
  • Real shipping cost: what you paid the carrier, not what the customer was charged
  • Currency conversion fee on international cards
  • Return shipping, refunded revenue and restocking on any order sent back

What does a real profit and loss look like at the order level?

A real profit and loss at the order level starts from revenue and subtracts product cost, shipping, payment fees, attributed ad spend and a share of returns, leaving net profit and a margin percentage for that specific order, that specific product, and that specific day. Rolled up, the same structure produces a daily, monthly and yearly view without changing what each number means.

This is different from a store level profit and loss, which can look healthy while hiding a losing product underneath a handful of strong ones. Order and product level detail is what turns a single blended margin figure into an answer you can act on: reprice this product, cut the ad budget on that one, or stop restocking a third.

The same structure also has to include the costs that never touch an order directly: software subscriptions, agency fees and other recurring business expenses. A store can have a healthy per order margin and still lose money overall if those fixed costs are never subtracted from anywhere.

How does Zyberon do Shopify profit tracking?

Zyberon’s AI Profit Calculator builds a live profit and loss from your actual Shopify orders: revenue comes from the order sync, ad spend is attributed to the day and product that earned it, payment fees and shipping are deducted, and product cost is subtracted at the item level, leaving net profit and margin as the headline number. Nothing is estimated from an industry average.

Cost of goods sold is loaded by uploading a supplier price screenshot and linking it to a product once, rather than typing a spreadsheet, and every past and future order of that product is costed correctly from then on. Daily, Monthly, Yearly and Products tabs show the same structure at each resolution, so a product that wins on sales volume and loses on margin gets caught before it eats another month of ad budget.

The ad spend attached to each order comes from Zyberon’s own first party tracking layer rather than a platform’s self reported figure, and invoices, business expenses, ad spend rows and bank balances live in the same tool, so the margin shown is the whole margin, not just the part that fits neatly into one report.

How this compares to the tools you are weighing

Triple Whale

What it does well
Triple Whale blends spend from several ad platforms, not just one, into a single real time dashboard, which is genuinely useful for a store running Meta, Google and TikTok at once.
Where it stops
It reads ad spend and order data through API connections to your ad accounts and Shopify, so its profit figure inherits whatever attribution window and reporting delay those platforms already report.
What Zyberon does instead
Zyberon’s profit calculator reads its ad spend from a first party tracking layer the platform itself owns and deduplicates, in the same workspace as the rest of your AI tools, not a separate login.

Lifetimely

What it does well
Lifetimely focuses on lifetime value and cohort based repeat purchase analysis alongside profit, which is a genuine strength for a store that lives on repeat customers.
Where it stops
It runs as a separate app and subscription from your ad tracking pixel, so reconciling its profit figure against your ads manager or your bank balance is still a manual step you do yourself.
What Zyberon does instead
In Zyberon the profit calculator, the tracking pixel and the retention tools that act on repeat purchase behaviour all sit in one workspace, reading from the same order and event data.

BeProfit

What it does well
BeProfit ships a wide set of built in cost categories out of the box, from shipping tables to discount tracking, which shortens setup for a merchant with a straightforward cost structure.
Where it stops
Cost of goods still has to be entered or imported per product, and the app sits outside your ad platform and your checkout as a separate subscription reporting on data it does not itself collect.
What Zyberon does instead
Zyberon lets you load cost of goods by uploading a supplier price screenshot once per product, and the ad spend it reports on comes from tracking the platform runs itself, not a second hand figure.

Questions this raises

What is the difference between revenue and true margin per order?

Revenue is what a customer paid. True margin per order, or net profit per order, is what remains after product cost, shipping, payment processing fees, attributed ad spend and a share of returns are subtracted from that payment. A store can grow one every month while the other shrinks.

Why does my Shopify revenue report not show real profit?

A standard revenue report is built from order totals, not from your product costs, ad spend or payment fees, none of which live in the same place by default. Net profit per order requires pulling those costs in and matching them to the order that produced them, which a revenue report was never built to do.

How do I find out which product is actually losing money?

Break profit down to the product level rather than the store level, using real product costs and the ad spend that specific product’s campaigns actually consumed. A store level number can look healthy while one product’s return on ad spend has quietly gone negative underneath it.

Do I need to track cost of goods sold for every single variant?

Yes, because a profit tool that only supports one cost per product silently averages away the difference between variants that cost more to make and ones that do not. Loading supplier prices once per variant is the only way the margin number stays accurate as those prices change.

How often should I check my Shopify profit tracking numbers?

Daily is worth it during any period you are actively spending on ads, because ad spend and returns both move the number quickly. A monthly and yearly view is enough once a product’s margin has proven stable, with daily checks reserved for launches and new campaigns.

Read next

Ready to automate
your empire?

About 7 minutes to set up. After that, the work that used to wait for Monday morning happens on Saturday night.

Start using Zyberon

Live in about 7 minutes · cancel anytime

Shopify Profit Tracking: Find Your Real Margin Per Order