Launch offer — 50% off Pro for your first 6 months.Claim it →
Field NotesxAPI10 min read

xAPI vs SCORM: what freelancers actually need to know.

Two standards, two questions — and the one your client is really asking underneath.

A prospect reads "xAPI" on a competitor's site and forwards you a one-line email: "Should we be using xAPI instead of SCORM?" The honest answer is almost never the exciting one. It depends on their LMS, their IT change queue, and whether anyone on their side will own a Learning Record Store after you hand off. But that is not the answer that wins the gig — and it is definitely not the answer most freelance IDs give. They either reach for the newer-sounding acronym to look sharp, or freeze up in a standards rabbit hole the client never asked them to enter.

Here is the version I wish someone had handed me: SCORM and xAPI are not a fashion contest. They are two answers to two different questions, and the client is really asking a third one — who maintains this, and who owns the data? Get that straight and the recommendation writes itself.

SCORM tells you whether they finished. xAPI tells you what they did. Pick the one the client can actually maintain.— the whole comparison in one line

Why SCORM is still the default.

For most corporate work, a SCORM 1.2 or 2004 package is the currency. LMS admins already know how to ingest it, completion and score reporting are well understood, and it ships without new infrastructure. When a client asks "will it track completion?" and you can say "yes — SCORM 1.2, completion fires on a quiz pass," the conversation moves to design instead of infrastructure. That is exactly where you want it.

SCORM 1.2 is the safe bet.

When you don't know the client's platform, publish 1.2. It runs on Cornerstone, Docebo, Moodle, Absorb, TalentLMS, and practically every LMS released this century. The trade-off is thin data: completion status, a single score, and basic bookmarking. For compliance, awareness, and onboarding, that is plenty.

SCORM 2004 is for enforced structure.

Reach for 2004 when the course needssequencing — a certification where Module 2 unlocks only after Module 1 passes — or when the client's reports must distinguish "completed" from "passed" as separate fields. Storyline 360 and Captivate both export 2004 3rd and 4th Edition. Confirm which edition the LMS supports before you publish, because mismatches fail silently in sequencing.

If you skip this

Version your published packages with the spec baked into the filename — Client_Module_v1.3_SCORM12.zip. When an LMS update breaks playback six months later, you roll back to a known-good ZIP instead of re-publishing from source and praying the authoring file still opens.

When xAPI earns its complexity.

xAPI (the spec everyone still calls "Tin Can") shines when the learning you need to track lives outsidea single SCORM module. A mobile job aid, a Unity simulation, a video series, an in-person workshop — xAPI stitches those into one learner record. Each piece sends statements ("learner attempted scenario," "learner completed video," "learner attended workshop") to a Learning Record Store like Learning Locker, Watershed, or Yet Analytics, and the LRS becomes the single source of truth you build reports from.

The catch is governance, and it is a real one. Someone has to define the statement vocabulary, provision and maintain the LRS, own the data, and build the reports. If you pitch xAPI without naming those owners in the SOW, the client assumes you handle all of it forever — and you become unpaid infrastructure support. A clean split: you define the statement structure and instrument the authoring side; their IT team provisions and maintains the LRS; a data analyst builds the dashboards.

Start small. Instrument one module with custom statements that track decision points in a branching scenario. If the client's LMS supports it, use cmi5 — it's essentially xAPI with SCORM-like launch and completion semantics, so it feels familiar to LMS admins while giving you richer data underneath. Storyline 360 exports cmi5 natively; for anything beyond it, you're wiring JavaScript triggers that send statements through the xAPI wrapper library.

A single xAPI statement · the shape clients pay forJavaScript
// One decision point in a branching scenario, sent to the LRS.
// This is the "what they did" SCORM can't capture.
ADL.XAPIWrapper.sendStatement({
  actor: { mbox: "mailto:learner@client.com" },
  verb: { id: "http://adlnet.gov/expapi/verbs/answered" },
  object: {
    id: "https://client.com/scenario/escalation-tier",
    definition: { name: { "en-US": "Chose escalation tier" } }
  }
});
The trap freelancers walk into

Bundling xAPI hours into one flat fee. A SCORM module might be 60 hours; adding custom statements, LRS configuration, and a basic dashboard can add 20–40 more. Hide that in a single number and the client never sees the data layer's value — so they don't budget for it next time. Itemize it as its own line and the value becomes visible.

Pick by the client in front of you.

Forget which spec is "more modern." Match the standard to the client's reality — their LMS, their IT capacity, their reporting need. Ranked by how often it's the right call for freelance work:

1

SCORM 1.2 — the universal default.

Best for: unknown LMS, compliance, awareness, onboarding

Default to this

If their LMS is Cornerstone and IT has a 90-day change-request queue, this is the answer. It ships today and tracks exactly what an audit needs: who completed, who passed. Do not upsell past it when it solves the problem — you lose trust the moment a recommendation serves your resume more than their timeline.

What's good

  • Runs on every LMS worth naming, zero new infrastructure
  • Completion + score + bookmarking — enough for most courses
  • The conversation moves to design, not plumbing

What's not

  • Binary data only: done / not done, passed / failed
  • No cross-tool or cross-session tracking
  • suspend_data caps at 4,096 chars on long branching courses
2

SCORM 2004 — when structure is the requirement.

Best for: certifications, enforced paths, passed-vs-completed reporting

Solid

Use it when Module 2 must stay locked until Module 1 passes, or when L&D reports have to tell "completed" apart from "passed." Confirm the exact edition the LMS supports in writing before you publish — this is the single most common silent failure in packaged delivery.

What's good

  • Real sequencing and navigation control across SCOs
  • Distinct passed / failed / completed / incomplete fields
  • suspend_data raised to 64,000 chars (4th Edition is the safe default)

