An ecommerce P&L (profit and loss statement) is a monthly report that shows whether your store made money and where the money went. Build it top to bottom: gross sales, minus discounts and refunds, minus cost of goods sold to get gross profit, then minus operating expenses — including ad spend — to get operating profit. The mistake that ruins most small-store P&Ls is treating the Shopify payout as revenue; it isn't.

Most guides to the ecommerce P&L stop at "revenue minus expenses equals profit." That's technically true and practically useless. Your store's real risk lives in where each cost sits and when the cash actually moves — and a generic income-statement template hides both.

This article walks the P&L line by line for a small Shopify store, with a worked print-on-demand example, and flags the two traps that sink otherwise-profitable shops: burying ad spend in the wrong place, and confusing a payout with a sale. For the full cluster, start with our ecommerce P&L guide.

What an ecommerce P&L actually measures

A profit and loss statement (also called an income statement) answers one question over a period: did the store make money, and where did it go? Build it monthly so trends are visible before they become problems.

The critical idea for a p&l ecommerce owners can trust is accrual basis: you book a sale when the order is placed, not when Shopify deposits cash. That single choice keeps your top line honest and makes your books reconcile at tax time.

The line-by-line skeleton

Here is the standard ecommerce layout, top to bottom:

  1. Gross sales — total order value for the month, booked before any fees or refunds.
  2. Less: discounts — coupon codes, automatic discounts, sales.
  3. Less: returns & refunds — a contra-revenue line that reduces revenue, not an expense.
  4. = Net salesGross sales − discounts − refunds. Your honest top line.
  5. Cost of goods sold (COGS) — the direct cost of the units you actually sold. For print-on-demand that's the supplier's production charge plus their shipping to the customer, and (your call) payment processing.
  6. = Gross profitNet sales − COGS. Divide by net sales for gross margin %, the measure of product economics.
  7. Operating expenses (OpEx) — everything else it takes to run the business: ad spend, Shopify plan and apps, software, contractors and owner pay, professional services, insurance.
  8. = Operating profit (EBIT)Gross profit − OpEx. This tells you whether the business works, not just the product.
  9. Below operating profit — interest and taxes, arriving at net profit, the bottom line.

The placement rule: direct, per-unit costs go in COGS; costs that keep the lights on regardless of any single sale go in OpEx.

Why ad spend belongs in OpEx, not COGS

This is the most consequential judgment call on the whole statement. Paid acquisition scales with revenue, so it feels like a cost of goods — but putting it in COGS inflates your gross margin and hides that customer acquisition cost is your real risk. Keep ad spend visible in OpEx so the P&L can scream "watch your CAC" when it needs to.

Worked example: one month for a POD t-shirt store

Say you run a print-on-demand t-shirt store on Shopify. All figures below are illustrative — plug in your own.

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, supplier shipping included) −$3,600
COGS — payment processing (~2.9% + 30¢ × 300) −$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 / contractor −$500
Operating profit $1,114
Operating margin % 12.6%

Read it: the product is healthy — a gross margin of $4,884 ÷ $8,830 = 55.3%. But ad spend eats most of that gross profit, leaving about $1,114 on $8,830 of net sales. If ad costs rose 20%, that's another $600 out, and operating profit nearly halves.

That's the whole point of the layout. The risk here is CAC, and you can only see it because acquisition sits openly in OpEx instead of hiding inside COGS.

The trap that ruins small-store P&Ls: payout ≠ revenue

The single biggest source of bad Shopify books is treating the bank deposit as sales. It isn't.

A Shopify payout is a net settlement. It bundles sales, minus processing fees, minus refunds issued, plus or minus adjustments, chargebacks, and gift-card activity — and it arrives on a rolling delay, so it covers a prior window, not your calendar month. It almost never equals your sales total.

Book gross sales at the top of the P&L, then record fees and refunds on their own lines. The net payout is the cash consequence at the bottom — not a revenue figure. Log the deposit as "sales" and you understate revenue, erase your fees, and produce books that can't be reconciled.

The fees hiding in your payout

According to A2X's breakdown of Shopify fees, Shopify Payments takes a percentage plus a fixed per-transaction fee (commonly quoted around 2.9% + 30¢ for online card payments on lower-tier plans; verify your plan's rate on Shopify's pricing page). Two more to know from the same source: using an external gateway like PayPal instead of Shopify Payments adds an extra Shopify transaction fee on top, and a customer dispute carries a $15 chargeback fee in the US that's refunded to you only if you win.

One refund gotcha that surprises everyone: when you refund an order, the original processing fee is generally not returned. So a refunded $32 order still costs you the ~$1.23 you paid to process it. Track refunds as contra-revenue and leave the fee where it landed.

