Landed Costs: Freight, Duties & Fees on a PO
How SKUSavvy splits freight, duties, and fees across the units of a purchase order, when each cost reaches inventory, and how to correct one later.
What a Landed Cost Is
The price your vendor charges is rarely what a unit costs you. Freight, duties, taxes, and handling fees are paid on top of it. The landed cost is the product price plus that unit's share of those extra costs.
Before you start: turn on Enable cost tracking in Settings, under Inventory. Additional costs work either way, but the Avg Cost columns that show the result are hidden while cost tracking is off.
SKUSavvy stores the landed cost on the stock itself, not on a report. When a cost is applied, the inventory value of those units changes, and every outbound order that ships them reports the new cost of goods sold.
A $100 freight bill on 10 units adds $10 to each unit. The rest of this guide covers the two things that decide the outcome: how the $100 is split, and which units it is split over.
Add a Cost to a Purchase Order
To record a freight invoice, a duty bill, or a vendor credit, add a row to the Additional Costs card on the purchase order. Each row is one invoice, so the amounts on your PO match the paperwork you were sent.
Open the purchase order and find the Additional Costs card.
Select Add to create a row.
Enter a Name so you can recognize the invoice later, for example the carrier's invoice number.
Choose a Type: Freight, Duty, Tax, Fee, or Insurance. The type labels the cost for reporting and does not change the math.
Enter the Price, which is the total amount of the invoice, not a per-unit amount.
Choose an Allocation and an Apply to value. Both are covered in the next two sections.
Select Save.
Enter a negative Price for a vendor credit or discount. It is split the same way as a charge and lowers the cost of the units it reaches.
Entering costs during check-in
You do not have to go looking for the card. When you complete a shipment's check-in, SKUSavvy opens an Additional Costs window for that shipment so you can enter the carrier invoice while it is in front of you.
Rows entered there already belong to that shipment. Because the shipment is complete, they divide over its received units as soon as you save. Every row can still be edited or removed later, including after the stock is picked or shipped.
Allocation: How a Cost Splits
Allocation decides how one invoice is divided among the products it paid for. Pick the method that matches what drove the charge, so the products that caused the cost are the ones that carry it.
| Allocation | How it splits | Use it for |
|---|---|---|
By Value | In proportion to each line's value (price x quantity). Expensive products take more. | Duties, taxes, insurance, and most fees |
By Quantity | The same amount per unit, whatever the price or size. | Handling and per-item charges |
By Weight | In proportion to each line's weight (item weight x quantity). Heavy products take more. | Freight and inbound transport |
None | Not split. The amount stays on the order total and changes no unit's inventory cost. | Charges you do not want in inventory value |
Weights are converted to a common unit before a By Weight split, so a PO that mixes pounds and kilograms still divides correctly. An item with no weight set counts as zero weight and takes no share.
When in doubt, use By Value for duties and fees, and By Weight for freight.
Apply To: Which Units a Cost Covers
Apply to decides which units the invoice is divided over. A purchase order can arrive in several shipments, and each shipment usually has its own freight invoice, so this choice is what keeps the first delivery from paying for freight the second one caused.
| Apply to | Divides over | Reaches inventory |
|---|---|---|
Entire PO | The quantities ordered on the PO | At once, and again on each unit as it is received |
Shipment 1, Shipment 2, ... | The quantities received on that shipment | When that shipment's check-in is completed |
New shipment | The quantities received on a shipment that has not arrived yet | Opens the next shipment now, so its invoice can be entered in advance |
Use Entire PO for an invoice that covers the whole order, such as a duty bill for a container. Use a shipment for the invoice of one delivery. A PO that arrives twice with two freight invoices should carry one row per shipment.
Shipments are named in arrival order, so the second delivery on a PO is always Shipment 2, whatever happened to earlier ones.
When Each Cost Reaches Inventory
Entire PO costs apply immediately
The share per unit is fixed by the ordered quantities, so SKUSavvy can work it out before anything arrives. Added before receiving, the share is stamped on each unit as it is checked in. Added after receiving, the units already on hand are re-costed at once and their inventory value moves by the difference.
Shipment costs apply when you complete the check-in
A shipment cost divides over what that shipment actually received, and that number is not final until the check-in is closed. Until then, three things are true:
Inventory still carries the base cost, which is the line price plus any Entire PO share.
The order page previews the shipment's costs over what has been counted so far. The preview is labelled PROJECTED TOTAL and its rows are marked projected.
The API and your exports report the cost as zero, because inventory does not carry it yet.
Completing the check-in settles the invoice. Every unit that shipment received is re-costed, and your inventory value moves by the invoice amount.
Worked Examples
A short shipment, cost applied to the shipment
A PO for 10 units at $4.00. Shipment 1 receives 5 of them, with a $100 freight invoice applied to Shipment 1, By Quantity. The $100 divides over the 5 units received, so each unit lands at $24.00 and inventory holds $120.00.
The same PO, cost applied to the entire PO
Now the $100 divides over the 10 units ordered, so every unit carries $10.00 of freight. The 5 units on hand land at $14.00 each, and the remaining $50.00 reaches the other units when they arrive.
Two shipments, two invoices
Shipment 1 receives 5 units with a $100 invoice, Shipment 2 receives 5 with a $50 invoice. Shipment 1's units carry $24.00 each and Shipment 2's carry $14.00 each. Each delivery pays for its own freight, which is the reason to scope costs to a shipment.
By Weight, over what actually arrived
A PO holds 10 light units and 10 heavy units, and only the light ones arrive on Shipment 1 with a $100 By Weight invoice. All $100 lands on the light units, because a shipment cost only sees the units that shipment received. The heavy units take their share when they arrive with their own invoice.
Allocation methods compared
A PO for 5 widgets at $10.00 and 10 gadgets at $20.00, with a $100 freight invoice on the entire PO.
| Allocation | Widgets take | Gadgets take |
|---|---|---|
By Value | $20.00 ($50 of $250 in line value) | $80.00 |
By Quantity | $33.33 (5 of 15 units) | $66.67 |
Amounts that do not divide evenly are handled with the largest remainder method, so the parts always add back up to the exact invoice. $100 over 3 units is $33.333 each, and no stray cent is left on the order.
Correcting a Cost After the Stock Arrives
Add, change, or remove a cost at any time, including after the stock is received, picked, or shipped. SKUSavvy moves inventory value by the difference only, so a corrected invoice never charges you twice.
| What you do | What happens |
|---|---|
Change an amount after check-in is complete | The units are re-costed to the new amount, and inventory moves by the difference only. |
Delete a cost | The units return to what they carried before it. |
Edit a line's price or ordered quantity | Every cost on the order is split again against the new figures. |
Reopen a shipment | Its shipment costs go back to pending and its units return to the base cost. Completing the check-in again applies them over whatever was received by then. |
Receive a correction on a reopened shipment | The received quantity nets down, and the whole invoice spreads again over the units that stayed. |
Undo a check-in | The receipt and the cost it carried come out together. |
Receiving onto a shipment that is already complete is refused. Reopen the shipment first, then receive the correction.
Where the difference lands
Stock moves between the time you receive it and the time an invoice is corrected, so SKUSavvy looks for the units in this order:
The exact stock the receipt created: the same Bin, item, lot, and serial. If those units are still there, the whole difference lands on them.
The same item elsewhere in that Bin, such as another lot. Freight belongs to the Bin the delivery was put away to, so this comes before any wider search.
Anything in the destination Warehouse that holds the item: other Bins, pick batches, and packed outbound shipments. Packed units carry the change into the cost of goods sold of the orders that ship them.
Within a group the spread is levelling, not proportional. A cost being added raises the cheapest units first, and a cost being removed lowers the most expensive units first, so your cost records converge instead of drifting apart.
No unit's cost is ever pushed below zero.
The change to inventory value equals the change to the invoice, to the cent.
History is not rewritten. Picks, packs, adjustments, and counts keep the cost they recorded at the time.
Quantities never change, so a cost edit sends nothing to your sales channels.
Stock that already shipped
Removing or lowering a cost after the units shipped always succeeds. Those orders already recorded their cost of goods sold, and the stock you still hold gives back what it can.
Adding a cost when nothing in the Warehouse holds the item is refused, because there is no stock to carry it. Reconcile the item, or apply the cost to the entire PO instead.
Short Shipments and Close Out
An Entire PO cost divides over what was ordered. If the vendor never ships the rest, the share for undelivered units stays stranded on the order and never reaches inventory value or cost of goods sold. The units you hold are undercosted and your margin reads better than it is.
To fix that when you close the order, select the checkbox in the Close Out dialog: Rebalance entire-PO costs to the units that arrived instead of what was ordered.
Leave the checkbox clear and the costs stay divided over the ordered quantities, stranded share included. Close out is the only place SKUSavvy offers to rebalance for you, so the fix afterwards is to re-scope each cost row to a shipment by hand.
SKUSavvy converts every Entire PO cost into per-shipment costs, divided over the units each completed shipment actually received.
Ordered quantities are never changed, and the total of your cost rows stays the same. Only their scope changes.
The order records that its costs were rebalanced, and the discrepancy banner says so.
For example, a $20 cost on a PO for 10 units where only 5 arrived. Before rebalancing those units carry $2.00 each. After, they carry $4.00 each, and the full $20 is in your inventory value.
Over-received units share the cost, because the received quantity is the divisor. Items received that were never on the PO get nothing, because they are not order lines.
Rebalancing needs something to rebalance onto. If the PO received nothing at all, or the split cannot be computed against the received units, the close out is refused and your costs stay as they were. A PO with no Entire PO costs closes out normally and nothing is converted.
Cancelling a shipment
A shipment that already received items cannot be cancelled. Undo its check-in first, so the stock and its cost come out together.
Cancelling an empty shipment removes the costs scoped to it. They leave the order total with the shipment, and any share they had put into inventory comes back out. Entire PO costs on the same order are untouched, and no cost can be attached to a cancelled shipment.
Rules to Know
A line ordered at zero is not on the order
If a vendor cancels a line and you set its ordered quantity to 0, that line takes no share of any cost and is left out of every split. Units of it you already received keep the cost they were given.
Cycle counts stay out of the split
A count adjusts the quantity in a Bin and scales the value of the stock it counted. It never rewrites a receipt's landed cost. Units a count finds, meaning stock in a Bin that had no record of it, are valued at the Warehouse average rather than from a PO invoice.
If a count takes an item to zero and you then add a cost to the PO that supplied it, the cost has nothing to land on and is refused.
A PO created as already received
A PO can be created with received quantities and no stock moved into Bins, which is common when you are backfilling history. Its shipments have nothing in inventory to land on, so shipment costs on such a PO are refused. Apply the cost to the entire PO, or adjust the stock's cost directly.
One order at a time
Two people saving costs on the same PO at the same moment are queued, so your cost rows and your inventory value always agree. You may see a short pause when several rows are saved together.
Messages You May See
SKUSavvy refuses a cost it cannot apply correctly rather than applying half of it. When you see one of these, the cost row, the receipts, and your inventory value are all exactly as they were.
| Message | Cause | What to do |
|---|---|---|
Costs for delivery N cannot be allocated: no received quantity, weight, or value to divide by | The shipment received nothing, or the split is By Weight and every item weighs zero, or By Value and every price is zero. | Receive the shipment first, set item weights or prices, or change the allocation. |
Discount exceeds the line cost for SKU | A negative cost is larger than what the units carry, which would push a unit below zero. | Lower the credit, or spread it across the entire PO. |
No inventory holds SKU; reconcile it or remove the invoice row | The stock is gone, because it shipped, was counted to zero, or was deleted, and a cost is being added. | Reconcile the item, or apply the cost to the entire PO. |
Delivery N was recorded as received without moving stock into inventory | The PO was created with received quantities and no Bin movement, so the shipment holds no stock. | Apply the cost to the entire PO, or adjust the stock's cost directly. |
Delivery is cancelled | A cost is being attached to a cancelled shipment. | Attach it to an open shipment or to the entire PO. |
Nothing was received, so there is nothing to rebalance the costs onto | The close out rebalance was selected on a PO where no shipment received anything. | Close the order out without rebalancing. |
Default Landed Cost for Stock With No PO
Some stock arrives with no purchase order behind it, such as a cycle count that finds units in a Bin that had no record of them. Those units still need a value, so a count takes the first figure it can find:
The average cost of the item across other costed stock in that Warehouse.
The item Default Landed Cost.
The most recent per-unit cost recorded for the item.
Manual adjustments use the same default. When you add stock to a Bin that carries no cost, the Adjust Inventory form pre-fills the unit cost with the item Default Landed Cost, or with the most recent cost recorded for the item when there is no default.
Set Default Landed Cost on the item itself, or load it in bulk from the Import Default Landed Costs page, which you can reach from the search bar. The import matches on SKU, item barcode, or variant ID, and takes a per-unit amount. Leave the value blank to clear a default.
This is a fallback only. It never overrides a cost that a purchase order or an invoice produced.
On this page
- What a Landed Cost Is
- Add a Cost to a Purchase Order
- Allocation: How a Cost Splits
- Apply To: Which Units a Cost Covers
- When Each Cost Reaches Inventory
- Worked Examples
- Correcting a Cost After the Stock Arrives
- Short Shipments and Close Out
- Rules to Know
- Messages You May See
- Default Landed Cost for Stock With No PO