What's not

  • Edition mismatches fail silently in sequencing
  • Heavier than 1.2 for a course that never needed locked paths
  • Some older client LMSes only speak 3rd Edition
3

cmi5 — the gentle on-ramp to xAPI.

Best for: clients ready for richer data but still LMS-centric

If the LMS supports it

cmi5 is the bridge: it launches and completes like SCORM, so the admin's workflow doesn't change, but every interaction can flow as an xAPI statement underneath. When a client is curious about richer data but not ready to stand up a full LRS program, this is the lowest-risk step.

What's good

  • xAPI data with SCORM-like launch + completion semantics
  • Familiar to LMS admins — feels like SCORM to upload
  • Native export from Storyline 360

What's not

  • LMS support is still uneven — confirm before you promise it
  • Still needs an LRS path and someone to read the data
  • Overkill if the client only ever asks "did they finish?"
4

Full custom xAPI — the data-first build.

Best for: multi-tool programs with a funded LRS and an owner

Only with governance

This is the right call only when the client already has — or will fund — an LRS and an IT team willing to own it. If that ownership isn't there, full xAPI is a hard sell that ends with you maintaining someone else's pipeline for free. Confirm the budget and the governance before you write it down.

What's good

  • Captures behavior SCORM can never see — paths, dwell time, self-correction
  • Stitches mobile, simulation, video, and in-person into one record
  • The strongest analytics story you can offer a mature L&D team

What's not

  • Dead on arrival without an LRS and a named owner
  • Ongoing costs: hosting, growing statement storage, dashboard upkeep
  • You become unpaid infra support if the SOW is vague

How to write it into a proposal.

Clients don't buy standards; they buy outcomes and they fear maintenance. So translate. Describe each option in language the client already owns, then make the call for them.

Say it in their words.

For SCORM: "We deliver a packaged module your LMS imports like any other course. It tracks who completed the training and who passed the assessment. Your admin handles upload — no new infrastructure." For xAPI: "We instrument the experience to capture which decisions learners made, where they struggled, and how long they spent practicing, then send that to a dedicated analytics platform. This requires an LRS your IT team provisions and maintains."

Name the maintenance, not just the build.

SCORM is low-maintenance: if the content and the LMS don't change, the package keeps working. xAPI carries ongoing cost — LRS hosting, statement storage that grows over time, dashboard upkeep when reporting needs shift, and someone who understands the data model when stakeholders ask new questions. Surface those upfront or the client discovers them in six months and blames you for the surprise.

End with a recommendation.

After describing both, write one paragraph: "Based on your LMS, your team's capacity, and your reporting needs, I recommend [SCORM / xAPI] because [specific reason]." Clients hire you for judgment, not a menu. Two options with no recommendation asks them to make a technical decision they're not equipped for — and they may pick wrong. Your call, backed by portfolio proof of similar work, is what justifies your rate.

Showing both in a portfolio.

The two standards demand different proof. SCORM is interactive, so let people touch it. xAPI is usually confidential, so sell the design.

For SCORM work, host the packageso reviewers click the real experience — navigation, assessment flow, completion behavior, responsive layout, all in one artifact. Label it with the version and tool: "Branching compliance scenario — Storyline 360, SCORM 2004 4th Edition." That label tells a technical reviewer you made deliberate packaging choices.

For xAPI, you usually can't share live data — so share the architecture. A one-page diagram (authoring tool → LRS → reporting), annotated with your actual verbs and objects ("attempted," "completed," plus extensions like "selected-path" or "time-on-decision") proves you understand the pipeline even when the data is sealed. Then write the case study in plain language first — "68% of learners initially chose the wrong escalation tier, which led us to add a decision-support job aid in v2" — and add the technical layer underneath for the readers who want it.

Sequencing that wins conversations

If you have both, lead with SCORM. Put your strongest packaged modules first — they're the bread and butter most clients need — then position one thoughtful xAPI case study as proof you can level up when the business case demands it. Three solid SCORM demos followed by one sharp xAPI write-up reads as "ships reliably, goes deeper when needed." Leading with xAPI makes your SCORM work look like an afterthought.

Frequently asked questions.

Should I default to SCORM 1.2 or SCORM 2004?

SCORM 1.2 when you do not know the client LMS — it runs on Cornerstone, Docebo, Moodle, Absorb, TalentLMS, and almost anything from the last 15 years. Reach for 2004 only when the course needs enforced sequencing or separate passed/completed reporting, and confirm the exact edition first.

Is xAPI replacing SCORM?

Not for packaged corporate modules. SCORM is still the currency LMS admins know how to ingest. xAPI wins when learning happens across tools — mobile job aids, simulations, video, workshops — and the client has an LRS and someone to own it.

What is cmi5 and should freelancers care?

cmi5 is xAPI with SCORM-like launch and completion semantics, so it feels familiar to LMS admins while giving you richer data. If the client LMS supports it, it is the gentlest on-ramp to xAPI. Storyline 360 exports cmi5 natively.

How do I host an xAPI design in my portfolio if the data is confidential?

Host the SCORM version so reviewers can click the real module, and summarize the xAPI design with a one-page architecture diagram plus a plain-language case study. You prove you understand the pipeline without exposing client data.

/06  Try it for free

Host your first SCORM file free.

Free includes 3 projects and 500MB. No card to start; Pro is $7/mo when you need more storage, share links, embeds, and no TrainingOS branding.

Upload your first SCORM ->
JV

About the author

Jon Vig · Ex-LMS engineer · founder, Training OS. Spent a decade building LMS internals — SCORM runtimes, xAPI pipelines, the lot — before starting Training OS so instructional designers could ship hosted modules without one.

/07Keep readingRelated notes