Up to 8 Public Plans: How App Developers Are Restructuring Pricing
A breakdown of what changed and why it matters.
Your Shopify dashboard says you sold $8,400 last month. Your bank account received a much smaller number, and you can’t fully explain the gap. That gap is where your fees, ad spend, shipping bills, and refunded orders live — scattered across four or five different screens that nobody combines for you.
This guide closes that gap. You’ll get the complete list of costs that sit between revenue and profit, a formula for true profit per order, a full worked example for a $29 product (every number labeled as an example), and a manual spreadsheet method you can finish this afternoon.
By the end, you can look at any order and say what it actually earned — or cost you.
Full disclosure: Seller Tales is published by JoyCraft — when we recommend our own tools below, we say so.
Shopify’s dashboard is built to show activity: orders, conversion rate, sessions, gross sales. Gross sales is a revenue number. It counts the money customers committed to pay, not the money you keep.
Three problems make revenue a poor stand-in for profit:
The consequence is simple and uncomfortable: decisions made on revenue — raising ad budgets, discounting, adding SKUs — can scale losses just as easily as gains. Sellers who discover this late pay for the lesson twice: once in lost margin, once in backtracking.
Before the formula, here is the full checklist of what eats an order. Keep this list open while you build your sheet.
What you pay your supplier per unit, including inbound freight to your location if you pay it. If your supplier quote is $8.50 per unit but shipping the batch to you adds the equivalent of $0.80 per unit, your real COGS is $9.30. Many sellers undercount here because they use the unit quote and forget the freight.
Boxes, mailers, tape, labels, tissue paper, inserts. Small per unit, real across hundreds of orders. If you use branded packaging, this line tends to surprise people.
What the carrier charges you per order. Two details matter:
Every card transaction carries a percentage fee plus a fixed per-transaction fee. The exact rate depends on your Shopify plan, your region, and the payment method, so check your own rate on Shopify’s pricing page rather than borrowing someone else’s number. In your model, either use your actual rate or label any number you plug in as an example.
Shopify bills your subscription separately from your sales. Treat the subscription as fixed overhead rather than a per-order cost — but if you want a fully loaded per-order number, divide the subscription by your expected orders for the month and add it. The key is to know which version you’re calculating and stay consistent.
Your ad platforms bill you separately and on their own schedule. To put ads onto an order, divide total ad spend for a period by the orders in that period. At a store level, a blended figure works to start; once volume grows, calculate per channel so a losing channel can’t hide behind a winning one.
Two costs live here: the money you return, and the cost of goods you don’t get back in sellable condition. A rough allocation is your refund rate multiplied by average order value, adjusted downward if returned items go back into inventory. Conservative math counts the full value as lost until you know your return-resale rate.
One distinction worth keeping straight: COGS, packaging, shipping, processing fees, refunds, and ad spend all scale with orders. Your subscription, apps, and virtual assistant hours do not. Keep fixed overhead in its own bucket so your per-order number reflects what each order truly costs to fulfill.
Here it is, in one line:
True profit per order = revenue per order − COGS − packaging − shipping (net of shipping collected) − payment processing fees − ad cost per order − refund cost per order
And the margin version:
True margin % = true profit per order ÷ revenue per order × 100
That’s the whole thing. No trick terms. The difficulty was never the formula — it’s gathering the seven numbers from the five different places they live in.
If you later compare this seven-line model with a profit app’s shorter formula, the two reconcile cleanly: CostPilot Pro — the app we make at JoyCraft — works from five per-order inputs (COGS, fees, shipping, ad spend, and refunds), where packaging is simply folded into COGS and fixed costs like your Shopify subscription stay out of the per-order figure entirely. It is a consolidated view of the same books, not new math. The worked example below therefore applies to both methods, and we won’t run the numbers twice.
For example, say you sell a kitchen gadget for $29 with free shipping. Here is every line of the math, with every number marked as an example.
| Line | Example amount | Where it comes from |
|---|---|---|
| Sale price | $29.00 | Your store’s price |
| COGS | −$8.50 | Supplier quote including inbound freight (example) |
| Packaging | −$0.90 | Mailer + label + insert (example) |
| Shipping | −$5.30 | Carrier rate; free shipping offer, so you absorb it (example) |
| Payment fee | −$1.14 | Example rate of 2.9% + $0.30 on $29 (example — check your actual rate) |
| Ad spend | −$4.00 | Example: $1,200 spent ÷ 300 orders that month (example) |
| Refunds | −$1.16 | Example: 4% of orders refunded at full value, goods not resold (example) |
| True profit | $8.00 | 27.6% true margin |
Look at what happened to the number:
Now the sensitivity part, because this is where decisions happen: if ad spend had run $6 per order instead of $4, true profit drops to $6.00 and the margin slips to about 20.7%. Same product, same price, same dashboard number — a different business. The per-order view is what lets you see that before it shows up in your bank account.
You don’t need any tool to run this calculation. Here is the manual method, step by step.
Step 1 — Export your orders. In your Shopify admin, export the last 60–90 days of orders as a CSV. You need order totals and order count; if you sell several products, export with line items so you can break out by SKU.
Step 2 — Pull fees from your payouts. Open your payout statements and total the payment processing fees for the same period. Divide fees by gross sales to get your effective fee rate. Write that rate into one cell — you’ll reuse it every month.
Step 3 — Calculate COGS per unit. From your latest supplier invoice: unit price plus inbound freight, divided by units received. Do this per SKU. If you buy from multiple suppliers at different prices, use a weighted average or keep rows separate.
Step 4 — Work out net shipping. Total what your carrier billed you for the period and divide by orders shipped. Subtract the average shipping your customers paid you, if any. The result is net shipping cost per order.
Step 5 — Allocate ad spend. Total ad spend across platforms for the period, divided by orders. Keep one row per platform if you want channel-level truth later.
Step 6 — Allocate refunds. From your orders export or payout statement: total refunded value for the period, divided by order count. Note whether returned goods go back into stock; if they reliably do, reduce this figure accordingly.
Step 7 — Build the sheet and set a review habit. One row per SKU (or one row for the whole store to start), one column per cost line. Then re-run the calculation whenever something changes — a price change, a new supplier quote, a shipping rate increase, a new ad channel — and do one full pass each month. Costs drift quietly; the sheet is how you catch them.
The whole setup takes an afternoon. Updating it takes most of an hour each month, more as SKUs and channels multiply.
This works. It is also recurring work, and every hour you spend re-copying numbers is an hour you’re not using to act on them. That’s the point where automation earns its keep: the formula stays the same, the gathering becomes automatic. CostPilot Pro, the app we make at JoyCraft, exists for exactly this step — it reads your Shopify order data and puts the per-order profit figure in one place. Full disclosure: Seller Tales is published by JoyCraft, so take that recommendation with the appropriate salt, and judge it against the free manual method above.
The number is a decision tool, not a trophy. Three moves it unlocks:
One more sanity check: multiply your order count by your true profit per order, subtract fixed overhead, and compare with what actually hit your bank account. If the two don’t roughly agree, a cost line is missing or double-counted. That mismatch is the audit working as intended.
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.