How to Track Mandatory Training Completion Across Your Organization in Moodle
Stop tracking mandatory and compliance training in a spreadsheet. Use cohorts to auto-enroll the right people, define what completion means, and pull a live report of exactly who has and has not finished.
The hard question in mandatory training is not “did we run it”, it is “who has not done it yet”. Too often the honest answer lives in a spreadsheet that somebody updates by hand and that is out of date the moment it is saved. Moodle can answer that question on demand if you wire up four things: a group that defines who is in scope, automatic enrollment for that group, a clear definition of what “complete” means, and the report that reads it back. This guide walks through all four on Moodle 4.5. The approach is the same for compliance, health and safety, and onboarding training.
Step 1: define who is in scope with a cohort
Start with the people who have to do the training. In Moodle this is a cohort: a named group of users such as All Staff, New Starters, or a particular department or site. Create it under Site administration > Users > Cohorts, then use the Assign action (the people icon) to add members. You can also bulk-load membership by uploading users with a cohort1 column, or via Upload cohorts for the groups themselves.
The point of building the group once, in one place, is that it becomes your single source of truth for who is in scope. Every course that uses it inherits the same membership, and you maintain that membership in exactly one location.
Step 2: connect the cohort to the course with Cohort sync
Now enroll that group into the mandatory course automatically. In the course, open Participants > Enrolment methods, add Cohort sync, point it at your cohort, and assign the Student role. The enrol_cohort plugin is part of Moodle core, so nothing needs installing.
Two things make this better than manual enrollment:
- Everyone in the cohort is enrolled at once, with no chance of missing someone.
- When someone is added to the cohort later, a new hire for example, they are enrolled in the mandatory training automatically, without anyone touching the course.
By default, removing a user from the cohort unenrolls them from the course (their grades are hidden, not deleted). You can change this to “Suspend” in the cohort sync method’s settings if you would rather keep the records visible while revoking access.
Step 3: tell Moodle what “complete” actually means
This is the step people skip, and without it “completion” is just a guess. First, make sure Enable completion tracking is set to Yes in the course settings. Then open Course > More > Course completion and define the condition. For most mandatory training the right condition is Activity completion of the required activity (the policy page, the SCORM module, the quiz, and so on), with the aggregation set to require all selected activities.
For this to work, the activity itself must also have completion configured, under its Activity completion section, so that Moodle knows when that activity is done (viewed, submitted, passed, and so on). With both in place, completion becomes a real, tracked status you can report on and stand behind, rather than a manual tick.
Step 4: read the Course completion report
This is the payoff. Open Reports > Course completion (/report/completion/index.php?course=ID). You get a grid of every person in scope and exactly where they stand: who has met the requirements and who has not. The incomplete rows are your follow-up list, accurate and live rather than a stale spreadsheet.
- Export it straight to a spreadsheet (CSV or Excel) for your records, using the download options at the bottom of the report.
- Break it down by group with the group selector, so each manager sees only their own team. Set up Moodle groups in the course if you want this per-team view.
A note on recurring (annual) training
One honest limitation: standard Moodle course completion does not reset itself on a schedule. If your compliance training has to be repeated every year, a one-off completion will stay “complete” indefinitely. For genuinely recurring requirements you have a few options: reset completion for the cohort at the start of each cycle, run a fresh course per cycle, or move to Totara, whose certification feature is built around recurring recertification windows. Choose the approach before you launch, because retrofitting it across historical records is more work.
Recap
Define the group, sync it into the course, define what “done” means, and read the report. That is mandatory training tracking that maintains itself. Whatever platform you are on, insist on these four things; in Moodle they are all built in.
Solin specializes in Moodle and Totara compliance tracking, completion, and reporting. Contact us if you would like help setting this up.
Need help with a Moodle or Totara project?
Contact us