Convert any file, nothing uploaded
All articles
LMS and delivery/

SCORM 1.2 vs 2004 vs xAPI for Video Lessons

7 min read

✦ Summary

For a video lesson, SCORM 1.2 is the safe default. Here is what each standard records, when 2004 or xAPI earns its setup, and how to test a package first.

SCORM 1.2 vs 2004 vs xAPI: the short answer for a video lesson

If you are weighing SCORM 1.2 vs 2004 vs xAPI for a training video, pick SCORM 1.2 unless you already know why you need something else. A video lesson reports one thing that matters to the LMS: did this person finish it. SCORM 1.2 records that, and almost every LMS reads it. SCORM 2004 adds structure a single video does not use. xAPI records much more, but it needs a Learning Record Store and more setup on your side.

Three parcels labelled SCORM 1.2, SCORM 2004 and xAPI on a conveyor into an LMS screen with a tick
Illustration: three formats, one LMS.

This post is for the L&D person who has a finished video and an LMS admin asking "which format?". It covers what each standard records, which LMSs accept which, what a "percent watched" rule really measures, and how to test a package before it goes live.

The comparison at a glance

SCORM 1.2SCORM 2004xAPI (and cmi5)
Released20012004 to 2009 (four editions)Now an IEEE standard (9274.1.1-2023)
Status it recordsOne field: passed, completed, failed, incomplete, browsed, not attemptedTwo fields: completion (completed, incomplete) and success (passed, failed)Any statement you define: "Priya watched Fire safety", "paused at 2:10"
ScoreRaw, min, maxRaw, min, max, plus a scaled scoreAny result you send
ProgressNone built inA progress measure from 0 to 1Any detail you send
Saved state for resume4,096 characters64,000 characters (4th edition)Stored in the LRS
Where the data livesThe LMSThe LMSA Learning Record Store (LRS), inside or outside the LMS
Works in most LMSsYesMany, not allNeeds an LRS; cmi5 adds LMS launch rules
Right for one videoYesWorks, adds nothing a video usesOnly if you need detail an LMS cannot hold
SCORM 1.2: pick this, one status field that almost every LMS reads. SCORM 2004: only if asked. xAPI: needs a Learning Record Store.
For a single video lesson, the choice is short.

What each standard records for a video

SCORM 1.2

SCORM 1.2 gives the lesson one status field, cmi.core.lesson_status, and a score. A video package sets the status to "incomplete" when the learner opens it and to "completed" when your rule is met. If the package carries a quiz, it sets a score and "passed" or "failed" instead. That is the whole story, and for a video it is enough: the LMS gets a yes or no per learner, with a date.

SCORM 2004

SCORM 2004 splits that one field in two. cmi.completion_status says whether the learner finished; cmi.success_status says whether they passed. It also adds a progress measure, a scaled score, and sequencing rules that can lock module 3 until module 2 is done. Those rules matter for a multi-part course built in an authoring tool. A single video has nothing to sequence.

xAPI and cmi5

xAPI records statements in the form actor, verb, object ("Priya completed Fire safety"). A video player can send one statement per play, pause, seek and finish, so you can see where people drop off. The statements go to a Learning Record Store, and they can come from places that are not an LMS at all: a mobile app, a kiosk, a simulator.

cmi5 is the piece that makes xAPI behave like a course inside an LMS. It defines how the LMS launches the content, authorizes it, and knows when it is done. If your LMS vendor says "we support xAPI", ask whether they mean cmi5 launch or just an LRS you can send data to.

Which LMSs accept which, and why 1.2 is the safe default

Support varies, so check your own LMS before you pick. Two examples, as of September 2026:

  • Moodle. Its documentation says SCORM 1.2 is supported and passes ADL's 1.2 conformance tests. SCORM 2004 is not supported natively: some packages appear to work, but bugs against it are closed as "won't fix". xAPI needs third-party plugins.
  • TalentLMS. Its help center lists SCORM 1.2, xAPI and cmi5 as the supported protocols for uploaded content.

