“Module 3 of 8 complete”
Accurate, and it measures your course. It answers “how much is left,” which is the question a student asks when they are already wondering whether to stop.
Almost every attempt to improve course completion starts by trying to make students more motivated. This one starts with the structures around them: what finished means, how the first sitting ends, what the first week sends, which behaviour raises a hand, and what the drop-off curve is telling you about the curriculum. Written to work with any course platform; where a tool decision genuinely changes the plan, it says so.

Completion is the most casually used word in online education. Before any of the work below is worth doing, decide precisely what you are counting — because every intervention that follows gets judged against it, and a moving definition can make a course look like it improved when nothing changed except the denominator.
Seven definitions cover it. Write them down once, put them somewhere the whole team can see, and use the same words every time afterwards. This is an afternoon of work with no engineering in it and it is the reason next quarter’s comparison will mean something.
| Metric | What it means, exactly |
|---|---|
| Enrolled | Everyone with access, whatever route they took to get it — buyers, comped seats, bundle recipients, team licences, refunds you have not revoked. It is the largest denominator and the one that flatters you least, which is exactly why it needs stating rather than assuming. |
| Started | Reached the first unit and did something in it. Not “logged in once.” A login without an action is an intention, and counting intentions as starts is the single most common way a completion report ends up describing a course nobody took. |
| Unit completion rate | Of the students who started a given unit, the share who finished it. This is a diagnostic number, read per unit and never averaged into a headline. Averaged, it hides the exact thing you are looking for: the one unit where the curve falls off a cliff. |
| Milestone rate | Of the students who started the course, the share who reached each named milestone. Three or four numbers, not thirty. This is the report you actually run the course from, because the gaps between the numbers point at specific stretches of curriculum. |
| Completion rate | Completed divided by started, or completed divided by enrolled. These are two different numbers and the gap between them is often large. Publish both, or name which one you use every time you say the words, because half the disagreements about completion are two people using different denominators. |
| Median time to complete | The point by which half your finishers have finished. It is the guard against “everyone gets there eventually” — a course with a respectable completion rate and a median of nine months is not being completed, it is being abandoned slowly. |
| Active in the last 14 days | The share of enrolled students who did something in the last fortnight. The only leading indicator on this list: it moves weeks before the completion rate does, which makes it the number to put on a dashboard and the one to act on. |
Somewhere in the research for this you will find a headline completion figure for online courses, and it will be tempting to hold yourself against it. Do not. Those numbers are averaged across free courses, compliance training, university-adjacent programmes and paid cohorts, over populations that did not pay what your students paid and did not arrive the way your students arrive — and almost none of them state which denominator they used, which alone can move a rate by a factor of two.
The comparison that is actually available to you is better anyway: your own last cohort, measured the same way, before and after one change. That tells you whether the change worked. An industry average cannot tell you anything, because you cannot act on the gap.
Completion is a lagging indicator — by the time it moves, the cohort that produced it is finished and nothing you do can change their outcome. The share of enrolled students who did something in the last fortnight moves weeks earlier, which makes it the only number on the list you can still act on. Put completion in the quarterly review and put this one where you will see it on a Monday.
If there is one change on this page worth making before all the others, it is this. The student decides whether this course is going to be part of their life at the end of the first sitting, and they decide it on evidence — whether anything actually happened.
Most courses open with a welcome video, a tour of the platform and an overview of the modules ahead. That opening is written for the author, who knows how much is coming and wants to frame it. For the student it produces a first session in which they watched some things, learned that there is a lot to do, and finished nothing. There is nothing to tell anyone about, nothing to look at, and no evidence that the purchase is going to work out.
Replace it with a first unit that ends in an artefact. A completed worksheet, a decision made and written down, a setting changed, a first draft, a template filled in, a calculation done with their own numbers. Small is fine. Real is not optional.
The shortest complete unit in your programme is rarely the one that belongs first logically. Foundations, definitions and context want to go at the front, and they are genuinely load-bearing later. Put them second anyway. A student who has finished something will sit through the foundations; a student who has only sat through the foundations frequently never gets to the part that would have shown them why the foundations mattered.
Reordering costs a few hours in the outline and nothing in production. Of everything on this page, it is the change with the best ratio of effort to effect, and it is the only one that improves the experience of students who have not enrolled yet.
Courses are usually built in modules because modules are how the material organises itself. Students do not experience modules. They experience sittings: the amount they can get through between opening the thing and being interrupted.
Size every unit so that a normal interruption arrives after an ending rather than in the middle of one. A student who stops halfway through a forty-minute lesson has to decide, next time, whether to restart it — and restarting is expensive enough that a meaningful share of them simply do not. Four ten-minute units with four completions behind them produce a different next session than one forty-minute unit at sixty per cent.
Then make every unit resumable. “Continue where you left off” is worth more than a beautifully organised table of contents, because the table of contents asks a student who has been away for nine days to remember something, and the resume button does not.
“Module 3 complete” tells the student they have moved through your structure. “You can now price a package and defend it on a call” tells them what they got. The second is the reason they bought, and it is the sentence they will repeat to somebody else — which is both a retention mechanism and, incidentally, your best marketing copy, arrived at honestly.
Three or four milestones is usually right. Thirty is a progress bar with extra steps. A milestone should be far enough apart to feel like an arrival and close enough together that the next one is visible from the last.
Progress has to be visible, and it has to be honest. A bar that fills as video plays rewards having a tab open. A bar that fills when work is completed rewards the thing you actually want, and it stays accurate when the student tries to use the skill and discovers whether they have it. Students notice the difference eventually; the ones who notice late feel misled, and they are right.
Accurate, and it measures your course. It answers “how much is left,” which is the question a student asks when they are already wondering whether to stop.
Also accurate, and it measures the student. It answers “what did I get,” which is the question that makes the next unit worth opening. Use both; lead with this one.
Where a credential is part of the programme, attach it to a capability milestone rather than to arriving at the end — certificates and assessments covers what makes one worth having. A certificate is a reasonable marker of something real and a poor substitute for structure: bolted onto a course people are not finishing, it changes nothing, because the reason they stopped was never the absence of a reward at the end.
Not because week one is the hardest part of the course, but because it is where the habit either forms or does not. A student who finished something on day one and something else on day three has a course in their life. A student who has opened nothing by day five has a receipt.
The week has six moving parts and one of them is not an email. They are worth listing in order, because the ordering is where most of the value is — an orientation message sent before access has landed, or a nudge that arrives before the student has had a reasonable chance to start, does harm rather than nothing.
| When | What happens | Where |
|---|---|---|
| Minute 0 | Access. The receipt and the way in, sent as a transactional message with nothing else attached. Every minute between the payment and the link is a minute in which the decision to start can be postponed, and a start postponed on the evening somebody bought is a start that has to be made again from cold. | |
| Hour 1 → Day 1 | Orientation. How the course works, what a sitting costs in minutes, where questions go, and the name of the first thing they are going to finish. One link, pointing at the first unit rather than at the syllabus. | |
| Day 1 | The first sitting. The student finishes something real and has it in their hands. Everything before this row exists to get them here; everything after it is easier because they arrived. | Portal |
| Day 2 → Day 3 | The first-win nudge. Points at the smallest completable thing they have not done yet, by name, with an honest estimate of how long it takes. | |
| Day 3 → Day 5 | The stall branch. Fires on no completed unit rather than on the date, and suppresses itself the moment something completes. Names the lesson, never the student. | Branch |
| Day 7 | Momentum. Their own progress reflected back to them in their own terms, and the next milestone named as a capability rather than as a module number. | |
| Week 2+ | The first live checkpoint, placed the week after the unit where people stall rather than at the end of the programme where it can only congratulate the survivors. | Live |
Two rows in that table are doing most of the work. Minute zero, because the gap between paying and getting in is dead time that nothing later recovers — it is the only part of the week that is purely a plumbing problem, and it is worth testing by buying your own course on a phone. And the branch on day three, because it is the only row that fires on what the student did rather than on what day it is.
All five sends, with subject lines, the fires-on condition for the branch, and what changes for a cohort, are written out in the student onboarding email sequence.
Every re-engagement system starts with a definition problem that most of them skip. Four quiet days means nothing on a twelve-week programme and means the student is gone on a seven-day sprint. Publish the pace first; inactivity is a deviation from it, not a number of days.
So the sequence is: decide what pace you expect, tell the student what it is, then define each signal as a departure from that expectation. This has the useful side effect of making the eventual message defensible — you are not writing to somebody because they have been quiet, you are writing because they are behind a pace they agreed to when they enrolled.
The second one deserves the emphasis. Knowing where somebody stopped is worth more than knowing that they stopped, by a wide margin, because it turns a generic check-in into a specific piece of help. It is also the signal most likely to be thrown away by a system that records a last-seen date and nothing else, so check what your platform actually stores before you design a message around it.
A behaviour signal is only as useful as the system that can read it at the moment of sending. If lesson progress lives in the course platform and the email lives somewhere else, then either somebody exports a spreadsheet every Monday, or the message goes out on a calendar and pretends to be behavioural. Both are common. Only the first is honest, and neither scales past a couple of hundred students.
This is the point where behaviour-triggered workflows stop being a nice idea and start being the difference between a system that responds and a newsletter about your course. If you are building your first ones, start with the smallest set and add signals only when a message you already send is provably going to the wrong people.
The default re-engagement email says some version of “we noticed you have not been around — jump back in.” It is written to everyone who stopped, which means it is written to nobody, and it asks for the one thing the student has already decided against doing.
A message that works has four parts and none of them is encouragement. It names where they stopped. It says, honestly, that this is a common place to stop and why — which converts a private failure into a known feature of the material. It gives one small next action with a real time estimate. And it offers a reply that reaches a person, because some stalled students are stuck on something a two-line answer would clear.
What it does not do is guilt. “You have not logged in for two weeks” is a fact the student already knows and a frame that makes returning feel like admitting something. The message should read as though somebody noticed and wanted to help, because that is exactly what happened — you just did the noticing in advance.
That last rung matters more than it looks. Every additional chase after the second one trades a small chance of recovering one student against the certainty of teaching everyone else that your emails are noise. Move non-responders to a slower list, keep the door open, and let the next live checkpoint be the thing that brings some of them back.
Where an assistant drafts these at volume, the draft is the useful part and the send is not — a message that names the wrong lesson is worse than no message at all. Keep customer-facing work behind an approval gate so a person signs off before it reaches a student. The broader pattern, for students who have been gone long enough that this is a campaign rather than a touch, is in the re-engagement campaign guide.
Any email tool can send a re-engagement sequence. Sending one that names the unit somebody stalled on means the progress data and the sending system have to be the same system — otherwise it is a weekly export and a paste. In Agorix, lesson activity, milestones, inactivity and purchase history can sit on one customer record, and workflows branch on them directly — see how courses connect.
A self-paced course has no external clock in it, which is the feature people buy it for and also the reason a great many of them never finish. A scheduled hour puts the clock back without taking the flexibility away.
The mechanism is not the teaching that happens on the call. It is that a date creates a before, and a before creates work. The unit gets finished on Tuesday night because the call is on Wednesday, and the work is the completion. Which means the checkpoint is doing its job even for the students who intended to come and did not.
The instinct is to schedule a call at the end of the programme, where it becomes a graduation. A graduation reaches the students who were always going to finish. Place the checkpoint the week after the unit with the worst completion curve instead, so the call exists precisely where students are deciding whether to continue, and can be about the thing they are stuck on.
Drop-in, no agenda, whoever turns up. Right when students are stuck on different things and the value is access to you. How to structure them so the quiet weeks are still worth running.
Same agenda, same unit, work reviewed in front of the group. Right when everyone is at roughly the same point. The call structure is what stops it becoming a free-for-all.
Judge a checkpoint on whether the work arrives before it, not on how many people attend. A thinly attended call whose deadline pulled a dozen units over the line is doing the thing you scheduled it for. If neither the attendance nor the work is moving, the call is in the wrong week — move it, before concluding that live checkpoints do not suit your programme.
A cohort gets this structure by default, which is most of why the format has the reputation it does. A self-paced programme can borrow it: a recurring monthly call, a start-date intake, published pacing. Cohort versus self-paced is the decision itself; this is the part of it worth stealing either way.
Read as a student-behaviour report, the unit-level curve tells you that people are not very committed, which is unactionable and also unkind. Read as curriculum feedback, the same chart points at specific stretches of material and tells you what to change.
Plot unit completion in course order and look at the shape. Four shapes cover most courses, and each one has a different cause and a different fix — which is the entire reason the diagnosis is worth doing before the rewrite.
| Shape | What you are looking at |
|---|---|
| The cliff | One unit where a large share of the people who started it never finish it.Something specific is in the way: the unit is long, it needs a tool or an account, it asks for a decision the student cannot make yet, or an asset is broken. Check the asset first — it is the cheapest and it is more often the answer than anyone expects. |
| The slow bleed | A steady decline across every unit with no single break in it.A pacing problem rather than a content problem. Units are longer than the sitting your students actually have, or the milestones are too far apart to feel like arrivals. Splitting units changes this curve more reliably than rewriting them. |
| The plateau | A section almost nobody starts, even though the section before it completes well.A structural gate: a prerequisite, a setup step, an assignment that is too large, or a drip that has not released. Look at what stands between the last completed unit and the first untouched one rather than at either unit itself. |
| The milestone stop | Completion holds up neatly, then stops immediately after a milestone.The ending was real and nothing opened after it. Name what the next section makes possible, in the milestone message itself, before the student decides they have got what they came for. |
Check the asset first: a video that fails on mobile, a download that 404s, a quiz that will not submit. It is the cheapest possible cause and it is the answer more often than anybody expects, particularly on a unit that used to complete well and now does not. Then length, then sequence, then the content itself. Rewriting a lesson is the most expensive move available and it should be the fourth thing you try, not the first.
The curve tells you where. Only students tell you why, and the students who finished cannot — they are, by definition, the ones for whom the difficult unit was not difficult enough to stop. Exit questions to people who stalled are uncomfortable to send and worth more than any other feedback you collect; student feedback loops covers how to ask so the answers are usable.

Everything above is worth doing and almost nobody has the time to do it at once. This is the order, for a course that already exists and is not being finished — ranked by how much of the outcome each step controls against what it costs to build.
At small numbers, a person watching the progress list once a week and writing three individual messages beats every system on this page — and it teaches you what the automated version will need to say when you build it. Automate at the point where you stop noticing, not at the point where it becomes possible. The systems above exist to preserve a level of attention you can no longer give personally, not to replace one you never gave.
There is no honest external benchmark, and this guide will not give you one. Published completion figures come from datasets whose denominators, prices and audiences have nothing to do with yours — free courses, compliance training, paid cohorts, degree-adjacent programmes — and the same course can report wildly different rates depending on whether you divide by enrolled or by started. Measure your own cohort with the seven definitions above, change one thing, and compare it to itself. That comparison is worth more than any figure you could borrow.
Define seven things once and write them down: enrolled, started, unit completion rate, milestone rate, completion rate, median time to complete, and the share active in the last fourteen days. Two of those definitions do most of the work. Started means reached the first unit and did something in it, not logged in once. Completion rate means completed divided by started, or completed divided by enrolled — two different numbers with a large gap between them, so publish both or name which one you use every single time.
Usually for structural reasons rather than motivational ones. The first sitting ended with an overview rather than a finished thing; units are longer than the time students actually have; a milestone felt like an ending and nothing opened after it; or one specific unit contains a gate — a tool to install, an account to create, a decision they cannot make yet, or an asset that is simply broken. The unit-level curve tells you which, and asking the students who stopped tells you why.
A cohort supplies two things a self-paced course has to manufacture: a date and a group. Both are structural rather than motivational, and both can be borrowed — scheduled checkpoints, published pacing, start-date intakes on an otherwise evergreen programme. Treat the format as a source of structure rather than as a cure, and decide it on how your students buy and learn: cohort versus self-paced works through the trade.
It should name the unit they stopped on, say plainly that it is a common place to stop and why, give one small next action with an honest time estimate, and offer a reply that reaches a person. It fires on the behaviour — nothing completed since a given point — rather than on a calendar date, and it suppresses itself the moment the student completes something. The wording is in the onboarding email pack.
Length is one of four common causes and not always the one you have. Read the unit-level curve first. A steady decline across every unit points at pacing and length, and splitting units will help. A cliff at one unit points at something specific inside that unit. A section nobody starts points at a gate standing in front of it. Shortening lessons in response to a cliff or a gate changes nothing except the running time, and it costs you a rewrite you did not need.
Course delivery, the onboarding sequence, progress and inactivity signals, the live checkpoint and the workflow that acts on all of it — on one customer record, so the message that names the lesson does not need an export first.
14 days · $0 due today · Payment method required · Cancel before first charge and pay nothing