Founding offer — 25% off applied automatically at checkout. Ends 1 November 2026 or after our first 30 orders. See pricing →
← Back to Training Hub Changelog Skip to document content

Student Reports

The student report brings together everything Training Hub knows about one student: attendance in every enrolled course, missed sessions, clinic shifts, session notes, lesson progress and (with Pro) engagement, assignments, quizzes and recording-claim history. Trainers use it to follow up a student who is slipping; coordinators use it to answer “is this student on track?” before a progression meeting; students see their own version on the front end.


Where to find it

  • Administrators and trainers: Training Hub → Student Report in wp-admin.
  • Students: a front-end page containing the [dthub_student_report] shortcode. Nominate that page under Training Hub → Settings → Pages & Reports → Frontend Pages → Student Report Page (use Auto-create page if you don’t have one yet, then Save Changes).

Who can see a student report

Person What they can open
Administrator Any student’s report.
Trainer / instructor (any role holding the Training Hub reporting capability — administrators, your LMS’s instructor role, and any role listed under Backend Access Roles) Only students enrolled in a course they teach. Opening another student’s report (for example by editing the address bar) shows “You do not have permission to view this report.”
Student Only their own report, through the front-end page.

Some actions inside the report are narrower still: only administrators can edit the Reasonable Adjustments note, and only administrators — or trainers, when Competency Marking allows it — can use the competency Override button.


Opening a report

  1. Go to Training Hub → Student Report.
  2. Choose the student in Select Student and click View Report.
  3. The report opens on the Attendance Report tab. Use the tabs across the top to move between sections; the address of each tab can be bookmarked.

Until a student is chosen the page shows “No student selected yet”.


The tabs

Tab Free Pro Shown when
Attendance Report ✓ ✓ Always
Engagement — ✓ Pro active
Lesson Completion ✓ ✓ Your LMS models lessons (e.g. Tutor LMS)
Clinic Attendance ✓ ✓ Always (uses your clinic term)
Missed Tutorials ✓ ✓ Always (uses your tutorial term); a badge shows the count of missed sessions
Recording Claims — ✓ Pro active
Assignments — ✓ Your LMS supports assignments
Quizzes — ✓ Your LMS supports quizzes
Session Notes ✓ ✓ Always
Subgroups — ✓ The Pro timetable planner is in use

The words “Tutorial” and “Clinic” follow the terminology you set in Settings, so your site may say “Class” or “Placement” instead.


Attendance Report tab

Header buttons

  • Export to CSV — downloads the student’s attendance summary as a spreadsheet (see 09 — Attendance Export).
  • Print / Save as PDF — opens a print-ready version. In Free this is a clean print page: use your browser’s print dialog and choose “Save as PDF”. With Pro active the same button downloads a branded PDF file instead.
  • Reasonable Adjustments — opens the student’s welfare note (see below). Shown to administrators always, and to trainers only when a note already exists.

Summary cards

  • Enrolled Courses
  • Tutorials — shown as “n held / n scheduled”
  • Attended
  • Overall Attendance — the attendance rate across all enrolled courses
  • Total Lessons and Lesson Progress — when your LMS models lessons
  • Assessment Quizzes and Assignments — passed / total (rate), when your LMS supports them

Which quizzes the Assessment Quizzes figures count is set under Settings → Pages & Reports → Student Report Display → Quiz count in student report: All quizzes in the course (default) or Assessment quizzes only (quizzes flagged on the Assessment Quizzes screen).

Course table

One row per enrolled course with columns for Tutorials, Lessons, Assessments (Quizzes), Assignments (where supported) and Competency (C / NYC, or your own terminology). Click a row to expand it and see:

  • every session in that course with its date, time, location, note and status (Excluded, Upcoming, Not Marked, or the attendance status label);
  • the assessment details for the course;
  • Subject Results and Progress Snapshot buttons that produce print-ready documents for that course.

Excluding a student from individual sessions

Sometimes a student genuinely isn’t required at a session — a recognised prior learning exemption, an approved leave arrangement, or a session for another stream. In the expanded course row:

  1. Tick the sessions (or Select all).
  2. Click Exclude Selected. Excluded sessions are removed from both sides of the attendance rate.
  3. To undo, tick them again and click Restore Selected.

Previous attendance

If the student has attendance in courses they are no longer enrolled in (for example after a transfer or a re-enrolment), it appears in a separate Previous attendance table. Each prior course is rated against its own sessions and does not change the figures above. “(recorded at import)” marks a rate that was captured when records were imported.

Ad-hoc sessions

