Landed Costs and Price Adjustments

Adding freight, brokerage and duties to goods you already received, correcting a supplier's price after the fact, and how Kassly splits the cost between stock on hand and goods already sold.

7 min read · Updated 28 Sep 2026

On this page

What goods really cost you is more than the supplier's price. The trucker, the customs broker and the Bureau of Customs all send their own bills, often days after the goods arrived. A landed-cost voucher adds those bills to the goods they belong to. A price adjustment does the same when the supplier itself corrects its price, for example a credit memo for an overcharge.

Vouchers are numbered LC-000001.

Landed costs need the Inventory Pro add-on. Vouchers are money from end to end, so they take a PO manager who can also see cost prices (Owner and Manager by default, or a custom role with Create / Submit / Cancel Purchase Orders and See Cost Prices).

Two kinds of voucher

Kind Who bills it Amount Use it for
Landed cost Any vendor: a trucker, a broker, the supplier Always more than zero Freight, trucking, brokerage, duties and taxes, insurance, handling
Price adjustment The purchase order's own supplier Negative or positive The supplier overbilled or gave a rebate (negative), or underbilled (positive)

Add the vendor under Inventory > Suppliers first if they aren't there. A trucker or broker is a supplier you never order goods from.

Vouchers go on purchase orders that are received or closed only. If a delivery is still coming in, wait until the order is finished (or close it short) and then add the freight.

A received purchase order never changes: its prices and its payable stay as they were. Corrections come through a price adjustment, and quantity mistakes through a supplier return.

Adding freight to a purchase order

  1. Open the received purchase order. In the Landed cost card, click Add freight (or Adjust price for a supplier's correction).
  2. Pick the vendor who billed you, the date, and their invoice or waybill number.
  3. Add the charges. One bill can carry several, such as freight plus insurance.
  4. Choose the receipts and lines the bill covers. Every line of the order is ticked to start with; untick the ones the bill doesn't cover. Add another received PO puts one truck's freight across several orders.
  5. Choose how to spread the total (see below) and check the allocation preview.
  6. Save draft to finish later, or Post.

All vouchers are listed under Inventory > Landed Costs.

Starting from the PO's estimate

If you noted an Estimated Freight on the purchase order, Add freight starts the voucher with one Freight charge for that amount and the same spread (by value or by quantity). Change the amount to what the bill actually says, add other charges, or delete it; nothing is posted until you Post.

Once posted, the Landed cost card on the PO shows the estimate, the actual landed freight (posted landed-cost vouchers only; price adjustments aren't freight) and the difference, so you can see whether your freight estimates are close.

Spreading the total over the lines

Method How it splits Good for
By value (default) In proportion to each line's value (quantity × unit cost) Most freight, and duties charged on value
By quantity In proportion to the units received Freight charged per piece or per kilo
Manual The amounts you type per line, which must add up to the total A bill that already says what each item cost

By quantity adds the lines' units together, so it warns you when they are counted differently (kilos on one line, pieces on another).

Amounts are rounded to the centavo. Any centavo left over from rounding goes to the biggest line, so the lines always add up to the total exactly.

Goods already sold: the split

Freight often arrives after some of the goods have been sold. Those units are gone, and their cost was already counted when they sold. So Kassly splits each line's share in two:

  • the part for units still in stock goes into the stock's value;
  • the part for units already sold goes straight to cost of goods sold.

To decide which units are still here, Kassly assumes you sell the oldest stock first (first in, first out). Whatever you have on hand today is taken to be the most recent deliveries.

Example. You receive 100 kg of flour on 1 January (delivery 1). By 14 January you have sold 150 kg, 50 kg more than was recorded as received, so your stock shows −50 kg. On 15 January 100 kg more arrive (delivery 2), which brings you back to 50 kg on hand. On 1 February you still have those 50 kg, and the trucker's bill for delivery 1 comes in.

Because the oldest flour sells first, all of delivery 1 is gone: the 50 kg still on the shelf are from delivery 2. So all of delivery 1's freight goes to cost of goods sold, and none of it to stock. Freight for delivery 2 would be split half and half: 50 of its 100 kg are still there.

(It would be wrong to say "50 kg are on hand, delivery 1 was 100 kg, so half of its freight stays in stock". Those 50 kg came on another truck.)

Some details:

  • On hand is counted across the whole business, every branch and warehouse together, and only where stock is above zero. A branch that has oversold (below zero) counts as zero.
  • Nothing in stock means the whole voucher goes to cost of goods sold.
  • Items that don't track stock always go to cost of goods sold.
  • Units you returned to the supplier aren't in stock, so their share goes to cost of goods sold too.
  • Each variant is counted separately.

The preview shows, for every line, what is still on hand from that delivery, and how much goes to stock and how much to cost of goods sold.

What posting does to your costs

It depends on your cost setting (see Inventory settings):

  • Automatic (moving average): the stock's share is spread over the units on hand. With 60 kg on hand at ₱20 and ₱300 of freight for those units, the cost becomes ₱20 + ₱300 ÷ 60 = ₱25. A price correction lowers the cost the same way, but never below ₱0; anything beyond that goes to cost of goods sold.
  • Manual: your product costs don't change. The voucher shows in the product's cost history so you can decide whether to update the cost yourself.

Either way, the split between stock and cost of goods sold is the same, and the product's cost history gets one entry per product.

Paying the bill, or getting money back

  • A positive voucher (freight, or a supplier that underbilled) is paid when you post it: Kassly records the payment as a procurement expense with the voucher number as its reference. It is not an operating expense, because the cost reaches your profit through stock and cost of goods sold, and it can't be edited from the Expenses page.
  • A negative voucher (an overcharge or rebate) issues a supplier credit, DM-000001, from that supplier. Refund it, apply it to their next order or write it off, like a credit from a return.

Mistakes

A posted voucher can't be edited, deleted or voided. To correct one, post another: a price adjustment with the difference, or a landed-cost voucher for freight you missed. Drafts can be edited or deleted freely.

What lands in your books

Voucher Entry Dated
Positive DR Merchandise Inventory (units in stock) and DR Cost of Goods Sold (units sold) / CR Accounts Payable When posted
Its payment DR Accounts Payable / CR Cash on Hand When posted
Negative DR Accounts Payable / CR Merchandise Inventory and CR Cost of Goods Sold When posted

The Profit & Loss includes the sold share in cost of goods sold for the period the voucher was posted, the same as the income statement in the books. Filtered by branch, it counts vouchers on that branch's deliveries; deliveries into a warehouse show in the whole-business view only.

Where to go next