The Shifts & Hours by Profile report gives you one row per user, summarizing that user's shift activity within a date range. For each user it shows how many shifts they are on, how many are upcoming or past, how many they completed, how many hours they logged or have planned, and (when enabled) the impact value of their logged hours.
The report starts from every shift booking in your organization whose shift falls inside your date range, applies your filters and your own access limits, then groups those bookings by user.
Two points explain most questions about totals that look off:
When you open the report, it uses the last 7 days (from the start of the day 7 days ago through the end of today). You can change the date range at any time at the top of the left filter panel.
A shift is only counted if it both starts on or after your start date and ends on or before your end date. A shift that straddles the edge of your window is excluded, not partially counted. If a shift seems to be missing, widen the date range so the whole shift sits inside it.
There are two kinds of filters in the left panel, and they behave differently.
The Results badge above the table is simply the number of rows currently shown after view filters and Quick search are applied.
| Filter | What it does |
|---|---|
| Date range | The window the whole report is calculated in. Defaults to the last 7 days. |
| Categories | Limits the report to shifts belonging to opportunities inside the selected categories. |
| Opportunities | Limits the report to shifts belonging to the selected opportunities. |
| Include inactive opportunities | A checkbox under the Opportunities filter. It only widens the picker list so archived or inactive opportunities become selectable. On its own it does not change any numbers. |
| Shift title | Free text. Keeps only shifts whose title contains what you typed. Not case sensitive, and partial words match. |
| Sites | Limits the report to shifts linked to the selected sites, either directly on the opportunity or through the category's site. This is historical: a shift is counted because it belongs to that site, even if the user is no longer assigned to that site today. |
This is a common point of confusion because both are called Sites.
For historical reporting by site, use the Sites data filter.
Some limits are applied automatically based on your admin role, so two admins can see different numbers with the same settings:
| Column | What it means |
|---|---|
| First Name | The user's first name. Clicking the name opens their profile. |
| Last Name | The user's last name. Rows are sorted by last name, then first name. |
| The user's account email. | |
| Phone number | The phone number on the user's profile. |
| Profile Tags | Every tag currently on the user's profile. This reflects the profile as it is today, not the tags it had when the shift happened. |
| Sites | Every site the user is currently assigned to. This is also today's state, not history. To slice history by site, use the Sites data filter. |
Empty values display as N/A.
Every count below is a count of shift bookings, not of shifts. If a user is booked on ten different shifts, that counts as ten.
| Column | What is counted |
|---|---|
| # of total shifts | Bookings with status Approved, Attending, Checked in, Checked out, or Requested. Applications that were never approved, declined bookings, absences, and cancellations are not included. |
| # of upcoming shifts | Same statuses as total shifts, where the shift end time is in the future. |
| # of past shifts | Same statuses as total shifts, where the shift end time is in the past. |
| Completed shifts | Bookings with status Checked out. |
| Absent shifts | Bookings with status Absent. |
| Cancelled shifts | Bookings with status Cancelled. |
Two relationships are worth knowing:
This is expected. The total answers what the user is on. Completed, Absent, and Cancelled answer what happened. Absent and Cancelled bookings are deliberately excluded from the total, and Completed shifts are a subset of the total (the ones the user was checked out of), so the three will not sum to the total.
| Column | How it is calculated |
|---|---|
| # of hours logged | For every booking with status Checked out, the time between the real check-in and check-out, added up. This uses the recorded check-in and check-out times, not the scheduled shift times, so an early departure or a late arrival is reflected here. Shown to two decimals. |
| # of hours planned | For every booking on a shift that starts in the future, with status Approved, Attending, Checked in, Checked out, or Requested, the scheduled length of the shift, added up. Past shifts contribute nothing here. Shown to two decimals. |
A few things to keep in mind:
Impact value is the estimated dollar value of the hours a user logged. It is the hours logged on each completed shift multiplied by that opportunity's impact value rate, added up. If an opportunity has no rate set, 30.00 per hour is used.
The Impact value column only appears when impact value is turned on for admins in your organization. When it is off, the column is hidden everywhere: in the table, in the filters, and in the export.
The Grid and Insights toggle at the top of the filter panel switches the same filtered data into a grouped breakdown. Insights groups the rows the report already returned, so it always agrees with the table.
The sticky row at the bottom of the table shows a Count under First Name (the number of users currently in view) and a Sum for every count, hours, and impact value column. It sums what is currently on screen, so view filters and Quick search change it.
Both exports require the database export permission on your admin account.