Profit

The Shopify P&L statement, explained block by block

What a real P&L for a Shopify store looks like: the margin ladder from net revenue to operating profit, the recognition rules, and how to read a month off it.

The short answer

A Shopify P&L statement is a ladder of margins: net revenue after discounts, returns and VAT, then CM1 after the cost of goods, CM2 after parcels and payment fees, CM3 after advertising, and operating profit after fixed costs spread across their days. Each step answers one question about the store, so a weak month names its own weak rung.

Ask an accountant for a P&L and you get the year, months later, in ledger categories built for the tax office. Ask a dashboard and you get revenue with a few costs sprinkled underneath in no particular order. Neither answers the questions an operator actually has on a Tuesday: do the products make money, does an order make money, does a customer make money, does the store make money. A proper ecommerce P&L is built to answer exactly those, in that order, as a ladder of margins where every rung subtracts one family of costs and leaves a subtotal with a name. This post walks the ladder block by block, gives the recognition rules that keep it honest, and reads a real month off it, so that the next statement you see, or build, is a text you can actually read.

In short

  • A P&L for a store is a ladder, not a bucket: each block subtracts one cost family and leaves a margin that answers one question about the business.
  • Five blocks cover it: to net revenue (what did we truly sell), to CM1 (do products earn), to CM2 (do orders earn), to CM3 (do customers earn), to operating profit (does the store earn).
  • The statement is only as honest as its clocks: sales on the order day, refunds on their issue day, ad spend on its spend day, fixed costs spread across their days.
  • Read on the example store's month, the ladder turns €60.000 of net revenue into roughly €9.500 of operating profit, and shows exactly where the other €50.500 went.

Why the ladder beats the bucket

A bucket statement, revenue at the top and every cost dumped underneath, produces one number and no diagnosis: when the bottom line disappoints, nothing in the layout says whether the products, the parcels, the ads or the rent did it. The ladder fixes that by subtracting costs in the order the business incurs them, from the most variable to the most fixed. Each subtotal isolates one decision layer, so a weak month names its own weak rung. This is the structure serious operators mean when they talk about contribution margins, and it is the same structure whether the statement covers a day, a month or a single product.

BlockWhat comes outThe question it answers
Gross sales → net revenuediscounts, returns, VATwhat did we truly sell?
Net revenue → CM1cost of the goods solddo the products make money?
CM1 → CM2parcel, packaging, payment feesdoes an order make money?
CM2 → CM3advertising spenddoes a customer make money?
CM3 → operating profitfixed costs, spread dailydoes the store make money?
The five blocks of an ecommerce P&L, the costs each one subtracts, and the question each margin answers.

The top block does the cleaning. Gross sales include tax that was never yours, discounts that were never collected and returns that reversed; net revenue is what remains, and it is the denominator every percentage below should use. The three middle blocks are the contribution ladder: CM1 after the goods, CM2 after everything an order's own fulfilment consumed, CM3 after the cost of winning the customer. The bottom block spreads the fixed costs over the days they cover and leaves operating profit. In nouz the same ladder is kept at full resolution, 34 lines with every percentage against net revenue, and each margin can carry targets you set, two limits per margin that colour a cell green, orange or red against your own idea of healthy. But the five blocks are the skeleton, and a statement with just these subtotals already outperforms most dashboards.

The recognition rules that keep it honest

A statement's layout is worthless if its clocks are wrong, so four rules are load-bearing. Sales and their goods belong to the order day. Refunds belong to the day they were issued, never netted back against the original order, because backdating makes every closed month improve whenever the present bleeds. Ad spend belongs to the day it ran, taken from the billing side of each platform. Fixed and recurring costs are spread evenly across the days they cover, so the insurance invoice does not read as one catastrophic Tuesday. Together they give every euro exactly one day to belong to, which is what makes day-level reading possible and what keeps history still.

Reading one month off the ladder

The example store the calculators on this site publish makes the reading concrete, and a much larger example store, with 137.947 orders walked end to end, shows the shape at scale. Its month: €60.000 of net revenue across 706 orders, about €16.500 left at CM3 after goods, parcels, fees and €15.000 of ad spend, then €7.000 of fixed costs off, leaving roughly €9.500 of operating profit. Read as a ladder rather than a bottom line, that month says: the products and orders earn well, about 27,5% of net revenue survives all variable costs; the ad budget is the largest single consumer; the fixed block is covered around day 22, and every order after the 493rd contributes at the full rate. Four sentences of diagnosis from one column of figures, which is the entire point of the layout.

What Shopify gives you, and what it cannot

