Industry Guides

How to Improve Course Completion Rates With Better LMS Design

Find the exact step where learners stop, then fix what causes it: lesson length, progress tracking, reminders, cohorts, the mobile experience and assessments that act as a wall.

How to Improve Course Completion Rates With Better LMS Design

Low course completion rates are usually a design problem with an address. Learners do not drift away evenly. They stop at one lesson, one quiz or one login screen on a phone, and the fix depends on which. Find that spot in your reports first, then change the part of the LMS that causes it.

You will not find an industry average here. Completion depends on whether a course is mandatory, paid, short or long, so a benchmark from someone else's catalog tells you little. Compare your courses with each other and with their own earlier numbers.

See where course completion rates fall before you redesign

For each course, build a simple table: one row per lesson or activity, in order, with the number of learners who completed it. The row where the number falls sharply is where to work.

Where to get the numbers:

  • Moodle: turn on completion tracking, give each activity a completion condition, then open the course and go to Reports > Activity completion for a grid of learners against activities. The Moodle activity completion documentation covers the settings.
  • LearnDash and LifterLMS: both have reporting screens with course progress per learner and CSV exports. A pivot table on the export gives you the per-lesson counts.
  • Directly from the database, when the built-in reports do not break progress down by step. On LearnDash, a read-only query like this one counts completions per lesson (adjust the table prefix and the course ID):
SELECT post_id AS lesson_id, COUNT(DISTINCT user_id) AS completed
FROM wp_learndash_user_activity
WHERE course_id = 123
  AND activity_type = 'lesson'
  AND activity_status = 1
GROUP BY post_id;

Most courses show one of three shapes.

What the numbers showWhat it usually meansFirst thing to change
Many enrolled, few complete lesson oneThe start is unclear, or people enrolled without a reason to begin nowThe welcome email, the first screen after login and a start reminder
A sharp fall at one lesson or quizThat step is too long, broken on some devices or too hardThat step, and nothing else yet
Content finished, final assessment not attemptedThe assessment is intimidating, hidden or waiting on a manual gradeThe path into the assessment and the grading turnaround

Shorten the lesson and make the next step obvious

A lesson should teach one thing and end. When a step in your table loses learners and it holds a forty-minute video, split it into parts that each close with a small win. Put the expected time in the lesson title so people can decide whether to start now or tonight.

Then count the clicks from login to the next unfinished lesson. On many sites it is four or five: dashboard, course list, course page, section, lesson. It should be one. Add a "Continue" button to the first screen after login that goes straight to the next incomplete step. Inside the lesson, remove whatever competes with it. LearnDash's Focus Mode strips the theme's header and sidebars from lesson pages for this reason, and Moodle course formats that show one section per page do a similar job.

Make progress visible and honest

A progress bar works only if learners trust it. Two faults break that trust.

Progress that does not move. A learner watches the video, and the lesson still shows as incomplete because completion was tied to a button they did not see. Prefer automatic conditions (viewed, submitted, passed) over manual "Mark complete" buttons, and test every condition with a learner account.

Progress that cannot reach the end. A hidden activity, an optional survey or a retired quiz that still counts toward completion leaves people stuck one step short. Review which activities count each time you edit a course.

Be careful with rules that force a learner to watch every second of a video before the next lesson opens. They suit compliance training, where proof of viewing is the point. In a course people chose to take, a player that refuses to continue after a dropped connection is a reason to quit.

Send reminders that respond to behavior

A weekly newsletter to everyone is not a reminder. Useful reminders are triggered by what one learner did or did not do:

  • enrolled, but has not started after a few days
  • started, then inactive for a set period
  • a deadline or live session is approaching
  • one lesson left before the certificate

Each message should link straight to the next step, not to the home page, and reminders must stop once the learner finishes. Cap the frequency and offer a way to turn them off.

