Hook SecurityHook Docs
Org Admin

Run the Course Enrollment report

Measure completion for a single course, filter by group, and find overdue learners ranked by urgency — exportable to PDF and emailable.

The Course Enrollment report answers one question per course: who still hasn't finished, and how late are they? You pick a single course, see the headline completion numbers, optionally narrow to specific groups, and get a focused list of learners who are not done — sorted so the most overdue rise to the top. Org admins run this before a compliance deadline, ahead of a manager check-in, or whenever you need to chase down stragglers on a specific training.

One report, two names

In the report catalog this report is labeled Enrollment Completion (under Course Reports), and the course-picker page keeps that title. Once you open a specific course, the page header reads Course Enrollment Report. They're the same report, just labeled differently on the picker versus the detail view.

Before you start

Prerequisites

  • You're signed in to Hook as an org admin, with the right organization selected in the org switcher if you manage more than one.
  • At least one course has been assigned to your users. If nothing has been enrolled yet, the picker shows No Courses Found. See Assign training to groups.
  • No PhishingBox API key is required. Unlike the phishing reports, this report reads enrollment data straight from Hook's database, so it works even for organizations that aren't wired up for phishing simulations.

Pick a course

From the left nav, open Reports, then choose Enrollment Completion under Course Reports. The picker page (/org/reports/course-completion) lists every course that has enrollments in the selected organization, one row per course.

Read the course rows

Each row shows the course name, a status pill, and a one-line summary:

  • completed / enrolled — for example 42/50 completed.
  • overdue count — appended in red (· 8 overdue) only when there are overdue learners.
  • Enrolled and Due dates — the earliest enrollment date and the nearest due date across all learners on that course.
  • A completion-rate bar and percentage on the right (hidden on narrow screens). The percentage turns green at 100%.

The status pill is derived from the numbers, not stored: a course is Overdue if it has any overdue learners, Completed when the rate hits 100%, and In Progress otherwise.

Enrollment Completion picker showing course rows with overdue status, completed counts, due dates, and progress bars

Search and filter the list

Use the Search courses… box to filter rows by name as you type. Next to it, three status pills — Overdue, In Progress, Completed — let you narrow the list. They're toggles: click any combination to show only those statuses, click again to deselect. A Clear link appears whenever a search term or status filter is active and resets both at once.

Open the course

Click any row to open its Course Enrollment Report at /org/reports/course-completion/<course-id>.

Read the report

The detail page opens with the course name as its subtitle and a small header line showing the course's Assigned and Due dates.

KPI cards

Four cards summarize the course for the current organization (and the active group filter, if any):

  • Enrolled — total users enrolled in the course.
  • Completed — users who finished. The card turns green when everyone enrolled has completed.
  • Completion Rate — the percentage, with a progress bar. It shows green at 100%, neutral at 75% or above, and a warning style below 75%.
  • Overdue — users past the due date who haven't completed. This card switches to a danger style whenever the count is greater than zero, so a red Overdue card is your cue that follow-up is needed.

Course learner detail page with course overview, completion progress bar, and All Learners, Incomplete, Overdue, and Completed summary cards

The Not Completed / Overdue table

Below the KPIs is the Not Completed / Overdue table. This is the actionable list: it includes only learners who have not completed the course and are past the due date — completed learners are intentionally excluded. Columns are Name, Email, Group, Enrollment Date, Due Date, Overdue, and Progress, and every column is sortable.

The Overdue column shows an urgency badge based on how many days past the due date the learner is:

Days overdueUrgency
30 or moreCritical
14–29High
7–13Medium
Under 7Low

The Progress column shows each learner's percent complete, so you can tell who never started from who got most of the way through.

When the table is empty

If no one is overdue, you'll see No overdue enrollments with a note that everyone has either completed the course or is still within the deadline. That's the goal — an empty table here is a good sign, not a missing report.

Course learner detail table filtered to Overdue learners with learner, group, status, progress, enrollment date, and due date columns

Filter by group

When the course's enrolled learners belong to at least one group, a Filter by Group button appears in the header line. Use it to scope both the KPI cards and the table to specific groups.

Open the group popover

Click Filter by Group. The popover lists every group with enrollments on this course, each showing its enrollment count for the course. Use the Search groups… box to find a group by name.

Select the groups you want

Tick the checkbox next to each group. Select All turns on every group currently visible in the popover (so it respects your search), and Clear deselects everything. Selected groups also appear as removable chips under the header, each with an × to drop it.

As you change the selection, the KPI cards and table dim briefly and refetch for just those groups — the numbers you see always reflect the current filter.

Group selections are capped at 100

The report accepts at most 100 group IDs at once. If you somehow exceed that, the request is rejected with a "Too many group IDs (maximum 100)" error rather than returning partial data. In practice you'll never hit this with normal group counts.

Course Enrollment Report with the Filter by Group popover open, showing search, Select All, Clear, group counts, and two checked groups

Export or email the report

The report header carries the standard export controls:

  • Export PDF renders the current view — KPIs and the overdue table — to a downloadable PDF.
  • Email opens a recipient picker of users in the organization. Choose who should receive it, and Hook generates the same report as a PDF and sends it with the subject Course Enrollment Report - <course name>.

Exports use the unfiltered course

The PDF and emailed report are generated from the full course (no group filter applied), so what you share may differ from what you've narrowed on screen with Filter by Group. Use the group filter for live triage, and export when you want the whole-course picture.

Common pitfalls

  • Reports cover the selected organization only — not its children. This report deliberately scopes to the exact org you have selected in the switcher and does not roll up descendant organizations. If you expect more learners than you see, confirm you've selected the right org.
  • The table is for chasing stragglers, not a full roster. It only lists not-completed, overdue learners. To see everyone's status — including who finished — use Track course completion.
  • "Overdue" depends on a due date. Learners with no due date are never counted as overdue, so they won't appear in the table even if they haven't started. Set due dates when you assign training if you want them tracked here.

On this page