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:
- The destination LMS asked for 2004 specifically.
- You need "completed" and "passed" reported as separate outcomes.
- Your course stores more than about 4 KB of bookmark or state data.
- 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.
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.2 | SCORM 2004 | |
|---|---|---|
suspend_data cap | 4,096 characters | 64,000 characters |
| Roughly | 4 KB — a few dozen answers | 64 KB — a long branching course |
| Over the cap | Truncated 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:
| Situation | Build |
|---|---|
| The client named a version | What they named |
| Many or unknown destinations, no assessment | SCORM 1.2 |
| Graded assessment, pass and completion must report separately | SCORM 2004 4th Ed. |
| Resume payload near or above 4 KB | SCORM 2004 4th Ed. |
| LMS must enforce module order or prerequisites | SCORM 2004 4th Ed., tested on the destination |
| Older, locked-down or unknown-vintage platform | SCORM 1.2 |
| Rich per-interaction analytics is the actual goal | Neither — 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.