Most Shopify dashboards show you sales. A profit and loss statement shows you what was left after everything it cost to make those sales happen. That gap — between top-line revenue and the money in your pocket — is where small stores quietly bleed, and it's exactly what a well-built P&L exposes.
The ranking guides on this topic mostly explain the accounting textbook. This one walks the actual numbers a Shopify store deals with: netted payouts, processing fees, refunds that keep the fee, and ad spend that eats your gross margin. For the wider picture across your whole store, pair this with our ecommerce P&L guide.
What a Shopify profit and loss statement is
A profit and loss statement (P&L), also called an income statement, answers one question: over a period, did the store make money, and where did it go? The core formula is simple — revenue minus costs equals profit. The value is in doing each line honestly.
Build it monthly. A monthly cadence catches a margin problem while you can still act on it, instead of finding out at tax time. If you want the plain-English breakdown of the term itself, our P&L meaning explainer covers the vocabulary.
Why revenue alone misleads Shopify sellers
A store can hit strong sales figures and still be running thin — or negative — once ad spend, transaction fees, and production costs are properly tracked. The P&L is what separates "making sales" from "making money." It shows whether your store is scaling sustainably, highlights where expenses are creeping in, and lets you make data-driven decisions about where to cut or reinvest.
For print-on-demand sellers specifically, three cost categories compound silently: supplier production charges that land before the payout, processing fees on refunded orders, and ad spend that inflates CAC without showing up visibly in the margin stack. A well-structured P&L surfaces all three.
The line-by-line skeleton
A Shopify P&L reads top to bottom, from what customers paid down to what you keep.
- Gross sales — total order value for the period, counted when the sale happens, not when Shopify deposits cash.
- Less discounts — coupon codes, automatic discounts, and sales.
- Less returns and refunds — this reduces revenue; it is contra-revenue, not an expense.
- = Net sales — your honest top line.
- Cost of goods sold (COGS) — the direct cost of the units you sold. For print-on-demand, that's the supplier's production charge plus their shipping to the customer.
- = Gross profit — net sales minus COGS. Divide by net sales for gross margin percent, the measure of product economics.
- Operating expenses (OpEx) — ad spend, your Shopify plan and apps, software, contractors, and owner pay.
- = Operating profit — gross profit minus OpEx. This tells you if the business works, not just the product.
The rule for placement: direct, per-unit costs go in COGS; costs that keep the lights on regardless of any single sale go in OpEx. Put ad spend in OpEx. Burying paid acquisition in COGS inflates your gross margin and hides that customer acquisition cost is your real risk.
Contribution margin: the layer most templates skip
The standard accounting template — Sales, COGS, Expenses — is too blunt for a Shopify store running paid ads. A more useful structure adds a contribution margin layer: strip every variable cost (production, shipping, payment processing, ad spend) out first, then put fixed costs (Shopify plan, app subscriptions, contractor retainers) below the line.
Why it matters: contribution margin tells you how much each incremental sale contributes to covering your fixed base. If contribution margin turns negative, scaling ad spend makes the loss worse — a fact that gets buried when variable and fixed costs are lumped together in a single OpEx block. Splitting them forces the math into plain sight. See our guide on improving conversion rate for the demand-side lever that directly expands contribution margin without increasing ad spend.
A worked example: one POD store, one month
Say you run a t-shirt store and last month looked like this. All figures are illustrative — plug in your own — and the arithmetic is shown so you can follow every step.
| Line | Amount |
|---|---|
| Gross sales (300 orders × $32 avg) | $9,600 |
| Less: discounts (a 10%-off code) | −$480 |
| Less: refunds (9 orders) | −$290 |
| Net sales | $8,830 |
| COGS — production (300 units × $12) | −$3,600 |
| COGS — payment processing | −$346 |
| Gross profit | $4,884 |
| Gross margin | 55.3% |
| OpEx — ad spend (Meta + Google) | −$3,000 |
| OpEx — Shopify plan + apps | −$180 |
| OpEx — email/design tools | −$90 |
| OpEx — owner draw | −$500 |
| Operating profit | $1,114 |
| Operating margin | 12.6% |
Read it: the product is healthy at 55.3% gross margin ($4,884 ÷ $8,830), but ad spend swallows most of the gross profit, leaving about $1,114 on $8,830 of net sales. If ad costs climb — say, another $600 — operating profit nearly halves. That's why paid acquisition sits visibly in OpEx: the P&L should scream that CAC is the risk, and it can't if that cost hides inside COGS.
Note: all figures in this table are illustrative only. They are not statistics sourced from an external report; they are worked-example inputs to show P&L arithmetic.
Why your Shopify payout is not your revenue
Here's the single biggest mistake in Shopify bookkeeping: treating the deposit that lands in your bank as your sales figure. It isn't.
A Shopify payout is a net settlement. According to A2X's breakdown of Shopify fees, the amount Shopify pays you "isn't just sales — it's actually a combination of sales, fees, shipping income, gift cards, and other transactions." It also arrives on a delay, covering a rolling prior window, so it rarely matches any calendar month.
Book gross sales at the top of the P&L, then record fees and refunds on their own lines. The net payout is a cash consequence at the bottom — not a revenue number. Log the deposit as "sales" and you understate revenue, erase your fees, and end up with books that can't be reconciled at tax time.
Where the fees, ads, and refunds land
Processing fees are the line sellers forget. On the Basic plan, Shopify Payments charges 2.9% + 30¢ per online transaction in the US; the rate drops on higher plans. In the example above, 300 orders cost roughly 2.9% of $9,600 plus $0.30 × 300 — about $346 (illustrative arithmetic, not a sourced statistic).
Two gotchas worth booking correctly:
- Refunds keep the fee. When you refund an order, Shopify generally does not return the processing fee. So a refunded order costs you the fee even though you kept none of the sale.
- Chargebacks cost extra. A disputed charge carries an additional fee on Shopify Payments, per A2X — refunded to you only if you win the dispute.
Where processing fees live — COGS or OpEx — is a judgment call. Pick one and stay consistent month to month, or your margin trend becomes meaningless.
The five leaks a monthly P&L misses
A monthly P&L closes the books cleanly, but it has a built-in reporting lag. By the time the numbers land — often mid-month after close — problems that started weeks earlier have already compounded. Five leaks tend to grow inside that window:
- Aggregated ad spend hiding product-level losses. The P&L shows total Meta + Google spend, not which SKUs or campaigns bled margin. A profitable blended ROAS can mask a losing product line.
- Carrier surcharges landing after delivery. Fuel surcharges and dimensional weight fees sometimes post after the order ships, so the COGS line for that order is understated when the P&L closes.
- Refund-driven margin erosion. A refund spike in the last week of a month barely shows on that month's P&L; the full cost appears next month, making the problem look like a new issue.
- Leaked discount codes. Unauthorized sharing of coupon codes inflates the discount line gradually — easy to miss in a monthly aggregate.
- Payment processor fee creep. Plan upgrades, international transactions, or currency conversions shift the effective rate without triggering any alert.
The cleanest setup: keep the monthly P&L with your accountant for compliance and tax. Run daily decisions off a live profit view that catches these leaks in real time — the two approaches answer different questions on different clocks. Our guide on ecommerce branding covers the brand-level levers that reduce structural refund rates over time, one of the harder leaks to fix at the P&L level alone.
Profit on paper vs. cash in the bank
Your P&L can show operating profit and your bank can still be tight this week. Profit is booked on the sale date; cash moves on the payout schedule. That gap is the float problem, and it's the reason profitable, ad-driven stores hit a wall while scaling.
Ad spend leaves your card daily. Payouts arrive on a delay — often a couple of business days in the US, longer over weekends and for newer accounts. POD supplier charges hit at production, frequently before the matching payout lands. So money goes out faster than it comes back, and scaling ad spend widens the gap.
The fix is a cash buffer sized to your worst-case gap — roughly your daily ad plus supplier spend, multiplied by your payout delay in days plus a weekend cushion. Watch how many days pass between paying for an ad and the resulting payout clearing, and don't scale spend faster than payouts can refill the tank. For the demand-side of scaling — the ad levers that affect how fast cash cycles — see our Facebook Ads scaling strategies guide and our Google Ads ecommerce strategy for POD sellers.
What the P&L feeds at tax time
Your P&L is also what makes your tax return defensible. A quick, important note: this is general information, not tax advice — rules change and vary by situation, so consult a licensed CPA before acting.
Two things surprise first-year sellers. First, a 1099-K reports gross payment volume, not profit. The IRS notes the federal threshold reverted so a processor issues one only when payments exceed $20,000 and transactions exceed 200, per IRS guidance. Not getting the form does not make income tax-free — you owe on your profit regardless.
Second, sole proprietors owe self-employment tax on net earnings on top of income tax, usually paid in quarterly installments — confirm the current rate with your CPA or directly at IRS.gov. This is one more reason clean, reconciled books matter — they let you tie the gross 1099-K figure back to your real net profit. If you're gathering documents, here's how to download your Shopify 1099.
Building yours without spreadsheet sprawl
You can build a Shopify P&L by hand from the finance reports, and for a very small store that's fine. As orders and channels grow, the reconciliation gets heavy. The month-end ritual — exporting Shopify orders, pulling ad spend from Meta and Google, digging up Printify or Printful invoices, and adding up fees and refunds — can take hours and still leave you uncertain whether the numbers are right.
Dedicated software earns its keep here — see our roundup of accounting tools for Shopify stores and the QuickBooks COGS integration options if you route data there. Most Shopify brands sync orders, fees, refunds, and payouts into QuickBooks or Xero through a clearing tool to keep the reconciliation clean.
There's also the per-order angle a monthly P&L can't show: which specific orders made money after that order's real ad cost, product cost, and fees. PodVector AI connects Shopify, Meta Ads, Google Ads, Printify, and Printful to compute true per-order profit, so the fee and CAC lines above stop being estimates. Victor, PodVector AI's AI employee, reads that live data across all six platforms and makes the next profit move himself — pausing a losing ad set in Meta, repricing a thin-margin SKU in Shopify, building a flow in Klaviyo, or adjusting a bid in Google Ads. PodVector AI isn't a dashboard or a profit tracker; it's an AI employee running the operating work of your POD business on top of live data. For how Victor's Google Ads reads connect to your profit math, see our Google Ads tracking and Shopify strategy guide and the conversion tracking setup guide for POD sellers.
FAQs
Is a Shopify payout the same as my revenue?
No. A payout is a net settlement of sales minus fees, minus refunds, plus or minus adjustments and shipping income, deposited on a delay. Record gross sales at the top of your P&L and treat the payout as the cash result at the bottom.
Does ad spend go in COGS or operating expenses?
Operating expenses. Ad spend scales with revenue, but it's paid acquisition, not a direct per-unit product cost. Putting it in COGS inflates your gross margin and hides that customer acquisition cost is your biggest risk.
What is contribution margin and why does it matter?
Contribution margin is what remains after every variable cost — production, shipping, payment processing, ad spend — is subtracted from revenue. It shows how much each sale actually contributes toward covering your fixed costs. If contribution margin is negative, scaling sales makes the loss worse, not better.
How often should I build a Shopify profit and loss statement?
Monthly for accounting and tax compliance. Daily or weekly for operational decisions — a monthly P&L has a built-in lag that lets cost problems compound for weeks before you see them.
Can I be profitable and still run out of cash?
Yes. Profit is booked when the sale happens; cash arrives on the payout schedule. If you pay for ads and supplier charges before payouts land, you can show profit on paper and still be short on cash, especially while scaling.
Do I owe tax if I never receive a 1099-K?
Yes. The 1099-K governs reporting thresholds, not whether income is taxable. You owe income tax on your profit whether or not a form is issued — reconciled books let you prove your actual net figure. This is general information, not tax advice; check with a CPA for your situation.
What leaks does a monthly P&L miss?
The five most common: aggregated ad spend hiding product-level losses, carrier surcharges landing after delivery, refund spikes that cross month boundaries, leaked discount codes inflating the discount line, and payment processor fee creep from plan changes or international transactions. A monthly P&L catches these in aggregate; a live profit view catches them as they happen.