PnL in finance is short for "profit and loss" — the statement (also called an income statement) that adds up your revenue over a period, subtracts every cost, and shows what you actually kept. A positive PnL means you made money; a negative one means you lost it. For a Shopify or print-on-demand store, the useful version is built monthly and separates product costs from the cost of running the business, so you can see whether the product works and whether the business works as two different questions. In trading contexts the same abbreviation refers to the gain or loss on an open or closed position — realized (locked in) or unrealized (still moving with the market) — but that is not the version that decides whether your store survives.

Most "PnL" explainers online are written for stock and crypto traders, where PnL means the gain or loss on an open or closed position. That is a real use of the term, but it is not the one that decides whether your online store survives. This guide covers the business version: the profit and loss statement, why it is the single most important report you own, and how to read one without an accounting degree.

If you want the full store-specific version, the ecommerce P&L guide walks the same structure with more detail. This piece is the fast, plain-English on-ramp.

What "PnL" actually means

PnL answers one question: over a chosen period, did the business make money, and where did the money go? It is a summary, not a bank statement. It records sales when they happen and costs when they are incurred — not when cash lands in your account.

That last point trips up almost everyone. Your bank balance and your PnL rarely match, because the timing of money moving is different from the timing of money being earned. Hold that thought; it becomes the most expensive lesson later in this article.

It is worth noting that "PnL" and "P&L" mean exactly the same thing. P&L is the traditional accounting label you see on formal financial statements; PnL is the shortened form common in dashboards and analytics tools. The difference is formatting only, not meaning.

In different contexts the meaning shifts slightly. In ecommerce, PnL reflects operational profitability across products, ads, and fulfillment. In trading, PnL refers to gains or losses on positions — realized or unrealized. Some merchants also track daily PnL to understand day-to-day performance fluctuations rather than waiting for the monthly close.

PnL vs. balance sheet: what's different

Two reports sit at the core of any business's finances, and they answer different questions. The PnL (income statement) tracks revenue, expenses, and profit across a period of time — a month, a quarter, a year. The balance sheet is a snapshot: it shows assets, liabilities, and equity at one specific moment. In short, the PnL tells you how the business performed; the balance sheet tells you what the business is worth at a point in time. For a Shopify seller trying to understand whether last month was actually profitable, the PnL is the right starting point.

Trading PnL vs. business PnL: two meanings, one abbreviation

In trading contexts — stocks, crypto, futures — PnL refers to the gain or loss on a position. Traders distinguish between realized PnL (profit or loss from a closed trade, which locks in and affects your actual balance) and unrealized PnL (the potential gain or loss on an open position that changes with the market price). Neither of those concepts maps directly onto running an ecommerce store. When this article uses PnL, it means the business profit and loss statement — the document that captures all your revenue and all your costs and tells you what the store kept.

The PnL ratio

A concept that surfaces in trading but has a useful analogue in business is the PnL ratio — total profit divided by total loss over a period. In trading a ratio above 1.0 signals a profitable strategy. For a store, the equivalent discipline is watching whether profitable months consistently outweigh losing ones, and whether individual products contribute more to gross profit than they cost to acquire. Tracking this ratio alongside your monthly PnL gives a trend view that a single period snapshot cannot.

The PnL statement, line by line

A profit and loss statement is built top to bottom. Each line subtracts something from the line above it. Here is the standard order for a small store.

  • Gross sales — the total value of orders placed in the period, before anything is taken out.
  • Less discounts — coupon codes and automatic sales.
  • Less returns and refunds — the value of refunded orders. This reduces revenue; it is not an expense.
  • = Net sales — your honest top-line number.
  • Cost of Goods Sold (COGS) — the direct cost of the units you sold. For print-on-demand, that is the supplier's production charge plus their shipping to the customer.
  • = Gross profit — net sales minus COGS. Divide it by net sales and you get gross margin %, the measure of your product economics. See the net profit margin benchmark for context on what healthy margins look like.
  • Operating expenses (OpEx) — everything else it takes to run the business: ad spend, your Shopify plan and apps, software, contractors, owner pay.
  • = Operating profit — gross profit minus OpEx. This is the number that tells you if the business, not just the product, is viable.

