Course completion tracking in Moodle records exactly who has finished which activities. Turn it on in course settings, set completion rules for each activity, and add a progress block so both you and your learners can see where things stand. From there, the built-in reports tell you who's on track and who needs a nudge.
TL;DR:
- Enabling course completion tracking is essential, as failure to turn it on prevents any progress data from being recorded or displayed.
- Automatic activity completion requires correct setup of simple conditions, like submission or passing grade, to avoid conflicts and incomplete reporting.
- Adding a progress block visible to learners improves motivation and clarity, especially when grouping activities meaningfully within modules.
- Reports such as course, activity, and user progress help identify bottlenecks or at-risk learners by combining login data, grades, and completion status.
- Always test rules and reset courses properly before reuse to prevent stale data and conflicting conditions, ensuring accurate tracking each term.
Table of Contents
- Enable course completion in course settings
- Set activity completion rules for common activities
- Add a progress block so learners can see where they stand
- Which reports show completion data, and how to read them
- Common pitfalls and how to fix them
- Why clear completion tracking matters beyond the classroom
- Host your courses where completion data works for you
- Sources
Enable course completion in course settings
Nothing tracks until you flip this switch. Moodle hides all activity completion options until you turn on completion tracking at the course level, which is the single most common reason administrators think the feature is "broken" when it's simply switched off.
Here's the exact path:
- Open the course and go to Course → Settings → Edit settings.
- Scroll to the Completion tracking section.
- Set Enable completion tracking to "Yes".
- Save changes.
Once saved, every activity in the course gains a new "Activity completion" section in its own settings. Before this, you won't see any completion options anywhere. This is documented clearly in university guidance on enabling course completion.
Two things catch administrators out here. First, enrolment timing matters: if a student enrols after an activity was already marked complete for others (say, through a retroactive setting), their own completion record may not populate correctly until they interact with the activity themselves. Second, if you're running grouped courses or cohort sync, group settings can affect which students appear in completion reports at all, so check group membership before assuming a "missing" student is a tracking fault.
Enabling this setting doesn't complete anything by itself. It just opens the door. What you do next, activity by activity, is where the real configuration work happens.
Set activity completion rules for common activities
Every activity type in Moodle can be tracked in one of two ways: manual completion, where the student ticks a box themselves, or automatic completion, where Moodle marks the item done once a condition is met (viewed, graded, submitted, or similar). Manual is honest but unreliable. Automatic is stricter but needs setting up correctly.
To configure it: open the activity, go to Edit settings, and scroll to Activity completion. Choose your condition there, per activity, per module.
Here's how that plays out for the activity types you'll use most:
- Assignments: set "require submission" so the item only completes once the student actually hands something in, not just when they open the page.
- Quizzes: use "require an attempt" for low-stakes checks, or "require passing grade" for anything you need learners to genuinely clear before moving on.
- Forums: "require replies" works better than "require view" if participation is the actual learning goal.
- Resources (PDFs, pages, links): "require view" is usually enough, since there's rarely a meaningful second condition for a static file.
The rule to hold onto: pick the simplest condition that still proves the learning happened. Layering multiple triggers onto one activity (view and grade and submission) is exactly what creates the conflicts covered later. Institutional Moodle guidance on activity completion confirms this per-activity setup and flags the same warning against stacking conditions unnecessarily.
Pro Tip: Test every automatic rule with a dummy learner account before you publish the course using LLQP exam prep tips and study guides to simulate effective assessment settings. A quiz set to "require passing grade" with no valid submission attempt yet will sit permanently incomplete, and you'll want to know that before forty real students hit the same wall.*
Add a progress block so learners can see where they stand
A configuration that only administrators can see is only half useful. Adding a visible block turns completion tracking from a back-end record into something learners actually act on.
To add one: go to the course page, Turn editing on, then Add a block, and select either Completion progress or Progress, depending on which is available in your Moodle theme. University-hosted courses generally list this once completion tracking is already switched on, as shown in Moodle's own documentation tooling.
Once added, you choose which activities the block displays:
- Include only the activities that genuinely signal progress. A syllabus PDF nobody re-reads doesn't need a slot.
- Manually completed items show as a checkbox; automatically completed ones update on their own as students interact with them.
- Group activities into meaningful modules rather than one long undifferentiated strip. Progress bars grouped by unit tend to keep learners motivated in a way a flat list of forty ticks does not.
- On smaller screens, a compact bar reads better than a full summary block. Save the detailed version for desktop-heavy cohorts.
Which reports show completion data, and how to read them
Three tools do the heavy lifting once your course is running: the Course completion report, the Activity completion report, and the User progress (or Progress overview) tool. Each answers a slightly different question.
- Course completion report shows the whole cohort against the course-level completion criteria you set, one row per student, ticks or dates per requirement.
- Activity completion report zooms into a single activity, useful when one quiz or assignment is causing a bottleneck across the class.
- User progress / Progress overview gives you the individual view, matched against last access, grades, and completion checkboxes for one learner at a time.
Reading these well means watching more than the checkmarks. A completed item tells you what happened; last access and grade columns tell you why it might not have. A student with no completions and no recent login is a different problem to one who's completed everything except a single graded quiz they're stuck on. D2L's own documentation on monitoring class progress makes the same point about combining login data, content visits, and grades to spot at-risk learners early, and the logic transfers directly to Moodle's equivalents.
From any of these reports, you can export data to a spreadsheet or email flagged students directly. For larger cohorts, exporting and running simple formulas offline is usually faster and lighter on the server than repeatedly refreshing a live report, particularly during peak hours on a shared Moodle instance.
One limitation worth knowing: completion data in archived or closed courses often becomes read-only or inconsistent once the course is no longer active. Decide whether you're archiving for record-keeping or resetting for a new cohort before you touch anything, because the two need different handling.
Common pitfalls and how to fix them
Most completion problems trace back to one of three causes: conflicting rules, untested logic, or stale dates carried over between terms.
- Conflicting triggers: requiring both "view" and "receive a grade" on the same activity sounds thorough but often just confuses the logic. Pick one clear trigger per activity and stick to it, a rule backed directly by Moodle community discussion on completion configuration.
- Untested flows: always run through the course as a sandbox student before launch. This catches quizzes that never unlock, or assignments waiting on a grade that hasn't been entered yet.
- Fixed completion dates: hard-coding a completion deadline works fine the first term, then quietly breaks the course when you reuse it the next. Use relative availability windows instead, and adjust per term. Guidance on reusing Moodle courses recommends exactly this, alongside proper reset procedures rather than manual edits.
- Conditional access ordering: if an activity is conditionally locked behind another activity's completion, remember that condition won't fire until the first item is actually marked complete, not just attempted.
Pro Tip: Before rolling a course into a new term, use Moodle's course reset tool to clear completion data in one pass rather than manually unticking boxes. It's faster, and it avoids leaving stray records that confuse next term's reports.
If your courses contain personal data tied to completion records, it's also worth reviewing how long that data should be retained before archiving, something covered in more detail in Bibliowlteca's guide to data protection for course sellers.
Why clear completion tracking matters beyond the classroom
Completion data isn't just an administrative record. It's the clearest signal you have of whether a course actually works. A module where many learners stall at the same quiz isn't a tracking glitch, it's feedback: that content needs revising, not just monitoring.
For creators selling courses rather than just teaching them, this data doubles as a business metric. Low completion on a paid module tells you as much about your product as your pricing does. Tools for hosting and analysing course performance are built around that idea, with guides on tracking metrics that protect course revenue going further into which indicators actually matter once you're selling at scale.
Test your completion logic before launch, then read the reports like a designer, not just an administrator. The gap between what a course promises and what learners actually finish is where the real improvements live.
— BibliOWLteca
Host your courses where completion data works for you
If you're already configuring Moodle completion rules to understand your learners, some platforms give you the same visibility without needing a separate Moodle instance to manage. Creators publish courses, track completion and engagement, and take global payments from one dashboard, with no separate hosting setup to maintain.

The platform handles secure delivery, multi-currency payments, and analytics on how far learners actually get through your content, the same signals covered above, but tied directly to your sales. Browse the features built for course creators to see how hosting, analytics and payments work together, or go straight to the marketplace to set up your first course and start watching completion data roll in from day one.
Sources
- Plokid – Juhendid e-õppe kasutamiseks
- Tegevuste lõpetamise jälgimine - Kursus
- Moodle forum discussion on configuring completion tracking
- Kursuse lõpetamine Moodle'is – Juhendid e-õppe