Make-up sessions or cross-cohort support sessions scheduled outside the student’s enrolled courses are listed under Ad-Hoc Tutorials with totals for upcoming and completed sessions, the allocation note and who added them. They don’t alter the main attendance totals.


How the attendance rate is calculated

Attendance rate = sessions attended ÷ sessions required × 100   (one decimal place)
  • Sessions required = sessions that have already started (to the minute) and are not excluded for this student. Future sessions never count, so the rate can’t exceed 100%.
  • Sessions attended = required sessions marked with any status that is not set to count as missed.
  • A held session that has not been marked counts as required but not attended.
  • With no held sessions the rate shows “—” rather than 0% or 100%.

Each attendance status has a Counts as Missed tick-box under Settings → Appearance & Sessions → Attendance Status Options. The shipped defaults are:

Status Counts as
Present Attended
Late Arrival Attended
Left Early Attended
Watched Recording Attended
Absent Missed
Apologies Missed

There is no separate “excused” status that is left out of the calculation — to stop a session counting against a student, exclude it (above) or Exempt it from the Missed tab. Approved recording claims mark the session Watched Recording, which counts as attended by default (see 06 — Recording Claims). If you add your own status, decide deliberately whether it counts as missed; an unrecognised status is treated as missed.

The colour of a rate (green / amber / red) is a visual cue only. The Low Attendance Threshold setting does not change this report — it controls the weekly summary email.


Lesson Completion tab

Shows the student’s lesson progress per course for LMSs that model lessons. This tab is not shown when your LMS (or Training Hub’s own native classes) has no lesson concept. With Pro, it also hosts Import prior completion — see below.

Clinic Attendance tab

Totals for clinic shifts — Total Attended, On Time, Late Arrivals, Unwell, Clients Treated and Attendance Rate — followed by a per-shift table (date, supervisor, status, clients, notes), any ad-hoc clinic allocations, and up to the 50 most recent Clinic Cancellations with who cancelled and the notice given.

Send Roster Email sends the student a summary of their allocated clinic shifts for a course you choose (tick Include past clinics to include completed ones).

Missed Tutorials tab

Lists past sessions where the student was marked with a missed status or where attendance was never recorded, with summary counts (Total Missed, Not Yet Marked, Confirmed Absent, Courses Affected). Each row offers:

  • Exempt — removes the student from that session (same effect as excluding it).
  • Mark Attendance — jumps to the marking screen for that session so you can record what actually happened.

Session Notes tab

All attendance notes recorded against the student in tutorials and clinics. Notes are written by trainers when marking attendance.


Reasonable Adjustments note

Each student can have one private welfare note — reasonable adjustments, learning-support arrangements, access requirements. Click Reasonable Adjustments on the Attendance Report tab:

  • Administrators click Edit Note, type, and Save Note. The note records who last updated it and when.
  • Trainers who teach the student can read the note but not change it.
  • Students never see it.

Trainers can also see every student with a note in one list via the [dthub_student_notes] shortcode — see 25 — Dashboards, Calendars and Notes.

Competency override

The Competency column shows whether the student has been marked competent in each course. Users allowed to mark competency see an Override button that opens Admin Override — Competency. Choose the new status, tick “I confirm this is an admin override. My account (…) will be recorded as the verifier.” and click Confirm Override. Administrators can always do this; trainers can only when Settings → Pages & Reports → Competency Marking → Allow trainers to set student competency is ticked (off by default).


Refreshing data

Report figures are cached for speed. If you’ve just marked attendance and the numbers look out of date, click Refresh Data at the top of the report. You’ll see “Student report cache cleared. Showing the latest progress.”


What students see

The [dthub_student_report] page shows the logged-in student their own report:

  • summary cards (enrolled courses, Tutorial Attendance, lesson progress, assessment quizzes, assignments submitted — as supported by your LMS);
  • a Course Breakdown for each course with progress, competency (C / NYC), completed and upcoming sessions and the next session;
  • Missed Online Tutorials — past sessions whose location contains “online” that the student missed, with Watch Recording (when a recording link is set on the course) and Log Recording Attendance (when a Recording Claim Page is set);
  • their Ad-Hoc Tutorials;
  • a Refresh Data button.

Students don’t see tabs, exports, other students, the Reasonable Adjustments note, or trainer-only notes. A logged-out visitor sees “Please log in to view your attendance report.” with a Log in link that returns them to the page.


Pro — additional report tabs

