Skip to main content
Two reports let you see leave across your whole workforce: the Leave Balance report answers “how many days does everyone have?”, and the Leave Ledger report answers “what movements got them there?”. Together they give you both the standing position and the full audit trail behind it. These are management reports — they show every employee’s leave figures and notes — so they are gated more tightly than the day-to-day leave pages.
Both reports show only the active business’s employees. The business is taken from the switcher at the top of the app, and a query parameter cannot be used to pivot the report to another business. Switch business to report on a different one.

Leave Balance report

A per-employee, per-leave-type summary of where balances stand. You’ll find this at: /hr/reports/leave-balance
📷 Screenshot: the Leave Balance report table with the Year filter and Export CSV button — to be added.
Filter by Year (defaults to the current year) and optionally by Employee ID. Each row covers one employee and one leave type, with these columns: Use Export CSV to download the table (the file is named for the selected year). The footer shows the row count.
The “Leave Type” column is populated by loading each balance’s policy and reading its name, so the report reads with proper type names rather than blank cells. (This was a fix applied to the balance report.)

Leave Ledger report

The chronological journal of every leave movement — this is the audit trail. You’ll find this at: /hr/reports/leave-ledger
📷 Screenshot: the Leave Ledger report with the date-range and employee filters and the colour-coded transaction badges — to be added.
Filter by Employee ID and a From / To date range. Each row is one ledger entry: The Transaction types you’ll see: Use Export CSV to download the entries; the footer shows the entry count.
Because the ledger is append-only, it is the source of truth for balances — every figure on the Balance report can be traced back to entries here. If a balance ever looks wrong, the ledger explains it.

Permissions

Both reports require the coarse management read permission, deliberately not the self-service leave read: A self-service user (who may hold hr-leave:read) is refused these reports; the service also self-scopes any non-management caller to their own rows as a second line of defence.