Tracking Learner Progress with Moodle Activity Completion
Learn how to turn on Moodle Activity Completion, set conditions like a passing grade, verify the data in the database, and use it for reports and conditional access.
15 Nov 2025, 15:51 UTC

Problem: Knowing whether learners have actually finished an activity
Instructors often need a reliable way to see if a student has viewed a resource, submitted a quiz, or reached a passing grade. Without this information, it is hard to gate follow‑up content or to give timely feedback.
Thesis: Enabling and configuring Moodle’s Activity Completion gives immediate visual feedback to learners and stores data that can be queried for reports and conditional access.
How Activity Completion works
When the feature is turned on globally, Moodle adds a small checkbox to each activity on the course page. The checkbox is ticked automatically when the condition you set for that activity is satisfied (e.g., the resource is viewed, a grade threshold is met, or the student marks it complete manually). The status is recorded in the course_modules_completion table, which can be queried for reports or used by other plugins such as Restrict access.
Enabling the feature
- Log in as an administrator.
- Go to Site administration ► Advanced features.
- Check the box for Enable completion tracking and save changes.
- Return to the course, turn editing on, and edit the settings of any activity.
- In the Activity completion section, choose Show activity as complete when conditions are met and pick one or more conditions (Require view, Require grade, Require manual marking, etc.).
- Save and display the course page.
No special permissions are needed beyond the standard admin or teacher role that can edit activity settings.
Worked example: Quiz with a passing grade
Suppose you want a quiz to be marked complete only when a student scores 70 % or higher.
- Edit the quiz settings.
- Under Activity completion, set Condition: Require grade to Grade ≥ 70.
- Save.
When a student attempts the quiz and achieves a grade of 70 % or more, the checkbox next to the quiz ticks immediately. If the grade is below the threshold, the box remains empty.
Checking that completion data is stored
After the condition is met, you can verify the record:
SELECT * FROM course_modules_completion
WHERE userid = <student‑id>
AND coursemodule = <quiz‑cmid>;
Replace the placeholders with the actual user ID and the course module ID of the quiz (you can find the latter in the URL when editing the quiz). A row with completionstate = 1 indicates completion.
Using completion data in reports and conditional access
Moodle provides a built‑in Course completion report (Reports ► Course completion) that shows the percentage of activities each learner has completed. You can also create a custom SQL report that joins course_modules_completion with user and course_modules to list learners who have not yet met the quiz condition.
For conditional access, edit a subsequent resource, go to Restrict access, add a restriction based on Activity completion of the quiz, and set the condition to Must be completed. The resource will stay hidden until the quiz checkbox is ticked.
Trade‑off and limitation
Changing the completion conditions after learners have already satisfied them can reset their completion status, causing confusion. To avoid this, finalize all conditions before the course opens or use a backup of the course_modules_completion table if you must adjust them later.
Additionally, some conditions (e.g., time‑based completion) rely on the Moodle cron job. If cron is not running, those completions will be delayed until the next scheduled run. Verify cron is active (Site administration ► Server ► Cron) and check the admin notifications for any failures.
Actionable closing
Enable Activity Completion, set clear conditions for each key activity, and use the resulting data to drive reports or gate further content. Test the flow in a sandbox course, confirm the checkbox updates and the database record appears, then roll out to your live site with confidence that learners’ progress is visible and actionable.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.