Cost and margin
Give your products a cost so every quote line shows its margin, and know where that cost can come from.
Updated 23 September 2026
- Why
- A discount on a line with no cost behind it is a margin nobody can see.
- What
- A product's cost is the
costcore field, held in integer minor units beside its price. - How
- Load it with a cost column on import, or accept it from supplier prices when Source is on.
Set a product's cost
| Route | How |
|---|---|
| Import | Map a cost column (cost price, buy price, landed cost) on the Imports view. See importing products. |
| Supplier prices | On Suppliers' prices, select products and choose Accept as cost. The best active supplier price becomes the cost and the product records which supplier it came from. Needs Source and the engineer role or above. |
The products API and REST connections do not write cost, and the API never returns it.
Margin on a quote line
When a product line is added, the product's cost is copied onto the line. The line then shows its margin under the amount, as a whole percentage: gross margin on the price after the line discount, (price - cost) / price. A negative margin shows in the danger colour.
A line with no cost shows no margin, never 100%. Margin is never markup.
Changing a product's cost later does not rewrite quotes already raised: each line keeps the cost it was added with.
Related
- Where cost comes fromKnow every place a cost enters the platform, what each one costs and what happens when a figure is missing.
- Margin reportingRead margin by line, by service, by job, by customer and by month, from the one definition the whole platform uses.
- CostingKnow where the cost behind each margin comes from, and who can see it.