Blog · Bundle shipping

Why Your Shopify Profit App Bills You for Shipping That Doesn't Exist

A founder's note on the most common phantom cost in dropshipping — and the single piece of math most profit apps get wrong.

The 35% margin that wasn't there

I was about a year into running a dropshipping beauty brand when I noticed something. The dashboard told me my margin was around 35%. The bank told me a different story.

I quoted that 35% number to myself constantly. Spent against it. Made hiring decisions against it. Decided what to scale against it.

Then one weekend I sat down to actually reconcile a single order — a 3-pack bundle of skincare kits, $36 in revenue. By the end of an hour with a spreadsheet and three browser tabs open, I'd found about $5.80 of shipping cost on that single order that didn't exist.

It was a phantom. The supplier hadn't charged it. My carrier hadn't billed it. The only place it lived was inside the profit dashboard I'd been paying for, telling me the wrong number for fourteen months.

The actual problem: supplier shipping breaks

Dropshipping suppliers — AliExpress, CJ, the larger fulfillment houses — don't price shipping the way most software assumes they do. They price by shipment, not by item.

Here's what that means in practice. If a customer orders one of my skincare kits, the supplier charges me about $4.20 to ship it. Standard rate, applied per single-item order.

If the same customer orders a 3-pack, the supplier doesn't charge $4.20 × 3 = $12.60. They put all three kits in one box and charge me $6.80 for the shipment. One box, one fee. The bundle break is the supplier's incentive to encourage larger orders, and it's how dropshipping margins on multi-packs are supposed to work.

But profit-tracking apps almost universally get this wrong.

What most profit apps do — and why it's wrong

Open up almost any profit app on the Shopify App Store and the data model is similar: each product variant has a "shipping cost" field. You set it once. Then for every order, the app calculates shipping as cost_per_unit × quantity_in_order.

For DTC stores with their own warehouse and a flat per-package shipping rate, this is fine — you set the field to your average per-unit shipping and it averages out. For Shopify Plus stores using ShipStation or Easyship, the per-unit rate ends up being a reasonable approximation of reality.

For dropshippers, it's a bug. Here's the worked example for the same skincare 3-pack, side by side.

Same order, two P&Ls
A single 3-pack, calculated two ways
order · 3× beauty kit · supplier ship break: 1 box, 1 fee
most apps · per-line shipping
PHANTOM COST
Revenue
Order total$36.00
Costs
COGS · 3 × $5.00−$15.00
Shipping · 3 × $4.20−$12.60
Transaction fee · 2.9% + 30¢−$1.34
Reported net $7.06
Margin reported as 19.6% — about 16 points lower than the truth.
neoprofit · per-shipment shipping
RECONCILED
Revenue
Order total$36.00
Costs
COGS · 3 × $5.00−$15.00
Shipping · 1 box, 3-pack break−$6.80
Transaction fee · 2.9% + 30¢−$1.34
Real net $12.86
Real margin: 35.7%. Reconciles to the supplier's invoice.
+$5.80 hidden per 3-pack · ~$1,160 per month at 200 orders · ~$13,920 per year

That's a $5.80 difference per 3-pack order. Almost six bucks of margin you actually made, sitting invisible in your dashboard.

Multiply: 200 of those orders a month is $1,160 a month of margin you're not seeing. About $13,920 a year. Not catastrophic, not pocket change, but enough to change the answer to "should I scale this product" from no to yes — or to fund another ad test, or to hire another VA, or to take a Friday off.

The number on your dashboard isn't lying because anyone built it that way on purpose. It's lying because the per-line-item assumption is reasonable for one kind of merchant and quietly wrong for another.

Why competing apps do the wrong math

I want to be honest about why this exists, because it's not because the people who build these tools are lazy or careless.

The per-item shipping cost field is easy to implement. You attach a number to a variant in your database, you multiply it by quantity at order time, you sum it across the period. It's a clean piece of code. It works for most non-dropshipping merchants. It's a perfectly reasonable v1.

Most of the established profit apps were built before dropshipping ate as much of the Shopify install base as it has. They were built for DTC operators who'd negotiated a flat shipping rate with a 3PL, or who fulfilled in-house with carrier rates that genuinely did scale per item. In that world, per-line-item shipping math gives you a number that's close enough to be useful.

The dropshipping shipping break is also genuinely harder to model. To do it right you need to know — for every product, for every quantity in an order — what your supplier's actual shipping schedule is. That's not a single number you store on a variant; it's a small lookup table per product, and it changes when suppliers change their rate cards.

So the trade-off most apps make is: get 80% of merchants approximately right, miss dropshippers by a real margin. From their perspective it's a defensible product choice. From a dropshipper's perspective it's a hidden tax on accuracy.

How to know if this is happening to your store

The diagnostic isn't subtle. If you sell bundles or multi-packs and your supplier ships them combined, you're probably affected. Three quick checks:

  • Pull a single multi-item order from the last week. Look up what your supplier actually charged you for shipping that order. Compare against what your profit app shows for that same order's shipping line.
  • Check whether your profit app's shipping field is configured per variant or per shipment. If you can't find a "per-shipment" or "bundle rate" option in settings, the app is multiplying — by design.
  • If your reported gross margin is meaningfully below what you'd expect from your unit economics on paper, and you sell multi-packs at any volume, the gap is almost always living in shipping.

None of this requires a spreadsheet or a custom script. One reconciled order against one supplier invoice is enough to tell you whether the gap is real for your store — and how big it is.

How NeoProfit handles it

NeoProfit treats shipping as a property of the shipment, not the line item. When you configure a product, you set a shipping schedule: how much your supplier charges for an order of 1, an order of 2, an order of 3, and so on. For every order that comes through, NeoProfit looks at the actual quantity shipped, finds the matching supplier rate, and bills shipping once per shipment — not once per item.

The result is a P&L that reconciles. The number on your NeoProfit dashboard at the end of the month is the same number that lands in your bank account, give or take payment processing rounding. No more 4-point gap between "what my dashboard says I made" and "what I actually made."

It's not magic. It's just modeling the cost the way the cost actually behaves. The work that goes into setting up the per-quantity rate is real — it takes a couple of minutes per product to configure — but it's a one-time setup that pays back the first time you trust the number on your dashboard enough to make a sourcing decision against it.

Try the math on your numbers
Free bundle shipping calculator
Plug in your selling price, supplier costs, per-item rate, and actual bundle rate. The calculator shows the gap per order, per month, and per year — instantly. No signup, runs in your browser.
Open the calculator

The closing argument

If you sell bundles or multi-packs at any volume, this single piece of math is probably the largest hidden cost on your dashboard right now. Run the numbers in the calculator for your own products and see what the gap is. If it's meaningful, fix it. If it's not, you don't need us for this — but knowing the real number is still worth the five minutes.

If the gap turns out to matter for your store, add NeoProfit to Shopify. There's a 7-day free trial, every plan includes per-shipment shipping (no upsell tier), and the early adopter pricing is currently 50% off — Starter is $9.50/mo. The longer story behind why I built this is on the founder page and the side-by-side feature breakdown for dropshipping economics is on the /dropshippers page.

I would have happily paid more for a number I could trust. That's why I built this.

— Neo

Stop the phantom cost

A P&L that matches
the bank account.

7-day free trial · all features on every plan · early adopter pricing 50% off

← All posts