---
title: Leave reports - absence, liability and Bradford
description: The three leave analytics - an absence summary, the accrued-liability snapshot and the Bradford factor - with CSV export for absence and liability
order: 6
---

**Reports → Leave** carries three reports, picked with the **Absence · Liability ·
Bradford** selector in the filter bar. The page requires the manager or admin role; an
employee reads their own balance and history on **My leave**.

## Absence summary

Pick a date range (the presets cover this month, last month, the last three months and
year-to-date; the page opens on the last full calendar month) and the absence report lists
everyone in scope with their approved days per leave type and a total - a manager sees
themselves, their reports and the teams they manage, an admin the whole workspace. A team
filter narrows it further. Days are counted per calendar date, so an absence that crosses a
month boundary contributes only the days inside the window, and each person's minutes
divide by their own daily norm. **Export CSV** is the page's header action and appears once
the report has rows; it downloads `absence-summary.csv` with `employee, title, totalDays`
and one column per leave type present in the window.

## Leave liability

The liability report snapshots each person's remaining balance per leave type for a chosen
year - the year picker offers the last five. The headline **Outstanding paid leave** sums
only paid balances above zero. A type that accrues nothing has no balance row and so no
line, which covers Sick leave and Unpaid leave in the seeded workspace. Where an accrual
ceiling has banked minutes, a second figure **Banked by a ceiling** shows what the ceiling
refused to grant. It is reported separately and never added into the headline. **Export
CSV** downloads `liability.csv` with `employee, leaveType, paid, availableDays`.

## Bradford factor

The Bradford factor weights *frequent, short* absences more heavily than a single long
one - the score is spells × spells × total days. The report lists each person's spell
count, total days and score for the chosen range, highest first. It counts approved
requests of leave types that need no approval - sick leave in the default setup.

## Worked example

Marta pulls the absence summary for Northlake's last full calendar month. Tomasz took three
days of Vacation and one of Sick leave, so his row reads 4 days total with the split under
**By leave type**; the strip above counts him under **People absent** and everyone at
Northlake under **In scope**. Her export lands as `absence-summary.csv` with a `Vacation`
and a `Sick leave` column.

## For agents

The same rows come back over MCP as `absence_summary`, `liability_report` and
`bradford_factor`. All three need the manager or admin role and the `metrics:read` scope.

> [!AGENT]
> Give me the leave liability for this year grouped by person, and flag anyone with a Bradford factor over 200.

## Related

- [How leave works in SquadBear](/docs/leave/concepts/)
- [How leave approvals work](/docs/leave/approvals/)
- [Exporting absences to payroll](/docs/leave/payroll-export/)
