Most free templates give you a grid of empty cells and no opinion about where each cost belongs. That is why so many Shopify owners end up with a P&L that looks fine and a bank account that does not. This guide walks the exact structure, fills it with a worked example, and shows you what the popular templates leave out.
What an ecommerce P&L template actually needs
A profit and loss statement answers one question: over a month, did the store make money, and where did it go? For a small Shopify or print-on-demand (POD) store, the winning layout is a strict top-to-bottom stack. Each line feeds the next, so you can read product health and business health at different altitudes.
Here is the skeleton every strong template shares:
- Gross sales — the total value of orders placed in the month, booked when the sale happens, not when Shopify deposits cash.
- Less discounts — coupon codes and automatic sales.
- Less returns and refunds — a contra-revenue line that reduces revenue; it is not an expense.
- = Net sales — your honest top line.
- Cost of Goods Sold (COGS) — the direct cost of the units you sold.
- = Gross profit — net sales minus COGS; divide by net sales for gross margin percent.
- Operating expenses (OpEx) — ad spend, subscriptions, tools, owner pay, everything else.
- = Operating profit — the number that says whether the business, not just the product, works.
The rule for placing any cost: direct, per-unit costs go in COGS; costs that keep the business running regardless of one sale go in OpEx. If you want the deeper reasoning behind each line, the complete ecommerce P&L guide is the hub this template pulls from.
A worked example: one month for a small POD store
Say you run a t-shirt store on Shopify and did 300 orders at about $32 each. The template fills in like this. All figures are illustrative, but the arithmetic is real.
| Line | Amount |
|---|---|
| Gross sales (300 × $32) | $9,600 |
| Less discounts (a 10%-off code) | −$480 |
| Less refunds (9 orders) | −$290 |
| Net sales | $8,830 |
| COGS — POD production (300 × $12) | −$3,600 |
| COGS — payment processing | −$346 |
| Gross profit | $4,884 |
| 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 |
Read the story the template tells. The gross margin is $4,884 ÷ $8,830 = 55.3%, so the product is healthy. But operating profit is only $1,114 ÷ $8,830 = 12.6%, because ad spend eats most of the gross profit.
That gap is the whole point. If your ad costs rise 20% — another $600 — operating profit nearly halves to about $514. A template that surfaces this lets you see that your real risk is customer acquisition cost, not product cost.
Getting COGS right for POD
For a POD store, COGS is the supplier's production charge (blank garment plus printing) plus the supplier's shipping to the customer. Many sellers also park payment processing here; either place is fine as long as you are consistent every month.
The processing fee is worth its own line so you can see it. Shopify Payments commonly charges around 2.9% plus 30 cents per online transaction on entry-level plans, per Shopify's own fees breakdown via A2X — for 300 orders that is roughly $9,600 × 2.9% + 300 × $0.30 = $278 + $90 = $368, close to the $346 shown after refunds pull a bit back.
One trap: when you refund a customer, that original processing fee is generally not returned to you. So a refunded $32 order still costs you about $1.23. Track refunds as contra-revenue and leave the fee where it sits. If margin math is where you want to go deeper, the piece on gross margin on Shopify breaks it down.
The two mistakes that break Shopify P&Ls
Mistake 1: booking the payout as revenue
The deposit Shopify sends to your bank is a net settlement. It bundles sales minus fees, minus refunds, plus or minus adjustments and chargebacks, on a delayed rolling schedule. It almost never equals your sales for the same window.
If you book that net deposit as "sales," you understate revenue and erase your fees from the books entirely. The fix: put gross sales at the top and treat the payout as a cash consequence at the bottom, never as a revenue figure.
Mistake 2: hiding ad spend in COGS
Ad spend scales with revenue, so it feels like a product cost. It is not — it is paid acquisition, and it belongs in OpEx. Bury it in COGS and your gross margin looks inflated while your real risk stays invisible. If most of your spend runs through Meta, the walkthrough on gross profit after Facebook ads shows exactly how to model it.
Profit is not cash: the line your template can't show
Here is what no spreadsheet cell captures on its own. Your P&L can show $1,114 in profit and your bank can still be short this week, because profit is booked on the sale date while cash moves on the payout schedule.
Ad spend leaves your card daily. Shopify payouts arrive on a delay — often a couple of business days in the US, and longer over weekends and holidays when settlements pause but your ad card does not. POD suppliers charge you at production, often before the matching payout lands.
The result is a float gap: money goes out before it comes back, and the faster you scale ads, the wider it gets. A simple buffer rule helps — hold at least (daily ad + supplier spend) × (payout delay in days + a weekend cushion) in cash. The template tells you if you are profitable; the buffer keeps you solvent while you are.
Don't forget the tax lines
Your P&L is also where tax reality shows up. Two things surprise first-year sellers most, and both belong on your radar even if they sit below operating profit.
First, you owe income tax on your profit whether or not a processor sends you a form. A 1099-K is only issued once gross payments exceed $20,000 and transactions exceed 200 under the current federal threshold, per the IRS — but not getting the form does not make the income tax-free.
Second, sole proprietors and single-member LLCs also owe self-employment tax of 15.3% on net earnings (12.4% Social Security plus 2.9% Medicare, per the IRS), on top of ordinary income tax. This is general information, not tax advice — rules change and vary by situation, so consult a licensed CPA before acting. For the full picture, see ecommerce seller taxes and income reporting.
From template to always-current numbers
A spreadsheet template is a great teacher. Its weakness is that you have to feed it by hand every month — pulling Shopify sales, matching Meta and Google spend, splitting each payout into fees and refunds — and it goes stale the moment you stop.
That is the gap PodVector closes. It connects Shopify, Meta Ads, Google Ads, Printify, and Printful, then computes true per-order profit from live data instead of a monthly copy-paste. Victor, its AI employee, reads that data, flags where a product or campaign is quietly losing money, and — with your approval — acts on the Shopify side. Victor does not touch your ad account; he proposes the ad-side moves and executes the store-side ones.
When your books need to survive tax time, a template alone will not reconcile to your 1099-K. The workflow for that lives in the guide on Shopify accounting with QuickBooks.
FAQs
What is an ecommerce P&L template?
It is a structured income statement, usually built monthly, that stacks your store's money top to bottom: gross sales, then discounts and refunds, then COGS to reach gross profit, then operating expenses to reach operating profit. For an online store it should have dedicated lines for payment processing fees and paid ad spend, because those are the two costs generic templates blur.
How is COGS different from operating expenses on a Shopify P&L?
COGS is the direct, per-unit cost of the products you actually sold — for POD, the supplier's production and shipping charge, and often payment processing. Operating expenses are the costs of running the business regardless of any single sale: ad spend, your Shopify plan, apps, tools, and owner pay. Keeping them separate is what lets you see gross margin and operating margin as two different health checks.
Why shouldn't I put ad spend in COGS?
Because it hides your real risk. Ad spend is paid acquisition, not a product cost, so putting it in COGS inflates your gross margin and makes the business look stronger than it is. Kept in OpEx, it shows plainly that customer acquisition cost — not the shirt — is usually the thing that can sink your operating profit.
Should I use the Shopify payout amount as my revenue?
No. The payout is a net settlement — sales minus fees, minus refunds, plus or minus adjustments — deposited on a delay, so it rarely matches your true sales for the period. Book gross sales at the top of the P&L and treat the payout as the cash result at the bottom, so your revenue and your fees each stay visible.
Can my store be profitable and still run out of cash?
Yes. Profit is recorded on the sale date, but cash moves on the payout schedule, and ad spend leaves before payouts arrive. A growing, ad-heavy store can show real profit on its P&L while its bank balance struggles to cover next week's ad card — which is why you pair the P&L with a cash buffer sized to your payout delay.
Do I need a P&L if my store is small and new?
Yes, and starting small is the easiest time to build the habit. Even a one-page monthly template forces you to separate net sales, COGS, and ad spend, which is exactly the information you need to price products, judge campaigns, and file accurate taxes. The structure matters more than the tool — a clean template beats a messy accounting app you never open.