Which SCORM version should I use?

Which SCORM version should I use, 1.2 or 2004? Decide from the destination LMS, whether pass and completion must report apart, and how much state you store

The one-minute answer

Which SCORM version should you use? Build SCORM 1.2 unless one of four things is true, in which case build SCORM 2004 4th Edition:

  1. The destination LMS asked for 2004 specifically.
  2. You need "completed" and "passed" reported as separate outcomes.
  3. Your course stores more than about 4 KB of bookmark or state data.
  4. You need the LMS, not your content, to enforce module order or prerequisites.

That is the whole decision. Newer is not better here — 1.2 was published in 2001 and remains the most reliably imported package format in the industry, because every platform that has ever supported SCORM supports it. The rest of this page is the reasoning behind each of the four exceptions, in the order worth asking them.

The version is a build-time choice, not a rewrite. The same source content can be packaged as either. If you are unsure, ship 1.2, and rebuild as 2004 the day one of the four conditions turns out to be true. Nothing about the decision is permanent.

Ask the destination first

Every other consideration is downstream of one question: what will import this? If you are delivering to a named client on a named platform, ask them which version their LMS accepts and which their administrators are used to. Their answer ends the discussion.

If you are delivering to many platforms, or to platforms you do not control, 1.2 is the safer default for a blunt reason: 2004 support is inconsistent in the places it matters. Plenty of LMSs accept a 2004 package and then implement only part of the runtime — commonly ignoring sequencing rules, or storing cmi.success_status without surfacing it in any report. The import succeeds, so nothing looks wrong, and the gap only appears when someone asks why the report column is empty.

The reverse problem barely exists. A platform that fails on 1.2 is rare enough that it is usually a sign of a broken package rather than a version issue, which is a different diagnosis — see SCORM not working in your LMS.

Do you need completion and success apart

This is the exception that decides most real projects. SCORM 1.2 has a single status field, cmi.core.lesson_status, holding one of: passed, failed, completed, incomplete, browsed, not attempted. One field, one value. A learner cannot be both completed and failed, because there is only one slot and the values are mutually exclusive.

SCORM 2004 splits that into two independent fields: cmi.completion_status (did they get to the end) and cmi.success_status (did they meet the standard). A learner who sat through every screen and then failed the assessment is completed and failed at the same time — which is both true and, for anything assessed, the reporting distinction people actually want.

If your course has a graded assessment and someone will need to tell the difference between "did not finish" and "finished but did not pass", you need 2004. If the course is informational and finishing is passing, 1.2 expresses that perfectly well.

How much state do you store

Bookmarks and resume data live in cmi.suspend_data, and the cap is the hardest limit in the decision:

SCORM 1.2SCORM 2004
suspend_data cap4,096 characters64,000 characters
Roughly4 KB — a few dozen answers64 KB — a long branching course
Over the capTruncated silently on some platforms, rejected with an error on others

4 KB is more than it sounds for a linear course and much less than it sounds for anything with state per question, per scenario branch, or per interaction. The failure is nasty because it is invisible in testing with a short run and only appears for learners who get far enough to fill the buffer: they resume, and the course has forgotten them. Suspend data limits covers how to measure what you are actually storing and how to shrink it.

If a rough count of your resume payload is anywhere near 4 KB, build 2004. Do not try to compress your way under the 1.2 cap unless the destination forces 1.2 on you.

Multi-module and sequencing

SCORM 1.2 has no sequencing. If a package holds several modules, the content decides what comes next, and the LMS just launches whatever the learner clicks. Prerequisites, "you must pass module 1 first", and rollup from parts to a whole are all things you would have to build inside your own content.

SCORM 2004 adds a sequencing and navigation model declared in the manifest, so the LMS enforces the rules: which items are available, what a learner must satisfy before moving on, and how child results roll up into a parent status. That is genuine capability — and it is also the part of 2004 most often implemented incompletely, so it needs testing on the actual destination rather than trust. SCORM 2004 sequencing covers the model and what commonly breaks.

The pragmatic middle path, and the one most publishers take: if you need order enforced but the destination is uncertain, ship each module as its own single-SCO 1.2 package and let the LMS's own curriculum or learning-path feature handle the ordering. It moves the problem to a layer that every platform implements well.

The default and the exceptions

Working through it in order:

SituationBuild
The client named a versionWhat they named
Many or unknown destinations, no assessmentSCORM 1.2
Graded assessment, pass and completion must report separatelySCORM 2004 4th Ed.
Resume payload near or above 4 KBSCORM 2004 4th Ed.
LMS must enforce module order or prerequisitesSCORM 2004 4th Ed., tested on the destination
Older, locked-down or unknown-vintage platformSCORM 1.2
Rich per-interaction analytics is the actual goalNeither — look at cmi5 or xAPI

Two notes on that last row. Interactions exist in both SCORM versions, but they are write-only in 1.2 and most LMS reports never surface them in either, so "we want to know which questions people got wrong" is usually a reason to leave SCORM rather than to pick a version of it. SCORM vs cmi5 vs xAPI covers that fork, and the deeper version-by-version comparison is in SCORM 1.2 vs SCORM 2004.

And when 2004 is the answer, choose 4th Edition unless the destination specifically asks for 3rd. The editions are close, 4th tightened several ambiguities in sequencing and rollup, and it is the edition most current platforms test against.

Where SCORM Central fits

SCORM Central converts files you already have — PDF, PowerPoint, Word, or video — into SCORM 1.2, SCORM 2004, cmi5, or xAPI, and shows you the manifest, the full runtime log, and a conformance report on every build, so you can see exactly what a package will report before an LMS does. See how it works, or start with one file.

Keep reading

How-to4 min Convert SCORM to video or PowerPoint? Can you convert SCORM to MP4, HTML5 or PowerPoint? What is inside a package, the routes that work, and what you lose with each one. Explainer4 min Does your LMS support xAPI? How to check What xAPI LMS support really means: launching xAPI content, a built-in LRS, or forwarding statements. The questions to ask and a quick test to run. Explainer4 min LMS vs LRS: what is the difference? LMS vs LRS: an LMS runs courses and learners; an LRS stores xAPI statements. Why SCORM does not use an LRS, and when you need both.

Start with one file.

Upload something you already have and see it as a package, with the conformance report and the runtime log alongside it.

→ upload  handbook.pdf
  parsing … 14 sections
  building manifest …
  validating … 0 errors, 2 notes
✓ handbook-scorm2004.zip
✓ preview link ready