On this page
Key Takeaways
- SCORM, the Sharable Content Object Reference Model, is a set of technical standards from the US Department of Defense’s ADL Initiative for packaging eLearning content so a conformant LMS can launch and track it.
- A SCORM file is a ZIP package with an imsmanifest.xml file at its root, plus the course’s HTML, JavaScript, and media.
- SCORM 1.2, released in 2001, is the most widely adopted version. SCORM 2004 4th Edition, released in 2009, is the most recent.
- SCORM 2004 3rd and 4th Editions separate completion from pass or fail and raise the guaranteed space for saved course state from 4,096 characters to 64,000.
- ADL and current DoD guidance favor xAPI and cmi5 for new content, yet Rustici Software reports that 92% of course launches on its SCORM Cloud service in 2025 were SCORM courses.
SCORM is why a course built in one authoring tool can run in a different vendor’s learning management system. This guide covers what SCORM is, what’s inside a SCORM file, how the versions differ, and where xAPI, cmi5, AICC, and LTI fit. Dates, limits, and version details come from ADL, IEEE, ISO, 1EdTech, and Rustici Software’s technical references.
What Is SCORM
SCORM stands for Sharable Content Object Reference Model. It is a set of technical standards created by the US Department of Defense through its Advanced Distributed Learning (ADL) Initiative. SCORM defines how eLearning content is packaged and how it communicates with a learning management system, so a course can run in any conformant LMS, one built to that version’s requirements.
ADL released SCORM 1.0 in 2000. The standard combined earlier work from the AICC, IMS, ARIADNE, and IEEE’s learning technology committee rather than starting from scratch.
SCORM covers the technical layer only. It sets no rules for instructional design, so a strong course and a weak one can be equally conformant, as Rustici Software’s SCORM overview puts it.
How SCORM Works
SCORM works through two agreements between a course and an LMS: how the course is packaged, and how it talks to the LMS while a learner takes it. ADL organizes the standard into three parts, which it calls books, and the third part applies only to SCORM 2004:
- Content Aggregation Model: how content is packaged and described, so an LMS knows what a course contains and how to launch it
- Run-Time Environment: the JavaScript API and data model a course uses to talk to the LMS while a learner takes it
- Sequencing and Navigation: rules for the order learners move through content, added in SCORM 2004
When a learner opens a course, the course looks for an API object the LMS provides in the browser window. SCORM 1.2 names it API, and SCORM 2004 names it API_1484_11. The course calls functions on that object to start a session, read and write values, save, and end the session. According to Rustici’s run-time reference, that JavaScript API is the only way SCORM content and an LMS communicate.
The values come from the CMI data model, named for the computer-managed instruction guidelines SCORM inherited from AICC. It is a fixed list of fields such as completion status, score, time spent, and a bookmark for where the learner stopped.
What Is a SCORM File (SCORM Package)
A SCORM file, also called a SCORM package, is a ZIP file that holds a complete course. The specification calls it a Package Interchange File, or PIF. An LMS reads the manifest file inside the ZIP to learn the course’s structure and how to launch it. A package contains three kinds of files:
- imsmanifest.xml, which must sit at the root of the ZIP and describes the course structure, its resources, and, in SCORM 2004, its sequencing rules
- The course itself: HTML pages, JavaScript, images, audio, and video
- The schema definition files the manifest references
Content in a package comes in two kinds. A sharable content object (SCO) communicates with the LMS and is the smallest unit the LMS tracks, with its own score, status, and bookmark. An asset is static content, like an image or a PDF, that does not communicate with the LMS. Rustici’s packaging reference covers the manifest in detail.
SCORM Versions
Seven versions of SCORM were released between 2000 and 2009. ADL maintains resources for three of them: SCORM 1.2, SCORM 2004 3rd Edition, and SCORM 2004 4th Edition. SCORM 1.2 is the most widely adopted, and the 4th Edition is the most recent. Release dates come from Rustici’s version history.
| Version | Released | Status today |
|---|---|---|
| SCORM 1.0 | January 2000 | Draft outline; no longer supported by ADL |
| SCORM 1.1 | January 2001 | First implementable version; little commercial use |
| SCORM 1.2 | October 2001 | Most widely adopted version; supported by ADL |
| SCORM 2004 1st Edition | January 2004 | Little commercial use; no longer supported by ADL |
| SCORM 2004 2nd Edition | July 2004 | No longer supported by ADL |
| SCORM 2004 3rd Edition | October 2006 | Most used 2004 edition; supported by ADL |
| SCORM 2004 4th Edition | March 2009 | Most recent version; supported by ADL |
SCORM 1.2 vs. SCORM 2004
SCORM 2004 separates completion from pass or fail, adds sequencing rules, and guarantees far more space for saved course state than SCORM 1.2 does. SCORM 1.2 has broader LMS support. The differences that matter in practice, drawn from Rustici’s run-time reference and its comparison of the two versions, are:
| Feature | SCORM 1.2 | SCORM 2004 (3rd and 4th Editions) |
|---|---|---|
| Completion and pass or fail | One field, cmi.core.lesson_status, holds both | Two fields: cmi.completion_status and cmi.success_status |
| Saved course state (suspend_data) | 4,096 characters | 64,000 characters |
| Bookmark (location) | 255 characters | 1,000 characters |
| Scoring | Raw, minimum, and maximum score | Adds a scaled (normalized) score from -1 to 1 |
| Interactions | Tracks responses, results, objectives, correct responses, latency, weighting, and interaction type | Expands interaction types and field sizes, adds descriptions, and makes interaction data more retrievable |
| Sequencing and navigation | None | Rules for the order learners move through content |
| JavaScript API object | API | API_1484_11 |
The character limits are minimums an LMS must support, and many LMSs allow more. The 64,000 figure applies to SCORM 2004 3rd and 4th Editions only; the 2nd Edition allowed 4,000. A course uses suspend_data to store whatever state it needs between sessions, and saving the learner’s place is its most common use.
The 4th Edition is the latest SCORM version. It adds shared data between SCOs, so one module can read what another stored; weighted completion rollup, so some modules count more toward course completion; and jump navigation, which lets content send a learner to a specific activity. The 3rd Edition remains common. Choose between them based on the LMS you need to support.
If you need SCORM and broad LMS compatibility is the priority, SCORM 1.2 is usually the safest target. Use SCORM 2004 when you need separate completion and success status, sequencing, or substantially more suspend data, and confirm that the destination LMS supports the edition you publish. When a SCORM 1.2 course outgrows 4,096 characters, the usual symptom is a learner who exits and resumes at an earlier point.
What Does SCORM Compliant Mean
“SCORM compliant” is an informal industry term, and it does not by itself prove that a product has passed a conformance test. “SCORM conformant” is the more precise term: content or an LMS that meets the requirements of a specific SCORM version, which ADL tests with a conformance test suite for that version.
Historically, “SCORM certified” meant ADL had certified the product through independent testing, as Rustici explains. When you evaluate a SCORM-compliant LMS, ask the vendor which SCORM versions it supports and request test results rather than relying on the label alone.
ADL still publishes free conformance test suites for SCORM 2004 3rd Edition and 4th Edition. They are legacy software; the 4th Edition suite needs Java 6 and Internet Explorer 8 or earlier. Rustici’s SCORM Cloud, a hosted service for testing and delivering eLearning content, is a practical alternative for checking a package. It plays SCORM 1.2 and 2004, xAPI, cmi5, and AICC content, though Rustici notes it does not test for strict technical conformance.
A package is designed to run in any conformant LMS that supports the same SCORM version. LMS implementations still differ in the details, so test every package in the LMS you plan to use before rollout.
Is SCORM Outdated
SCORM is old, and it is still the most used eLearning standard. Its most recent version shipped in 2009, yet Rustici Software reports that 92% of course launches on its SCORM Cloud service in 2025 were SCORM courses, with SCORM 1.2 holding the majority share. Rustici builds SCORM Cloud, so treat that figure as vendor data.
ADL recommends xAPI and cmi5, an xAPI profile for LMS-launched courses, for new acquisitions and implementations.
Current DoD guidance goes further than the original 2017 policy. ADL’s implementation references for DoD Instruction 1322.26 say xAPI and cmi5 “shall be prioritized throughout the acquisition process,” direct that newly acquired online courseware adhere to cmi5, and call for migrating legacy SCORM courseware toward cmi5 and xAPI as it is updated. SCORM remains allowed for LMS-hosted training when cmi5 and xAPI cannot be used, but the guidance treats that as an exception and says new acquisition efforts should not use SCORM.
Outside government, the practical test is support on both ends. Export cmi5 when your authoring tool publishes it, your LMS imports it, and you want xAPI data from courses the LMS launches. Otherwise, SCORM remains the more portable choice today.
SCORM vs. xAPI vs. cmi5 vs. AICC vs. LTI
SCORM, xAPI, cmi5, AICC, and LTI each solve a different problem. SCORM and AICC define how packaged courses communicate with an LMS. xAPI records learning experiences as statements. cmi5 applies xAPI to courses an LMS launches. LTI connects an LMS to external tools.
| Standard | What it does | Maintained by | Current version |
|---|---|---|---|
| SCORM | Packages courses so a conformant LMS can launch and track them in a web browser | ADL | SCORM 2004 4th Edition (2009) |
| xAPI | Can capture learning experiences across systems, devices, and environments as statements sent to a Learning Record Store | Developed by ADL; published as a standard by IEEE and ISO | xAPI 2.0 (IEEE 9274.1.1-2023) |
| cmi5 | Defines how an LMS imports, launches, and tracks xAPI courses | ADL (started by AICC) | Quartz, June 2016 |
| AICC | An early standard for connecting content to an LMS | No one; AICC dissolved in 2014 | Legacy (HACP) |
| LTI | LTI 1.3 securely launches and connects external tools to an LMS; LTI Advantage adds grade return, roster access, and deep linking | 1EdTech | LTI 1.3 and LTI Advantage (2019) |
xAPI (Tin Can) records learning experiences as statements.
xAPI, the Experience API, started as Project Tin Can, which ADL contracted to Rustici Software in 2011. Some tools still call it the Tin Can API, the name it carried until version 1.0 shipped as xAPI in 2013. Every xAPI record is a statement with an actor, a verb, and an object, such as “Jordan completed Forklift Safety.” Software generates those statements and sends them to a Learning Record Store (LRS), which can stand alone or sit inside an LMS.
Because any application can send statements, xAPI can capture learning that SCORM can’t: offline, in mobile apps, simulations, and games, and outside a browser or LMS. It is now IEEE 9274.1.1-2023, approved March 30, 2023 and published October 6, 2023, as xAPI 2.0. In October 2025, it was also adopted as the international standard ISO/IEC/IEEE 39274-1-1:2025.
cmi5 adds LMS launch rules to xAPI.
xAPI leaves out packaging and launch rules, which makes it awkward for ordinary LMS courses. cmi5 fills that gap. It is an xAPI profile, meaning a set of rules for using xAPI in a specific setting, and it defines how an LMS imports, launches, and tracks a course, with nine defined verbs including launched, completed, passed, and failed. The AICC began the work in 2010 and transferred it to ADL in 2014, and the first production version, Quartz, was released in June 2016. ADL describes cmi5 as replicating SCORM’s functionality on top of xAPI.
AICC is a legacy standard with no maintainer.
The Aviation Industry CBT Committee published the first widely adopted standard for connecting eLearning content to an LMS, and SCORM’s data model borrows its CMI naming. AICC dissolved in 2014. Its HTTP-based protocol, HACP, is still supported by some LMS platforms, including Intellum’s, but no organization maintains it.
LTI connects an LMS to external tools.
LTI, from 1EdTech (formerly IMS Global), is designed to launch a learner into an external tool that stays hosted by its provider. LTI 1.3, released in 2019, provides the secure launch and connection. LTI Advantage adds services on top of it: Assignment and Grade Services for grade return, Names and Role Provisioning Services for rosters, and Deep Linking. Support for older LTI versions ended in June 2022.
In a conventional SCORM deployment, by contrast, the course package is imported into the LMS and delivered through it. Rustici notes that LTI is common in higher education and SCORM in corporate and government training.
What Is the Difference Between SCORM and an LMS
SCORM is a standard, and an LMS is software. The LMS delivers courses, enrolls learners, and reports results. SCORM is the agreed format that lets a course built in one tool run inside a conformant LMS and send completion, scores, and progress back to it.
An authoring tool publishes the SCORM package, and the LMS imports and plays it. Our guide to course authoring software covers how authoring tools and an LMS split that work, and our explainer on what a learning management system does covers the delivery side.
Common SCORM Problems
Most SCORM problems trace back to three limits: a small guaranteed space for saved state in SCORM 1.2, a delivery model built around a browser and an LMS, and a fixed data model. The rest come from how browsers handle packaged content. These are the problems teams run into most often:
- Lost resume points. SCORM 1.2 guarantees only 4,096 characters of saved course state. Long courses can exceed it, and learners resume at an earlier point.
- Browser and LMS only. SCORM tracks content launched from an LMS in a web browser. Tracking offline, mobile app, and real-world learning is what xAPI was designed for.
- A fixed data model. SCORM can report only the data elements defined by the standard in an interoperable way. Detailed event streams, such as a learner’s path through a simulation or click-level behavior, have no standardized SCORM fields. xAPI is designed for that richer event data.
- Cross-domain blocks. In a conventional setup, browser security requires the content and the LMS player to sit on the same domain, so hosting content elsewhere needs a workaround such as a proxy.
- Progress resets on updates. Replacing a package with a new version can reset learner progress, depending on the LMS. SCORM Cloud’s documentation warns that moving a learner to a new course version effectively resets their progress.
- Pop-up blockers. Courses that launch in a new window can fail to open when a pop-up blocker is on.
How to Create a SCORM File
You create a SCORM file by publishing a course from an authoring tool in the SCORM version your LMS accepts, then testing that the package launches, saves progress, and reports correctly. The order matters, because the target version and completion rules are hard to change once learners are enrolled. The process takes five steps:
- Confirm the version your LMS accepts. Check whether it imports SCORM 1.2, SCORM 2004 3rd or 4th Edition, or both, and publish to match.
- Build the course in an authoring tool. Nearly every authoring tool publishes SCORM. Our comparison of eleven eLearning authoring tools lists the formats each one publishes to.
- Set completion and scoring rules before you publish. Decide whether completion means viewing every page, passing a quiz, or both. In SCORM 1.2, those share one status field.
- Test the package. Upload it to SCORM Cloud to check that it launches, bookmarks, and reports, then test it again in your own LMS.
- Keep the source file. Every content change means republishing the package and uploading it again.
You can convert PowerPoint, PDF, and video files to SCORM.
Many authoring tools can import or wrap an existing slide deck, PDF, or video and publish it as a SCORM package. The trade-off is tracking: a wrapped file usually reports little more than launch and completion. Rebuild the material as interactive lessons when you need quiz scores or interaction data. Evolve’s Creator agent turns documents and videos into structured course drafts, which a designer reviews and can then export as SCORM 1.2 or 2004.
SCORM on Intellum
Intellum’s LMS platform supports SCORM 1.2 and AICC by default, and SCORM 2004, xAPI, and cmi5 when an admin requests them through their customer success manager. Existing SCORM 1.2 and AICC packages upload without conversion, and Evolve, Intellum’s SCORM authoring tool, exports SCORM 1.2 and SCORM 2004 packages for use in other conformant LMSs.
Inside the Intellum Platform, Evolve courses publish straight into the platform as Evolve Native or Inline Evolve courses, so there is no SCORM export or re-upload when content changes. Our guide to migrating SCORM content to Intellum covers what transfers and what doesn’t, and teams writing standards support into an LMS evaluation can start from the LMS RFP template.
FAQs
Which SCORM version should I use?
Start with the version your LMS imports. SCORM 1.2 has the widest LMS support, so it suits content that has to run in many systems. SCORM 2004 3rd or 4th Edition fits courses that need separate completion and pass or fail status, sequencing rules, or more than 4,096 characters of saved course state.
Is xAPI better than SCORM?
xAPI is more flexible, and SCORM is more widely supported. xAPI can capture learning outside a browser-based LMS course, such as offline activity, mobile apps, and simulations, whenever an application sends statements to a Learning Record Store. SCORM reports a fixed set of data from LMS-launched content. For LMS courses built on xAPI, cmi5 adds the missing launch rules.
What is SCORM Cloud?
SCORM Cloud is Rustici Software’s hosted service for running and debugging eLearning packages, including SCORM, xAPI, cmi5, and AICC content. Teams upload a course there first to watch the data it sends and receives while a learner takes it, then move it to their own LMS. Passing there does not certify SCORM conformance.
What is a SCORM player?
A SCORM player is the software that launches a SCORM package and carries data between the course and the LMS. It reads the imsmanifest.xml file, opens the course in the browser, and provides the JavaScript API object the course calls to save progress and report scores and completion. Most LMSs have one built in.
Can you convert PowerPoint, PDF, or video to SCORM?
Yes, with limits. An authoring tool can wrap a slide deck, PDF, or video in a SCORM package, but the LMS will mostly see whether the learner opened and finished it. Scores and answers need real quiz questions. In Intellum Evolve, the Creator agent drafts a course from documents and videos, and a designer refines it before exporting to SCORM.
How do I upload a SCORM file to an LMS?
Upload the ZIP file as it is, without unzipping it. The LMS reads the imsmanifest.xml file at the root of the package to find the course structure and launch file, then creates a course or activity from it. Before learners see it, launch it yourself as a test learner, exit partway through, and check that it resumes where you stopped.




