MOVE SUPPLY CHAIN

Are you paying to ship air?

The complete guide: grade how well your packaging fits your product, find out what it really costs you a year, and decide what is worth pricing with a supplier. Every formula, every input, every mistake we made.

A Move Supply Chain guide. Nothing hidden.

THE ANSWER, UP FRONT

Illustrative 8oz candle · master carton
Primary fitBox is 1.85 times the product volume. Grade C.
Master carton utilisation45% of the carton is product. Grade D.
Dimensional weight6.4 kg billable against 5.7 kg actual. DIM applies.
Annual packaging spend$10,830 across box, carton and insert.
OverallD. The carton is the problem, not the box.

I am going to walk you through how we built this, including the three times the tool was right and useless, because that is the part you can actually use.

We build supply chain systems for DTC brands. I have done this for 17 years, enterprise first, then ecommerce. Packaging is the cost line founders look at least, because it arrives as a small number on a supplier invoice. It is not a small number. It is a number you pay twice, once for the board and once for the space it takes up in a truck, and neither invoice tells you about the other.

Three things go wrong, and all of them are quiet.

You pay for air

The box is bigger than the product. You paid for the board. Then the carton is bigger than the boxes. You paid for that board too. Then the carrier weighs the carton and charges you for its volume instead, because the volume is worth more than the weight.

You pay for an insert nobody reads

A printed card in every box. Six cents. Eighteen thousand units. That is a thousand dollars a year for a thing the customer throws away with the tissue paper.

You pay for a spec you never chose

The board grade, the flute, the carton size. Your supplier chose them at your first order, when you had no volume and no idea. You have reordered the same spec ever since.

None of this is a marketing problem or a design problem. It is arithmetic, and nobody has ever put the arithmetic in front of you. So we built the check. Below is the whole thing in two tiers. Tier 1 is a spreadsheet you can build this afternoon. Tier 2 is how we turned that sheet into an app. Take whichever one you need.

What it does

You enter what your packaging physically is and what you pay for it. You get three things.

A grade on how well the packaging fits what is inside it. A to D, for the primary box and for the master carton separately.

A breakdown of annual packaging spend by line: primary, carton, inserts, protective. Every figure is arithmetic on what you entered.

A list of changes worth pricing with a supplier, each one only shown when your own numbers say it applies.

It does not quote you. It does not order anything. It does not talk to your supplier. It tells you which conversation to have and what to ask.

How the packaging tool works, in six steps: enter your numbers, read your fit grade, read your spend, work the opportunities, open the assumptions, take it to a supplier.

Two kinds of number. Your inputs and the arithmetic on them are yours and they are solid. The savings ranges are ours, and each one carries a stated basis and a named approver, or a label saying it does not yet. Keep the two apart in your head the whole way through.

A savings figure combines your solid numbers with our reviewed or unreviewed ranges.

The four checks behind the grade

None of these is clever. The value is in running all four against the same carton at the same time, before you reorder.

1 · Is the box much bigger than the product?

Box volume divided by product volume. Above about 1.3 you are paying for board and tissue. Above 2.5 the product is rattling around.

2 · Is the carton much bigger than the boxes?

Units per carton times box volume, divided by carton volume. This is utilisation. Under 55% and half your carton is air you paid to corrugate.

3 · Does the carrier charge you for the size or the weight?

Carton volume divided by the carrier's DIM divisor gives dimensional weight. If that is more than the carton actually weighs, you are billed on the bigger number.

4 · What does all of it cost a year?

Units times unit cost, per line, plus cartons times carton cost. The total is always bigger than the founder guessed.

Tier 1: Build it in a spreadsheet, nothing hidden

You need Google Sheets or Excel and a tape measure. The whole build is about an hour the first time, and fifteen minutes per SKU after that.

Start with your top three sellers, not everything. Three rows is enough to find out whether you have a carton problem, and those three are the ones that ship the most air.

Step 1: Get the data

Every number lives somewhere already. Here is exactly where, and what goes wrong when you get there.

Product dimensions and weight

Measure one. Do not take it from the spec sheet. Length, width and height in centimetres, at the widest point, including the lid or cap. Weight in grams on a kitchen scale, the product exactly as it goes into its box.

Trap: round products. A candle jar is a cylinder, but it takes up a rectangular space in a box. Measure the diameter and use it for both length and width. The formula treats everything as a box because the packaging does.

Primary packaging dimensions, weight and cost

