Transparent math. No login. Editable assumptions. See the update policy
Store economics

Shopify Profit per Order Checklist: Costs Most Stores Miss

Reconcile revenue, COGS, payment fees, fulfillment, shipping, returns, apps, discounts and acquisition into one contribution view before scaling a store.

Shopify revenue is not profit, gross margin is not contribution, and the bank payout is not a product-level decision metric. A useful profit-per-order view starts with net sales and subtracts every cost that changes because the order happened, then keeps fixed operating costs visible at the monthly layer.

The profit-per-order cost stack

order contribution = net sales − COGS − payment fees − fulfillment − shipping subsidy − expected return loss − acquisition cost

For a monthly store view, add app subscriptions, platform plan costs, payroll or contractor overhead and other fixed operating expenses after calculating variable contribution. Keeping those layers separate prevents a fixed monthly bill from being confused with the economics of one additional order.

Worked example

Assume 500 monthly orders and $25,000 of net sales, or a $50 average order value. Suppose COGS is 32% of sales, payment fees average 3.0% plus $0.30 per order, fulfillment is $3.20 per order, shipping subsidy is $4.50, expected return loss is $1.50 and paid acquisition averages $8.00 per order.

Layer per orderIllustrative amount
Net sales$50.00
COGS (32%)−$16.00
Payment fees−$1.80
Fulfillment−$3.20
Shipping subsidy−$4.50
Expected return loss−$1.50
Acquisition−$8.00
Contribution before fixed costs$15.00

At 500 orders, that is $7,500 of modeled contribution before monthly fixed costs. A store can therefore show attractive gross margin and still have weak operating profit if acquisition, returns, shipping subsidies or fixed software costs are ignored.

Costs most stores should reconcile explicitly

  1. Discounted net sales. Use what customers actually pay before taxes that are not revenue to the business.
  2. COGS at the SKU mix actually sold. A blended percentage can hide a fast-growing low-margin product.
  3. Payment processing. Include both percentage and fixed components where applicable.
  4. Fulfillment and pick/pack. Separate warehouse handling from carrier cost.
  5. Shipping subsidy. Buyer-paid shipping and your actual shipping expense are different lines.
  6. Returns and refunds. Model expected reverse shipping, handling and unrecovered merchandise loss.
  7. Acquisition cost. Use the attribution view appropriate to the decision and keep organic orders separate when possible.
  8. Apps and platform costs. Keep them in the monthly fixed-cost layer unless a fee scales directly with orders or revenue.

Three reconciliation checks

  • Order view: Does one additional order create positive contribution before fixed costs?
  • Channel view: Does paid, organic, marketplace or wholesale traffic create different contribution after channel-specific fees?
  • Monthly view: Does total contribution cover the fixed operating layer and still leave operating profit?

Decision rule

Do not scale a channel because revenue or ROAS looks good in isolation. Scale when the order contribution is positive, the monthly fixed-cost layer is covered and the next unit of spend still clears your target contribution threshold.

Run the numbers in the Shopify profit calculator. If the monthly view is too blended, use the ecommerce profit calculator for one representative order and compare the two views.

Bridge order contribution to the monthly result

Keep the $15 contribution in the worked example and assume $4,500 of monthly fixed operating costs. At 300, 500 and 700 orders, contribution is $4,500, $7,500 and $10,500; the modeled result after that fixed layer is $0, $3,000 and $6,000. These are scenarios, not sales forecasts. The break-even volume is 4,500 / 15 = 300 orders only while unit economics stay unchanged.

If acquisition cost rises from $8 to $12, contribution falls to $11 and the same fixed layer requires 410 whole orders to break even. At 500 orders the modeled result is then $1,000 rather than $3,000. A revenue dashboard could look unchanged while this cost movement removes two-thirds of the modeled operating result.

Build a reconciliation record that survives a second review

Use one currency and one period. Record whether sales are before or after discounts and refunds. Match fulfilled units to product cost and keep canceled orders out of the same denominator. Reconcile buyer shipping charges separately from carrier invoices. Allocate fixed monthly costs once; do not subtract an allocation per order and the same full monthly bill again.

The 3% plus $0.30 processing rate above is an illustrative input, not a statement of a universal Shopify tariff. Replace it with the rate from your account and invoice. Where a plan, payment method or third-party transaction fee changes the cost, model that actual arrangement instead of mixing tariffs from different plans.

The return allowance must match the revenue definition. Starting with sales already net of refunds and then deducting the full refund again will understate contribution. Either use pre-return revenue with an explicit incremental return-loss model, or reconcile refund-adjusted revenue with only the remaining return costs. Document the chosen convention in the worksheet.

Reproducible example dataIllustrative CSV. No email required. Replace assumptions with your own records.
Download example CSV