SCORM-compliant LMS: 1.2, 2004, and the reporting most platforms drop
Most platforms will accept a SCORM package and tell you whether the learner
finished it. The question worth asking a vendor is narrower: do you keep
cmi.interactions? Here the answer is yes, on every plan including the entry one.
"SCORM compliant" is not one thing
Every LMS in this category says it is SCORM compliant, and nearly all of them are, for some definition. The definitions differ in ways that only surface after you have migrated your courses, so it is worth pinning down before you buy.
Playing a package
The floor. The LMS unpacks the zip, reads imsmanifest.xml, launches the SCO in a
frame and keeps the session alive. If a platform cannot do this it is not in the category.
Recording completion and score
The next step up, and where most platforms stop: cmi.core.lesson_status and
cmi.core.score.raw in 1.2, cmi.completion_status,
cmi.success_status and cmi.score.scaled in 2004. Enough to run a
compliance register. Not enough to improve a course.
Keeping objectives and interactions
This is the part that gets dropped. A well-authored package reports every question it asks: the interaction id, its type, the learner's response, whether it was correct, and how long they took. It reports objectives too — which learning objective was met and which was not.
Store that and you can answer which decision did they get wrong, which question in the module everyone fails, and which objective the content is not actually teaching. Discard it — which is what happens when a platform records only the roll-up — and every one of those questions becomes unanswerable, retroactively, for every attempt already taken.
What this platform stores
| Data | SCORM 1.2 | SCORM 2004 |
|---|---|---|
| Completion and pass/fail | cmi.core.lesson_status | cmi.completion_status, cmi.success_status |
| Score | cmi.core.score.raw | cmi.score.raw, cmi.score.scaled |
| Per-objective outcome | cmi.objectives.n.* | cmi.objectives.n.* |
| Every question asked | cmi.interactions.n.* | cmi.interactions.n.* |
| Time on task | cmi.core.session_time | cmi.session_time, interaction latency |
Both versions are supported and both are stored the same way, so a library that mixes 1.2 and 2004 packages — which most libraries built over several years do — reports as one set of numbers rather than two.
The 1.2 versus 2004 trap worth knowing
The two versions disagree about spelling. 1.2 writes a correct response as
correct and a wrong one as wrong; 2004 writes correct and
incorrect. Interaction types differ too — 1.2's choice and
fill-in against 2004's longer list. A platform that normalises one into the other
silently loses information; one that does not normalise at all produces reports where the same
question appears twice under two names. We keep the raw value and map it at report time, so both
the original and the comparable form survive.
Uploading a package
Upload the zip, and it becomes a lesson inside a course like any other — so a SCORM module can sit in a track next to a live class, an assessment and a certificate rather than in a separate silo. Packages are served from your own domain, which matters more than it sounds: a SCORM package that loads from a vendor hostname inside your branded portal is the one place white labelling usually leaks.
What to test before you commit
- Upload one of your real packages, not a sample. Authoring tools differ.
- Take the module, answer some questions wrong on purpose, and then look at the report. If you cannot see which ones, the interactions are not being kept.
- Check a suspend/resume: leave halfway, come back, and confirm
cmi.suspend_databrought you back to the right place. - Check what happens on a second attempt — whether it overwrites the first or is stored separately. You want separately.
The trial is long enough to do all four. If your material is not yet a SCORM package at all, our sister studio The Immerse Hub authors Level 2 and Level 3 courses — branching scenarios and gamified simulations — and delivers them straight into a workspace.
No card. The workspace is live in about a minute, on its own address, and you can point your own domain at it the same day.
Questions we get asked
Does it support SCORM 1.2 or SCORM 2004?
Both, and both are stored the same way, so a library that mixes the two reports as one set of numbers rather than two.
Do you keep cmi.interactions?
Yes, on every plan including the entry one. The interaction id, type, the learner's response, whether it was correct and how long it took are all stored, alongside per-objective outcomes.
Is SCORM reporting an enterprise-tier feature?
No. It is on the entry plan. Across this category it is one of the two features most often moved to the most expensive tier — the other being the custom domain, which is also on the entry plan here.
Can I upload an existing SCORM package from Articulate or Captivate?
Yes. Upload the zip and it becomes a lesson inside a course, so it can sit alongside live classes, assessments and certificates rather than in a separate silo.
Does it support xAPI as well?
SCORM 1.2 and 2004 are what the platform stores and reports on today. If you need xAPI specifically, ask before you buy rather than after.