The rule for where a cost goes: direct, per-unit costs (the blank shirt, the printing) sit in COGS; costs that keep the lights on regardless of any single sale (ads, subscriptions, your time) sit in OpEx. Getting this split right is what makes the statement trustworthy.

Gross PnL vs. net PnL

These two terms appear on dashboards and matter more than they look. Gross PnL is profit after subtracting direct costs (COGS) — it shows how profitable your products are before you factor in what it costs to run the business. Net PnL subtracts everything, including operating expenses. A store can show an attractive gross PnL and a painful net PnL if ad spend is high — which is exactly why ad spend must live in OpEx and stay visible, not hidden inside COGS.

A worked example: one month of a POD store

Say you run a t-shirt store on Shopify and last month looked like this. All figures are illustrative — plug in your own.

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
Gross margin % (illustrative) 55.3%
OpEx — ad spend (Meta + Google) −$3,000
OpEx — Shopify plan + apps −$180
OpEx — tools −$90
OpEx — owner draw −$500
Operating profit $1,114

All numbers in this table are illustrative examples only — do not treat them as benchmarks. The processing line uses a rate A2X documents for Shopify Payments online card transactions on lower-tier plans; check your own plan's current rate before you rely on it.

Read the story the numbers tell. The product is healthy at a solid gross margin, but ad spend of $3,000 eats most of that gross profit. If ad costs rise materially, operating profit shrinks fast. That is why ad spend must sit visibly in OpEx: the statement should make your customer acquisition cost impossible to ignore, and it can't do that if you bury ad spend inside COGS and inflate your gross margin. For strategies to improve the economics on the ad side, see the guides to Meta Ads ROAS explained for POD sellers and Google Ads strategy for print-on-demand.

How to calculate PnL: the core formula

The business PnL formula is straightforward:

Net PnL = Net Sales − COGS − Operating Expenses

Break it into two stages to make diagnosis easier. First, calculate gross profit (Net Sales − COGS) to see whether your products are viable on their own. Then subtract OpEx to get net operating profit and see whether the whole business is viable. If gross profit is healthy but net profit is thin or negative, the problem is usually ad spend or overhead — not the product. If gross profit itself is weak, the problem is pricing or supplier cost.

For print-on-demand specifically, COGS should include: the supplier's base production cost, the per-item shipping charge, and any payment-processing fee allocated to the order. For a fuller breakdown of how Printful shipping factors into your margin, see the Printful shipping costs breakdown. And for a close look at the payment-processing slice of COGS, the unit economics and average payment-processing fee guide covers exactly that line.

Profit is not cash: the part every guide skips

Here is the trap that sinks profitable stores. The example above shows operating profit, but that figure does not mean the same dollar amount sitting in your bank this week.

Ad spend leaves your card daily. Shopify payouts arrive on a delay — typically a couple of business days after the order in the US, and payouts don't settle on weekends while your ads keep spending. Supplier charges for print-on-demand hit when the order is produced, often before the matching payout lands. So money goes out faster than it comes back, and the faster you grow, the wider that gap gets.

Work it through: spend money daily on ads with a two-business-day payout delay and you are out of pocket with zero cash in yet. Double your ad budget to scale, and you double the float you have to fund from your own money before payouts catch up. You can be profitable on paper and cash-negative at the same moment. A cash buffer sized to roughly (daily ad + supplier spend) × (payout delay + weekend cushion) is what keeps you solvent while you grow.

Where store PnL goes wrong

Two mistakes wreck small-store books more than any others.

