e-Learning standards

What is cmi5?

cmi5 is a profile of xAPI that defines how a learning management system launches content and how that content reports its own lifecycle. It exists because plain xAPI describes how to record activity but says nothing about how a course starts, who is taking it, or what counts as finishing — the things SCORM specified and every LMS relies on. A cmi5 course is launched by the LMS the way a SCORM course is, and then sends xAPI statements to a Learning Record Store, so it keeps LMS-managed enrolment and completion while recording detail SCORM has no field for.

What cmi5 adds to plain xAPI

Plain xAPIcmi5
How content is launchedUndefined — every vendor invents itDefined launch URL, with session and registration
Who the learner isContent has to be told, somehowPassed by the LMS at launch
Course structureNone — statements are independentA course structure file (cmi5.xml) with assignable units
Lifecycle verbsAny verb you likeNine defined verbs: launched, initialized, completed, passed, failed, …
Who decides completionWhoever queries the LRSThe content states it; the LMS can enforce a `moveOn` rule
PackagingNone specifiedA zip the LMS imports, like SCORM

The problem cmi5 was written to solve

xAPI made it possible to record anything, and in doing so removed the parts of SCORM that made courses portable. There was no standard way for an LMS to launch xAPI content, no standard way to tell the content who was taking it, and no agreement on which statement meant "this person finished". Every vendor filled those gaps differently, which meant xAPI content was not really interchangeable between platforms — the exact problem SCORM had solved.

cmi5 fills those gaps and nothing else. It is not a replacement for xAPI; it is xAPI with the launch and lifecycle rules written down.

How a cmi5 course runs, step by step

The sequence is close enough to SCORM that an administrator who has imported a SCORM package will recognise every step.

  • An administrator imports a cmi5 package — a zip containing cmi5.xml and the content
  • The LMS reads cmi5.xml and registers the assignable units it describes
  • A learner launches a unit; the LMS opens it with the learner's identity, a registration id and a fetch URL for an auth token
  • The content sends `launched` and `initialized`, then whatever statements it wants during the session
  • It ends with `completed`, `passed` or `failed`, and `terminated`
  • The LMS applies the unit's `moveOn` rule to decide whether the learner has satisfied it

When cmi5 is the right choice

cmi5 is the answer when you want more than SCORM records but still want the LMS to run enrolment and completion. That covers most corporate training that has outgrown pass/fail reporting but has not left the LMS behind.

It is the wrong choice in two cases. If completion is genuinely all anyone will ever ask for, SCORM is simpler and universally supported. And if learning is happening in a mobile app or on the job with no LMS launching anything, plain xAPI to an LRS is the fit, because cmi5's launch rules are exactly the part you do not need.

Support is real but uneven — test before you commit

cmi5 support is not as broad as SCORM's, and vendor claims are not a substitute for trying it. Moodle supports cmi5 through a plugin; several commercial platforms support it natively; some do not support it at all.

The reliable check costs an afternoon: build one short course, export a cmi5 package, import it into your platform, take it, and look at whether the statements arrive in your LRS and whether the LMS marks the unit satisfied. Any answer you get that way is worth more than a feature matrix.

Questions

Is cmi5 the same as xAPI?

No. xAPI is the specification for recording activity statements; cmi5 is a profile that adds rules for launching content from an LMS and reporting a course lifecycle. All cmi5 content uses xAPI, but not all xAPI content is cmi5.

Does cmi5 need a Learning Record Store?

Yes. cmi5 statements are xAPI statements and they need an LRS to land in. Some LMS platforms bundle one; otherwise it is a separate service.

Why is it called cmi5?

"CMI" is Computer Managed Instruction, the term used by AICC, the aviation industry group whose standards preceded SCORM. cmi5 was the fifth revision of that work, and the name stuck even though the final specification was published under xAPI rather than AICC.

Can I convert an existing SCORM course to cmi5?

Not reliably by converting the package — a SCORM package is compiled output, and the information cmi5 needs about course structure is not in it. The dependable route is to export cmi5 from the original source, which is why it matters that an authoring tool can produce both from one project.

What are the nine cmi5 verbs?

launched, initialized, completed, passed, failed, abandoned, waived, terminated and satisfied. The content sends most of them; the LMS sends waived and satisfied.

Where Mosra fits

cmi5 export is usually found only in dedicated authoring suites, most of them desktop-bound. Mosra exports it from the browser.

  • cmi5 packages exported from the same deck as SCORM, xAPI, PPTX and PDF
  • A Learning Record Store included, so there is somewhere to test statements landing
  • Graded questions on slides report pass and fail through the cmi5 lifecycle
  • Free during the launch period — enough to test one package against your own LMS before committing

The quickest way to settle this

Build one deck, export a package, and load it into your own LMS. An afternoon answers what a comparison table cannot.