Billable Hours Report
1. What does this feature do? (High-Level Overview)
Section titled “1. What does this feature do? (High-Level Overview)”This feature shows aggregated billable activity by location and CPT code for a selected date range. It helps billing and operations teams quickly review total units, hours, and notes, with an optional weekly breakdown and PDF export.
2. Who is this for? (Roles & Permissions)
Section titled “2. Who is this for? (Roles & Permissions)”- Superadmin: Can access the report across locations according to global access rules.
- Users with
manage_notesin the current location context (for example, Admin/Owner/Manager depending role setup): Can open and use the report in that location.
Required permission: manage_notes (unless the user is SUPERADMIN).
3. Business Rules & Enforcements
Section titled “3. Business Rules & Enforcements”- Rule 1:
date_startanddate_endare required to run the report. - Rule 2:
date_endmust be the same as or later thandate_start. - Rule 3: The date range cannot exceed 62 days.
- Rule 4: The request requires current location context (
X-Location-ID). Iflocation_idis sent, it must matchX-Location-ID. - Rule 5: Access is restricted to users with
manage_notesin the current location (orSUPERADMIN), and results are scoped to the active location context. - Rule 6: Only notes with a CPT code are aggregated; soft-deleted notes are excluded.
- Rule 7: Units are calculated from note session times using 15-minute units with an 8-minute rounding threshold.
- Rule 8: Weekly breakdown is generated in Sunday-to-Saturday ranges, adjusted to the selected start/end dates.
- Rule 9: PDF export is available only when report data is present.
4. UI Placement
Section titled “4. UI Placement”- Reports > Human Resources > Billable Hours Report (card entry point).
- Route:
/reports/location-cpt. - Search section: Date range, note type, insurance, CPT code, status, billed, paid, patient, provider, and supervisor filters.
- Billable Hours Summary section: Total units, total notes, total hours, location/CPT breakdown, and weekly breakdown details.
- Export action:
Export PDFbutton at the top-right of the summary section when data exists.
5. How-To Guide (Step-by-Step)
Section titled “5. How-To Guide (Step-by-Step)”Scenario A: Review billable hours for the last completed week
Section titled “Scenario A: Review billable hours for the last completed week”- Open Reports > Human Resources > Billable Hours Report.
- Confirm the default range (last Sunday to last Saturday) or click Last Week.
- Adjust filters as needed (for example, insurance, provider, CPT code, billed/paid).
- Click Search (or use filter auto-refresh on field changes).
- Review totals (units, notes, hours) and expand weekly breakdown rows per location/CPT code.
Scenario B: Generate a PDF version of the report
Section titled “Scenario B: Generate a PDF version of the report”- Run a report that returns data.
- Click Export PDF.
- Select sections to include (
Units,Hours,Notes). - Choose table format (
Single table for entire periodorSeparate table for each week). - Click Generate PDF and wait for the file download.
Scenario C: Correct a blocked query due to date range
Section titled “Scenario C: Correct a blocked query due to date range”- Set a date range longer than 62 days.
- Review the warning message indicating the report limit.
- Reduce the range to 62 days or less.
- Run the search again to load results.
6. What happens if…? (Edge Cases / FAQ)
Section titled “6. What happens if…? (Edge Cases / FAQ)”- Q: What happens if a user without
manage_notesopens the report route?- A: The backend blocks access with an insufficient-permissions response.
- Q: What happens if no location context is provided?
- A: The request is rejected because
X-Location-IDis required.
- A: The request is rejected because
- Q: Why can the report show no rows even with a valid date range?
- A: The report only aggregates notes that have CPT codes and match the selected filters within the active location scope.