"My Shopify payout is my revenue." No. The deposit that hits your bank is a net settlement — sales minus fees minus refunds, batched on a rolling schedule — so it almost never equals your sales for the same window. Book gross sales at the top of the PnL and treat the payout as the cash consequence at the bottom. If you record the net deposit as "sales," you understate revenue and hide your fees entirely. Getting the accounts right from day one is far easier than untangling it later; the ecommerce bookkeeping walkthrough covers the setup, and if you run books in Xero, the Xero and Shopify connection guide shows how to keep each payout split into its parts.

Refunds still cost you the fee. When you refund an order, the original processing fee is generally not returned, so you eat the fee on a sale you kept nothing from. A disputed charge is worse: Shopify Payments charges a chargeback fee in the US, refunded only if you win the dispute. These small leaks are exactly what a clean PnL surfaces and a messy one hides.

Missing the checkout drop-off. Orders that never complete don't appear in your PnL — but the ad spend that drove those sessions already did. A strong gross PnL can mask a leaky funnel. Tracking your average checkout completion rate alongside your PnL helps you see whether your revenue ceiling is a product problem or a conversion problem.

Misclassifying ad spend. Burying Meta or Google ad spend inside COGS rather than OpEx inflates your apparent gross margin and makes the statement lie. Ad spend is a cost of acquiring customers, not a cost of producing units — it belongs in OpEx. For a side-by-side look at how Meta and Google spend performs differently for POD sellers, the Facebook Ads vs. Google Ads comparison is worth reading before you allocate next month's budget.

PnL and your tax bill

Your PnL and your tax return are close cousins, because taxable profit starts from the same net-income figure. A few things worth knowing early.

You owe income tax on your profit whether or not a form ever arrives. Payment processors only issue a 1099-K once your gross payments cross a threshold — for 2025 and 2026 that reverted to more than $20,000 and more than 200 transactions, per the IRS. Not getting the form does not make the income tax-free, and the 1099-K reports gross dollars, not profit, so clean books that reconcile it to your actual net income matter.

Sales tax is its own separate track — Shopify calculates and collects it once you switch it on, but you still register, file, and remit it yourself. For how that reporting actually works, see whether Shopify reports your sales tax to the states. This is general information, not tax advice; rules change and vary by situation, so consult a licensed CPA or tax professional before acting.

Using PnL to drive actual decisions

A PnL is only useful if it changes what you do next. Here is how intermediate POD sellers typically act on each section of the statement.

  • Gross margin is shrinking. Check whether supplier costs have crept up (production price changes or carrier surcharges) or whether a discount code is being overused. The fix is usually a price increase on the affected SKUs or retiring a discount that is eroding margin without driving meaningful volume. Repricing your worst-margin SKUs is one of the first moves Victor can propose and execute Shopify-side with your approval.
  • Ad spend is consuming gross profit. A Meta campaign that is spending but not converting shows up here before it shows up anywhere else. Reviewing ROAS by campaign and pausing losers is the standard move — for context on how to read those numbers, the guide to who does Meta Ads best for increasing ROAS lays out the benchmarks. For the strategic layer, the Facebook Ads strategy for Shopify POD sellers covers campaign structure decisions that directly affect your OpEx line.
  • Net profit is healthy but cash is tight. This is the profit-vs-cash gap covered above. The answer is not to cut ad spend — it is to build the right float and possibly raise your free-shipping threshold to increase average order value without additional ad cost. Raising the free-shipping threshold is another move Victor can propose and execute with your approval.
  • Revenue is flat despite ad spend growth. This points to a conversion or AOV problem rather than a traffic problem. Reviewing your checkout completion rate and testing a buy-one-get-one offer (which Victor can set up Shopify-side) are common levers here.

Reading PnL without the spreadsheet grind

Building a correct monthly PnL by hand means pulling gross sales, splitting every payout into fees and refunds, folding in supplier costs, and matching ad spend to the right month. It is doable, but most sellers who "have a PnL" are actually reading a payout total that lies to them.

