One of the most misunderstood parts of SCORM 2004 is this:
🎯 Completion is not the same as success. Progress is something else entirely.
In SCORM 1.2,
lesson_status
tried to represent too many states:
- completed
- passed
- failed
All stored in one field.
SCORM 2004 corrected that architectural ambiguity.
It introduced three separate concepts:
-
completion_status -
success_status -
progress_measure
They work together. Not interchangeable.
✅ Completion
Did the learner finish?
completion_status
answers a structural question:
Did the learner finish the activity?
Typical values:
- completed
- incomplete
- not attempted
Completion is about participation and required activity fulfillment.
It does not measure performance.
A learner can complete every slide and still fail the assessment.
That is valid behavior.
🏆 Success
Did the learner meet mastery criteria?
success_status
answers a performance question:
Did the learner pass?
Typical values:
- passed
- failed
- unknown
Success depends on defined mastery criteria.
Often this aligns with a mastery score or scaled score threshold.
Completion and success are independent dimensions.
Example:
A learner completes all required activities but scores below mastery.
completion_status = completed
success_status = failed
That is correct SCORM 2004 logic.
📊 Progress
How far did the learner move?
progress_measure
is numeric. A decimal value between 0 and 1.
It represents measurable advancement through the activity.
Examples:
- 0.0 means no measurable progress
- 0.6 means partial progress
- 1.0 means full progress
Progress does not automatically imply completion.
Completion rules may depend on thresholds defined in sequencing.
Example:
A learner exits at 60 percent:
progress_measure = 0.6
completion_status = incomplete
That is consistent and expected.
⚠️ Where Implementations Go Wrong
Most real-world issues come from incomplete state management.
Common mistakes:
⚠️ Only setting
score.raw
⚠️ Ignoring
success_status
⚠️ Letting the LMS infer completion automatically
⚠️ Forgetting to align mastery score logic
⚠️ Not updating
progress_measure
SCORM 2004 does not infer intent.
If you do not explicitly manage these values, sequencing rules and rollup logic may behave unpredictably.
The LMS is executing the data you provide.
🧭 Why This Impacts Sequencing
These values directly influence:
- Rollup calculations
- Parent activity completion
- Navigation availability
- Unlock conditions
If
completion_status
is never set, rollup may never trigger.
If
success_status
is misaligned with mastery criteria, progression may halt.
If
progress_measure
is omitted, sequencing thresholds cannot evaluate correctly.
Many reporting inconsistencies across LMS platforms are not LMS bugs.
They are data model misunderstandings.
🔍 A Practical Debugging Rule
When reporting looks wrong, always inspect:
-
completion_status -
success_status -
progress_measure
-
- mastery score alignment
Before blaming the LMS.
Most strange completion reports become clear once these values are separated mentally.
SCORM 2004 expects clarity.
It does not guess.
🔢 5 of 12 | SCORM 2004: The Sequencing Era of Learning Standard








