cmi5 will play a key role in moving toward a more modern learning ecosystem by ensuring plug and play interoperability between conformant systems. To reach the goal of adding newer technologies into your training, this cmi5 technical overview will help you understand the key concepts of the specification.

Course Package

The course package includes the course structure file, all Assignable Units (AUs) and optionally any additional assets or optional content, like videos or PDFs. Unlike SCORM, a cmi5 course package does not have to contain all the resources in a single ZIP file. 

A course package is an XML file with a course structure that can be standalone or in a ZIP file. The file MUST be named “cmi5.xml”, when in a ZIP file. 

What are the differences between SCORM and cmi5 course packages?

  • Supports 1,000+ AUs. 
  • Permits remote content. 
  • Has clearly defined satisfaction criteria. 
  • Allows for control over how the content is presented to the learner.

Course Structure

The course structure is a list of AUs and their launch parameters with an implied sequence that makes up the learning activity. Like with SCORM, learning activities are imported into an LMS, but cmi5 differs in that the actual AU files may or may not be imported into the LMS; only the course “structure” is imported. AU(s) can reside anywhere, including in mobile applications, content distribution networks, etc.

The course structure must include:

  • id: Unique identifier for the course.
  • Title: Descriptive title to identify the course.
  • Description: Explanation of the course.
  • Publisher ID: A unique identifier for each AU and Block to identify the different course elements (not the publisher itself).

When saving as a single archive in a ZIP file, the course structure is saved as an XML file called `cmi5.xml`, which wraps the blocks or launchable AUs.

Launch Method

AUs have to be launched by the LMS using one of the following methods, which depends on the launchMethod specified in the course structure:

If the launchMethod is “OwnWindow”, then one of the following will happen:

  • Opens a new browser window for the AU.
  • Redirects the existing browser window to the AU.

If the launchMethod is “AnyWindow’, then the LMS chooses the window option, which could be frameset, new window, browser redirect, etc.

Learn more about launch methods in the cmi5 specification.


The cmi5 specification defines nine verbs for “cmi5 defined” Statements, but AUs may use additional verbs that aren’t listed. Regardless of the verbs used, the LMS must record and report all “cmi5 defined” and “cmi5 allowed” Statements that aren’t rejected.

The nine “cmi5 defined” verbs are:



Launched AU was launched by the LMS.
Initialized cmi5 session fully initialized.
Completed Learner did all relevant AU activities. Indicates progress of 100%.
Passed Learner succeeded in a judged activity.
Failed Learner didn’t succeed in a judged activity.
Abandoned AU session terminated abnormally.
Waived AU requirements were met by other means.
Terminated Learner terminated the AU. No further statements will be sent for the launch session.
Satisfied LMS determined the learner met the all moveOn criteria for the AUs.

AU Verb Ordering Rules

AUs must use the above cmi5 verbs that are indicated as mandatory in other sections of the cmi5 specification. The timestamp property determines the order for all listed requirements.

AU verb ordering rules within an AU session are:

  • Do not duplicate verbs in “cmi5 defined” statements.
  • The “Initialized” verb is first. 
  • Only one “Passed” or one “Failed” statement sent per single session.
  • “Terminated” verb is last.

AU verb ordering rules within a registration for “cmi5 defined” statements are:

  • Use zero or one “Completed”.
  • Use zero or one “Passed”.
  • A “Failed” statement must not follow a “Passed” statement.

To maximize xAPI tracking data potential, AUs are allowed to use additional verbs not defined in the specification.

Using cmi5 With Other xAPI Profiles

cmi5 was designed to easily work with other xAPI Profiles, including the Video, Audio and Serious Games Profiles. Not only was the specification created with other xAPI Profiles in mind, content creators and developers are encouraged to use common xAPI Profiles where needed to ensure interoperability and portability across systems. A curated list of xAPI Profiles can be accessed from the ADL Vocabulary Server.

How does cmi5 compare to SCORM and xAPI?

L&D professionals want to use the right standard for their courses, but with different standards and specifications, they might not know which one is the best fit. The following table lists a few key features L&D professionals might be interested in and which standards support those features.

Questions? Ask us anything.

At Rustici Software, we help hundreds of people each month with their standards questions. Many aren’t sales prospects; they just have questions. We’re happy to help. You can ask us anything ‒ really.