SCORM 1.2 is the oldest version and the most widely supported. Rustici Software, who run the SCORM Cloud test service, still call it the version every e-learning vendor should be compatible with. For a video that needs a completion record, 1.2 gets you there with the fewest surprises.

What "80% watched" really measures

A percent rule sounds like a measure of attention. It is a measure of where the playhead is.

Here is what the player inside an Interlace SCORM 1.2 package does, read from its source:

  1. On launch it finds the LMS and sets the status to "incomplete".
  2. As the video plays, it checks the current time against the video length.
  3. When the playhead reaches your rule (play starts, 80%, or the end), it sets "completed" and commits.
  4. Reaching the end also marks it complete, whatever the rule.

So a learner who drags the playhead to 80% is complete. A learner who watched every second with the sound off is complete. Nobody's attention is measured, in any standard. What the rule gives you is a defensible record that the lesson was opened and played through to a point. If you need evidence of understanding, add a knowledge check that sets a score.

A progress bar with Complete at marks for Play starts, 80% watched and Fully watched; a playhead dragged to 80% sets lesson_status to completed
A percent rule checks where the playhead is.

Pick the rule by what the video is for:

Video typeComplete atWhy
Awareness or announcementPlay startsYou only need proof it reached them
Standard training80% watchedAllows for a skipped outro or credits
Compliance or safetyFully watched, plus a quiz if you need a scoreThe strictest record a video player can give

When you need SCORM 2004 or xAPI

Move off 1.2 when one of these is true, not before:

  • Your LMS or its admin asks for it. Some organizations standardize on 2004 for all new content. Ask before you export.
  • You are building a multi-part course with rules. Sequencing ("finish the video before the test opens") is a 2004 feature, usually set up in an authoring tool.
  • You need data per viewing, not per learner. Drop-off points, rewatch counts, or activity outside the LMS are xAPI territory.

Each has a setup cost. 2004 packages need a player that tracks both statuses correctly, and testing across LMSs takes longer. xAPI needs an LRS, someone to define which statements matter, and reports built on top, because an LRS stores statements and does not decide what they mean. If nobody on your team will read drop-off data, you are paying for data you will not use.

How to export and test a SCORM 1.2 video

In Interlace, open the finished video, click Export, and choose SCORM 1.2 next to MP4 video. A Complete at row appears with Play starts, 80% watched and Fully watched. Under Render on, This device builds the package in your browser; Interlace servers builds it for you and saves it with the video. The download is a zip with the manifest, a small HTML player and the MP4. A package built on Interlace servers also carries the video's caption tracks as VTT files, so the player shows a CC button.

The Export menu with SCORM 1.2 selected and the Complete at row highlighted, offering Play starts, 80% watched and Fully watched
With SCORM 1.2 selected, Complete at sets when the LMS marks the video complete.

Our export tracks completion only. If you want a scored quiz after the video, the free SCORM packager takes an MP4 and up to ten questions, reports a score, and sets passed or failed against an 80% pass mark.

Then test before your LMS sees it:

  1. Run it in a simulator. The packager page can pretend to be an LMS: build a package, press Run in the simulator, play the video, and watch each SCORM call arrive with the current lesson_status.
  2. Run it in a test LMS. SCORM Cloud from Rustici Software is a hosted LMS made for this. Upload the zip, launch it, and check the status it records.
  3. Run it in your real LMS as a test learner. Launch, play to your rule, close, and read the completion report. For Moodle, the step-by-step guide to adding a video to Moodle with tracking covers the settings that decide whether completion shows up.

For compliance modules, keep the zip you uploaded and a note of the rule you chose. When an auditor asks what "completed" meant in March, that is your answer. The compliance training video generator page covers the rest of that workflow.

Pick 1.2, test it, then decide

Start with SCORM 1.2 and a completion rule that matches the video's job. Test the package in a simulator and as a real learner before rollout. Move to 2004 or xAPI only when your LMS or your reporting needs demand it. To try it on a video you already have, wrap an MP4 in a SCORM 1.2 package with the free packager and run it in the simulator.