Rounding
This setting is located in the System module. The setting is intended for entering rounding rules for numeric values. It contains blocks for cost price rounding, currency rate rounding, amounts rounding in registers, as well as default rounding values.
Where to find it: Modules → System → Settings → Rounding
Each block of the setting is one rule of four fields. The same rules round amounts in documents, in windows and in reports. Each company has its own setting. Everyone can view it, but only a role that is allowed the Can change Rounding action can change it (not allowed by default).
Where each block applies
- by default — everything that has no separate block below: prices, the row amounts and totals that document windows calculate, the invoice value in the base currency, transactions, the balance store, numbers in reports. A numeric window field without a rule of its own is rounded by this one.
- Cost — the value of goods: the goods receipt row amount; the price without and with VAT in vendor invoice and purchase order rows (in a vendor invoice, after the row's VAT code or VAT amount changes, also the row amount and row VAT); the purchase order row freight; the cost of invoice rows on posting; the cost total of a return to vendor. In shipments, stock movements and returns to vendor this rule only sets how many decimals a row's cost shows: the cost itself is calculated to 5 decimals — like the unit cost in a goods receipt and the value of stock batches, regardless of the setting.
- The Invoices tab:
- Invoice sum — the invoice total wherever a debt is calculated from it: the debt in the Open Invoices register and its value in the base currency, the prepayment offset in the invoice transaction, splitting a payment between open invoices, debt reports. A credit note reduces the debt's base-currency value by this rule and the remainder in the currency exactly. In the invoice print form the total, the VAT and the amount without VAT follow this rule. An invoice whose total is zero by this rule is not posted ("The document total is zero"). In the Invoices, Vendor Invoices, VAT Invoices Issued and VAT invoices received windows — how many decimals the totals show; the window itself calculates the total by by default, and posting an invoice recalculates it from the rows, not by this rule.
- Invoice sum by row — row amounts. In the Invoices, Vendor Invoices, VAT Invoices Issued, VAT invoices received and Contracts windows, the amount and VAT of the row you have just changed are rounded once more by this rule after the calculation; these columns show as many decimals. Posting an invoice that updates stock rounds by it again the amounts of rows that take goods out of stock, and a document of the Sales Orders register rounds its row amounts by it when it is confirmed. In the invoice print form the amount, VAT and amount without VAT of each row follow this rule.
- The Worksheets tab:
- Work sheet sum — the total in the worksheet window (the window shows as many decimals as by default has); in the print form — the total, and also the repair amount and the amount to pay of the service order.
- Work sheet sum by row — the row amounts in the worksheet window (rounding and how many decimals they show), and in the print form — the amount, VAT and amount without VAT of each row.
- Fixed Assets — the depreciation amounts posted by the Asset Depreciation service.
- Exchange Rates — the currency rate in the rate fields of documents, and also a price converted into another currency in price list reports.
- Dimensions — the weight, volume, width, height and depth in an item card: the window rounds them by this rule on input.
Quantity is not rounded by the setting: the window and the server reduce it to 5 decimals, and tables and reports show it to 5 decimals (and with no fewer decimals than by default has in Decimal). The same holds for a quantity a vendor invoice derives from an entered row amount (amount ÷ price incl. VAT): 5 decimals, not the Cost rule — an amount of 400 at a price of 300 gives a quantity of 1.33333, not 1.33.
Field descriptions
-
Decimal — how many decimal places to round to. A new company gets 2 (rounding to hundredths, 0.00) in every block except Exchange Rates (4) and Dimensions (3). A negative value rounds the part before the decimal point: −1 to tens (19 → 20), −2 to hundreds (149 → 100).
-
Step — 0: to a whole unit of the last digit; 5: to multiples of 5 units of the last digit (with 2 decimals, to 0.05: 1.08 → 1.10, 1.03 → 1.05).
-
Mode — what to do when the value lies exactly halfway between two neighbours (2.5 lies between 2 and 3). In every other case the value simply rounds to the nearest one (2.3 → 2, 2.7 → 3), and the mode does not matter — except for Discard.
-- Half up: 2.5 → 3
-- Half down: 2.5 → 2
-- To even: to the neighbour that ends in an even digit: 2.5 → 2, 3.5 → 4
-- To odd: to the neighbour that ends in an odd digit: 2.5 → 3, 3.5 → 3
-- Discard: the extra digits are simply dropped, always towards zero: 2.7 → 2, −2.7 → −2
-
Direction — what "up" means for negative amounts. Positive amounts are not affected, and it matters only for an exact half in the Half up and Half down modes: −1.1 → −1 with either direction.
-- Up mathematically: "up" is towards the larger number, i.e. towards zero for negatives. −2.5 with Half up → −2.
-- Up by module: "up" is away from zero: a negative value rounds like a positive one, only with a minus sign. −2.5 with Half up → −3. With this direction a return or a credit note mirrors the invoice: 2.5 and −2.5 give 3 and −3.
After changing the rule
A new rule applies to what is calculated after the setting is saved (a document window that is already open takes it after it is reopened). What is already written stays on the old rule — including the fast-balance store from which the Nominal Ledger Report and the Analytical Balance take the opening balance of a period. If you changed the default rule, run the Rebuild Object Values service: otherwise an account's balance in the Nominal Ledger Report for the same day will depend on the report's start date.
Typical situations
Amounts must be multiples of 5 cents. Decimal 2 and Step 5 in the block you need: 1.08 → 1.10, 1.03 → 1.05.
Decimal 0 is not "not set". Zero is the "to a whole number" rule: amounts in this block are rounded to a whole unit.
A return was rounded differently from the invoice. For negative amounts the Direction matters: for returns and credit notes to mirror the invoice (2.5 → 3 and −2.5 → −3), choose Up by module.
The rule was changed, but old documents have different rounding. This is by design: what was written earlier stays as it was, and the new rule applies to what is calculated after the setting is saved (see above).
A weight of 0.25 kg in an item card became 0. The Dimensions block has Decimal 0, and the window rounds the weight, volume and size to a whole number. This is so in most companies created before October 2026; set the decimals you need — new companies get 3.
An invoice row amount came out rounder than price × quantity. The Invoice sum by row rule is coarser than by default: the window first calculates the row by by default, then rounds it by the row rule, and posting keeps exactly that amount. To keep rows from being rounded more coarsely than other amounts, give the Invoice sum by row block the same rule as by default (all four fields).
The invoice debt or the print-form total differs from the sum of the rows. The debt and the print-form totals are rounded by Invoice sum, the rows by Invoice sum by row; when the rules differ, a difference in the last digit is expected.