Skip to main content

Add landed costs to a purchase order

Landed cost is the true cost of getting stock onto your shelf — the supplier's price plus the freight, customs, duty, and brokerage you pay third parties to import it. In SKU.io you record each of those third-party invoices as a landed cost bill against the purchase order (PO) and choose how to spread it across the PO's lines.

SKU.io then lifts each product's per-unit cost so that:

  • the FIFO layers (First In, First Out — the dated cost buckets SKU.io stacks up as stock arrives, and draws down oldest-first when you sell) created at receipt, and
  • the COGS (Cost of Goods Sold — the cost you report against a sale) you record when you sell

both reflect what the goods actually cost you, not just the sticker price.

This guide covers adding a landed cost manually, extracting one from a PDF, choosing how the cost is spread across lines, and where these costs surface.

Landed cost vs. the price on the PO

The supplier's price already sits on the PO. A landed cost is the extra import spend billed separately by someone else — a freight forwarder, a customs broker, a carrier. Adding it here is what turns "$8.00 a unit from the supplier" into "$9.20 a unit on my shelf."

The Add Landed Cost Invoice form — supplier, total amount, and the Proration Method that decides how the cost is distributed across the PO's lines

Before you begin

  • You need the Update purchase orders permission. The Landed Cost and Upload Invoice (OCR) buttons appear on a saved PO.
  • Landed costs attach to a PO that already exists — you add them from the PO detail page, not while first creating the PO. You can add them at any status, including after the PO is received or closed, because freight and customs invoices usually arrive later.
  • The vendor on a landed cost invoice must be a service-type supplier (a freight forwarder, customs broker, carrier, and the like). A goods supplier can't be billed this way — SKU.io rejects it with the message "Landed cost bills can only be billed by service providers. For goods suppliers, add the charge as a cost line on the purchase order." If the carrier isn't in your supplier list yet, the editor lets you create it inline.
  • The examples below use PO-DOCS-0001 (supplier Acme Supplies, destination Main Warehouse).

Where landed costs live

Open the purchase order from Orders → Purchase Orders, then open the Lines tab. Above the grid, a Jump to: row gives you three in-page anchors:

AnchorWhat it holds
Product LinesThe products you ordered.
Cost LinesCharges the goods supplier itself puts on the order (added as PO lines, not landed cost bills).
Landed CostsThe third-party freight, customs, and duty bills covered in this guide.

Click Landed Costs to scroll to the section. Its header reads "Landed Costs — Third-party costs (freight, customs, duties) allocated to PO line items" and carries a count chip once bills exist.

Cost line or landed cost?

A delivery charge printed on the goods supplier's own invoice belongs on the PO as a cost line (edited in the grid — see Edit a PO and its line items). A separate invoice from a freight forwarder or customs agent belongs here as a landed cost bill. Same money, different source — and SKU.io keeps them apart so you always know who you owe.

Add a landed cost manually

Use this when you have the freight or customs figures and want to key them in.

  1. In the Landed Costs section, click Landed Cost (or Add Landed Cost from the empty state). The Add Landed Cost Invoice editor opens, with the PO number and supplier shown in the header (for example, "PO: PO-DOCS-0001 — Acme Supplies").

  2. Under Invoice Details, set the Supplier. Search your service suppliers, or type a new name and pick New: … to create the carrier inline.

  3. Enter the Invoice Number and Invoice Date (both required). Total Amount is calculated for you from the line items below and can't be typed.

  4. Set the Currency if the invoice isn't in your base currency. When you pick a non-base currency, a Rate field appears so you can record the exchange rate.

  5. Choose a Proration Method — how the invoice total is spread across the PO's product lines. See Choose how the cost is spread.

  6. Under Line Items, describe what the invoice charges you for. Each row has:

    FieldNotes
    DescriptionWhat the charge is (for example, "Ocean freight").
    QuantityHow many of this charge.
    AmountThe unit amount for the charge.
    Nominal Code (optional)The accounting ledger code this cost posts to (also called a GL / general-ledger account code) — the label your finance team uses to bucket spend, for example, 5000 – Freight In.
    Cost Category (optional)A grouping you can create inline (for example, "Freight", "Customs").
    Tax Rate (optional)Applied to the line.
    TotalComputed for you.

    Click Add Item for more rows; the Subtotal and the header's Total Amount update as you type. At least one line is required.

  7. If you picked Manual proration, complete the Manual Allocation table (see Split a cost by hand).

  8. Click Save Invoice.

What you'll see: SKU.io creates the bill, links it to this PO, spreads the cost across the lines by your chosen method, and returns you to the purchase order. The new bill appears in the Landed Costs table, and its amount rolls into Total Landed at the top of the section.

The Save Invoice button stays disabled until…

…the invoice has a supplier, an invoice number, a date, and at least one valid line — and, for Manual proration, until the whole total is allocated. If the button won't enable, one of those is missing.

Upload a landed cost invoice with OCR

If you have the freight or customs invoice as a PDF, let SKU.io read it for you instead of keying it in. OCR (Optical Character Recognition) is the technology that turns the text in a scanned or PDF document into data SKU.io can fill the form with.

  1. In the Landed Costs section, click Upload Invoice (OCR).
  2. In the Upload Landed Cost Invoice dialog, select the PDF (freight, customs, brokerage, or any other ancillary import bill). PDF only, up to 10 MB.
  3. Click Upload. SKU.io reads the document in the background — you'll see "Invoice uploaded — extraction is processing," and you can follow it in the job tray.
  4. When reading finishes, SKU.io opens the review screen for the draft it created, with this purchase order already pre-selected as the target and its line items matched to cost categories by keyword where it can. Check the extracted lines and amounts, then confirm to create the bill against the PO.