The box the customer opens. Measure the outside: that is the space it takes in the carton. Weigh it empty. Cost per unit is on your packaging supplier's invoice, on the line for that box.

Trap one: internal versus external. Your supplier's spec sheet gives internal dimensions because that is what they design to. You need external for utilisation. Add roughly twice the board thickness, or just measure.

Trap two: per thousand. Packaging is often quoted per thousand units. $450 per M is $0.45 each. If your cost cell says 450 and your units cell says 1,500 a month, your annual spend is off by a thousand times and the sheet will not tell you.

Trap three: printed versus plain. The invoice line may be the plain box, with print, plates and setup on separate lines. Add them back in. A box that costs $0.32 plain and $0.45 printed costs $0.45.

Master carton dimensions, weight, units per carton and cost

The shipping carton your 3PL receives. External dimensions, measured. Weight empty. How many units go in one. Cost per carton from the supplier invoice.

Trap one: nominal versus actual. The spec sheet says 40 × 40 × 20. The carton on the pallet is 41 × 41 × 21 because corrugated bulges. Carriers measure the carton, not the spec sheet. Measure.

Trap two: which carton. If you ship to a 3PL in a master carton and they ship to the customer in a different mailer, you have two cartons and two DIM calculations. This guide covers the master. Run the mailer as a second row.

Inserts, protective materials, labels and tape

Anything else in the box or on the carton, and what each costs per unit. Printed cards, tissue, void fill, silica, labels, tape. Same invoice, separate lines. Most founders skip this section and most of the easy savings live in it.

Monthly units

Shopify: Analytics, then Reports, then sales by product variant, last 3 months, units column not revenue, divide by 3. If one of those months had a promo, note it. Use a normal month.

Trap: the promo month. A BFCM month in your average inflates every annual figure downstream by a third. Either take it out or accept that the sheet is optimistic.

DIM divisor

On your carrier's rate card, or ask your 3PL. It is the number they divide cubic centimetres by to get a billable kilogram. 5,000 is common for metric carriers and it is the working default in our tool. It is not signed off; check yours.

Step 2: Clean it

BeforeAfter
Diameter 8.5 cm in one cell, nothing in width8.5 in both length and width
Cost $450 (per thousand)0.45 per unit
Internal box dimensions from the spec sheetExternal, measured
Plain box cost, print on a separate invoice lineOne cost with print included
Blank cost cell for the insertPlaceholder, highlighted, until the invoice arrives

Blanks are the dangerous one. A blank in a formula becomes zero, and zero cost means the sheet tells you the insert is free. It is not free. Put a placeholder in and highlight it yellow until you have the real number.

Step 3: Build the sheet

Settings block at the top, then one SKU per row from row 11. Google Sheets column letters and formulas; they work in Excel too.

SETTINGS, B1 TO B8

CellSettingWorking value
B1DIM divisor, cm³ per kg5000
B2Size ratio, grade A up to1.3
B3Size ratio, grade B up to1.8
B4Size ratio, grade C up to2.5
B5Utilisation, grade A from85%
B6Utilisation, grade B from70%
B7Utilisation, grade C from55%
B8Your carton savings assumption20%

ROW 11, COLUMNS A TO S: YOU TYPE THESE

ColInputIllustrative
ASKUCANDLE-8OZ
BProduct8oz soy candle
C D EProduct L × W × H cm8.5 × 8.5 × 9
FProduct weight g380
G H IBox L × W × H cm, external10 × 10 × 12
JBox weight g60
KBox cost per unit0.45
L M NMaster carton L × W × H cm, external40 × 40 × 20
OMaster carton weight g400
PUnits per master12
QMaster carton cost1.10
RInsert cost per unit0.06
SMonthly units1500

Type into A to S only. Everything from T onward is a formula. Put these in row 11 and drag down.

COLUMNS T ONWARD: THE SHEET WORKS THESE OUT

T · How much space does the product take?

Length times width times height. For a round product, diameter in both length and width.

=C11*D11*E11

Illustrative candle: 650 cm³

U · How much space does the box take?

=G11*H11*I11

Illustrative candle: 1,200 cm³

V · How many times bigger is the box than the product?

This is the size ratio. 1.0 would be a box that fits exactly, which is impossible. Below 1.0 means the box is smaller than the product, which means you measured something wrong.

=U11/T11

Illustrative candle: 1.85

W · Check 1: primary fit grade

