Track training progress and completion
Use the Manage Training dashboard and per-course learner detail to monitor completion, find overdue learners, and export progress to CSV.
Once you've enrolled people in training, the Manage Training dashboard is where you watch it land. It rolls up every course with active enrollments into a single view, shows you which learners are behind, and lets you drill into any course to see who's completed, who's overdue, and who hasn't started. You'll come back here whenever you need a completion read for a compliance window, chase down stragglers, or hand a clean CSV to a manager.
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.
- You've created at least one enrollment. Progress only appears once learners have been enrolled — see Assign training to groups.
- This dashboard is read-only. It reports on progress; it does not create, edit, or cancel enrollments. For that, use Create Enrollment (covered below) or the enrollment history tab.
Open Manage Training
From the left nav, go to Training. The page header reads Manage Training, with Create Enrollment in the top right. Below the header are two tabs:
- Course Progress (the default) — completion tracking, the tab this article walks through.
- Enrollment History — the batch-by-batch record of every enrollment you've submitted. See Review enrollment history.
Clicking Create Enrollment takes you to the enrollment wizard; it does not change anything on the dashboard.

Read the Course Progress tab
The Course Progress tab opens with a four-tile summary strip, then a table of every course that has enrolled learners.
The summary strip
The four tiles roll up across all courses on the page:
- Courses — how many distinct courses currently have enrollments.
- Learners — the total enrolled-learner count, summed across courses (one person enrolled in two courses counts twice).
- Overdue — the total overdue learners, with a sub-label showing how many courses they're spread across.
- Completion — the overall completion rate: completed learners divided by
total enrolled learners, as a whole-number percent. If no one is enrolled
yet, this reads
0%.

The course table
Each row is one course. Use the Search courses box in the top right to filter by course name. Every column header is a sort button — click once to sort, click again to flip direction:
- Course — thumbnail, name, and category/difficulty badges.
- Learners — enrolled count.
- Completed — how many have finished.
- Overdue — how many are past their due date and not yet complete (shown in red when above zero).
- Completion — a progress bar plus the percentage for that course.
- Last Enrollment — the most recent enrollment date for the course.
- Nearest Due — the soonest upcoming due date.
The table defaults to sorting by Last Enrollment, newest first. Click any row to open that course's learner detail.
A course can show a generic name
Course names and thumbnails come from your published training catalog. If a course has progress but no matching published catalog entry (for example, it was unpublished after enrollment), the row falls back to a generic name and a category icon instead of the catalog artwork. The progress numbers are still accurate.
Drill into a course
Click a course row to open its per-course detail page. The top of the page restates the course as a hero card — thumbnail, category, difficulty, estimated minutes, a short description, and a Completion rate bar for that course. Use the Manage Training link at the top left to go back.
Below the hero are four count cards that bucket the whole roster:
- All Learners — everyone enrolled in this course.
- Incomplete — enrolled, not yet complete, not yet past due.
- Overdue — not complete and past the due date (shown in red).
- Completed — finished the course.

How status is decided
The Status for each learner is bucketed by Hook on the server — you're not looking at raw upstream PhishingBox statuses. The rules, applied in order:
- Completed — the enrollment is marked complete or has a completed date.
- Overdue — it isn't complete and its due date is in the past.
- Incomplete — everything else (enrolled, not done, not yet due, or with no due date set).
A learner with no due date can never be Overdue — they stay Incomplete until they finish.
Filter the learner roster
Under the count cards is a Learners table with tabs across the top: All Learners, Incomplete, Overdue, and Completed, each showing its count. Selecting a tab filters the table to that bucket. The columns are:
- Learner — name and email.
- Group — the groups the learner belongs to (or
-if none). - Status — the bucketed status as a badge.
- Progress — completion percentage for the course.
- Enrollment Date, Due Date, Completed Date — see the date note below.
- Score — the learner's score, or
-when no score has been recorded.
Every column header sorts the table.

Export to CSV
To pull the roster out of Hook, click Export CSV in the top right of the course detail page and choose a bucket:
- All learners
- Incomplete learners
- Overdue learners
- Completed learners
The export runs entirely in your browser — there's no email or background job.
The file downloads immediately, named like
course-progress-<courseId>-<bucket>-<date>.csv. The columns are Learner,
Email, Group, Status, Progress, Enrollment Date, Due Date, Completed Date,
Score.
Built for Excel
The CSV is written with a UTF-8 byte-order mark so Microsoft Excel opens
accented names and other non-ASCII characters correctly on the first try.
Dates in the export use ISO format (YYYY-MM-DD); empty date or score cells
are left blank.
Common pitfalls
- Dates are shown in UTC, not your local time. Throughout the dashboard and detail page — including Last Enrollment, Nearest Due, and the per-learner dates — Hook renders dates in UTC. If you're well east or west of UTC, a date may read one day off from your local calendar, and a learner can flip to Overdue at what looks like the wrong moment. The CSV export uses the same UTC dates.
- No score reads as
-. A blank score doesn't mean a failing grade — it means no score has been recorded for that learner yet (common for courses that don't return a score, or learners who haven't finished). The CSV leaves the cell empty in that case. - Learner counts can exceed your headcount. The summary strip's Learners tile sums enrolled learners across every course, so one person in three courses contributes three to that total. It's an enrollment count, not a people count.
- The dashboard is read-only. You can't reschedule, cancel, or re-send an enrollment from here. To act on a stalled enrollment, head to the Enrollment History tab.