🔒 Pro feature — requires Dantian Training Hub Pro.

  • Engagement — weekly activity across lessons completed, tutorials attended, quizzes submitted and assignments submitted, with Active Weeks and Total Time, a weekly chart and table. Filter by Year or a From / To range, then Apply; CSV and PDF export the view. Activity-timing detail needs the activity-tracking module switched on.
  • Recording Claims — the student’s claim history and outcomes.
  • Assignments — submissions, marks and feedback per assignment (assessment history is included here).
  • Quizzes — the quizzes the student needs to complete, with attempt history.
  • Subgroups — the student’s timetable-planner subgroup allocations.

Without Pro, these tabs simply don’t appear.

Pro — Importing a returning student’s history

When a student comes back to study again, their earlier work can be carried forward instead of repeated. This is available to administrators when your LMS models lessons. Open the student’s report, go to the Lesson Completion tab and choose Import prior completion.

Same student, a new course. Choose the Prior course (completed before) and the Current course (import into), then Preview matches. Matching lessons and assignments are found automatically and shown for you to review; correct any wrong or unmatched row with its target dropdown. Nothing is written until you confirm. When assessments are included you’re asked for a reason, which is stored as the justification for recognising prior learning.

A returning student on a new account. If your enrolment process created a fresh login (for example a short-course account replaced by a diploma account), tick Import from a different account, search for the Prior account by name or email, then choose the course to import from. This option needs an administrator who can also edit users. Administrator accounts can’t be used as either side of a transfer.

An extra option then appears, ticked by default: Also transfer this account’s attendance record. It moves the old account’s tutorial and clinic attendance, ad-hoc registrations, recording claims, class membership, quiz extensions and student notes — and, with Pro, records such as action plans and follow-ups, the attendance audit trail, engagement activity, extension requests, timetable allocation, rubric grading history, authenticity declarations and the secure-files archive.

What moves by default.

  • Records for the course you are importing move across.
  • Records for the student’s other courses stay on the old account unless you tick them. The preview lists them with a count per course.
  • Records that belong to no course (student notes, engagement activity, action plans, class membership without a linked course) move across by default, because they describe the person. Untick them if you’d rather leave them.

If you intend to delete the old account, bring everything. Anything left behind belongs to an account that no longer exists, and the plugin’s orphaned-record cleanup removes it.

What happens to submitted work. Assignment submissions are transferred, not recreated:

  • Same item — the record is reassigned. The submission, mark, feedback, rubric grading, files and original date carry across untouched.
  • Different item — the submission is copied to the assignment you matched it to, with its original submission date.

Quiz attempts transfer the same way when the quiz is the same one.

Confirming differently-named items. Items are matched by title, so an assignment re-created for a new intake can look like a different item. Whenever a selected row would copy work onto a different item, tick “I confirm the matched items are the same task, even where the title differs.” — import is blocked until you do.

When both accounts hold the same record. If the student attended the same session under both logins, only one record can be kept. Each clash is listed before anything is written with a choice to keep the existing record or use the prior one; where the new account’s record is still unmarked, the old account’s real attendance is proposed. Your choice is written to the attendance audit trail.

Once done, delete the old account through Users in the normal way.


Data and privacy

  • The report reads data Training Hub already stores (attendance, allocations, notes) plus progress from your LMS; it doesn’t create new records except exclusions, the Reasonable Adjustments note and competency overrides.
  • The Reasonable Adjustments note is included in WordPress’s personal-data export and removed by its personal-data erasure tool (Tools → Export / Erase Personal Data).
  • CSV and PDF exports contain personal information (names, emails, student numbers). Store and share them according to your organisation’s privacy policy.

Troubleshooting

  • “You do not have permission to view this report.” — the trainer doesn’t teach a course the student is enrolled in. Check the course’s instructor assignment in your LMS.
  • Figures don’t match what was just marked. Click Refresh Data.
  • No Lesson Completion tab. Your LMS (or native classes) doesn’t model lessons.
  • The rate shows “—”. No sessions in the student’s courses have been held yet, or all held sessions are excluded.

Worked example

A coordinator at a massage-therapy college is preparing for a progression meeting. She opens Training Hub → Student Report, picks Priya and clicks View Report. Overall Attendance reads 78.6% — 11 of 14 held tutorials. The Missed Tutorials badge shows 3. On that tab, one session is “Not Yet Marked”: she clicks Mark Attendance, confirms with the trainer that Priya watched the recording, and marks Watched Recording. Another missed session was a stream Priya was never meant to attend, so she clicks Exempt. Back on the Attendance Report tab she clicks Refresh Data: the rate is now 92.3% (12 of 13). She clicks Print / Save as PDF and saves the report for the meeting file.

Was this helpful?