To calculate a profit and loss statement, start with gross sales for the period, subtract discounts and refunds to get net sales, subtract cost of goods sold to get gross profit, then subtract operating expenses (ads, apps, pay) to get operating profit. The order matters: direct per-unit costs go in COGS, everything else goes below the gross-profit line. For a store, the line that decides whether the business works is ad spend — and it belongs in operating expenses, never buried in COGS.

Most P&L guides online are written for a generic "small business" with a few invoices a month. If you run a store doing hundreds of orders with real ad spend, those guides leave out the three things that actually break your numbers: the gap between a Shopify payout and your sales, where to put ad spend, and the difference between profit and cash. This walks the whole calculation with real operating numbers.

The P&L skeleton, top to bottom

A profit and loss statement (also called an income statement) answers one question: did the store make money this period, and where did the money go? Build it monthly, on an accrual basis — you record a sale when the order is placed, not when Shopify deposits the cash.

Here is the standard ecommerce layout, line by line:

  1. Gross sales (revenue) — total order value for the month, before any fees or refunds.
  2. Less discounts — coupon codes and automatic sales.
  3. Less returns and refunds — this is contra-revenue (it reduces revenue), not an expense.
  4. = Net sales — gross sales minus discounts minus refunds. Your honest top line.
  5. Cost of goods sold (COGS) — the direct cost of the units you sold: supplier production, supplier shipping, and often payment processing.
  6. = Gross profit — net sales minus COGS. Divide by net sales for your gross margin %.
  7. Operating expenses (OpEx) — ad spend, Shopify plan and apps, software, contractors, owner pay.
  8. = Operating profit — gross profit minus OpEx. This tells you if the business works, not just the product.
  9. Net profit — after interest and taxes, the bottom line.

The single rule that keeps this honest: direct, per-unit costs go in COGS; costs that keep the business running regardless of any one sale go in OpEx. Where payment processing lands is a judgment call — just be consistent month to month or your trends mean nothing.

Worked example: a store doing 340 orders a month

Say you run a print-on-demand apparel store that last month did 340 orders at a $31 average order value, ran a 10%-off code, and spent $2,800 on Meta. All figures are illustrative — plug in your own.

Line Amount
Gross sales (340 × $31) $10,540
Less: discounts (10%-off code) −$520
Less: refunds (11 orders) −$340
Net sales $9,680
COGS — supplier production + shipping (340 × ~$13) −$4,420
COGS — payment processing −$405
Gross profit $4,855
Gross margin % 50.2%
OpEx — ad spend (Meta) −$2,800
OpEx — Shopify plan + apps −$190
OpEx — email + design tools −$95
OpEx — owner draw / contractor −$500
Operating profit $1,270
Operating margin % 13.1%

The arithmetic: $10,540 − $520 − $340 = $9,680 net sales. Then $9,680 − $4,420 − $405 = $4,855 gross profit, which is $4,855 ÷ $9,680 = 50.2% gross margin. After $3,585 of OpEx, you are left with $1,270 operating profit.

Read it the way an operator should: the product is healthy at 50% gross margin, but ad spend eats most of the gross profit. If your Meta costs rise 20% — another $560 — operating profit nearly halves. That is why paid acquisition has to sit visibly in OpEx: the P&L should scream "your risk is customer acquisition cost," and it can't if that number is hidden inside COGS.

For the full line-by-line version of this with every account defined, see our ecommerce P&L guide.

The payout trap that wrecks store P&Ls

Here is the mistake almost every store owner makes: treating the Shopify deposit as revenue. The payout that hits your bank is a net settlement — sales, minus processing fees, minus refunds, plus or minus adjustments and chargebacks — on a rolling delay. It almost never equals your sales for the same window.

Book gross sales at the top and record fees, refunds, and adjustments on their own lines. The net payout belongs at the bottom as the cash consequence — it is not a revenue figure. Booking the deposit as "sales" understates revenue, hides your fees entirely, and gives you a P&L you can't reconcile at tax time.