LearnDash's Notifications add-on sends email on triggers such as a learner not logging in for a number of days. In Moodle, a completion reminder date on an activity appears in the learner's Timeline block on the dashboard. Where the platform has no suitable trigger, a scheduled job that queries for inactive learners and hands the list to your email tool does the same work. None of it helps if the messages land in spam, so check delivery first. Our guide to fixing WordPress email delivery with SMTP covers the setup.

Use cohorts and deadlines where the course suits them

Self-paced courses have no natural reason to do the next lesson today. A cohort supplies one: lessons open on fixed dates, a group works through them together and somebody notices when a learner goes quiet. That suits programs with discussion, practice and feedback. It is the wrong tool for reference material that people dip into when they need it. We go through the platform side in running cohort-based courses.

A lighter version works inside a self-paced course: suggested weekly targets, a visible finish date the learner picks at enrollment and a small study group.

Treat the phone as the main screen

Take the course yourself on a mid-range phone using mobile data, from the reminder email to the end of a lesson. The usual findings:

  • the session expires and the learner must log in again on every visit
  • video is served from the web server and stalls, when a video hosting service would adapt the quality to the connection
  • a SCORM package or an embedded slide deck was built for a desktop screen
  • quiz controls and "next" buttons are too small to tap reliably
  • pages are heavy and slow, which belongs with performance optimization more than with course design

For learners with poor connectivity, offline access can decide whether they finish. The Moodle app lets learners download course content and syncs their work when they are back online.

Fix assessments that act as a wall

If learners reach the final quiz and stop, look at the quiz before the content. Allow more than one attempt unless a regulator says otherwise. Show feedback on wrong answers so a second attempt is informed. Put short checks through the course so the final one is not the first time anyone is tested.

Check the questions themselves. Moodle's quiz statistics report shows how each question performed, and a question nearly everyone fails is more often badly worded than hard. For assignments marked by a person, measure the wait. A learner who submits and hears nothing for two weeks has stopped by the time the grade arrives. Notify graders on submission and agree a turnaround time.

What design cannot fix, and when to call a developer

No interface rescues a course that is longer than its subject needs, or one people were enrolled in with no reason to care. If the drop is spread evenly across every lesson, look at the content and at who is being enrolled.

Lesson structure, completion settings and reminder emails are things a course team can change in the admin. A developer is worth involving for per-step funnel reports, a "Continue" button that knows the next lesson, reminder logic your LMS lacks, mobile and performance fixes, and custom dashboards for managers. That is routine work in LearnDash customization and Moodle customization, and part of what we build for education and eLearning providers.

Frequently asked questions

What is a good course completion rate?

There is no single figure worth aiming at. Mandatory workplace training, a paid professional course and a free introductory course behave very differently. Track each course against its own history and against similar courses in your catalog.

Do certificates make learners more likely to finish?

A certificate gives the course a visible end and a reason to take the final assessment. It matters most when the certificate is worth something outside the course, such as proof for an employer or a professional body. It will not carry learners through lessons that are too long.

Should lessons be locked in sequence?

Lock the order when each lesson builds on the one before, or when you must prove that everything was covered. Leave navigation free for reference material and for experienced learners who need only parts of it. A forced sequence combined with a hard quiz in the middle is the most common wall we see.

Do points and badges help?

They help a little when they mark real progress, such as finishing a module or passing an assessment. They do not make up for unclear navigation, long lessons or broken tracking, so fix those first.

Add WorldWin Coder to your preferred sources

Add worldwincoder.com as a preferred source on Google, or open this article in your AI assistant to use it as a source.

Swati Priyadrshni
· Founder & CEO at WorldWin Coder

I'm Swati Priyadarshani, Founder & CEO of LMS Advisor and Co-Founder of WorldWin Coder Pvt. Ltd. (est. 2019). Over the last 10+ years, I've helped enterprises build learning platforms that actually get used - not just deployed.

Keep reading

Have something to build, fix or move?

Tell us where you are. A developer reads every inquiry, and you get next steps and a free quote within one business day.