Why this is still a question in 2026
SCORM 2004 4th Edition was finalised in 2009. By any normal software timeline SCORM 1.2 should be long gone. It is not, for a simple reason: the LMS vendors never stopped supporting it, so content authors never had to stop shipping it, so the LMS vendors never had to stop supporting it. Today SCORM 1.2 is still the most-requested output, and a package built for it will import on essentially any platform that calls itself an LMS. SCORM 2004 is the more capable specification, and on some platforms the better-supported one, but "more capable" only helps if you use the capability. The questions below tell you whether you will.
Question 1: what does the LMS accept?
Ask first. If the answer is "only 1.2", you are done. If the answer is "both", ask which the administrators actually prefer — several large platforms import 2004 but run it through a sequencing engine that has its own opinions, and their support teams will steer you toward 1.2 to keep tickets down. If the answer is "we don't know", 1.2 is the safe default and you can rebuild for 2004 later from the same source without touching the content.
A trap worth naming: a platform can say "SCORM 2004" and mean 2nd Edition, 3rd Edition, or 4th Edition. The editions differ in sequencing behaviour and in how strictly the manifest is validated. If you are told 2004, ask which edition, and build for that one.
Question 2: do you need completion and success separately?
This is the single biggest functional difference. SCORM 1.2 has one status field, cmi.core.lesson_status, with six allowed values: passed, completed, failed, incomplete, browsed, not attempted. A learner who finished every page but failed the quiz has to be reported as either "completed" or "failed" — the package picks one, and the other piece of information is lost to the LMS report.
SCORM 2004 splits this into cmi.completion_status (completed / incomplete / not attempted / unknown) and cmi.success_status (passed / failed / unknown). "Completed and failed" is a legitimate, reportable state. If your compliance or certification reporting needs to distinguish "did the training" from "passed the assessment", you need 2004.
Question 3: how much state does the course store?
Courses remember where the learner was — the bookmark — and often much more: which questions were answered, which branches were taken, which media finished. All of it goes into one string, cmi.suspend_data, and SCORM 1.2 caps that string at 4,096 characters. Many LMSs enforce the cap by silently truncating, which means the learner comes back to a course that has forgotten the second half of their progress.
SCORM 2004 raises the cap to 64,000 characters. If your course is a 15-slide deck with one quiz, 4 KB is plenty. If it is a 90-page handbook conversion with a 25-question final, you will be close to the limit in 1.2 and should either trim what is stored or build for 2004. A conformance report that shows suspend-data usage against the cap is the way to know rather than guess.
Question 4: who controls the order of modules?
In SCORM 1.2, if a course has multiple SCOs, the content is responsible for navigation: the LMS shows a table of contents and the learner clicks around. There is no way to say "module 3 is locked until module 2 is passed" that the LMS will enforce.
SCORM 2004 adds sequencing and navigation rules to the manifest: prerequisites, forced order, rollup of child scores into a parent, "choice" vs "flow" navigation. The LMS enforces them. This is powerful and it is also where most 2004 packages break, because sequencing rules are easy to write in a way that makes an activity unreachable. If you only have one SCO — which is the case for almost every converted deck, document, or video — sequencing is irrelevant and this question does not apply.
Question 5: do you need interaction data?
Both versions can record interactions — individual question responses — through cmi.interactions.n.*. In 1.2 those fields are write-only and optional for the LMS to store; many discard them. In 2004 they are read/write, typed (choice, fill-in, matching, and so on), and more likely to be retained. Even so, very few LMS reports surface interaction data usefully. If per-question analytics matter to you, the honest answer is that neither SCORM version is the right tool; emit xAPI statements to a learning record store alongside the package and read them there. See SCORM vs cmi5 vs xAPI.
The default, and the exceptions
| Situation | Build |
|---|---|
| Single converted deck, document, or video; destination unknown or mixed | SCORM 1.2 |
| Need "completed but failed" in LMS reports | SCORM 2004 |
| Long course, large quiz, suspend data near 4 KB | SCORM 2004 |
| Multi-module course where the LMS must enforce order | SCORM 2004 (and test the sequencing on the target edition) |
| Platform explicitly asks for 1.2 | SCORM 1.2, no argument |
| You need per-question or per-path data | Either SCORM version for the LMS, plus xAPI to an LRS |
The practical advice is to keep the source in a format that can produce both. When the destination changes — a customer migrates LMS, a second client wants 2004 — you rebuild rather than re-author. SCORM Central keeps the course as the source of truth and treats the SCORM version as a build setting for exactly this reason.