How to Calculate True Profit per Order on Shopify — Step by Step
Shopify's revenue number is not your profit. Use this step-by-step formula — COGS, fees, shipping, ads, refunds — to find each order's true profit.
You have a product idea and the itch to act on it tonight: register the domain, install a theme, import the listing. The store is the cheap part. The expensive part is what happens when you commit — ad budget, sample orders, and weeks of attention — to a product the market never wanted.
Seven days won’t tell you whether a product will succeed; nothing can promise that. What seven days can do is much more modest and much more useful: surface evidence of demand, and surface evidence that the margin survives real costs, before either is expensive to learn.
This is the framework. Every day has one job, one output, and a gate. All money figures are labeled examples. And a warning before we start: this process works by killing ideas. If your goal is to confirm a decision you already made, you’ll read every weak signal as a green light, and the framework can’t protect you from that.
Full disclosure: Seller Tales is published by JoyCraft — when we recommend our own tools below, we say so.
| Day | Job | Output |
|---|---|---|
| 1 | Demand signal check | A one-paragraph demand note |
| 2 | Competitor scan | 3–5 competitors mapped with prices and weaknesses |
| 3 | Profit modeling | A per-order margin model with your numbers |
| 4 | Kill criteria, written down | Pre-committed test thresholds |
| 5 | Small-budget test, live | Landing page + ads running with a hard spend cap |
| 6 | Reading the results | Signals sorted by funnel stage |
| 7 | Kill / go / redo | A decision, in writing |
The job today is to answer one question: does anyone look for this thing, unprompted?
Where to look:
Gate: write a one-paragraph demand note — who appears to search, how much interest, trending up or down. If you found zero signals anywhere, that’s an early kill or a re-angle of the idea, not a reason to proceed on faith.
The job today is to map who you’d be selling against and where the openings are.
Gate: one page per competitor — price, angle, complaints, presentation quality. If you found a healthy price band with no visible weaknesses anywhere and strong incumbent brands, that’s a real difficulty worth writing down honestly.
This is the day most people skip and the one that saves the most money. Before you spend anything on ads, model what one order is actually worth.
Start from the Day 2 price band and build the stack:
Per-order margin = sale price − supplier cost (product + shipping to customer) − payment fees − packaging − everything else per order
For example, say your research suggests the product can sell for $32:
| Line | Example amount | Note |
|---|---|---|
| Sale price | $32.00 | Anchored on competitor price band |
| Supplier total | −$11.40 | Product + shipping to customer (get a real quote, not the listing price) |
| Payment fees | −$1.23 | Example rate of 2.9% + $0.30 (example — check your actual rate) |
| Packaging / misc | −$0.70 | Even in dropshipping, small per-order costs add up |
| Margin before ads & refunds | $18.67 | About 58% of sale price (example) |
That $18.67 (example) is not profit. It’s the pool that advertising and refunds eat from. Two derived numbers matter:
Get the supplier quote today. Listing prices on supplier platforms and actual quotes with shipping often differ, and the difference decides whether the model survives.
(Disclosure: Seller Tales is published by JoyCraft, the maker of CostPilot Pro. For pre-launch modeling, the table above is all you need; the tool earns its place once real orders, refunds, and ad invoices start arriving.)
The job today is uncomfortable: define, in writing and in advance, what will make you stop.
Pre-committed thresholds exist because judgment degrades once money is moving. Every seller who continued “just one more week” past a failing test was telling themselves a story. The written criteria are the version of you from Day 4, who still has clean math.
For example (example numbers — set your own):
Write the criteria down — a note, a spreadsheet cell, anywhere durable. Day 6’s job is to read the data against these criteria, not to negotiate with them.
The job today is to put the offer in front of real people at the smallest budget that can produce evidence.
You need:
Track the full funnel from day one: link clicks → product page views → add-to-cart → checkout started → purchases. You’ll need every stage tomorrow.
Read the funnel stage by stage, because each failure shape has a different meaning:
A worked reading (example numbers): for example, say $80 spent brought 240 clicks, 31 add-to-carts, 9 checkout starts, and 2 purchases — a $40 cost per purchase against a $10.67 affordable figure. That’s a redo-or-kill by the criteria, whatever the excitement level. Two purchases feel like proof; arithmetic disagrees.
Resist two classic moves: counting “engagement” as evidence when the funnel shows it, and redefining the thresholds mid-test.
Apply the written criteria to the data and record the decision in one paragraph: what you tested, what happened, what you decided, why.
If you go: the model from Day 3 becomes your operating instrument. Real orders will diverge from it — refunds happen, ad costs drift — and the habit that keeps you safe is checking true profit per order against the model from order one.
Seller Tales is a publication by JoyCraft. When we link to our own tools, we say so, and some of those links carry tracking parameters.