Below 1 is an input error, not a grade. Then A, B, C, D against the boundaries in the settings block.

=IF(V11<1,"CHECK INPUT",IF(V11<=$B$2,"A",IF(V11<=$B$3,"B",IF(V11<=$B$4,"C","D"))))

Illustrative candle: C. Above 1.8, below 2.5.

X · How much space does the master carton take?

=L11*M11*N11

Illustrative candle: 32,000 cm³

Y · How much of the carton is actually product?

Units per carton, times box volume, divided by carton volume. Format as a percentage.

=P11*U11/X11

Illustrative candle: 45%

Z · Check 2: carton utilisation grade

Above 100% means the boxes cannot physically fit in the carton, which is an input error, not a good grade. We got this wrong once. See the failure log.

=IF(Y11>1,"DOES NOT FIT",IF(Y11>=$B$5,"A",IF(Y11>=$B$6,"B",IF(Y11>=$B$7,"C","D"))))

Illustrative candle: D. Under 55%.

AA · What does the carrier think the carton weighs?

Carton volume divided by the DIM divisor. This is dimensional weight, in kg.

=X11/$B$1

Illustrative candle: 6.4 kg

AB · What does the carton actually weigh, full?

Units times product plus box weight, plus the empty carton, in kg.

=(P11*(F11+J11)+O11)/1000

Illustrative candle: 5.68 kg

AC · Check 3: which weight are you billed on?

The bigger of the two. Always.

=MAX(AA11,AB11)

=MAX(AA11,AB11)

Illustrative candle: 6.4 kg. DIM applies. You are billed for 0.7 kg of air per carton.

AD · DIM flag, in words

=IF(AA11>AB11,"DIM applies","actual weight")

=IF(AA11>AB11,"DIM applies","actual weight")

Illustrative candle: DIM applies

AE · How many units a year?

=S11*12

=S11*12

Illustrative candle: 18,000

AF · Annual spend on the primary box

=AE11*K11

Illustrative candle: $8,100

AG · Annual spend on master cartons

Cartons per month rounded up, because you cannot ship a fraction of a carton, times twelve, times cost. Our tool rounds monthly, not annually; the difference is small but it is a choice, so here it is.

=ROUNDUP(S11/P11,0)*12*Q11

Illustrative candle: 125 cartons a month, 1,500 a year, $1,650

AH · Annual spend on inserts

=AE11*R11

Illustrative candle: $1,080

AI · Check 4: total annual packaging spend

=AF11+AG11+AH11

Illustrative candle: $10,830

AJ · Overall grade

Worst of the two fit grades. A carton problem is a carton problem even if the box is perfect.

=IF(OR(W11="CHECK INPUT",Z11="DOES NOT FIT"),"FIX INPUTS",IF(OR(W11="D",Z11="D"),"D",IF(OR(W11="C",Z11="C"),"C",IF(OR(W11="B",Z11="B"),"B","A"))))

Illustrative candle: D

AK · What might a right-sized carton save?

Carton spend times your own assumption in B8. Only when the carton grade is below A. This is the one line on the sheet that is an estimate, and it is your estimate.

=IF(Z11="A",0,AG11*$B$8/100)

Illustrative candle: $330 a year at 20%. Change B8 and watch it move.

Campaign-style summary at the top, next to your settings. Worst SKU wins.

=IF(COUNTIF(AJ11:AJ100,"FIX INPUTS")>0,"FIX INPUTS",IF(COUNTIF(AJ11:AJ100,"D")>0,"D",IF(COUNTIF(AJ11:AJ100,"C")>0,"C",IF(COUNTIF(AJ11:AJ100,"B")>0,"B","A"))))

And two totals: =SUM(AI11:AI100) for spend, =SUM(AK11:AK100) for the carton opportunity.

Step 4: Read one row by hand before you trust it

This is the step everyone skips and the one that catches every mistake. Take one SKU and work it out on paper.

The row below is the illustrative candle. Working it by hand checks that your sheet is built correctly. It does not check your packaging, because the candle is not real. Once your sheet matches these numbers, put your own row in and work that one by hand too.

