A container arrives with forty products and one freight bill. The bill is real. The split is a choice, and the choice decides which SKUs look profitable. A method that loads the freight onto the heavy items makes the light items look cheap. A method that loads it onto the expensive items makes the cheap items look profitable. The warehouse does not care. The P and L does.
The mistake is treating the allocation as arithmetic when it is a decision about what caused the cost. Ocean freight is priced by container, not by product, so the cost driver is the space and weight the product occupies in the container. A product that fills half the container caused half the freight, whether it is cheap or expensive. A product that weighs half the container caused half the freight, whether it is small or large. The driver is the constraint, and the constraint is usually space or weight, whichever the container hits first.
That is why a single driver rarely works. A shipment of dense, heavy items is weight-constrained, and weight is the right allocator. A shipment of bulky, light items is volume-constrained, and volume is the right allocator. A mixed container needs both, and the honest method is to allocate by the binding constraint for each product, not by one rule for the whole container.
Take a 40-foot container with a 7,000 dollar ocean freight bill, carrying two products. Product A is 500 units of a dense item, 10 kilograms each, 5,000 kilograms total, filling a third of the container. Product B is 200 units of a bulky item, 5 kilograms each, 1,000 kilograms total, filling two thirds of the container. The container is volume-constrained by B and weight-constrained by nothing, because the total weight is 6,000 kilograms against a payload of around 26,500 kilograms.
Allocate by weight and A takes five sixths of the freight, 5,833 dollars, or 11.67 dollars per unit, while B takes 1,167 dollars, or 5.83 dollars per unit. Allocate by volume and A takes a third, 2,333 dollars, or 4.67 dollars per unit, while B takes two thirds, 4,667 dollars, or 23.33 dollars per unit. The same container, the same bill, and the per-unit freight differs by a factor of three depending on the method. One of those answers is wrong for the business, and it is the one that allocates by the constraint that is not binding.
The right answer here is volume, because the container filled up on space long before it filled up on weight. Product B caused the container to be full, so Product B caused the freight. Product A's per-unit freight is 4.67 dollars, and Product B's is 23.33 dollars, and the margins should be judged on those numbers, not on the weight allocation that flatters B and punishes A.
Freight is one line. The landed cost per unit is the product cost plus freight plus duty plus insurance plus brokerage plus receiving, divided by units, and each line needs the same treatment. Duty is allocated by value, because duty is ad valorem. Insurance is allocated by value. Brokerage is usually a flat fee per entry, allocated by value or by units, and the choice matters less than the consistency.
The check is the margin. After the allocation, look at the per-unit landed cost for each SKU and ask whether the selling price covers it with the margin the business needs. If a SKU looks unprofitable under volume allocation and profitable under weight allocation, the SKU is not the problem. The allocation is, and the business is pricing on a number that flatters the wrong product.
And keep the method stable. Changing the allocation method quarter to quarter makes the margins incomparable, and a SKU that looks better this quarter may just have been allocated less freight. Pick the method that matches the binding constraint, document it, and use it until the shipment profile changes. Consistency is what makes the numbers comparable, and comparability is what makes them useful.
Related reading on this site: Demurrage and Detention: The Port Fees That Eat Your Margin, Freight Surcharges, Line by Line: Why the Invoice Beats the Quote, and The Merchandise Processing Fee, Line by Line.
By the cost driver that actually caused the freight, usually weight or volume, whichever the container hits first. A volume-constrained container should be allocated by volume. A weight-constrained one by weight. A single driver for a mixed container will misstate the per-unit cost.
Product cost, freight, duty, insurance, brokerage, and receiving, divided by units. Duty and insurance are allocated by value, because they are charged on value. Freight is allocated by weight or volume, depending on the binding constraint.
Because the same freight bill split by different drivers gives very different per-unit costs. In the worked example, allocating by weight instead of volume changed one product's per-unit freight from 4.67 dollars to 11.67 dollars. The method is a decision, not arithmetic.
Change it when the binding constraint changes, and document the change. A container that used to be weight-constrained and is now volume-constrained needs a new method. Changing it without documenting it makes the margins incomparable across quarters.