Two new reports under Reports → Safety help you spot compliance gaps and overworked crews: Certifications shows which workers hold each certification your project collects, and Fatigue flags workers whose gross hours go over a limit you set, per day or per week.
To open them, go to Reports in the project menu, select Safety in the left menu, then choose Certifications or Fatigue.
Certifications report
The Certifications report shows, for every worker registered to the project, whether they answered Yes or No to each certification question at registration.
Which certifications appear
The report includes every Yes/No question in the Certifications section of your project's registration fields. That covers built-in certifications such as OSHA 10 and OSHA 30, plus any custom Yes/No question you've placed in that section. Questions with other answer choices aren't included, since their answers can't be read as certified or not.
Required certifications are listed first, followed by the rest in the order they appear on your registration form. If your project doesn't collect any certifications at registration, the report says so instead of showing cards and columns.
Summary cards
Each certification gets a card across the top showing the percentage of workers who answered Yes, along with the count (for example, "182 of 240 workers"). Required certifications are marked on their card.
- Show and hide columns: Click a card to add or remove that certification's column in the table below. Cards you haven't selected still show their percentage.
- Show all: The first 10 certifications are shown by default. If your project tracks more, click Show all to see the rest.
- Cards follow your filters: When you search or filter the table, the percentages and counts update to match the workers you're looking at.
The percentage counts every worker in view, so workers who answered No or left an optional certification blank both count as not certified.
Worker table
The table has one row per worker with these columns:
- Name, Company, Trade
- Title (hidden by default; turn it on from the column chooser)
- One column per certification, with the first three shown when the report opens
Each certification cell shows one of three statuses:
| Status | Meaning |
|---|---|
| Yes | The worker said they hold this certification |
| No | The worker said they don't hold it |
| N/A | The worker didn't answer, which happens when the certification is optional |
Search, filter, group and export
- Search for a worker by name.
- Filter by Company, Trade, Name, Title, or any certification column. Certification columns filter by Yes, No or N/A, so you can quickly list everyone missing OSHA 10, for example.
- Group the table by Company or Trade.
- Export the table with the download button. Large exports are prepared in the background, and the download starts automatically when the file is ready.
You can also select workers in the table and use the same bulk actions available in the People Directory.
This report tracks Yes/No answers only. To keep an eye on certification expiration dates, use the Expirations widget described in Tracking Expiring Certifications.
Fatigue report
The Fatigue report lists every worker whose gross hours went over a threshold you choose, either in a single day or across a calendar week, so you can spot workers at risk from working too many hours.
How hours are counted
Gross hours for a day are the time from a worker's first seen to last seen on site that calendar day. They're calculated the same way on every project, with or without access control. A day without a last-seen time isn't counted yet. Dates follow the project's time zone, not yours.
Set up the view
- Choose a period. Use the dropdown next to the threshold to pick Per day or Per week.
- Set the threshold. Enter a number in Gross hours over __ hrs. The default is 12 hours per day or 60 hours per week, and each period keeps its own value while you switch between them.
-
Pick your dates.
- Per day: Choose a date range, or use a preset: Last 7, 14, 30 or 90 days. The report opens on the last 7 days, and a range can be up to 90 days long.
- Per week: Choose one or more weeks. The report opens on the last 4 weeks. Use the Week toggle to count weeks as Sun–Sat (the default) or Mon–Sun.
Weekly totals add up whole calendar weeks, not a rolling 7 days. The current week counts the hours worked so far.
Summary cards
| Card | What it shows |
|---|---|
| Workers over threshold | Workers who went over at least once, out of all workers recorded in the range |
| Timesheets over threshold | Days (or weeks) where a worker's gross hours were over the threshold |
| Repeat instances | Workers who went over on 2 or more days (or weeks) in the range |
| Highest gross hours | The longest single day (or week) in the range, with the worker's name and date |
The cards update when you search or filter the table, so they always describe the same workers you see below.
Worker table
The table has one row per worker who went over the threshold, sorted so the most frequent repeat cases are at the top. Columns:
- Name, Company, Trade
- Title (hidden by default; turn it on from the column chooser)
- Over threshold: how many days or weeks the worker went over. Workers who went over 2 or more times are highlighted.
- Max hrs: the worker's highest day or week in the range
- Hrs over: total hours above the threshold across the range
Click the arrow next to a worker to see the timesheets behind their totals:
- Per day: each day they went over, with first seen, last seen, gross hours and hours over the threshold.
- Per week: each week they went over, with the week's total and hours over, followed by the individual days in that week.
Search, filter and export
Search by name, or filter by Company, Trade, Name or Title. Use the download button to export the report. If no one went over, the table says so; try a lower threshold or a longer date range.
FAQ
A certification I collect isn't showing in the report. Check that the question is in the Certifications section of your registration fields and that its answers are Yes and No. Questions with other answer choices are left out.
Why does a worker show N/A? The certification is optional on your project and the worker skipped it at registration.
Today's hours look low on the Fatigue report. A day only counts once the worker has a last-seen time, and the current week counts hours to date. Check back after the shift ends.
A worker's company or trade shows as Unassigned. That information wasn't captured for the worker. Update it in their profile and the report will pick it up.
Does the Fatigue report send alerts? No. It's a report you check on demand; it isn't connected to Project Alerts.