StepBy hand
Product volume8.5 × 8.5 × 9 = 650 cm³
Box volume10 × 10 × 12 = 1,200 cm³
Size ratio1,200 ÷ 650 = 1.85. Above 1.8. Grade C.
Carton volume40 × 40 × 20 = 32,000 cm³
Utilisation12 × 1,200 = 14,400. ÷ 32,000 = 45%. Under 55%. Grade D.
DIM weight32,000 ÷ 5,000 = 6.4 kg
Actual weight12 × (380 + 60) = 5,280 g + 400 g = 5.68 kg
Billable6.4 kg. DIM applies.
Annual units1,500 × 12 = 18,000
Primary spend18,000 × 0.45 = $8,100
Carton spend1,500 ÷ 12 = 125 a month × 12 = 1,500 × 1.10 = $1,650
Insert spend18,000 × 0.06 = $1,080
Total$10,830
OverallD. The carton, not the box.

What the row is telling you: the box is a little roomy, the carton is half empty, and the carrier is charging you for the empty half. The box is a conversation. The carton is a decision.

Step 5: Add the AI, but only for the words

The sheet gives you the grades and the spend. What it does not give you is the email to your supplier, or which of three carton sizes to ask about first.

That is the only job the AI has. It reads the numbers. It never produces them.

Copy your graded rows, paste them into Claude or ChatGPT, and use this prompt exactly:

You are a packaging engineer reviewing a DTC brand's packaging data. Below is a table of measured dimensions, weights, costs and calculated grades. Do not recalculate or change any number. Using only these numbers: (1) explain in plain language what each grade below A means for this brand, (2) say which single change is worth pricing first and why, (3) draft a short email to the packaging supplier asking for a quote on that change, with the exact dimensions to quote, (4) list what the brand should measure or confirm before sending it. Be direct. No jargon. [paste your rows here]

Why not let the AI do the maths too? Because you cannot audit it. If you change a carton spec because a screen told you the utilisation was 45%, you need to be able to trace that 45% back to four numbers you measured. "The model said so" is not a packaging process, and it is definitely not something you send to a supplier.

Formulas calculate. AI explains. One direction only.

Tier 2: From the sheet to an app

Tier 1 gives you the answer for three SKUs, this afternoon. It is a photograph. Next quarter the carton changes, the volumes move, and you are measuring again.

We turned the sheet into an app so it runs for every SKU, keeps the history, and shows the savings ranges with their review state. Here is the thinking, and the decisions that changed the answer.

First: we decided what question it answers

The instinct is a dashboard. Show fill ratios, show spend, show a benchmark against other brands, let the founder work it out. We wrote down the only sentence that mattered instead: the founder needs to know whether their carton is the right size. Grade, spend, what to ask for. No score out of 100, no trend line, no benchmark chart.

Second: we drew a hard line around the AI

Same rule as the sheet. Dimensions, ratios, weights and spend are fixed formulas, boring and checkable. The AI reads the output and drafts the supplier email. It never touches a number, and in the app that is enforced, not requested.

Third: we put the savings ranges in a table with a name on each row

Every savings opportunity is a percentage range applied to one of your spend lines. Your spend lines are yours. The ranges are not. So each range lives in a table with three required fields: the value, the basis, and who approved it. Published rows show a reviewed badge with the approver's name. Unpublished rows show an unreviewed placeholder badge. Both are visible. Mixed is the normal state.

Reviewed and unreviewed badges

As of this guide, every range in the table is an unreviewed placeholder. Our packaging studio is working through them. We would rather show you an honest amber badge than a confident green one.

Fourth: we stopped the tool from grading impossible inputs

This one we learned the hard way. See below.

The three times the tool was right and useless

Three times the arithmetic was correct and the output was wrong. The fix was never in the formula. It was in what we let the formula say.

A box smaller than the product was graded A

A user entered a product 21 cm tall and a box 14 cm tall. The size ratio came out at 0.67, which is under the 1.3 boundary for grade A, so the tool said A. Excellent fit. The box would not close.

What we changed: any ratio under 1.0 is an input error. The tool now stops, names both numbers, and refuses to grade until one of them is corrected. A grade on an impossible input is not a grade.

A carton that could not hold its contents was called well-packed

Same record. Six units at 38,955 cm³ each in a master carton of 138,600 cm³. Utilisation 169%. The finding read "your cartons are well-packed." Grade A. The units did not fit.

What we changed: utilisation above 100% is not a good grade. It is physical impossibility. It now blocks the calculation with a message saying the units do not fit and asking which measurement is wrong.

A copy error was narrated as an insight

Packaging weight was entered as exactly 1,100 g. Product weight was also exactly 1,100 g. Almost certainly someone typed the same number twice. The tool said: "Your packaging weight is 100% of your product weight. Lighter materials could reduce shipping costs." A sustainability insight, generated from a typo.

