Reports
The Reports section provides analytics dashboards for payroll, hours, attendance, and overtime tracking. Reports are available to users with Manager or Accounting roles.
Payroll Summary
The payroll summary aggregates pay components across employees for a selected date range.
What it shows:
- Total pay broken down by component type (base pay, overtime, premiums, allowances)
- Per-employee totals
- Grouping options: by component type or by employee
Filters:
| Filter | Options |
|---|---|
| Date range | Custom start and end dates |
| Company | Select one or all companies |
| Location | Select one or all locations |
This report is useful for cost analysis, budget reviews, and comparing pay periods.
Hours & Overtime
Tracks regular and overtime hours worked across the organization.
What it shows:
- Regular hours
- Additional work hours
- Overtime at +50%
- Overtime at +100%
- Total hours
Filters:
| Filter | Options |
|---|---|
| Year | Select calendar year |
| Department | Select one or all departments |
| Location | Select one or all locations |
| Employee | Select individual employee |
Attendance
Compares scheduled shift times against actual clock-in and clock-out times.
What it shows:
- Scheduled start and end times
- Actual clock-in and clock-out times
- Variance (early or late arrivals, early or late departures)
- Attendance patterns over time
Filters:
| Filter | Options |
|---|---|
| Date range | Custom start and end dates |
| Employee | Select individual employee |
| Location | Select one or all locations |
This report helps identify attendance patterns and address recurring issues.
Overtime Tracking
Monitors annual overtime hours against the 250-hour legal cap for each employee.
What it shows:
- Current total overtime hours for the year
- Percentage of the 250-hour cap used
- Warning status for each employee
| Status | Meaning |
|---|---|
| Green | Below 225 hours — within safe limits. |
| Yellow | 225 to 250 hours — approaching the legal cap. |
| Red | Above 250 hours — legal limit exceeded. |
Filters:
| Filter | Options |
|---|---|
| Year | Select calendar year |
Review this report regularly to ensure compliance with Finnish working time law.
Period Comparison
Compare two time periods side by side to identify trends, seasonal patterns, and year-over-year changes.
Range types:
| Type | Description |
|---|---|
| Weeks | Select ISO week ranges (e.g., weeks 22–35) |
| Dates | Select exact date ranges |
| Month | Select a single month |
Week-based comparison is especially useful for seasonal businesses, since holiday periods (e.g., Midsummer, school holidays) always fall on the same ISO week regardless of the exact dates.
Metrics available:
| Metric | Description |
|---|---|
| Hours | Total worked hours from payroll |
| Labor Cost | Total labor cost from payroll |
| Overtime Hours | Combined OT 50% and OT 100% hours |
| Overtime % | Overtime hours as percentage of total hours |
| Budget Utilization | Scheduled hours as percentage of budgeted hours |
Grouping: By location, department, or total.
Results show each group with Period A value, Period B value, absolute delta, and percentage change. Rows are sorted by largest change first. Positive deltas appear in green, negative in red.
Budget vs Actual
Tracks budgeted, planned, and actual hours side by side across one or more locations and a date range. Use this to monitor whether a season stays within budget and to spot specific weeks that went over.
What it shows:
- Budget — the weekly hour budget for each location (from default budget or per-week override; see Weekly Hour Budgets)
- Planned — sum of non-cancelled shift durations minus breaks (assigned, open, and training shifts)
- Actual — sum of approved worklog hours, including sick-leave hours (sick-leave periods create approved worklogs automatically)
- Planned vs budget and Actual vs budget — variance in hours
- Running cumulative — for each location, a running total of budget, planned, actual, and variance through the period
The report is structured as one row per location with expandable weekly children. A period totals card summarises the whole range across all locations.
Filters:
| Filter | Options |
|---|---|
| Date range | Custom start and end dates (auto-snapped to ISO weeks) |
| Location | Select one or all locations |
Default range: the last four ISO weeks ending on the most recent completed Sunday. The current in-progress week is excluded so it does not appear as a misleadingly low data point.
ISO-Week Snapping
Budgets are kept on ISO weeks (Monday–Sunday), so the report only operates at that granularity. If you enter a start or end date that does not align to a Monday or Sunday, the report automatically snaps:
- Start date snaps backward to the Monday of its ISO week
- End date snaps forward to the Sunday of its ISO week
A hint above the results shows the effective range — for example, entering 2026-06-17 to 2026-08-13 displays Showing W25–W33 (2026-06-15 – 2026-08-16).
Weeks with No Budget
If a week has no budget configured (no default and no override), the Budget column shows — and that week is excluded from variance calculations. The planned and actual hours for that week still contribute to the planned/actual sums and cumulative totals — only the budget and variance are blank.
Cumulative Columns
Inside each location's expanded view, every weekly row carries a cumulative running total within that location:
| Column | Meaning |
|---|---|
| Cumulative budget | Sum of budgets through this week (carries forward unchanged on no-budget weeks) |
| Cumulative planned | Sum of planned hours through this week |
| Cumulative actual | Sum of actual hours through this week |
| Cumulative actual vs budget | Cumulative actual minus cumulative budget |
Cumulatives reset between locations — there is no "all locations cumulative" line; the period totals card at the top serves that role.
CSV Export
The CSV export contains one row per (location, week), a per-location subtotal row, and a final grand total row. Cumulative columns are not included in CSV — they are a UI convenience and would muddy the row semantics in a spreadsheet.
Sick Leave Analytics
Two views for analyzing absence patterns.
Summary View
Shows sick leave percentage for a selected date range, grouped by employee, location, or department.
Calculation: Sick leave % = (sick days in period) / (days with worklogs in period) x 100
Sick leave periods that partially overlap the report date range are clipped — only the days within the range are counted.
Bradford Factor
The Bradford Factor measures the disruption caused by employee absences, weighting frequent short absences more heavily than fewer long ones.
Formula: Score = S² x D
| Symbol | Meaning |
|---|---|
| S | Number of separate absence spells in the period |
| D | Total calendar days absent in the period |
Return-to-work followed by a new sick leave is counted as a separate spell. Continuations of the same illness (marked in the system) are not counted as new spells.
Example:
| Employee | Spells | Days | Score | Level |
|---|---|---|---|---|
| Anna | 1 | 10 | 10 | Low |
| Matti | 5 | 10 | 250 | High |
| Liisa | 10 | 10 | 1000 | Critical |
Same total days absent, but very different scores due to frequency.
Threshold levels (configurable per tenant):
| Level | Default Range |
|---|---|
| Low | 0 – 49 |
| Medium | 50 – 199 |
| High | 200 – 499 |
| Critical | 500+ |
To configure thresholds, go to Settings > Bradford Thresholds (Company Admin only).
Exporting Reports
All reports can be exported as CSV files for further analysis in spreadsheets or accounting tools.
- Apply the desired filters to the report.
- Click Export CSV.
- The file downloads to your device.
Exported files include all data visible in the current filtered view.