Skip to content
User Manual · Chapter 6 — Products, pricing, and costs

6.7 Prices — the price grid and how the winning price is chosen

Every price in the application lives in one place: the price grid. There is no price hiding on a document type, in a spreadsheet someone keeps, or in last month's invoice — when a document needs a price, the grid is asked, and the grid's answer follows rules you can inspect. The Prices page shows the grid in two views — Sales and Purchase — and each view manages only its own side of each row.

The rows. One row prices one product under a set of dimensions: the currency it is written in, the branch, the customer or supplier it belongs to (or their category — the price groups parties are filed under), the unit of measure it is expressed in, and a minimum quantity from which it applies. Any dimension may be left blank, and blank means applies generally: the row with everything blank is the product's base price, and every other row is a refinement of it for a narrower world — this branch, this customer, this currency, this volume. A row carries a sale price, a purchase price, or both; two rows may not claim the exact same set of dimensions.

How the winning price is chosen. When a document line asks, the grid answers in this order — and the order is the whole law:

  1. Currency class first. A row written in the document's own currency is a direct price and is charged as it stands. Direct rows outrank everything else. If no direct row applies, the general rows — written in your home currency — are converted at the document's own exchange rate: the price travels, the document's currency law (1.11) holds, and no figure is ever shown in the wrong currency's clothes.
  2. Most dimensions matched. Among the rows still standing, the one that matches the most of this document's facts wins: a price set for this customer beats one set for their category, which beats one set for the branch, which beats the base price — a specific promise outranks a general one, dimension by dimension.
  3. The largest band reached. If rows still tie, the one with the largest minimum quantity the line's quantity actually reaches wins — the 100-bag price applies at 100 bags, not at 99, and bands are open-ended upward.

The winning price is then expressed per the line's unit by the defined conversion (§6.6): priced per tonne, sold per bag, the figure on the document is per bag.

No row, no price — never a zero. If nothing in the grid applies, the answer is no price, and the document says so: on a foreign-currency document the price is left blank for the operator to enter, rather than filled with a plausible-looking figure in the wrong currency or an invented zero — a stored price of zero is refused by the grid itself. Lingering surprise at a price is always answerable: the Prices page carries a lookup — give it a product, a side, a party, a quantity — and it shows which row won and on which rung of the ladder, in words. "Why this price?" is a question with an address.

Snapshot: portal-v0-2026-11-10