What Is SCORM? A Plain Guide for L&D Teams

This guide is written for L&D, training and LMS teams. It explains what SCORM is, what is inside a SCORM package, which version to ask for, and the integration problems we see most often when courses meet a real LMS, with a checklist to avoid them.

✉️

Get a Free Quotation

Scoped proposal delivered within 48 hours

🔒 100% confidential ⏱ 48h response ✅ No spam

    Full Name

    Phone

    Email Address

    Your Message

    ✓ No obligation ⚡ Fast turnaround ★ 500+ delivered
    Quick answer

    SCORM in short

    SCORM (Sharable Content Object Reference Model) is a set of technical standards that lets an eLearning course run inside a SCORM-conformant learning management system (LMS) and report results such as completion, pass or fail, score and time. A SCORM file is a ZIP package with an imsmanifest.xml file that tells the LMS how to launch the course.

    An L&D specialist at a laptop checking an eLearning course and its tracking reports
    The basics

    What is SCORM and what does it stand for?

    SCORM stands for Sharable Content Object Reference Model. It was produced by the Advanced Distributed Learning (ADL) Initiative, a research group sponsored by the US Department of Defense, and the first draft (SCORM 1.0) appeared in January 2000.

    SCORM is purely technical. It says nothing about instructional design.

    So a course can be fully SCORM conformant and still be poor training. Good design is a separate job (that is what custom eLearning development covers).

    The name explains the idea:

    Sharable Content Object (SCO): a unit of a course that can talk to the LMS, for example to report a score. Static files that cannot talk to the LMS (a PDF, a shared logo) are called assets.

    Reference Model: SCORM is not one product or file format. It is a reference collection of specifications that say how content should be packaged and how it should exchange data with an LMS.

    How it works

    How does SCORM work?

    SCORM works in two main steps: the course is packaged so any SCORM LMS can import it, and at run-time the course uses a JavaScript API that the LMS provides to send and read learner data. SCORM 2004 adds a third part, sequencing, for rules about the order in which learners move through content.

    Learner with headphones taking an online course on a laptop
    The three parts of SCORM and what each means for you
    SCORM partWhat it doesWhat it means for you
    Content packagingPuts the course files in a ZIP with a manifest (imsmanifest.xml) that lists the course structure and its filesYou upload one ZIP file to the LMS instead of loose files
    Run-time environmentThe LMS provides a JavaScript object (named "API" in SCORM 1.2 and "API_1484_11" in SCORM 2004). The course finds it, starts a session, reads and writes data, and ends the sessionCompletion, scores and bookmarks reach the LMS reports
    Sequencing and navigation (SCORM 2004 only)Rules between SCOs, such as "finish Module 1 before Module 2 opens"Useful for multi-module courses; needs an LMS that fully supports it

    A useful detail for anyone debugging tracking: the LMS is passive. It launches the course and answers the course's calls, but it cannot start the conversation. Every SCO must call Initialize (LMSInitialize in SCORM 1.2) before anything else and Terminate (LMSFinish in 1.2) when it closes. If a course skips those calls, data does not get saved, whatever the LMS settings say.

    The package

    What is a SCORM file (SCORM package)?

    A SCORM file is a ZIP file, formally called a package interchange file (PIF), that holds everything the course needs plus a manifest file named imsmanifest.xml. The manifest must sit at the root of the ZIP. It tells the LMS what the course contains and which file to launch.

    What is inside a SCORM package and what each part is for
    Inside a SCORM packageWhat it is for
    imsmanifest.xml (at the root)Describes the course: its metadata, its organizations (the course structure) and its resources (the files that make up each part)
    Schema definition files (.xsd and .dtd)Let the LMS check that the manifest follows the SCORM rules for that version
    Course files (HTML, JavaScript, CSS, images, audio, video)The course itself, usually published by an authoring tool as HTML5
    • How to tell which SCORM version a package uses: open imsmanifest.xml in a text editor and look at the <schemaversion> element. It states the SCORM version of the manifest, for example SCORM 1.2 or a SCORM 2004 edition.

    • Can you open a SCORM file without an LMS? You can unzip it and open the launch file in a browser to look at the content. Nothing is tracked, though, because tracking depends on the API that only the LMS (or a SCORM test player) provides.

    Tracking

    What does SCORM track in your LMS?

    SCORM tracks what happens inside the course and sends it to the LMS: completion status, pass or fail, score, time spent, where the learner stopped (bookmark), saved progress (suspend data) and answers to questions (interactions). It does not track learning that happens outside the course, such as on-the-job practice.

    What SCORM 1.2 and SCORM 2004 track
    DataSCORM 1.2SCORM 2004
    Completion and resultOne field, cmi.core.lesson_status: passed, completed, failed, incomplete, browsed, not attemptedTwo fields: cmi.completion_status (completed, incomplete, not attempted, unknown) and cmi.success_status (passed, failed, unknown)
    ScoreRaw, min and maxScaled (from -1 to 1), raw, min and max
    TimeSession timeSession time
    Saved progress (cmi.suspend_data)Up to 4,096 characters2nd Edition: 4,000 characters; 3rd and 4th Editions: 64,000 characters
    Question detail (interactions)Limited: ID, type, learner response, result, latency and moreFuller: adds a description field, plus full question and answer text

    Completed or passed? Decide before the build. In SCORM 1.2 the course can report only one status. If your LMS reports count "completed" but the course sends "passed" (or the reverse), learners can finish a course and still show as not done. In SCORM 2004 the course can report "completed" and "passed" at the same time, which removes most of this confusion. Agree the rule with your LMS admin before development starts.

    Versions

    SCORM 1.2 vs SCORM 2004: which should you choose?

    Choose SCORM 1.2 when the course is simple and you need it to work in almost any LMS. Choose SCORM 2004 (3rd or 4th Edition) when you need separate completion and pass status, long courses that save a lot of progress, or sequencing rules, and your LMS supports that edition.

    1. January 2000

      SCORM 1.0

      Draft, not used today

    2. January 2001

      SCORM 1.1

      First implementable version, not used today

    3. October 2001

      SCORM 1.2

    4. January 2004

      SCORM 2004 1st Edition

    5. July 2004

      SCORM 2004 2nd Edition

    6. October 2006

      SCORM 2004 3rd Edition

    7. March 2009

      SCORM 2004 4th Edition

      The latest edition

    According to Rustici Software, which publishes the scorm.com technical reference, SCORM 1.2 and SCORM 2004 3rd Edition are the most widely used versions (ringed in gold above).

    SCORM 1.2 compared with SCORM 2004 3rd or 4th Edition
    FeatureSCORM 1.2SCORM 2004 (3rd or 4th Edition)
    LMS supportVery broadBroad, but some LMSs support only some editions or only part of sequencing
    Completion and pass/failOne combined statusSeparate completion and success status
    Saved progress (suspend data)4,096 characters64,000 characters
    Sequencing between SCOsNoYes
    Interaction detailLimitedFuller, including question and answer text
    Rollup (combining SCO results into a course result)Handled by the LMSThe course tells the LMS when data is ready to roll up
    Build and test effortLowerHigher, especially with sequencing
    Broadest support

    SCORM 1.2

    What it is

    The oldest version still in wide use.

    Key benefits
    • The broadest LMS support and the simplest to test.
    Consider
    • One status field and a small suspend-data limit, which can break resume on long, interactive courses.
    Best for

    Short compliance, product and policy courses; any LMS you know little about.

    More tracking

    SCORM 2004 (3rd or 4th Edition)

    What it is

    The later version, with four editions; the 3rd and 4th are the ones to use.

    Key benefits
    • Separate completion and pass status, much more saved progress, sequencing.
    Consider
    • Check which edition your LMS supports and test sequencing in that LMS.
    Best for

    Long or branching courses, simulations that save a lot of state, multi-module curricula.

    If you are unsure, ask your LMS team which versions and editions the platform supports. When an LMS supports both, many teams use SCORM 2004 3rd or 4th Edition for complex courses and SCORM 1.2 for everything else.

    LMS integration

    What does "SCORM compliant" mean for LMS integration?

    "SCORM compliant" (also written SCORM compatible or SCORM conformant) means a course or an LMS follows the SCORM specification for a given version. It does not guarantee that a particular course will behave the same in every LMS, because LMSs implement the standard, especially SCORM 2004 sequencing, in slightly different ways and add their own settings.

    That is why the real test of SCORM compliant courses is your own LMS, not the authoring tool's preview. Before a course goes live, check four things in the LMS where learners will take it:

    1. 1The package imports without errors.
    2. 2The course launches in the window size and mode your learners use (new window, same window, mobile).
    3. 3Completion, pass or fail and score appear correctly in the LMS reports.
    4. 4A learner can leave halfway and resume where they stopped.

    At IKHYA we build courses that track in SCORM 1.2, SCORM 2004 and xAPI LMSs, and we test every course in your LMS. LMS platforms we have delivered courses to include Moodle, TalentLMS, Docebo and Cornerstone.

    LMS platforms we have delivered courses to also include Absorb, SAP SuccessFactors, Workday Learning, Canvas and Litmos.

    If the LMS itself still needs choosing or configuring, that is a separate project: see our LMS implementation service, which covers LMS selection, setup, implementation and migration.

    Six steps

    How to create a SCORM file

    You create a SCORM file by building the course in an authoring tool and publishing (exporting) it as a SCORM package. You rarely write the manifest or the API calls by hand; the authoring tool does it.

    1. 01

      Confirm the target

      Ask your LMS team which SCORM version and edition to publish to, and how completion should be reported (see the checklist).

    2. 02

      Pick the authoring tool

      Common SCORM authoring tools include Articulate Storyline 360, Articulate Rise 360, Adobe Captivate, Lectora, iSpring Suite, dominKnow ONE and Elucidat. All of them can publish to SCORM.

    3. 03

      Build the course

      Design the content, interactions and assessment. Keep the tool's source file: a published package is hard to edit, so changes are made in the source and republished.

    4. 04

      Set the tracking rules

      Choose what makes the course complete (slides viewed, a quiz result, or both) and which status to report.

    5. 05

      Publish to SCORM

      Export the ZIP. Upload the ZIP as it is; do not unzip it and re-zip the folder, because that can push imsmanifest.xml out of the root.

    6. 06

      Test in the real LMS

      Run the four checks in the section above with a test learner account, then pilot with a small group.

    Troubleshooting

    Common SCORM problems in an LMS and how to prevent them

    Most SCORM problems show up after upload: the course plays, but the LMS reports are wrong. The table below lists the issues L&D teams report most often and the usual fix. It is practical guidance from course builds, not a research finding.

    Two team members testing courses on their monitors
    Common SCORM problems in an LMS, their likely causes and how to prevent them
    What you seeLikely causeHow to prevent it
    The LMS says the package is invalidimsmanifest.xml is not at the root of the ZIP (often because the folder was zipped again)Upload the ZIP exactly as the authoring tool published it
    Learners finish but stay "incomplete"The course reports "passed" while the LMS counts "completed" (or the reverse), or the course never calls Terminate/LMSFinishAgree the completion rule with the LMS admin; test exit by every route (close button, browser close, timeout)
    Resume does not work on long coursesSaved progress exceeds the suspend data limit (4,096 characters in SCORM 1.2)Publish long, interactive courses to SCORM 2004 3rd or 4th Edition, or reduce what the course saves
    Scores missing or wrongThe quiz is not linked to the tracking setting, or the passing score differs between the course and the LMSSet the passing score in one place and test a pass and a fail attempt
    Module 2 will not unlockThe LMS supports SCORM 2004 sequencing only partlyCheck the LMS's sequencing support before choosing sequencing; otherwise split into separate courses
    The course works in preview but not on mobile or in the appLaunch settings (new window, pop-ups, frames) differ in the LMSTest with the LMS's real launch settings on the devices learners use
    Worked example

    Worked example: moving SCORM courses to a new LMS

    LMS integration is most visible when an organization changes LMS. Every course has to import, launch and report correctly in the new platform, and the completion history has to come across too.

    An LMS administrator holding a laptop in a server room during a platform migration LMS migration

    Moving 320 courses and 8 years of completion records from Moodle to Docebo without losing a record

    Client
    A professional-services firm with 5,000 learners.
    What we did
    A content audit that retired 90 outdated courses, repackaged 60 old SCORM 1.2 courses, migrated the completion records, tested every package in the new LMS and trained the admins, over 12 weeks.
    Results
    Cut-over in one weekend, 0 lost records and 230 courses live on day 1.

    "Every course and every completion record moved across in one weekend. Our auditors could not tell we had switched systems, which is exactly what we wanted, and the test migration three weeks early took the stress out of cut-over."

    LMS Administrator, professional services, United Kingdom

    What this shows: most of the work in an LMS move is not technical. Deciding which courses to retire, which to repackage and how to prove nothing was lost matters as much as the SCORM files.

    Other standards

    Is SCORM still the right standard? SCORM vs xAPI and cmi5

    Yes, for most LMS-based courses SCORM is still the safe default, because LMS support for it is so broad. The latest SCORM edition, SCORM 2004 4th Edition, was released in March 2009. For tracking beyond the course (mobile apps, simulations, offline or real-world activity), look at xAPI; for LMS-launched courses that use xAPI data, look at cmi5.

    SCORM, xAPI and cmi5 compared
    QuestionSCORMxAPI (Experience API, also called Tin Can)cmi5
    What it isPackaging and run-time standard for courses in an LMSA standard for sending learning records ("I did this") to a Learning Record Store (LRS)An xAPI profile that defines how an LMS launches and tracks courses
    Where learning can happenInside the course, in a browser, launched by the LMSAnywhere: courses, apps, simulations, real-world activity; no constant connection neededCourses launched by the LMS, reporting through xAPI
    StatusSCORM 2004 4th Edition, March 2009Published as IEEE 9274.1.1-2023 (approved March 30, 2023; published October 6, 2023)Quartz 1st Edition, June 1, 2016
    Best forStandard LMS coursesLearning analytics across many systemsLMS courses that need richer xAPI tracking

    For a full side-by-side, read our guide on SCORM vs xAPI.

    Checklist

    Before you build: an LMS checklist for SCORM courses

    Send these questions to your LMS admin before development starts. They prevent most of the problems in the table above.

    Questions to ask your LMS team before a SCORM course is built, and why each matters
    Ask your LMS teamWhy it matters
    1Which LMS and version are we on?Sets the test environment
    2Which standards and editions does it support (SCORM 1.2, SCORM 2004 3rd or 4th Edition, xAPI)?Decides the publish setting
    3Does it fully support SCORM 2004 sequencing?Decides whether multi-module rules can live in one package
    4Do our reports count "completed", "passed" or both?Decides what the course must report
    5What is the passing score, and is it set in the course or the LMS?Avoids two different pass marks
    6How are courses launched (new window, same window, mobile app)?Affects layout and exit behavior
    7Is there a maximum upload size?Video-heavy packages can exceed an upload limit
    8Can we get a test learner account and a test admin view?Lets the course be tested where learners will take it

    Need this built for your team?

    We build and test SCORM 1.2, SCORM 2004 and xAPI courses in Articulate Storyline 360, Articulate Rise 360, Adobe Captivate, Lectora, iSpring Suite, dominKnow ONE and Elucidat.

    FAQs

    Frequently asked questions about SCORM

    SCORM is a set of rules that lets an eLearning course and an LMS work together. The course is packaged in a standard way so the LMS can import it, and it reports results such as completion, score and time back to the LMS.

    SCORM stands for Sharable Content Object Reference Model. It was produced by the Advanced Distributed Learning (ADL) Initiative, sponsored by the US Department of Defense.

    Jump to: What does SCORM stand for?

    A SCORM package is a ZIP file containing the course files and an imsmanifest.xml file at its root that tells the LMS how the course is structured and which file to launch.

    Jump to: What is a SCORM file?

    Yes. SCORM is still widely used to deliver tracked courses through an LMS. The last edition, SCORM 2004 4th Edition, dates from 2009, and newer standards (xAPI and cmi5) are used when tracking needs to go beyond the course.

    Jump to: SCORM vs xAPI and cmi5

    You can unzip it and open the launch file in a browser to view the content, but nothing is tracked. Tracking needs the JavaScript API that an LMS or a SCORM test player provides.

    Upload it to the LMS where learners will take it and use a test learner account. Check that it imports without errors, launches in the real launch mode, reports completion, pass or fail and score correctly, and resumes where the learner stopped.

    Jump to: What "SCORM compliant" means

    Make changes in the authoring tool's source file and publish a new package. Editing the published HTML and JavaScript inside the ZIP is possible but fragile, so keep the source files for every course.

    Ask for SCORM 1.2 for simple courses or when you are unsure what your LMS supports. Ask for SCORM 2004 3rd or 4th Edition for long, branching or multi-module courses, once your LMS team confirms it supports that edition.

    Jump to: SCORM 1.2 vs SCORM 2004

    The LMS name and version, the SCORM version and edition it supports, how your reports count completion, the passing score, the launch settings and a test account. With those, we test every course in your LMS before launch.

    Jump to: Pre-build LMS checklist

    Yes. IKHYA redesigns legacy courses and converts Flash and old SCORM courses to HTML5 or Rise, then republishes them to the SCORM version your LMS needs.

    See eLearning course redesign

    Turn your content into SCORM courses that report correctly the first time.