Sales tax is another line that quietly distorts the P&L when it's misread. If your storefront looks like it's not charging sales tax, the collected-tax dollars flowing through your payouts can be mistaken for revenue — another reason to keep gross sales, fees, and tax on separate lines.

If sales tax also flows through your payouts, it's worth learning to pull a sales tax report from Shopify so those collected dollars — which belong to the state, not you — never get miscounted as revenue.

Profit is not cash: the float problem

Your P&L can show a profit while your bank account runs dry. Profit is booked on the sale date; cash moves on the payout schedule. When the two don't line up, growing stores hit a wall.

Here's the mismatch. Ad spend leaves your card daily — often before the orders it generates are even placed. Payouts arrive on a delay of a few business days, and they don't settle on weekends or holidays. For POD, the supplier charges you at production, right after the sale, frequently before the matching payout lands.

Walk it: you spend $100/day on ads with payouts every two business days. Days 1–2 you've spent $200 with nothing settled yet — float is −$200. A Friday-through-Sunday run is three days of cash out with zero cash in until Tuesday. Double your ad budget to scale and you double the float you must pre-fund from your own pocket. Every cohort is profitable, yet you can be cash-negative at any moment.

Manage it with a cash buffer sized to your worst-case gap: (daily ad + supplier spend) × (payout delay in days + weekend cushion). Watch how many days pass between "I paid for the ad" and "the payout cleared," and don't scale spend faster than payouts can refill the tank.

Where the P&L meets your tax bill

Two numbers on your P&L drive real tax obligations, and both trip up first-year sellers.

First, income tax is owed on your profit whether or not a form shows up. Payment processors only issue a 1099-K once you cross a threshold — per the IRS FAQ on the reverted 1099-K threshold, for 2025 and beyond that's gross payments exceeding $20,000 and more than 200 transactions. No form doesn't mean no tax, and the 1099-K reports gross dollars — far above your taxable net.

Second, sole proprietors owe self-employment tax on top of income tax. The IRS estimated tax guidance explains this is paid in quarterly installments because nothing is withheld; the SE rate is 15.3% (12.4% Social Security plus 2.9% Medicare) on net self-employment earnings. Clean, reconciled books are what let you tie the 1099-K back to actual profit — which is exactly why the payout-vs-revenue discipline above matters.

This is general information, not tax advice. Rules change and vary by situation — consult a licensed CPA or tax professional before acting. For the mechanics of keeping the underlying books straight, see our guide to Shopify accounting in QuickBooks.

From spreadsheet P&L to per-order profit

A monthly P&L tells you the store worked last month. It won't tell you which product, which ad, or which order actually made money — the row-level truth you need to decide what to scale.

That's the gap PodVector fills. It connects Shopify, Meta Ads, Google Ads, Printify, Printful, and Stripe, then computes true per-order profit by pulling production cost, fees, and ad spend into every order — so the P&L's story is visible at the order level, not just the monthly summary. Victor, its AI operator, reads that live data and proposes moves you approve; the writes he executes are Shopify-side, and he does not touch your ad account. PodVector is not a dashboard you have to babysit.

If you're tired of rebuilding the same spreadsheet every month, start with PodVector and let the per-order math run itself.

FAQs

What's the difference between gross profit and operating profit on an ecommerce P&L?

Gross profit is net sales minus cost of goods sold — it measures your product economics, or how much each sale earns before running costs. Operating profit subtracts operating expenses (ad spend, subscriptions, pay, tools) from gross profit and tells you whether the business is viable. A store can post a strong gross margin and still lose money at the operating line if acquisition costs are too high.

Should ad spend go in COGS or operating expenses?

Operating expenses. Even though paid acquisition scales with revenue and feels like a per-unit cost, burying it in COGS inflates your gross margin and hides that customer acquisition cost is your biggest risk. Keeping ad spend in OpEx makes the true product margin and the CAC risk both visible.

Why doesn't my Shopify payout match my sales?

Because the payout is a net settlement, not a sales figure. It bundles sales minus processing fees, refunds, adjustments, chargebacks, and gift-card movements, and it settles on a rolling delay that covers a prior window rather than your calendar month. Book gross sales at the top of the P&L and treat the payout as the cash consequence at the bottom.

How can I be profitable but out of cash?

Profit is booked on the sale date; cash moves on the payout schedule. Ad spend and POD supplier charges leave your account fast — often before the sale settles — while payouts arrive on a multi-day delay that pauses on weekends. A profitable, fast-growing store continuously pre-funds that gap, so it can be cash-negative even as every cohort of ad spend returns more than it cost.

How often should I build my P&L?

Monthly, at minimum. A monthly ecommerce P&L surfaces trends — a rising CAC, a shrinking margin — while you can still act on them. Reconcile each month's Shopify payouts to gross sales, fees, and refunds so the statement ties out and stands up at tax time.