Shipping-Cost Drift: Measuring a Label Cost That Keeps Moving

Many stores watch supplier costs closely and still treat the shipping label as a fixed number, even though carrier rates, fuel surcharges, dimensional weight and the zones your customers live in all move on their own schedule. None of them comes with a new price list. Below: measuring the blended label from invoices, splitting a rise into rate and mix, and a schedule for recomputing it.
Why the label moves without an announcement
A supplier increase usually arrives as a file. Shipping drift arrives in pieces, and most of them are invisible at checkout:
- Base rates: carriers revise their rate cards, often once a year, sometimes mid-year as well.
- Fuel surcharges: a percentage on top of the transport charge that the carrier adjusts on its own calendar, often weekly.
- Dimensional weight: a light item in a big box is billed on volume, not on the scale reading. A new box size or a new bulky product changes the bill without any rate change.
- Zone mix: if more orders start coming from far away, the average label goes up even though every rate stayed put.
- Adjustments: address corrections, residential fees and re-weighs that land on the invoice weeks after the label was bought.
Base rates and fuel are price changes; the other three come from what you ship and where. The fixes differ, so measure them separately.
Measuring your blended label
The blended label is total carrier spend for a period divided by the number of shipments in that period. Use invoices, not the price shown when you bought the label: adjustments arrive later and only the invoice has them.
Blended label = (label purchases + post-shipment adjustments) / shipments
A worked example for one store, two quarters apart:
| Q1 | Q3 | |
|---|---|---|
| Shipments | 1,200 | 1,150 |
| Label purchases | $7,080 | $7,475 |
| Adjustments | $180 | $345 |
| Total carrier spend | $7,260 | $7,820 |
| Blended label | $6.05 | $6.80 |
The label went up $0.75, or 12.4%, without a single rate notice in the inbox. Per shipment, label purchases rose from $5.90 to $6.50 and adjustments from $0.15 to $0.30.
Splitting the rise into rate and mix
To know what caused the rise, keep a reference basket: three to five typical parcels with a fixed weight, box and destination. Quote the same parcels from your rate card or shipping app every quarter. Whatever the basket does is the rate effect. What's left over is mix.
| Reference parcel | Q1 quote | Q3 quote |
|---|---|---|
| A: 1 lb, near zone | $4.90 | $5.20 |
| B: 3 lb, middle zone | $5.60 | $5.95 |
| C: 4 lb in a 12×10×8 box, far zone | $6.90 | $7.30 |
| Average | $5.80 | $6.15 |
The basket rose $0.35, about 6.0%. So the $0.75 breaks down like this:
- Carrier rate: $0.35 per shipment.
- Shipment mix: $0.25 per shipment. Label purchases rose $0.60, and the basket explains $0.35 of it. The other $0.25 came from heavier parcels, bigger boxes or farther customers.
- Adjustments: $0.15 per shipment, after they doubled from $0.15 to $0.30.
A small account can't negotiate the rate part away, only price it in. Mix is often fixed in the packing area, and adjustments usually come from bad address or weight data.
Parcel C shows how much the box matters. At a dimensional divisor of 139, which this example's rate card uses, a 12×10×8 box is 960 cubic inches, or 6.9 lb, billed as 7 lb even though it weighs 4 lb. The same item in a 12×10×6 box is 720 cubic inches, or 5.2 lb, billed as 6. Divisors and rounding differ between carriers and services, so check your own rate card.
What $0.75 does to an order
Take a typical free-shipping order: $48 of goods at a 40% product margin, so $28.80 of cost and $19.20 of gross profit.
- Q1: $19.20 − $6.05 label = $13.15 left, 27.4% of revenue.
- Q3: $19.20 − $6.80 label = $12.40 left, 25.8% of revenue.
That's 1.6 points of order margin gone with no change in supplier cost or retail price. To lose the same $0.75 from the product side, product cost on this order would have to rise 2.6%. Most buyers would react to a 2.6% supplier increase, while a 12% label increase spread across invoices tends to go unnoticed until someone adds it up. The full per-order stack is in the real net margin per order.
If you charge a flat $5.95 for shipping instead, the same drift shows up as a subsidy. You covered $0.10 per order in Q1 and $0.85 in Q3. A free-shipping threshold set against the Q1 label is now too low as well. Free-shipping thresholds covers how to recompute it.
How often to recompute
A schedule that takes about an hour a quarter:
- Every quarter, export carrier invoices, compute the blended label and the adjustment share. In the example, adjustments went from 2.5% of label spend to 4.6%.
- Re-quote the reference basket whenever the carrier publishes new rates, and at least once a quarter.
- Revisit your threshold, flat rate and margin floor when the blended label moves more than 5% from the number they were built on. The example moved 12.4%.
- When you add a bulky product line or change box sizes, add a parcel to the reference basket so mix stays visible.
5% is just a starting point; use whatever size of move would make you change one of your prices.
Where shipping cost belongs
Outbound labels are a per-order cost. They don't belong in Shopify's cost per item, because that field is per unit and a label covers the whole parcel. Freight from the supplier to you is different. It is part of what each unit costs to bring in, and it belongs in landed cost.
CostSentry handles the supplier side: it compares each new price list with the previous one and flags SKUs that fall below your margin floor. Carrier costs stay in your spreadsheet. Both feed the margin your floor is built on, so review them on the same schedule.
Rule out the supplier side of the drift
Drop in your Shopify product export and a supplier CSV, see which SKUs match and which now fall below your target margin. Free, no account.
Open the free checker ↗