1. Two versions of one standard
Both versions come from the same place. SCORM (Sharable Content Object Reference Model) was created by the ADL Initiative to make e-learning content portable between platforms. If you are new to the standard, start with What is SCORM? and come back here for the version comparison.
SCORM 1.2 was released in 2001 and quickly became the default for the industry. It is deliberately simple: it tracks whether a learner completed a course, their score, and where they left off, and that covers the needs of most training.
SCORM 2004 arrived in 2004 to address the limits of 1.2, chiefly the lack of rules for moving a learner through multi-part content and the coarse way completion was recorded. It is more capable, but also more complex, and that complexity is the reason 1.2 never went away.
2. Side-by-side comparison
| Feature | SCORM 1.2 | SCORM 2004 |
|---|---|---|
| First released | 2001 | 2004 (4 editions to 2009) |
| JavaScript API object | window.API | window.API_1484_11 |
| Data model prefix | cmi.core.* | cmi.* (expanded) |
| Completion model | Single lesson_status | Separate completion_status + success_status |
| Sequencing & navigation | Not supported | Full support (IMS Simple Sequencing) |
| Score | Raw, min, max (0 to 100) | Adds score.scaled (−1 to 1) |
| Suspend-data limit | ~4,096 characters | ~64,000 characters |
| Interactions tracking | Limited | Full, question-level |
| Industry adoption | Very high | Moderate |
3. The JavaScript API
SCORM content finds the LMS by walking up the window hierarchy looking for an API object. The two versions look for different objects, which is the most fundamental incompatibility between them.
SCORM 1.2 content looks for window.API and calls methods prefixed with LMS: LMSInitialize, LMSGetValue, LMSSetValue, LMSCommit, and LMSFinish.
SCORM 2004 content looks for window.API_1484_11 and drops the prefix: Initialize, GetValue, SetValue, Commit, and Terminate. An LMS that supports both simply exposes both objects so each package finds the one it expects.
4. Completion vs success
This is the difference that matters most for reporting. In SCORM 1.2, a single cmi.core.lesson_status field has to express everything: it can be passed, failed, completed, incomplete, browsed, or not attempted. Because one field carries both "did they finish" and "did they pass", a learner who completes a course but fails the quiz is awkward to represent.
SCORM 2004 splits this into two independent fields: cmi.completion_status (completed or incomplete) and cmi.success_status (passed or failed). Now a course can be both completed and failed at once, which is exactly what you want when you need to know who finished the material but did not yet meet the pass mark.
5. Sequencing and navigation
SCORM 1.2 has no concept of rules between content items. If a course is made of several parts, the order and any gating ("you must finish Module A before Module B") have to be handled by the content itself or by the LMS course structure, not by SCORM.
SCORM 2004 introduced IMS Simple Sequencing, a rule system defined in the manifest that lets the package control navigation: prerequisites, rollup of completion from child items to the parent, and conditional branching based on scores. It is powerful, but it is also the most complex and most commonly misimplemented part of the standard, which is one reason many teams stay on 1.2 and manage structure at the LMS level instead.
6. Suspend-data limits
Suspend data is a free-form string the content uses to save its own state, for example which slides were viewed or which quiz answers were given, so a learner can resume later. The size limit is a practical difference between the versions.
SCORM 1.2 caps suspend data at roughly 4,096 characters, which long or interaction-heavy courses can exhaust, causing resume to fail silently. SCORM 2004 raises the limit to roughly 64,000 characters, comfortably enough for complex content. If you are running large branching courses and hitting resume problems on 1.2, the suspend-data ceiling is often the cause.
7. The editions of SCORM 2004
SCORM 2004 is not a single release. It came in four editions, each clarifying behaviour rather than redesigning the standard:
- 1st Edition (2004): the initial release, quickly superseded.
- 2nd Edition: tightened conformance and fixed early issues.
- 3rd Edition (2006): clarified sequencing and became widely adopted.
- 4th Edition (2009): the most refined, with the clearest sequencing rules.
When a tool or LMS says "SCORM 2004", it usually means 3rd or 4th Edition. If you have a choice when exporting, 4th Edition is the safest target.
8. Which should you use?
Choose SCORM 1.2 when
- You want the widest compatibility across LMSs and tools
- Your courses are linear or self-contained
- You need completion, score, and resume, nothing exotic
- You want the simplest, most reliable option
Choose SCORM 2004 when
- You need content-level sequencing or prerequisites
- You must report completion and pass/fail separately
- Your content needs large suspend-data storage
- You want detailed, question-level interaction data
The short version: default to SCORM 1.2 unless you have a specific reason to need 2004. Most teams never hit the limits of 1.2, and its universal support makes it the lower-risk choice. Hotline LMS runs both: SCORM 1.2 on every plan and SCORM 2004 on Professional plans and above.