A landed cost adds the extra costs of getting goods to your warehouse - freight, customs duty, insurance, handling - to the value of goods you have already received. The supplier's invoice only covers the goods; the freight forwarder's invoice and the customs bill arrive later. A landed cost lets you spread those bills over the receipt lines they belong to, so the stock you still hold is valued at its true cost and the part that was already sold or written off is charged to cost of sales or to an adjustment loss.
It moves no quantity. Stock on hand stays the same; only the value (and therefore the cost per unit) changes.
Typical users: purchasing and inventory managers who receive the forwarder's and broker's invoices; owners and SolaStock Administrators. Accountants review the resulting entry in SolaCount.
Where to find it
| Screen | How to open it | URL |
|---|---|---|
| Landed cost list | Sidebar Purchasing → Landed Costs | /inventory/landed-costs |
| New landed cost | New landed cost (top-right of the list) | /inventory/landed-costs/new |
| Landed cost page | Click a number | /inventory/landed-costs/{id} |
| Edit a draft | Edit draft (top-right of a draft) | /inventory/landed-costs/{id}/edit |
| Turn off or on for the organization | Settings → Landed costs card | /inventory/settings |
The page can be opened directly from the address bar or refreshed at any time.
Availability. Landed costs follow your plan. The sidebar item appears only when landed costs are available to the organization. Where the plan does not include them, the page shows Landed costs are not in your plan: "Landed costs are available from the SolaStock Professional plan. Upgrade the plan to add freight, duty and insurance to received stock." That wording is accurate: landed costs are included in the Professional, Premium and Enterprise plans. Other notices you may see in place of the screen:
| Notice | Meaning |
|---|---|
| Landed costs are turned off | An administrator turned them off for the organization ("They can be turned on again in Settings."). Existing documents stay readable; the menu item stays as long as documents exist. |
| Landed costs are not available right now with a reason | "We could not verify your plan right now. Try again in a few minutes.", "No active SolaStock subscription was found for this organization.", "Your SolaStock subscription has expired. Renew it to use landed costs.", "Access to SolaStock is suspended for this organization.", "Your SolaStock subscription is not active. Check its status with your administrator." or the generic "We could not confirm that your plan includes landed costs. Contact your administrator if this continues." |
Permissions.
| What you do | Permission |
|---|---|
| See the list and documents | View stock balances |
| Create or edit a draft, post, reverse | Create / post / reverse stock adjustments |
| Turn landed costs off or on | Manage inventory settings |
| Choose the clearing account (connected organizations) | Connection management and accounting review permissions together |
Owners and SolaStock Administrators have all of them. Inventory Managers, Warehouse Managers and Operators can view but, without the adjustment permission, New landed cost is greyed out with "You do not have permission for this action." Landed costs are limited to warehouses you are assigned to.
Screen tour: the list
Title Landed costs, with the note "Add freight, duty and insurance to goods you have already received. Stock still on hand is revalued; the share already sold or written off goes to cost of goods sold or adjustment loss."
Header: New landed cost. The list shows the latest 50.
| Column | Meaning |
|---|---|
| Number | LC-000001, ... assigned automatically. |
| Date | The landed cost date. |
| Supplier bill reference | Your note, for example the forwarder's invoice number, or —. |
| Allocate by | Receipt value, Quantity or Weight. |
| Status | Draft, Posted or Reversed. |
| Total (base) | The total cost in your base currency. |
| Added to stock | The part added to stock still on hand (— for drafts). |
| To cost of sales / loss | The part that goes to cost of goods sold or adjustment loss because the goods are already gone (— for drafts). |
Empty state: No landed costs yet - "Create one after posting the goods receipt the freight, duty or insurance belongs to."
Statuses
| Status | What it means | Quantity | Valuation | Accounting |
|---|---|---|---|---|
| Draft | Saved. You can edit it and check the allocation preview. | No change. | No change. | None. |
| Posted | The cost has been spread. Locked. | No change. | Stock on hand is revalued (FIFO layer or average cost); the consumed share is booked to cost of goods sold (shipped units) or adjustment loss (units adjusted out or lost in a count). | When connected, one landed_cost.posted event creates the SolaCount journal. |
| Reversed | Undone by an exact opposite revaluation. The number of the reversal and your reason are shown. | No change. | The revaluation is undone. | The inverse journal. |
A draft that can never be posted (for example allocation by weight on an item without a weight) is reported when you save it, not when you post.
Create a landed cost
-
Open Purchasing → Landed Costs, click New landed cost.
-
If you are connected to SolaCount and the clearing account is not chosen yet, the form shows Set up landed costs: choose the clearing account (see Connected organizations below). You can still save drafts.
-
Fill the header:
Field Required Rules / defaults Notes Date Yes Defaults to today. The accounting date of the entry. Supplier bill reference No Up to 120 characters. Placeholder e.g. the freight forwarder's invoice number. Allocate by Yes Receipt value (default), Quantity, Weight. How the total is divided among the selected lines. Weight uses the item's Weight from Items times the received quantity; an item without weight cannot be used: "Item X has no weight. Enter the item weight or allocate by value or quantity." Currency Yes Connected: a list of your base currency and the currencies enabled in SolaCount. Standalone: a three-letter code. Exchange rate Yes Greater than 0; 1 and locked when the currency is the base currency. Connected: "1 AED = rate x USD (same convention as SolaCount)". Standalone: "Units of this currency per 1 unit of your stock valuation currency. Use 1 for the same currency." Base amount = amount divided by the rate. Notes No -
Costs - one row per bill component. Click Add cost for more rows, Remove to delete a row (one row must stay).
Column Required Rules Notes Type Yes Freight, Duty, Insurance, Other. Description No Up to 255 characters. Amount Yes Greater than 0, up to 4 decimals. In the document currency. Rows with no amount are ignored. Under the table Total (AED) (the currency code you chose, for example Total (USD)) and Total (base) are calculated for you.
-
Receipt lines - "Select the receipt lines that share these costs." Search by GRN number (Search goods receipts; the latest 30 posted, not-reversed receipts are shown). Tick the lines. The table shows Receipt (number and date), Item, Warehouse, Quantity (accepted), Receipt value and Weight. The counter shows how many lines are selected. Only posted receipt lines that you can access and that have accepted quantity can be selected, and an item that uses standard costing cannot ("Landed costs can be applied only to FIFO or average-cost items.").
-
Choose the action at the bottom:
- Save draft - "Draft saved."
- Save & post - saves, then asks "Post landed cost?" ("Posting writes stock movements to the inventory ledger and locks this document. It cannot be edited afterwards.") and posts it: "Landed cost posted." If saving worked but posting was refused, you stay on the saved draft, so the next click updates it instead of creating a second one.
- Cancel returns to the list.
The landed cost page
Header: the number and status badge; Edit draft on a draft.
- Connection notice (connected organizations) or the opt-out notice.
- Summary: Date, Supplier bill reference, Allocate by, Currency with Exchange rate, Total, Total (base), and once posted Added to stock and To cost of sales / loss, Reversal (reversal number and reason), Notes.
- Costs: Type, Description, Amount, Total (base) per row.
- Allocation preview (draft) / Receipt lines (posted): per receipt line Receipt, Item, Warehouse, Quantity, Allocated, then how the allocation splits: Added to stock, Cost of goods sold, Adjustment loss. A draft that cannot be posted shows This draft cannot be posted yet and the reason.
- SolaCount journal: the events created for the document (Number, Event, Status, Date). Empty: "No SolaCount journal: this organization uses SolaStock on its own, or the journal is not created yet." The note explains the entry: "Dr inventory (on hand) + Dr cost of goods sold / adjustment loss (already used) / Cr landed cost clearing. Code the supplier's freight bill to the same clearing account so it nets to zero."
- Actions: Post (draft) and Reverse (posted, red). Reversing asks for a Reason of at least 3 characters (up to 500).
How the cost is spread
- By line. The base total is divided over the selected receipt lines by the method you chose. The division uses the largest-remainder method, so the lines always add up to the cent to the total (a tie goes to the earlier line).
- By what happened to the goods. For each receipt line SolaStock looks at what has happened to the received units:
- Units still on hand: the amount is added to their value. For a FIFO item it goes into the receipt's cost layer in proportion to the units remaining in it; for an average-cost item it raises the item's value in that warehouse and therefore its average cost.
- Units already shipped: that share is Cost of goods sold.
- Units adjusted out or lost in a stock count: that share is Adjustment loss.
- Not supported (nothing is posted and you see the reason): units transferred to another warehouse ("A landed cost cannot yet follow transferred stock, so nothing was posted."), units that left through a supplier return or another document without a reviewed accounting destination, a receipt whose cost history cannot be traced exactly, or an allocation that cannot be split within the rounding tolerance.
Reversing
Reverse undoes the revaluation exactly, and a SolaCount inverse journal follows. It is refused when the revalued stock has moved since: "The revalued stock has moved since this landed cost was posted, so an exact reversal is no longer possible. Post a correcting landed cost instead." Amounts must be greater than 0, so a landed cost cannot be posted as a negative correction. Reverse a wrong landed cost while the stock is still untouched; if the stock has already moved, book the difference in SolaCount.
Connected organizations
When SolaStock is connected to SolaCount, a posted landed cost creates a journal that credits a Landed cost clearing account. You code the forwarder's bill to the same account in SolaCount, so the two cancel out.
- Until a clearing account is chosen, posting is refused with "Set up landed costs: choose the clearing account. Posting to SolaCount needs a reviewed landed cost clearing account; your draft is saved and nothing was posted." Drafts always work.
- The panel Set up landed costs: choose the clearing account lists suitable SolaCount accounts (asset or liability, active, postable; one is marked recommended). Pick one under Landed cost clearing account and click Save clearing account. Saving posts nothing and changes no stock value. Afterwards the panel reads "Landed costs are ready to post to SolaCount." with Clearing account: code · name.
- Choosing the account needs both connection management and accounting review permissions. Others see "Posting is waiting for setup. A connection manager who can review accounting roles must choose the landed cost clearing account. You can keep saving drafts."
- The account must be different from the inventory account, active and postable, and not already used for another role: "The landed cost clearing account must be different from the inventory account.", "Choose an active, postable SolaCount asset or liability account for landed cost clearing.", "This account is already bound to another SolaCount account role. Choose a dedicated landed cost clearing account." Once reviewed it cannot be swapped without a connection review ("A different landed cost clearing account is already reviewed for this connection.").
- If other required accounts are missing the panel says "Missing SolaCount account mappings: ..." or "Posting is waiting for the SolaCount connection review: some account mappings are missing."
- A currency must be the base currency or enabled in SolaCount: "Currency USD is not enabled in SolaCount for this organization." A cost in the base currency must use rate 1. A draft saved under a different connection state must be saved again before posting.
- When you are not connected there is no journal: the revaluation is local only.
Turning landed costs off
Settings → Landed costs shows "Landed costs are on: they are included in your plan." (or the not-in-plan or turned-off text). With Manage inventory settings you can tick Turn off landed costs for this organization. This hides the menu and refuses new documents only. "If landed costs were already recorded, the menu stays so their history remains readable. It posts nothing, and posted landed costs and stock values stay as they are." Untick to turn them on again.
How it connects
- Goods receipts: the source of the lines. See Goods Receipts; a reversed receipt cannot carry a landed cost.
- Valuation: Current Stock and the valuation reports use the new value. The "as at a date" inventory valuation report includes the on-hand share of landed costs posted up to that date and ignores the share booked to cost of sales; see Reports.
- SolaCount: event
landed_cost.posted/landed_cost.reversed; see SolaCount. - Purchase price differences: a supplier bill that differs from the receipt is handled by SolaCount's bill matching; landed costs are for costs that are not on the supplier's goods invoice.
Worked example 1: freight and duty on a mixed receipt
Al Noor Trading LLC received GRN-000031 into Dubai Main: 100 boxes of PAP-A4 (A4 paper box, weighted average) at AED 12.00 = AED 1,200.00 and 50 cartridges of TON-55 at AED 40.00 = AED 2,000.00. Before the freight bill arrived, 40 boxes of paper were shipped.
The forwarder's invoice FWD-7741 shows freight AED 320.00 and customs duty AED 160.00.
- Mariam (owner) opens Landed Costs → New landed cost: Date 2026-10-11, Supplier bill reference
FWD-7741, Allocate by Receipt value, Currency AED, rate 1. Costs: Freight 320.00, Duty 160.00; Total (base) 480.00. She searchesGRN-000031and ticks both lines (receipt values 1,200.00 and 2,000.00). - The preview allocates AED 180.00 to the paper and AED 300.00 to the cartridges (480 x 1,200 / 3,200 and 480 x 2,000 / 3,200). For the paper: Added to stock 108.00 (60 boxes still on hand) and Cost of goods sold 72.00 (the 40 shipped). The cartridges are all on hand: Added to stock 300.00.
- Save & post confirms. The result: paper 60 boxes, value 720.00 + 108.00 = AED 828.00, average cost 13.80 (was 12.00); cartridges 50 units, value AED 2,300.00, average cost 46.00 (was 40.00). Added to stock on the document is 408.00 and To cost of sales / loss 72.00.
- Connected: SolaCount posts Dr Inventory 408.00, Dr Cost of goods sold 72.00, Cr Landed cost clearing 480.00. The accountant codes the AED 480.00 forwarder and broker bills to the same clearing account, which nets to zero.
Worked example 2: freight billed in US dollars, allocated by weight
Receipt GRN-000044 at Jebel Ali: 10 steel shelves SHF-180 (18 kg each, AED 210.00 each) and 40 plastic crates CRT-40 (2.5 kg each, AED 15.00 each). The forwarder bills freight of USD 1,000.00. The base currency is AED and USD is enabled in SolaCount; the rate is 0.272294 (1 AED = 0.272294 USD).
- Currency USD, Exchange rate 0.272294, Allocate by Weight, one Freight cost of 1,000.00. Total (base) = 1,000.00 / 0.272294 = AED 3,672.50.
- The weights are 10 x 18 = 180 kg and 40 x 2.5 = 100 kg, 280 kg in all. Shelves receive 3,672.50 x 180 / 280 = AED 2,360.89; crates AED 1,311.61 (the two add up to 3,672.50).
- Nothing has been sold, so everything is added to stock: shelves value 2,100.00 + 2,360.89 = AED 4,460.89 (about 446.09 each); crates 600.00 + 1,311.61 = AED 1,911.61 (about 47.79 each).
- Two days later the owner finds the forwarder billed the wrong shipment. She opens the posted landed cost, clicks Reverse, enters Billed to the wrong shipment and confirms. Stock values return to 2,100.00 and 600.00; in SolaCount the inverse journal is posted. Had the shelves been sold meanwhile, the reversal could be refused as above and she would correct the difference in SolaCount instead.
Tips and common problems
| Problem | Cause | Fix |
|---|---|---|
| No Landed Costs item in the sidebar. | Not in your plan, or turned off with no documents. | See Availability; a Settings administrator can turn it on again. |
| New landed cost is greyed out. | You lack Create / post / reverse stock adjustments, or landed costs are turned off. | Ask an administrator. |
| "Receipt line #N is not a posted, unreversed receipt line you can access." | The receipt is a draft, reversed, or in a warehouse you are not assigned to. | Post the receipt first, or pick another line. |
| "Item X has no weight." | Allocation by weight needs item weights. | Enter weights in Items, or allocate by value or quantity. |
| "The selected lines have no value, quantity or weight to allocate the cost by." | The chosen method gives a zero basis. | Use another method or lines. |
| Posting says the clearing account is missing. | Connected, but the clearing account was never chosen. | A user with connection management and accounting review permissions completes Set up landed costs. |
| The effect is smaller than expected. | Part of the stock was already sold; that share went to cost of goods sold. | Check Cost of goods sold in the preview. |
| Nothing was posted: transferred stock. | Part of the receipt was moved to another warehouse. | Not supported yet; book the cost in SolaCount, or reverse the transfer first. |