SCORM vs xAPI: what actually differs
SCORM and xAPI are both standards for reporting e-learning activity, and they differ in where the content runs and how much it can say. SCORM content runs inside an LMS window and reports a small, fixed set of values back to that LMS — completion, score, time, pass or fail. xAPI content can run anywhere, including outside an LMS entirely, and sends free-form statements of the form "actor — verb — object" to a Learning Record Store, so it can record that someone watched a video to 80%, failed a simulation twice, or attended a workshop offline.
SCORM, xAPI and cmi5 side by side
| SCORM 1.2 / 2004 | xAPI | cmi5 | |
|---|---|---|---|
| Released | 2001 / 2004 | 2013 | 2016 |
| Where content runs | In an LMS window | Anywhere | Launched by an LMS, runs anywhere |
| Reports to | The LMS that launched it | A Learning Record Store (LRS) | An LRS, with LMS launch rules |
| What it records | Completion, score, time, pass/fail | Any statement: actor, verb, object | xAPI statements, plus a defined course lifecycle |
| Works offline | No | Yes, statements queue and sync | Yes |
| Mobile and native apps | No | Yes | Yes |
| LMS support | Near-universal | Varies; needs an LRS | Growing, still uneven |
| Best when | Your LMS must simply record who finished | You need detail, or learning happens outside the LMS | You want xAPI detail without losing LMS launch and completion |
What SCORM does well, and where it stops
SCORM's strength is that it is finished. It stopped changing around 2004, which is exactly why nearly every LMS on the market can import a SCORM package without anyone having to ask. If the requirement is "upload this course, and tell me who completed it", SCORM answers it and nothing about xAPI improves the answer.
SCORM stops at the edge of the LMS window. It cannot report anything that happens before the course is launched or after it closes, it cannot describe an activity in its own terms, and it has no concept of learning that happened somewhere else. The data model is a fixed list of fields, so any question outside that list has no way to be asked.
What xAPI adds, and what it costs
xAPI replaces the fixed field list with a sentence: an actor did a verb to an object. Because the vocabulary is open, xAPI can record things SCORM has no field for — a simulation attempt, a mentoring session, a piece of reading done on a phone in an airport.
The cost is infrastructure and discipline. xAPI statements need somewhere to land, which means a Learning Record Store, and an LRS is a separate thing from an LMS. And because the vocabulary is open, two teams describing the same activity can produce statements that never line up — the flexibility that makes xAPI powerful is the same flexibility that makes an unplanned xAPI rollout produce data nobody can query.
cmi5: the part most comparisons leave out
Almost every "SCORM vs xAPI" article stops at the two, which leaves the reader with a false choice. cmi5 is an xAPI profile that adds back the thing xAPI dropped: rules for how an LMS launches a course, and an agreed set of verbs for its lifecycle.
In practice cmi5 is the answer for most people who thought they wanted xAPI. It keeps the LMS in charge of launching and recording completion — the reason SCORM is convenient — while statements go to an LRS in xAPI's own detail.
How to choose without over-thinking it
Start from the question someone will ask you, not from the standard. If the question is "did they finish?", SCORM is enough and the rest is cost with no return.
- Your LMS is the only place learning happens, and you need completion and score → SCORM 2004 (or 1.2 if the LMS is old)
- You need to know what happened inside the course, not just whether it ended → cmi5
- Learning happens in apps, on the job, or offline, and an LMS is not the centre of it → xAPI direct to an LRS
- You are not sure yet → export SCORM now and cmi5 later from the same source, rather than picking a standard you cannot change
Questions
Is xAPI replacing SCORM?
Not in practice, and not soon. xAPI was published in 2013 and SCORM is still what most LMS platforms import by default, because SCORM's fixed scope is the thing that made universal support possible. The realistic position for the next several years is that both exist and content is exported to whichever one the destination understands.
Do I need a Learning Record Store for SCORM?
No. SCORM reports to the LMS that launched the content, and the LMS stores the result. An LRS is only needed for xAPI or cmi5.
Can one course export to both SCORM and xAPI?
Yes, if the authoring tool builds the package from the course's own source rather than converting one format into the other. Mosra exports SCORM 1.2, SCORM 2004, xAPI and cmi5 from the same deck, so the choice of standard is not a choice you make once and live with.
Which SCORM version should I pick?
SCORM 2004 unless your LMS says otherwise — it handles sequencing and reports pass/fail separately from completion, which SCORM 1.2 conflates. SCORM 1.2 remains the safer bet for older or unusual platforms, and it is still widely accepted.
Does xAPI work without the internet?
Yes. xAPI statements can be queued locally and sent when a connection returns, which is one of the main reasons it exists. SCORM has no equivalent — it needs a live LMS session.
Where Mosra fits
Mosra is an authoring tool that exports all four formats from one lesson, so this decision does not have to be made before you start building.
- SCORM 1.2, SCORM 2004, xAPI and cmi5 exported from the same source deck
- A Learning Record Store included, so xAPI and cmi5 statements have somewhere to land
- Graded questions on slides score inside the package and report back through the runtime
- The same deck still exports to PPTX, PDF and HTML5, so nothing is locked in
Related features
What is cmi5?
cmi5 is a profile of xAPI that defines how a learning management system launches content and how that content reports its own lifecycle. It exists bec…
e-Learning standardsWhat is a Learning Record Store?
A Learning Record Store, or LRS, is a database purpose-built to receive and store xAPI statements — records of the form "actor, verb, object" describi…
The quickest way to settle this
Build one deck, export a package, and load it into your own LMS. An afternoon answers what a comparison table cannot.