Skip to content

Financial Report Builder

Prints a financial report from the Report Definition you pick: a P&L, a management balance sheet, currency comparisons — you design the form, the builder only does the maths. It will not run without a definition — that is what separates it from the fixed Financial Result form, where the accounts are hard-wired.

Where to find it: Modules → Nominal Ledger → Reports → Financial Report Builder

Every report has two amount columns: the main period and a comparison — what to compare against is a radio switch.

Worked example

Running the demo PNL definition for July 2026:

Financial Report Builder parameters

PNL report for July 2026

  • Sales revenue — 3,351.47 for July and 5,157.16 in the comparison column: the switch is on "Accumulated", so the second column is the same report from January 1 to the period end.
  • Cost of goods sold 1,896.56 → GROSS PROFIT 1,454.91 — the sum row 040-060, calculated from the rows above.
  • At the bottom, NET PROFIT FOR THE PERIOD — 1,427.75 for the month and 2,200.73 year-to-date.

Each row is expanded down to the accounts it was built from ("Accounts: All"); the "Groups" switch keeps only row totals — the compact version for an owner.

Where the data comes from

Account rows read postings (the Transactions register) for the period — all of them, whatever document produced them: invoices, cash desk, work sheets, manual entries. A definition row with the "Balance" flag shows balances instead of turnover: the "At the beginning of the period" column — as at the first date of the period, the "At the end of the period" column — as at the period end date, in any comparison mode ("Last year" and the budget modes included). For the other rows, in the budget comparison modes the second column reads the Budgets/Revised Budgets registers by class. Documents that produced no postings (drafts, non-OK) never enter the report — no posting, no amount.

Parameters

Parameter What it does
Definition Which Report Definition to print. Required
Period The main report period
Objects Restrict transactions to a comma-separated list of objects
Currency Count only transactions in this currency
Budget class Which budget feeds the comparison column (for the budget modes)
Objects type detailing Break account amounts down by objects of the given type
Accounts: All / Groups Show every account of a row, or the row total only
Comparisons What goes into the second column (below)

Comparison modes:

  • Accumulated — from January 1 of the year to the period end (year-to-date);
  • Last year — the same period one year earlier;
  • Budget / Revised budget — planned amounts from Budgets or Revised Budgets for the same period. The "Comparisons, %" column is the main period as a percentage of the comparison column in any mode; against a budget it is the plan completion percentage. For a "Balance" row the third column is headed "Comparisons" without the percent and shows the change of the balance: end minus beginning.

Budget comparison in action — the year 2026 against the annual plan:

P&L against budget

Revenue 702: actual 5,562.06 against a 12,000 plan — 46.35% complete. What it takes to fill the budget column is covered in the Budgets article.

Common situations

"Select definition". The Definition field is empty — the builder has no built-in form; pick or create a definition first.

Both columns are identical. The period starts on January 1, so "Accumulated" coincides with the main period. Not a bug — comparing a month against the year-to-date is simply more useful than comparing a year with itself.

Zeros everywhere. Usually a currency filter that matches no transactions, or a period with no activity.

A sum row is smaller than expected. Look into the definition: the formula may reference a row code that no longer exists — the builder silently skips unknown codes. A sum row with a higher code is skipped the same way: sums are computed in code order, and at that moment it does not exist yet.