If you run a store with real orders flowing every day, you have probably already downloaded one of those free P&L templates. They look tidy. The problem is that a tidy spreadsheet built for a consulting firm quietly lies to a print-on-demand store about where its money goes.
This guide shows you the exact rows an operating store needs, in the exact order, and walks a full month of real-looking numbers through them. By the end you will know why your bank balance and your "profit" disagree — and how to build a sheet that stops hiding it.
What a profit and loss statement spreadsheet actually is
A profit and loss statement — also called an income statement — answers one question: did the store make money this period, and where did it go? You build it monthly, one column per month, so you can read trends across the year.
The core idea is subtraction in a fixed order. You start with the biggest honest revenue number, then peel costs away in layers, and each layer leaves a profit figure that means something different. Most templates get the layers out of order, which is where the trouble starts.
For a deeper walk through the full accounting behind each line, the ecommerce P&L guide is the companion to this piece. This article stays focused on the spreadsheet itself.
The row structure that beats the free templates
Here is the skeleton. Build it top to bottom; the bold rows are the ones you read.
- Gross sales — total order value for the month, counted when the sale happens, not when Shopify pays you.
- Less: discounts (codes, automatic sales).
- Less: returns and refunds.
- Net sales — gross sales minus the two rows above.
- Less: cost of goods sold (COGS) — your supplier's production charge plus the shipping they bill you.
- Less: payment processing fees.
- Gross profit — net sales minus COGS and fees. Divide by net sales for your gross margin percentage.
- Less: ad spend (Meta, Google).
- Less: platform and app subscriptions (Shopify plan, Klaviyo, tools).
- Less: owner pay and contractors.
- Operating profit — gross profit minus everything above. This is whether the business works, not just the product.
Two placement rules separate a trustworthy sheet from a template. First, gross sales goes at the top — not your Shopify payout. Second, ad spend goes below the gross-profit line in operating expenses, never in COGS.
Why ad spend belongs in operating expenses
It feels like a cost of each sale, so people shove it into COGS. Specialist ecommerce accountants are blunt that this is wrong: paid acquisition is an operating expense, and burying it in COGS inflates your gross margin while hiding that customer acquisition cost is your real risk, as A2X lays out in its ecommerce income statement guide.
When ad spend sits visibly on its own OpEx row, a single glance tells you how much of your gross profit the ads are eating. That is the number that actually decides whether you can scale.
A worked month for an operating store
Say your store does 340 orders a month at a $31 average order value, and you run $2,800 a month in Meta ads. All figures below are illustrative, but they move through the sheet exactly the way yours will.
Start at the top and subtract down:
- Gross sales: 340 × $31 = $10,540
- Less discounts (a 10%-off code on some orders): −$520
- Less refunds (10 orders): −$310
- Net sales: $10,540 − $520 − $310 = $9,710
Now the direct costs. Your print-on-demand supplier charges about $12.50 per unit including their shipping, and Shopify's payment processing runs around 2.9% plus 30 cents per transaction on its lower-tier plans, per A2X's breakdown of Shopify fees:
- Less COGS (340 × $12.50): −$4,250
- Less processing fees (2.9% of $10,540, plus $0.30 × 340): −$408
- Gross profit: $9,710 − $4,250 − $408 = $5,052
- Gross margin: $5,052 ÷ $9,710 = 52%
The product looks healthy. Now the operating expenses that keep the lights on:
- Less ad spend: −$2,800
- Less Shopify plan and apps: −$180
- Less Klaviyo and design tools: −$60
- Less owner draw: −$500
- Operating profit: $5,052 − $3,540 = $1,512
- Operating margin: $1,512 ÷ $9,710 = 15.6%
Read it: the product earns a 52% gross margin, but ad spend alone eats more than half of the gross profit. The store nets about $1,512 on roughly $9,700 of net sales. If your Meta costs rise 20% — another $560 — operating profit falls by over a third. That is exactly the risk a good spreadsheet should scream at you, and a template that hides ad spend in COGS can't.
Per-order profit — the row templates never add
Divide operating profit by orders: $1,512 ÷ 340 = $4.45 of true profit per order. That single number reframes every decision. A free-shipping threshold, a discount code, a $6 upsell — each one either protects that $4.45 or quietly erases it.
No off-the-shelf P&L template computes per-order profit, which is why most store owners never see it. If you want the mechanics of building your own sheet from scratch rather than fighting a template, this walkthrough on making your own profit and loss statement is the next step, and the self-employed Excel P&L template guide covers the formula setup.
The mistake that breaks almost every Shopify P&L
The single biggest error in a store's books is treating the Shopify payout as revenue. The deposit that lands in your bank is a net settlement — it bundles sales minus processing fees, minus refunds, plus or minus adjustments and chargebacks, and it arrives on a rolling delay. It almost never equals your sales for the same window.
Book gross sales at the top of the sheet and let fees, refunds, and discounts each sit on their own row. The payout is a cash consequence at the bottom, not a revenue figure. Enter the net deposit as "sales" and you understate revenue, erase your fees from view, and build a sheet that can never be reconciled at tax time.
One gotcha to flag in your refund row: when you refund a customer, the original payment processing fee generally is not returned to you. A refunded $31 order still costs you roughly its $1.20 fee even though you kept none of the sale. Chargebacks go further — a disputed charge on Shopify Payments carries a $15 US dispute fee, refunded only if you win, according to A2X's fees guide.
Why your spreadsheet says profit but your bank says empty
Here is the part the spreadsheet alone can't solve. Your P&L can show $1,512 of profit while your checking account is nearly dry, because profit is booked on the sale date and cash moves on its own schedule.
Ad spend leaves your card daily. Supplier charges hit when each order is produced — often before the matching payout lands. And Shopify Payments settles on a multi-day delay. The faster you scale ads, the wider that gap between cash out and cash in grows, even though every cohort is profitable.
A P&L measures profit; it does not measure that timing gap. For the cash side of the picture — the float math and how to size a buffer — see the guide to cash flow software for small business, which picks up where the spreadsheet leaves off.
This is general information, not tax advice. Rules change and vary by situation — consult a licensed CPA or tax professional before acting. One tax note worth keeping in the sheet: you owe income tax on your profit whether or not a processor sends you a 1099-K, and that form reports gross dollars, not the net profit your P&L shows — the IRS sets the federal reporting threshold at more than $20,000 and more than 200 transactions for 2025 and 2026. Clean books are what let you reconcile the two.
When the spreadsheet stops keeping up
A monthly P&L spreadsheet is the right tool to understand your economics. It stops being the right tool when the numbers it needs are scattered across Shopify orders, Meta's ad manager, and your Printify or Printful invoices — and you are the one copying them into cells every month.
That manual stitch-together is where per-order profit usually dies, because nobody has three hours to reconcile a payout by hand. This is the gap PodVector AI's employee, Victor, closes. Victor connects to Shopify, Meta Ads, Google Ads, Printify, Printful, Gelato, and Klaviyo, so he sees every order, every ad dollar, and every supplier cost together, and computes the true per-order profit your template can't.
Victor also delivers those reports straight to your Google Drive, and every change he makes — pausing a losing campaign, adjusting a budget, editing a price — waits for your approval before it executes. He is not a dashboard you log into; he is the employee who does the reconciliation for you. If you are tired of rebuilding the same spreadsheet every month, put Victor on it.
FAQs
What should a profit and loss statement spreadsheet include for a Shopify store?
At minimum: gross sales, discounts, refunds, net sales, COGS (supplier production plus shipping), payment processing fees, gross profit, then ad spend, subscriptions, and owner pay, ending in operating profit. The two rows generic templates miss are a separate processing-fee line and a per-order-profit line. Add both.
Should ad spend go in COGS or operating expenses?
Operating expenses, always. It scales with revenue, which tempts people to call it a cost of goods — but putting it in COGS inflates your gross margin and hides customer acquisition cost, which specialist ecommerce accountants flag as the main risk to watch. Keep it below the gross-profit line where you can see it.
Why doesn't my Shopify payout match my sales in the spreadsheet?
Because the payout is a net settlement, not revenue. It is already reduced by fees and refunds, and it covers a rolling window of orders rather than your calendar month. Book gross sales at the top and record the payout only as the cash result at the bottom.
Can a spreadsheet show me per-order profit?
Yes, if you add the row yourself: divide operating profit by the number of orders. In the worked example above, $1,512 of operating profit across 340 orders is $4.45 per order. No free template computes this automatically, which is why most owners never see the number that matters most.
Is a P&L spreadsheet the same as cash flow?
No. The P&L shows profit booked on the sale date; cash flow tracks money actually moving in and out. A store can show solid profit on the P&L and still run short on cash because ad spend leaves daily while payouts arrive on a delay. You need both views to run a growing store safely.
How often should I update my profit and loss spreadsheet?
Monthly is the standard cadence, with one column per month so trends are visible across the year. Reconcile each month against your Shopify finance reports so the numbers tie out; an unreconciled P&L can't be trusted at tax time or when you are deciding how hard to scale ads.