If you already run a store with real orders and real ad spend, you do not need another "what is an income statement" lecture. You need to know how to build one that reflects your economics — product cost, platform fees, paid acquisition — and tells you the truth about whether the business works. That is what this guide does.
This is general information, not tax advice. Rules change and vary by situation — consult a licensed CPA or tax professional before acting.
What a P&L tells you that your bank balance can't
Your bank balance tells you what cleared today. A P&L tells you whether the period was profitable and which line ate the margin.
Most generic P&L guides stop at "Revenue − Expenses = Net Income." That formula is correct and nearly useless to an operator, because it hides the two numbers that actually decide your survival: gross margin (your product economics) and operating margin (whether the business, not just the product, works).
For a store with steady sales, build the P&L monthly on an accrual basis — booked when the sale happens, not when Shopify deposits cash. That lets you compare month to month and spot the trend before it becomes a cash problem.
The line-by-line skeleton
Read top to bottom. Each line answers a different question.
- Gross sales — the total value of orders placed in the month, before any fees or refunds. This is sales, measured when the sale happens.
- Less discounts — coupon codes, automatic discounts, sales.
- Less returns and refunds — the value of refunded orders. This reduces revenue; it is not an expense.
- = Net sales — your honest top line. Net sales = gross sales − discounts − refunds.
- Cost of Goods Sold (COGS) — the direct cost of the units you sold. For a print-on-demand store that is the supplier's production charge plus their shipping to the customer, and often payment processing fees.
- = Gross profit — net sales − COGS. Divide by net sales for your gross margin %, the core measure of product economics.
- Operating expenses (OpEx) — everything else it takes to run the business: ad spend, Shopify plan and apps, software, contractor or owner pay, professional services.
- = Operating profit — gross profit − OpEx. This is the number that tells you the business is viable, not just the product.
- Below operating profit — interest and taxes come out here to reach net profit, your bottom line.
The one rule that keeps a P&L honest: direct, per-unit costs go in COGS; costs that keep the lights on regardless of any single sale go in OpEx. Where you put payment processing is a judgment call — just be consistent every month, or your trends become meaningless.
A worked month for an operating store
Say your store does 340 orders a month at a $31 average order value, with $2,800/month in Meta ad spend. Here is what a clean monthly P&L looks like.
The processing-fee line below uses the rate commonly quoted for Shopify Payments on standard plans — around 2.9% plus 30¢ per online transaction, per A2X's breakdown of Shopify fees (verify the exact rate for your plan before you rely on it).
| Line | Amount |
|---|---|
| Gross sales (340 × $31) | $10,540 |
| Less: discounts | −$420 |
| Less: refunds (11 orders) | −$341 |
| Net sales | $9,779 |
| COGS — POD production (340 × ~$12.50) | −$4,250 |
| COGS — payment processing (~2.9% + 30¢ × 340) | −$408 |
| Gross profit | $5,121 |
| Gross margin % | 52.4% |
| OpEx — Meta ad spend | −$2,800 |
| OpEx — Shopify plan + apps | −$180 |
| OpEx — email/design tools | −$90 |
| OpEx — owner draw / contractor | −$500 |
| Operating profit | $1,551 |
| Operating margin % | 15.9% |
Now read it. The product is healthy — a 52.4% gross margin (5,121 ÷ 9,779) means each order pays for itself with room to spare. But ad spend eats more than half the gross profit, and the store nets about $1,551 on $9,779 of net sales.
Here is the part the generic articles skip: if your ad costs rise 20% — another $560 — operating profit drops to roughly $991, a 36% cut to the bottom line from a 20% rise in one line. That sensitivity is the whole point of building the statement. A P&L that buries ad spend inside COGS would never show it to you.
Why ad spend belongs in OpEx, not COGS
This is the single most common way operators lie to themselves. 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 it in OpEx and your P&L screams the truth: the product works, and the question is whether you can acquire customers profitably enough to clear your fixed costs. That is a different problem than "is my product priced right," and you can only see it when the two live on separate lines.
If you want the full layout — including how shipping income, gift cards, and chargebacks fit — our ecommerce P&L guide walks the complete structure, and the company profit and loss statement breakdown shows how the same skeleton scales as you add people and overhead.
Your payout is not your revenue
The deposit that hits your bank from Shopify is a net settlement — sales, minus processing fees, minus refunds, plus or minus adjustments and chargebacks, batched on a rolling delay. It almost never equals your sales for the same window.
Book gross sales at the top of the P&L and record fees and refunds on their own lines. The net payout belongs at the bottom as the cash consequence — it is not a revenue figure. Booking the net deposit as "sales" understates revenue, erases your fees from view, and produces a statement you cannot reconcile at tax time.
One gotcha worth knowing: when you refund a customer, the original payment processing fee is generally not returned to you, and a disputed charge carries a $15 fee in the US on Shopify Payments (A2X documents both behaviors). Track refunds as contra-revenue and leave the already-recorded fee where it is.
When you are ready to actually build one from scratch, the step-by-step on creating a profit and loss statement and a blank P&L template give you the scaffolding.
Profit on the P&L is not cash in the bank
Profit is an opinion booked on the sale date; cash is a fact that moves on its own schedule. A store can show $1,551 of profit this month and still be short on cash this week.
The reason is timing. Ad spend leaves daily — Meta and Google charge your card as you spend — while Shopify payouts arrive on a multi-day delay, and your POD supplier bills you at production, often before the matching payout lands. The faster you scale ad spend, the wider that gap grows.
So a profitable store can be cash-negative at any given moment because it is continuously pre-funding growth. If your P&L looks great but the bank balance keeps tightening, you have a float problem, not a profit problem — and the fix is cash-flow management, covered in our guide to cash flow software for small business.
Where the work actually gets hard — and where Victor fits
Building one clean P&L by hand is doable. Doing it every month, reconciling each payout, and computing profit down to the individual order is where most operators quietly give up.
That is the job PodVector AI built Victor for. Victor is an AI employee, not a dashboard: he connects to your Shopify store, Meta Ads, Google Ads, and your POD supplier — Printify, Printful, or Gelato — and computes true per-order profit across all of it, so gross sales, fees, COGS, and ad spend land on the right lines automatically.
He delivers the reports to your Google Drive, and every write action he takes is approval-gated — you approve before anything executes. You read the P&L; Victor does the reconciling underneath it.
Put Victor to work on your numbers and see your real per-order profit instead of guessing from your payout.
FAQs
What is the difference between a P&L and an income statement?
There is none — they are two names for the same report. "Profit and loss statement," "P&L," and "income statement" all describe the statement that shows revenue, costs, and profit over a period. You will also see "statement of operations" used for the same thing.
How often should an operating store build a P&L?
Monthly, on an accrual basis. A monthly cadence lets you compare periods and catch a rising ad-cost or margin trend before it drains your cash, which an annual statement would surface far too late to act on.
Why doesn't my profit match the money in my bank account?
Because profit is recorded when a sale happens, and cash moves on a different schedule. Shopify pays out on a delay while ad spend and supplier charges leave immediately, so a profitable month can still feel cash-tight. The P&L measures whether you earned money; a cash flow statement measures when it actually moved.
Should payment processing fees go in COGS or operating expenses?
Either placement is defensible — just pick one and keep it consistent every month. Many ecommerce operators put per-transaction processing fees in COGS because they scale directly with each sale, while the monthly Shopify subscription stays in OpEx as a fixed cost. Consistency matters more than the choice, because inconsistent placement makes your gross-margin trend meaningless.
What's a healthy gross margin for a print-on-demand store?
It depends on your price point and supplier, so treat any single number with caution. The more useful habit is watching your own gross margin month over month: a stable or rising margin means your product economics are intact, while a falling one means supplier costs or discounting are quietly eroding the business. Pair that with your operating margin to see whether ad spend is turning that product margin into real profit.
Does the 1099-K I receive show my taxable income?
No. A 1099-K reports gross payment volume before fees, refunds, and COGS — your taxable income is your net profit, which is far lower. You owe income tax on your profit whether or not you receive the form, so clean books that reconcile to the form matter. This is general information, not tax advice; confirm your situation with a licensed tax professional.