Reporting

Reading a Report

The anatomy of a report page: one toolbar, ten controls, the report body beneath it, and where every row leads.

Every catalog report opens in the same shell at /reporting/<report path> — /reporting/finance/pl, /reporting/sales/receivables, /reporting/people/payroll. One toolbar card sits at the top; the report itself sits below it. Which controls appear depends on the report. Their order never changes, so once you have read one report page you have read all 117.

The toolbar card in full: identity, then the ten controls in their fixed order, then the filter row, then the period line — with the report beneath.

The Toolbar, Left to Right

The card opens with the business name — or the location name, when a single center is in scope — the report title, and a currency badge.

The controls, in the order they are drawn
#ControlWhat it decidesWhen it appears
1Period pickerThe dates every figure coversAlways
2CompareWhether the period is one column or manyThe 16 reports built to carry period columns
3Group byWhat each row stands forReports with more than one honest dimension
4MeasureWhat number each row carriesReports with more than one honest figure
5UnitsUnits, Thousands or MillionsAlways
6FiltersWhich customer, vendor, item, location or personAlways — the row it opens is what varies
7TemplatesA named view you can come back toAlways
8SchedulesDeliveries this business emails on a rhythmAlways
9View asTable, or one of twelve chart formsAlways
10ExportPDF, Excel, CSV, Print, Email report…Always

The card ends with the line Period: from → to — the exact dates, whatever label the picker is showing.

✅These controls carry no printed labels

Compare, Group by, Measure, Units and View as are drawn as bare controls: the value inside each one is the only label. It is worth learning them by position, which is why the order never changes.

Each control has a page of its own:

Period & comparison columns

What a report opens on, the thirteen presets, when Compare offers Weekly through Annual, and how Units scales the figures.

Grouping & measure

The sixteen dimensions, which reports offer which, the fourteen reports that group themselves, and the five measures.

Filtering a report

The entity pickers, what travels with a filter into exports and schedules, and the boundary that is applied before you touch anything.

Saved views

Store a period, its filters and its grouping under a name — and the one thing to know about where they are kept.

Charts & the View as menu

Thirteen views over the same figures, the insight panels each report shape produces, and which charts survive an export.

Getting it out

Download it, email or WhatsApp it, or have it send itself every morning.

Controls That Belong to One Report

Some reports draw a strip of their own controls between the toolbar and the table. They appear in Table view only.

ReportIts own controls
Receivables Aging · Payables AgingView, As at, Buckets, Include archived parties, and — on the by-document list — bucket, balance and due-date facets, plus the control-account verdict. See Aging reports.
General LedgerA Hide disabled accounts switch: Hides disabled accounts with a nil balance. Accounts still carrying a balance always appear. Off by default, because the unfiltered ledger is the one that reconciles.
Sales Performance · Purchase Performance · Sales Margin by TransactionA Show top selector — 50, 100, 250 or 500 — with the note of N · export includes all. The export is never truncated by this control.

Below the Toolbar

First a context banner, when there is something to say: the location in scope (Viewing: London), then any warnings the report raised, then any notes it attached.

The report body beneath the toolbar: a statement with headers, groups, items and subtotals, every figure arriving already computed.

Then the report body, in one of four shapes:

ShapeUsed byWhat you see
StatementP&L, Balance Sheet, Cash Flow, Changes in Equity, Stock ReconciliationHeaders, groups and items that expand and collapse. Headers start expanded; the amount on an expanded header is hidden, because its children carry the detail.
Hierarchical tableTrial Balance, General Ledger and other sectioned reportsSections that collapse to their totals and expand to their items, with a totals row.
Flat tableRegisters, by-X summaries, listsColumns exactly as the server defined them, with the report's own totals in the footer.
AgingReceivables and Payables AgingOne row per party with a column per bucket. Pressing a party expands its open documents inline, one party at a time.

An account line reads as its name, with the account code beside it, muted. A row whose name is missing falls back to the code rather than rendering blank.

Paging and Sorting

Row-list reports — Journal Entries, the document registers, the by-document aging list — are paged by the server, 50 rows at a time, with a numbered pager beneath the table.

🚨Sorting is the server's job, always

A column header is clickable only where the server says that column can be sorted. Clicking it re-orders the whole set in the database and returns you to page 1. The browser never re-sorts the rows it is holding — that would reorder 50 rows out of 1,284 and present the result as "oldest first", which is a claim the reader has no way to check.

Drilling Down

RowGoes to
An account line on the GL, Trial Balance, P&L, Balance Sheet, a comparison or a bridgeAccount detail at /accounts/<id>, with the report's dates carried across
A document rowThat document — invoice, receipt, bill, payment, credit note, debit note, purchase order, sales order, expense or journal
A customer or vendor rowTheir record
An item rowThe item, or its inventory record
A project, center, asset, employee or requisition rowThat record
An aging party rowExpands inline to its open documents rather than navigating away

Some reports carry no row navigation by design: Cash Flow and Changes in Equity are statements of structure rather than lists of things, and Sales by Employee, Sales by Category and Sales by Hour group by a label rather than a record.

States You May See

StateWhat the page says
LoadingPreparing your report…
Nothing in the period, table viewNothing to show — No report data available.
Nothing in the period, chart viewNothing recorded for this period — This report is working — it just has nothing to show yet. If that looks wrong, check that the documents for these dates have been entered and posted (drafts don't count), and that a filter or center isn't narrowing everything out.
ErrorThe message the server returned, with a Retry button — unless the server refused the request, in which case retrying could only fail the same way.
Not permittedAccess Restricted — You don't have permission to view this report. A role-gated report adds: This report requires Administrator access. A Back to Reports button returns you to the hub.
✅The toolbar survives an error

When a report fails, the toolbar stays on the page. The dates or the filter that caused the failure are exactly what you need to change, so replacing the whole page with a dead end would trap you there.