SETTINGS, B1 TO B8

B1
B2
B3
B4
B5
B6
B7
B8

ROW 11, COLUMNS A TO S: YOU TYPE THESE

COLUMNS T ONWARD: THE SHEET WORKS THESE OUT

T

How much space does the product take?

650 cm³
U

How much space does the box take?

1,200 cm³
V

How many times bigger is the box than the product?

1.85
W

Check 1: primary fit grade

C
X

How much space does the master carton take?

32,000 cm³
Y

How much of the carton is actually product?

45%
Z

Check 2: carton utilisation grade

D
AA

What does the carrier think the carton weighs?

6.4 kg
AB

What does the carton actually weigh, full?

5.68 kg
AC

Check 3: which weight are you billed on?

6.4 kg
AD

DIM flag, in words

DIM applies
AE

How many units a year?

18,000
AF

Annual spend on the primary box

$8,100
AG

Annual spend on master cartons

$1,650
AH

Annual spend on inserts

$1,080
AI

Check 4: total annual packaging spend

$10,830
AJ

Overall grade

D
AK

What might a right-sized carton save?

$330 a year at 20%

What we changed: when two inputs match exactly in a way that suggests a copy error, the message is "check this value, it matches X exactly." A question, not a finding.

Being correct and being useful are different tests. Most tools only run the first one. Run both, on every row, by hand, at least once.

Try it

The same four checks, running in this page. Nothing is saved, nothing is sent, no signup. It is prefilled with the illustrative candle, so it opens on grade D. Change the carton dimensions to 32 × 42 × 14 and watch utilisation climb and the DIM flag clear. Change B8 and watch the savings line move, because that line is yours.

Build note for the page: the calculator implements columns T to AK exactly as written above, with the settings block editable. Prefill with the row 11 values. No other numbers.

Do this tomorrow

Pick your top three SKUs by units. 5 minutes.

Measure one of each: product, box, master carton. Tape measure and kitchen scale. 15 minutes.

Open your last packaging invoice and pull four costs per SKU. 10 minutes.

Open a sheet, put the settings block in B1 to B8, and type the three rows into A to S. 10 minutes.

Paste the formulas from Step 3 into row 11 and drag down. 10 minutes.

Work one row by hand. 10 minutes.

One hour. Then look at two numbers: your carton utilisation, and whether DIM applies. If utilisation is under 55% and DIM applies, you have your answer, and it is a carton conversation, not a box conversation.

Plain English glossary

TermWhat it means
Primary packagingThe box the customer opens.
Master cartonThe shipping carton your 3PL receives, holding several units.
Size ratioBox volume divided by product volume. How much of the box is air.
UtilisationHow much of the master carton is product. Units times box volume, over carton volume.
Dimensional weightCarton volume divided by the carrier's divisor. What the carrier pretends the carton weighs when it is big and light.
DIM divisorThe number the carrier divides cubic centimetres by. On the rate card. Ask.
Billable weightThe bigger of actual and dimensional. You always pay the bigger one.
Internal vs externalSuppliers spec the inside. Carriers measure the outside. Use external for everything in this guide.
Per MPer thousand. $450 per M is $0.45 each.
FluteThe wave inside corrugated board. Different profiles trade cushioning against thickness and stacking strength. Have your supplier's engineer confirm any flute change.
Board downgradeA lighter board spec where the current one is stronger than the job needs.
Right-sizingChanging the box or carton to fit the product.
Insert consolidationFewer separate pieces in the box. Usually the fastest line to cut.
Reviewed / unreviewedWhether a savings range in our table has a named approver behind it, or is still a placeholder.
ROUNDUPSheet function that rounds up to a whole number. You cannot ship 124.3 cartons.
COUNTIFSheet function that counts cells matching a condition. Used to find the worst grade.

The one thing to take home

Nobody needs a packaging dashboard.

What you need is four measurements and four questions, asked before you reorder, not after: how much of this box is air, how much of this carton is air, is the carrier charging me for it, and what does the whole thing cost a year.

The arithmetic is not hard. The reason it does not happen is that the box came from one supplier, the carton from another, the freight bill from a third, and none of them has ever seen the other two invoices.

Put them on one sheet and the answer takes about four seconds.

We graded a carton that could not close as excellent. We have been doing this for 17 years.

Measure yours.

Built and broken and rebuilt by Move Supply Chain.