Most Shopify accounting guides tell you to pick software and move on. That skips the part that actually decides whether your store makes money. This guide walks the numbers line by line, with a worked example, so you can read your own store like an operator instead of guessing.
This is general information, not tax advice. Rules change and vary by situation — consult a licensed CPA or tax professional before acting.
Start with the one mistake that breaks everything
The deposit that lands in your bank from Shopify is a payout, and it is not your revenue.
A payout is a net settlement. It bundles your sales, minus processing fees, minus refunds, plus or minus adjustments and chargebacks, and it arrives on a rolling delay covering orders from an earlier window. So it almost never matches your sales for the same period.
If you book that deposit as "sales," you understate revenue, hide your fees entirely, and end up with books that won't reconcile at tax time. The fix is simple: record gross sales at the top, break fees and refunds onto their own lines, and treat the payout as a cash consequence at the bottom.
For a deeper walkthrough of what Shopify can and can't do here, see our guide on whether you can do your accounting inside Shopify itself.
Build a profit and loss statement, monthly
A profit and loss statement (P&L) answers one question: did the store make money this period, and where did it go? Build it every month, top to bottom, on a sales basis — meaning you record the sale when it happens, not when cash clears.
Here is the standard ecommerce layout:
- Gross sales — total order value before anything is subtracted.
- Less discounts — coupon codes and automatic sales.
- Less returns and refunds — this reduces revenue; it's not an expense.
- = Net sales — your honest top line.
- 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.
- = Gross profit — net sales minus COGS. Divide by net sales for your gross margin percent.
- Operating expenses (OpEx) — ad spend, your Shopify plan and apps, tools, contractors, owner pay.
- = Operating profit — gross profit minus OpEx. This is whether the business works.
One rule settles most placement questions: direct, per-unit costs go in COGS; costs that keep the business running regardless of any single sale go in OpEx. Be consistent month to month or your trends become meaningless.
The mistake worth calling out: ad spend belongs in OpEx, not COGS. Burying acquisition cost inside COGS inflates your gross margin and hides the fact that customer acquisition cost is usually your real risk.
A worked example: one month for a small POD store
Say you run a t-shirt store on Shopify and this month looks like this. All figures are illustrative.
| Line | Amount |
|---|---|
| Gross sales (300 orders × ~$32) | $9,600 |
| Less: discounts (a 10%-off code) | −$480 |
| Less: refunds (9 orders) | −$290 |
| Net sales | $8,830 |
| COGS — 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 |
Do the arithmetic and the story jumps out. Gross margin is 4,884 ÷ 8,830 = 55%, so the product is healthy. But operating profit is only 1,114 ÷ 8,830 = 13% of net sales, because ad spend eats most of the gross profit.
Now stress-test it. If ad costs rise 20%, that's an extra $600, and operating profit drops from $1,114 to $514 — nearly cut in half by a modest change in one line. That's the whole reason acquisition cost has to sit visibly in OpEx: your P&L should scream where the risk is.
Get the fees right
Fees are small per order and huge in aggregate, so they deserve their own lines.
On Shopify Payments, online card transactions on lower-tier plans are commonly quoted around 2.9% plus 30¢ per transaction, and that rate falls on higher plans, according to A2X's breakdown of Shopify fees. In the example above, that's roughly 2.9% of $9,600 plus 30¢ across 300 orders — about $346. Two other fees to know from the same A2X guide: using an external gateway instead of Shopify Payments adds an extra Shopify transaction fee, and a customer dispute carries a $15 chargeback fee in the US (refunded to you if you win).
One gotcha that quietly costs money: when you refund an order, the original processing fee generally isn't returned. So a refunded $32 order still costs you its roughly $1.23 fee even though you kept none of the sale. Track refunds as a reduction of revenue and leave that fee where it already landed.
Profit is not the same as cash
Here's the trap that catches profitable stores: you can show operating profit and still run out of money.
Profit is booked on the sale date. Cash moves on its own schedule. Ad platforms bill you continuously — your card is charged as you spend, often before the resulting orders even land. But Shopify payouts settle on a delay, commonly a couple of business days in the US, and nothing settles on weekends while ad spend never stops.
Say you spend $100 a day on ads with a two-business-day payout delay. By the end of day two you've spent $200 with $0 back in the bank — a float gap of $200 you funded yourself. Scale to $200 a day and you double the gap. The faster you grow, the wider it gets, and print-on-demand makes it tighter because suppliers charge you at production, before the payout lands.
The move is to size a cash buffer to your worst-case gap — roughly your daily ad plus supplier spend, multiplied by the payout delay plus a weekend cushion — and not to scale ad spend faster than payouts can refill the tank. Our ecommerce P&L and cash-flow guide walks through this float math in more depth.
The tax basics you can't skip
Sales tax and income tax are separate obligations, and Shopify only helps with part of one.
On sales tax, Shopify calculates and collects the right rate at checkout once you turn it on and tell it where you have nexus — but it does not register you, file your returns, or remit the money to the state. That stays your job. Nexus is the connection that forces you to collect: your home state almost always counts, and you can also trigger economic nexus purely by sales volume. A common threshold is $100,000 in sales or 200 transactions into a state, but it varies widely, so check the specific state, per Shopify's sales-tax guide. We cover the collect-versus-remit split in detail in does Shopify collect sales tax.
On income tax, a couple of things surprise first-year sellers. You owe income tax on your profit whether or not a processor sends you a form — for 2025 and 2026 a 1099-K is only required when gross payments exceed $20,000 and transactions exceed 200, according to the IRS. Sole proprietors also owe self-employment tax of 15.3% on net earnings on top of income tax, per the IRS estimated-tax guidance, and usually pay it in four quarterly installments. If you're near a state line or unsure of your setup, our state-specific bookkeeping walkthrough shows how local rules layer on top.
Where a profit tool fits
Clean books tell you what happened last month. To decide what to do next, you need per-order profit as orders come in — and that means connecting your sales, ad, and supplier data in one place.
That's what PodVector does. It connects your Shopify, Meta Ads, Google Ads, Printify, and Printful accounts and computes your true per-order profit — revenue minus fees, COGS, and the ad spend that actually drove each order. Victor, its AI employee, analyzes that live data and proposes moves, taking Shopify-side actions only with your approval. He reads your ad data to find what's working, but he does not touch your ad account. If you want the accounting foundation before layering this on, start with our guide to accounting for Shopify stores.
See your true per-order profit with PodVector
FAQs
Do I need accounting software for a small Shopify store?
Not on day one. A very small store can build its monthly P&L and reconcile payouts by hand from Shopify's finance reports. As order volume grows, tools like QuickBooks, Xero, A2X, or Link My Books automate the split of each payout into its component accounts and save real time. The important thing is that the work gets done, not which tool does it.
Is my Shopify payout the same as my revenue?
No. A payout is a net settlement — sales minus fees, minus refunds, plus or minus adjustments — deposited on a delay. Book gross sales at the top of your P&L and treat the payout as the cash result at the bottom. Recording the deposit as "sales" hides your fees and breaks reconciliation.
Should ad spend go in COGS or operating expenses?
Operating expenses. Even though ad spend scales with revenue, it's paid acquisition, not a direct product cost. Putting it in COGS inflates your gross margin and hides that customer acquisition cost is usually your biggest risk.
How can I be profitable but still short on cash?
Because profit is recorded on the sale date while cash arrives on the payout schedule. Ad platforms bill you before payouts settle, so a growing, ad-driven store constantly pre-funds its own growth. Hold a cash buffer sized to your payout delay and don't scale ad spend past what payouts can refill.
Does Shopify handle my sales tax for me?
Only partly. Shopify calculates and collects the tax at checkout once you configure it, but you still register with the state, file returns, and remit the money yourself. On your own storefront you're the seller of record, so those obligations are on you.
This is general information, not tax advice. Rules change and vary by situation — consult a licensed CPA or tax professional before acting.