What you'll see: because the bill is created against the PO you started from, the resulting landed cost appears in the same Landed Costs section once you finish the review. The draft is also visible in your document inbox, alongside scanned supplier invoices and credit memos.

Choose how the cost is spread

Proration (also shown as allocation) means dividing one invoice total across several PO lines so each line carries a fair share of the cost. The Proration Method decides how that split is calculated. Pick the basis that best reflects what actually drives the cost:

MethodHow it splits the totalBest for
Cost Based (default)In proportion to each line's extended value (unit cost × quantity). Higher-value lines absorb more.A catch-all when higher-value goods should carry more cost.
Quantity BasedBy units — every unit carries the same share, regardless of price.Charges that scale with piece count.
Weight BasedBy each line's total weight (product weight × quantity).Freight billed by weight. Products need a weight on file.
Volume BasedBy each line's total volume (length × width × height × quantity).Freight billed by cube. Products need dimensions on file.
Revenue BasedBy each line's expected revenue.Spreading cost toward your best-selling stock.
Equal DistributionSplit evenly across the lines.A quick, even share when nothing else fits.
ManualYou type the exact amount for each line yourself.An invoice that names specific lines or amounts.

Whatever you choose, SKU.io divides the total across the PO lines and uses each line's share to lift its landed unit cost. For how that uplift flows into FIFO layers and COGS at receipt, see How a PO becomes inventory.

A worked proration example

Say PO-DOCS-0001 has two product lines, and a freight forwarder bills you $300 for ocean freight. You pick Cost Based proration (the default), so the freight splits in proportion to each line's value.

LineUnitsUnit costLine valueShare of $300 valueFreight allocated
Line A100$7.00$700 (70%)70% × $300+$210.00
Line B100$3.00$300 (30%)30% × $300+$90.00
Total$1,000100%$300.00

Now watch the freight lift each landed unit cost:

  • Line A: $210 ÷ 100 units = +$2.10 per unit → landed unit cost rises from $7.00 to $9.10.
  • Line B: $90 ÷ 100 units = +$0.90 per unit → landed unit cost rises from $3.00 to $3.90.

The higher-value line absorbed the larger share ($210 vs $90) because Cost Based splits by line value, not by units. Had you chosen Quantity Based instead, both lines carry 100 of the 200 units — so each would take exactly $150, lifting every unit by $1.50 regardless of price.

The uplift locks in at receipt

The landed unit cost is what gets baked into your FIFO layers when you receive stock against the PO — and that's the figure your COGS reports at sale. Add or fix a landed cost bill before receiving whenever you can; correcting cost after stock is received and sold is far messier than getting it right up front.

Split a cost by hand

When you pick Manual, a Manual Allocation table lists the PO's lines with their product, SKU, quantity, and line amount, plus an Allocation field per line. Type the amount each line should absorb. Two shortcuts help:

  • Distribute Evenly spreads the invoice total equally across the lines.
  • Clear All resets every allocation to zero.

A banner tracks your progress:

Banner stateMeaning
Remaining to allocateYour allocations fall short of the invoice total.
Over-allocated byYour allocations exceed the total.
"All amounts allocated correctly!"The allocations match the total — you can save.
You can't save a manual landed cost until the allocations add up to the invoice total

If the banner still reads Remaining to allocate or Over-allocated by, Save Invoice stays disabled. Use Distribute Evenly as a starting point, then adjust individual lines until the banner turns green.

Review and manage landed costs

Once a PO has landed costs, the Landed Costs section shows a table with one row per bill:

ColumnWhat it shows
Invoice #The bill's invoice number — click it to open the editor.
VendorThe service supplier you're paying.
DateThe invoice date.
Line ItemsA short summary of the bill's line descriptions.
AllocationThe proration method used (for example, Cost Based).
% AllocatedHow much of the bill has been spread onto PO lines.
TotalThe bill's total amount.

Above the table, Total Landed sums every landed cost bill on the PO, alongside the invoice count.

  • Edit a bill — click its Invoice # (or the row) to reopen it as Edit Landed Cost Invoice. Change the header, lines, proration method, or manual allocations, then Save Invoice. A bill can only be opened from the PO it belongs to; a bill that isn't linked to this PO returns "not found."
  • Delete a bill — click the delete icon on its row.
Deleting a landed cost can't be undone

The confirmation dialog names the invoice — "Are you sure you want to delete …? This action cannot be undone." Confirming removes the bill and backs its cost out of the landed total. There is no recycle bin; you'd have to re-enter the invoice from scratch.

When no landed costs exist yet, the section shows an empty state — "No landed cost invoices" — that prompts you to upload a freight or customs invoice for OCR extraction or add one manually.

Landed costs on an inbound shipment

A PO's goods can arrive in more than one shipment, and freight is often billed per shipment. For that reason SKU.io also lets you attach a landed cost bill to an inbound shipment, not only to the PO as a whole — which is why a landed cost can appear in two places. The mechanics are the same (a service supplier, line items, a proration method, allocations onto the underlying PO lines), but the entry point is the shipment.

A shipment-level bill still spreads onto the same purchase order lines, so the two approaches don't double-count as long as each invoice is entered once.

Preview the uplift before you receive

Before you receive, the shipment offers a per-line landed-cost preview that sums every bill attached to it and projects the resulting per-unit cost uplift — a handy way to sanity-check your numbers before the receipt locks the cost into inventory. See Receive stock against a PO.

Next steps

Last verified: