Skip to content

/10xAPI · Primer

What SCORM launch patterns teach us about drop-off.

Self-paced SCORM modules often show a common drop-off shape: an early cliff, a long flat middle, and another decision point near the end. Here’s how to design around it.

Allure Training OSPublished · Updated 13 min read

Short answer

Self-paced SCORM modules often show a common drop-off shape: an early cliff, a long flat middle, and another decision point near the end. Here’s how to design around it.

IllustrativeVoiced by an illustrative designer. First-person details are not a real person’s experience.

Picture a client asking why their mandatory bloodborne-pathogens refresher has a disappointing completion rate when “everyone has to take it.” The LMS gives them one number and no story. The way in is the thing SCORM is bad at: line up the launches and watch where people actually leave. When you do, self-paced modules often show the same curve. It has three features, and once you can see them you can design against them.

The shape is a familiar one: a sharp cliff early on, a long flat middle where the few who survived grind forward, and a second small decision point right before the finish. SCORM’s final-state reporting smears all of that into a single completion percentage. xAPI is how you get it back.

SCORM tells you whether they finished. It will never tell you where they left. That gap is the whole game.
the thesis in one line

/01The early cliff.

The biggest single drop often happens before any learning does. People launch, the player loads, and a meaningful slice leaves early — frequently before slide two. When that early cliff shows up, it is often the steepest part of the whole curve, and it’s the one most teams never see because the learner never reached a tracked interaction.

The causes are unglamorous and technical more often than they are motivational. A title slide that sits on a spinner while a 200MB video preloads. An “allow audio” gate the learner doesn’t understand. A resume prompt that dumps them back into slide 38 of a course they barely remember. None of that is a content problem. It’s a launch problem, and it reads as “low engagement” on a dashboard that can’t see the first minute.

/02The long flat middle.

If a learner clears the opening, the curve tends to go calm. The middle of a module is often remarkably flat — the people who stayed tend to keep going, slide after slide, with only a gentle decline. This is the part designers obsess over and it is, perversely, the part that matters least for raw completion. The audience here has already self-selected into “I’m doing this.”

Flat is not the same as healthy, though. The flat middle is where quality drains even when quantity holds. Learners click Next without reading. They guess on the embedded check and move on. SCORM will happily mark all of this “complete.” The completion percentage looks fine; the learning does not. The only way to tell the difference is to track what happens inside a slide — time-on-screen, answered-versus-skipped, first-try correctness — and SCORM’s cmi model was never built to carry that.

Watch for the false-flat.

Occasionally the middle isn’t flat — there’s one slide where a chunk of people quit mid-course. When that happens it is usually a single, identifiable obstacle: a video that won’t play on locked-down hospital tablets, a quiz that won’t accept a correct answer, a drag-and-drop that breaks on touch. One bad slide can masquerade as “learners lost interest.” Statement-level data names the slide so you stop guessing.

/03The decision point near the end.

The third feature is the cruelest. Right before the end — often at the final assessment or the last required interaction — there’s frequently a second, smaller dip. People who have invested ten, twelve, fifteen minutes get to the finish line and don’t cross it. From a completion standpoint, these are the most expensive learners you can lose: they did almost all the work and you got zero credit for it.

The pattern under this dip is usually a specific friction at the boundary. A final quiz that gates completion behind a passing score with no obvious retry. A “you may now close this window” instruction that fires before SCORM commits the final LMSSetValue/LMSFinish, so the learner closes the tab and the completion never records. A certificate step that throws an error. The learner thinks they’re done; the LMS disagrees; both are technically right.

/04Instrument it with xAPI.

Here’s the part the curve forces you to accept: you cannot diagnose any of this with SCORM alone. SCORM reports a destination. xAPI reports the journey — a stream of actor / verb / object statements (“Devon experienced slide 12,” “Devon answered question 3 incorrectly,” “Devon suspended at 14:02”) written to a Learning Record Store. That stream is the curve.

You don’t have to throw SCORM away to get it. Most modern authoring tools — Storyline, Rise, Captivate, iSpring — can publish SCORM and xAPI from the same project. Keep SCORM for the LMS that needs a pass/fail; emit xAPI to an LRS for the analytics. Host on something that speaks both and you get the completion record and the drop-off story from one upload.

xAPI · the statements that draw the curve

// Slide-level "experienced" statements give you the survival curve.
// Every learner, every slide — this is what SCORM can't show you.
sendStatement({
  actor: { name: "Devon Rhee" },
  verb: { id: ".../verbs/experienced", display: "experienced" },
  object: { id: ".../module/bloodborne#slide-12" },
});

// "answered" statements expose the flat-middle quality drain:
// who's actually getting it right vs. clicking through.
sendStatement({
  verb: { id: ".../verbs/answered", display: "answered" },
  result: { success: false, response: "B" },
});

// "suspended" + "completed" timestamps locate the end-of-course dip.
sendStatement({ verb: { id: ".../verbs/suspended" } });

Once those statements are flowing, the three features stop being folklore and become a chart you can act on. The cliff is a bar at slide one. The flat middle is a gentle slope you can check for quality, not just attendance. The end dip is a measurable gap between “reached the assessment” and “passed it.” You stop arguing about whether the content is “engaging” and start fixing named, specific slides.

/05TL;DR — what to fix first.

Fix the first minute before anything else. When the early cliff appears, it is typically the steepest part of a launch curve. Shrink the hero video, speed up slide one, make the audio and resume prompts unmissable. This is usually the highest-leverage change you can make.

Audit the flat middle for quality, not quantity. Completion holding steady doesn’t mean learning is. Track first-try correctness and time-on-slide to catch the click-through drain — and the occasional single broken slide hiding as “lost interest.”

Treat the end dip as a plumbing problem first. Confirm the final completion call commits before the learner can close the window, and give failed assessments an obvious retry. Much of that lost credit is recoverable with a timing fix, not a pep talk.

And to see any of it, instrument with xAPI. Publish SCORM and xAPI in parallel, send statements to an LRS, and let the curve tell you where to spend your next hour. If you’re still deciding where the package itself should live, our guide on where to host a SCORM course covers the hosts that give you both records from one upload — and if it’s going on a marketing site, see embedding a SCORM course in WordPress.

/06Frequently asked questions.

Why does SCORM hide where learners drop off?
SCORM mostly reports a final state — complete, incomplete, a score, some suspend data. It was built to tell an LMS whether someone passed, not to narrate the path they took. Slide-by-slide drop-off lives in xAPI statements, not in cmi.completion_status.
Can I get drop-off data without rebuilding my course in xAPI?
Partly. Most authoring tools can publish SCORM and xAPI in parallel, so you keep SCORM for the LMS and emit xAPI statements to an LRS for the analytics. You do not have to abandon SCORM to start seeing the curve.
What is a normal completion rate for a self-paced compliance module?
There is no universal number — it depends on whether the course is mandated, how long it is, and where it is launched from. The more useful question is the shape of the curve: a steep early cliff and a dip near the end are common, and both are fixable once you can see them.
Where do I send xAPI statements?
To a Learning Record Store. SCORM Cloud bundles one, Allure Connect runs an xAPI LRS with analytics, and self-hosters often run Learning Locker. xAPI in Training OS is planned — coming with Allure Connect — and isn’t available today, so pick the LRS that fits, then point your published package at it.

See what Allure Training OS includes

About Field Notes

Allure Training OS

Practical guides for instructional designers from Allure Training OS.

Put your SCORM somewhere people can play it.