On the fee line: Shopify Payments commonly charges around 2.9% plus 30¢ per online card transaction on lower-tier plans, and a $15 dispute fee in the US when a customer charges back (refunded if you win), per A2X's breakdown of Shopify fees. Verify the exact rate for your plan before you quote it in your own books. One gotcha worth knowing: when you refund an order, the original processing fee is generally not returned, so a refunded $31 order still costs you its ~$1.20 fee.

Calculating gross vs. operating vs. net — in plain terms

Three different "profit" numbers come out of one statement, and they answer different questions:

  • Gross profit = net sales − COGS. Is the product priced right? Your 50.2% margin above says yes.
  • Operating profit = gross profit − OpEx. Does the business work once you pay for ads and tools? The $1,270 above says barely.
  • Net profit = operating profit − interest and taxes. What you actually keep.

Most store owners stop at gross margin and feel good. The operating line is the one that tells you whether to scale ad spend or fix it first.

Profit is not cash

Your P&L can show $1,270 profit and your bank can still be tight this week. Profit is booked on the sale date; cash moves on the payout schedule. Ad spend leaves your card daily, supplier charges hit at production, and the matching payout lands a few business days later — so a growing, ad-driven store is constantly pre-funding growth it hasn't been paid for yet.

That timing gap is the float problem, and it is the number-one reason profitable stores run out of money. It is worth tracking on its own, separate from the P&L — our guide to cash flow apps for small business covers the tools that model it.

Let Victor build and read the statement for you

Calculating this by hand every month means pulling Shopify orders, splitting each payout into sales and fees, matching Printify, Printful, or Gelato supplier costs to the right orders, and lining up Meta and Google spend against the revenue it drove. That is where the hours go.

Victor is the AI employee inside PodVector AI who does that work. He sees every order, every ad dollar, and every supplier cost together, so he computes the true per-order profit and builds the P&L for you — then delivers the report straight to your Google Drive. When the numbers say an ad set is losing money, Victor pauses it in Meta Ads; when a SKU's margin is too thin, he reprices it in Shopify. He connects Shopify, Meta Ads, Google Ads, Printify, Printful, Gelato, and Klaviyo.

Put Victor to work on your store's profit →

PodVector AI is not a dashboard you log into to read charts. Victor is an operator who computes the number and then acts on it. When you are ready to stop stitching spreadsheets together, the cash flow software for small business comparison shows where a tool like this fits.

This is general information, not tax advice. Rules change and vary by situation — consult a licensed CPA or tax professional before acting.

FAQs

What is the basic formula to calculate a profit and loss statement?

Net sales − COGS = gross profit; gross profit − operating expenses = operating profit; operating profit − interest and taxes = net profit. Work top to bottom and never skip the net-sales step — gross sales minus discounts and refunds is your real starting line, not the gross number.

Where does ad spend go on a P&L — COGS or operating expenses?

Operating expenses, always. Even though ad spend scales with revenue, burying it in COGS inflates your gross margin and hides that customer acquisition cost is your biggest risk. In the worked example above, ad spend was $2,800 against $4,855 of gross profit — putting it in OpEx is what makes that risk visible.

Is a Shopify payout the same as my revenue?

No. A payout is a netted cash settlement — sales minus fees, refunds, and adjustments — on a delayed schedule. Book gross sales at the top of the P&L and treat the payout as the cash result at the bottom. Using the deposit as your revenue line understates sales and erases your fees.

How often should I calculate my P&L?

Monthly. A monthly statement is frequent enough to catch a rising ad cost or a margin slip before it compounds, and it lines up with how Shopify, suppliers, and ad platforms report. Many operators also glance at a weekly version during heavy promo periods.

Does a P&L show whether I have enough cash?

No — that is the most expensive misconception for store owners. A P&L shows profit booked on the sale date; it says nothing about the timing of cash in and out. You can post a profit and still be short this week because ad spend left before the payouts arrived, which is why you track cash flow separately.

Do I owe tax based on my P&L or my 1099-K?

You owe income tax on your profit regardless of whether you receive a 1099-K, and the 1099-K reports gross payment volume, not profit. For 2025 and 2026 the federal threshold reverted to more than $20,000 and more than 200 transactions, per the IRS. Clean books that reconcile your gross receipts to actual net profit are what make your return defensible — consult a CPA for your situation.