Shopify supplies the top of the ladder superbly: orders, discounts, taxes and refunds are all in the exports, so gross sales to net revenue is largely a matter of care. Below that line the platform thins out fast: unit costs are one optional field with no history, parcels and payment fees have no cost lines at all, ad spend lives in other systems entirely, and fixed costs are simply not its business. So the middle and lower blocks, the ones where the questions live, are exactly the ones you must assemble yourself. Two companion pieces map the gaps in detail: one on whether fees are eating your profit, and the per-product version, which products actually make money, where the same ladder runs one SKU at a time.

BlockWhere the numbers come fromFrom Shopify
Net revenueorders, discounts, refunds and taxes, from the orders export or the sales reportsyes
Cost of goodssupplier invoices, or cost per item where it was filled at the time of salepartly
Logisticscarrier and warehouse invoices: labels, pick and pack, packagingno
Payment feespayout transaction lists; Shopify Payments reports its fee per paymentpartly
Marketingeach ad platform's billing pageno
Overheadyour standing orders and supplier invoicesno
Where each block of a Shopify P&L gets its numbers, and how much of it Shopify itself can supply.

Two of the six blocks come mostly from Shopify, two partly and two not at all, which is why a Shopify P&L is assembled rather than exported. The assembly is the same every month, and it is the part worth automating once the layout is settled.

Build one this week

  • Start from the free P&L template on this site if a spreadsheet is the right first step: its columns are the ladder's blocks in order, one row per day.
  • Assemble the inputs from their honest sources: the orders export for sales and refunds, supplier invoices for goods, the payout report for fees, the billing pages for spend, the bank's standing orders for the fixed list.
  • Follow the five-step method to calculate your store's true profit for the arithmetic at each rung, including the traps that flatter each one.
  • Compute every percentage against net revenue, never against gross, and mark any product whose cost you could not state rather than letting it read as pure margin.
  • Read the finished column top to bottom once a week at first, daily once the habit holds: the weak rung names itself, and that naming is the statement's whole job.

Three questions that always come next

Daily or monthly? Monthly is the accounting rhythm; daily is the operating one, and the difference is lag. A supplier price rise or a creeping parcel cost runs invisibly for weeks inside a monthly figure, while a per-day statement surfaces it the morning after it starts. The definition and the habit around it are their own small subject, what a daily P&L means, but the short version is: the recognition rules above are precisely what make a day a readable unit.

Is operating profit the same as EBITDA? For a store this size, near enough that the ladder's bottom line is commonly called either. Strictly, what EBITDA measures is earnings before interest, taxes on profit, depreciation and amortisation, and the distinction starts to matter with debt, owned warehouses or capitalised assets, which is where EBIT vs EBITDA becomes a real question. For a merchant reading their own ladder, the honest phrasing is: this is what operating the store earned, before financing and before the accountant's year-end adjustments.

Do I really need 34 lines? To read, no: the five blocks answer the five questions, and a statement you actually maintain beats a perfect one you abandon. The extra resolution earns its keep when a block misbehaves and you need to know which of its members did it, was the CM2 drop the parcels or the fees, was the revenue dip discounts or returns. Depth is for diagnosis; the ladder is for every day.

The statement is the product of its rules

Anyone can draw the ladder in an afternoon; keeping it true is the actual work, refunds landing on their day, costs staying current, spend reconciled against billing, closed days never quietly changing. That maintenance is what nouz automates, rebuilding the full statement nightly from your own orders and rules. But automated or manual, the layout above is the thing to insist on, because a statement whose subtotals answer real questions is the difference between having numbers and having answers.

Questions

Questions, answered.

Does Shopify have a P&L statement?
No. Shopify's reports cover sales, payments, payouts and gross profit on products with a recorded cost. A full P&L also needs shipping and fulfilment costs, payment fees per order, ad spend and fixed costs, which live outside Shopify.
What should a Shopify P&L include?
Net revenue after discounts, returns and VAT; the cost of goods; logistics and payment fees; marketing; and overhead, with a margin after each block: CM1, CM2, CM3 and operating profit. nouz keeps it at 34 lines, every percentage measured against net revenue.
Should a P&L be daily or monthly?
Monthly is the accounting rhythm and daily the operating one. A daily statement shows a supplier price rise or a creeping parcel cost the morning after it starts, provided every amount is booked to the day it belongs to.
Is operating profit the same as EBITDA?
For a store of this size, near enough. EBITDA is earnings before interest, taxes on profit, depreciation and amortisation; the difference starts to matter with debt, owned warehouses or capitalised assets.

Run these numbers on your own store.

Install nouz in minutes from the Shopify App Store. It imports every order your store has ever taken and builds the full P&L from your own costs, every day. Cancel anytime.

Your trialToday
14 days of nouz, every feature€0,00
Card needed to startNone
Access to your storeRead-only
Due today€0,00