This is the gap PodVector closes. It connects Shopify, Meta Ads, Google Ads, Printify, Printful, and Klaviyo into a live data warehouse and computes your true per-order profit — production, processing, and ad cost netted against each order, not guessed at a blended level. Victor, its AI employee, reads that live data, proposes a concrete action with its rationale and expected effect, and you approve or reject it via an approval card — then Victor executes the approved move Shopify-side. He reads your ad data across Meta and Google to surface insights and propose moves, but the writes he executes are Shopify-side. It is not a dashboard you have to babysit — a Weekly Health Report keeps you oriented, and every other move starts from your question or Victor's proposal.

If your PnL currently ends at the payout line, see your real numbers with PodVector. For context on how PodVector approaches print-on-demand strategy more broadly, the PodVector overview explains the full picture.

FAQs

What does PnL stand for in finance?

PnL stands for "profit and loss." In business it refers to the profit and loss statement (also called the income statement), which summarizes revenue, costs, and the resulting profit over a period. In trading, the same abbreviation refers to the gain or loss on a position, but the business meaning is the one that matters for running a store.

Is a PnL the same as an income statement?

Yes. "Profit and loss statement," "P&L," "PnL," and "income statement" all name the same report. Some accountants prefer one label over another, but they describe the identical document: revenue at the top, costs in the middle, profit at the bottom.

What is the difference between PnL and P&L?

None — they mean the same thing. P&L is the traditional accounting label used in formal financial statements; PnL is the shortened form common in dashboards and analytics tools. The difference is formatting only, not meaning.

What is realized vs. unrealized PnL?

These terms come from trading, not business accounting. Realized PnL is profit or loss from a completed trade — it is locked in and affects your actual balance. Unrealized PnL is the potential gain or loss on an open position that changes as the market price moves. For a Shopify store owner, neither concept applies directly; your equivalent is the difference between revenue you have received and costs you have incurred, which is exactly what your monthly PnL statement captures.

What is a good gross margin for a Shopify store?

There is no single right number, because it depends on your product, price point, and supplier costs. The point of tracking gross margin is trend and comparison: watch whether yours holds steady, and make sure ad spend sits in operating expenses so your margin reflects true product economics rather than a figure inflated by hiding acquisition cost in COGS. The net profit margin benchmark article provides additional context for POD sellers.

Why doesn't my PnL match my bank balance?

Because a PnL records sales and costs when they happen, while cash moves on its own schedule. Shopify payouts arrive on a delay and are netted, ad spend leaves immediately, and supplier charges hit at production. You can show a profit for the month and still be short on cash that same week — which is why you track both the PnL and your cash position.

Should ad spend go in COGS or operating expenses?

Operating expenses. Ad spend is paid customer acquisition, not a direct per-unit product cost. Putting it in COGS inflates your gross margin and hides that acquisition cost is usually your biggest risk. Keep it visible in OpEx so the statement tells you the truth. If you advertise on both Meta and Google, see the comparison of Google vs. Facebook Ads for POD sellers for guidance on allocating and evaluating that spend.

How often should I build a PnL?

Monthly is the right cadence for a small store. It is frequent enough to catch a margin or ad-cost problem before it compounds, and it lines up with how payouts, subscriptions, and supplier charges cycle. Reviewing quarterly or only at tax time means finding out about trouble months too late to fix it.

What is the PnL formula?

For a business: Net PnL = Net Sales − Cost of Goods Sold − Operating Expenses. Break it into two steps — gross profit first (Net Sales − COGS), then subtract OpEx to reach net operating profit. For a trading position, the formula is: PnL = (Exit Price − Entry Price) × Quantity − Fees. The two formulas are unrelated; only the business formula applies to running a Shopify or POD store.

How does PnL relate to ROAS?

ROAS (return on ad spend) measures revenue generated per dollar of ad spend and lives inside your PnL's OpEx section. A high ROAS is a good sign, but it does not guarantee a positive net PnL — ROAS ignores COGS, Shopify fees, and all other overhead. You need both: ROAS to evaluate individual campaigns and net PnL to evaluate whether the whole business is profitable. For a deeper look at ROAS in a POD context, see the Meta Ads ROAS guide for POD sellers.