[{"data":1,"prerenderedAt":1965},["ShallowReactive",2],{"blog-index":3},[4,555,887,1205,1355,1598],{"id":5,"title":6,"author":7,"body":8,"description":537,"draft":538,"extension":539,"meta":540,"navigation":545,"path":546,"publishedAt":547,"seo":548,"stem":549,"tags":550,"updatedAt":547,"__hash__":554},"blog\u002Fblog\u002Fppt-to-scorm-conversion-cost-2026.md","How much does PowerPoint-to-SCORM conversion cost in 2026?","Larry \u002F LOST END FOUND LTD",{"type":9,"value":10,"toc":523},"minimark",[11,15,20,28,32,99,102,106,115,118,121,134,137,148,152,155,234,241,244,255,257,268,272,275,278,281,349,367,371,374,377,388,391,396,400,403,406,427,430,434,437,479,483,490,496,499,502,506],[12,13,14],"p",{},"Most quotes for PowerPoint-to-SCORM conversion arrive without numbers attached — \"we'll need to scope this first\" — which is unhelpful when you're trying to compare four vendors and an authoring-tool subscription on the same spreadsheet. So here's the whole market in one post, with the prices we could verify in April 2026.",[16,17,19],"h2",{"id":18},"what-does-powerpoint-to-scorm-conversion-cost","What does PowerPoint-to-SCORM conversion cost?",[12,21,22,23,27],{},"PowerPoint-to-SCORM conversion in 2026 costs anywhere from £0 (a free converter that probably won't render on mobile) to £5,000+ per deck (a bespoke agency rebuild). Most paid conversions land in the ",[24,25,26],"strong",{},"£150–£2,000 per deck"," range. The price is driven by slide count, narration, branching logic, accessibility requirements, and whether you need SCORM 2004 or 1.2.",[16,29,31],{"id":30},"the-four-price-tiers-at-a-glance","The four price tiers, at a glance",[33,34,35,51],"table",{},[36,37,38],"thead",{},[39,40,41,45,48],"tr",{},[42,43,44],"th",{},"Tier",[42,46,47],{},"Typical cost",[42,49,50],{},"When it fits",[52,53,54,66,77,88],"tbody",{},[39,55,56,60,63],{},[57,58,59],"td",{},"Free converters",[57,61,62],{},"£0",[57,64,65],{},"Throwaway internal content, prototypes",[39,67,68,71,74],{},[57,69,70],{},"Authoring-tool licence",[57,72,73],{},"£300–£1,500 \u002F year",[57,75,76],{},"DIY, in-house designer, ≥3 decks \u002F year",[39,78,79,82,85],{},[57,80,81],{},"Conversion services",[57,83,84],{},"£150–£2,000+ per deck",[57,86,87],{},"Finished deck, no in-house authoring",[39,89,90,93,96],{},[57,91,92],{},"Bespoke agency rebuild",[57,94,95],{},"£5,000+ per deck",[57,97,98],{},"Multi-course programmes, regulated content",[12,100,101],{},"The right choice is almost entirely a function of volume and complexity. The rest of this post breaks each tier down with concrete numbers.",[16,103,105],{"id":104},"tier-1-free-converters-0","Tier 1 — Free converters (£0)",[12,107,108,109,114],{},"iSpring publishes a free version of its converter. SCORM Cloud has a free tier. PowerPoint itself can technically export to a video that some LMSs will accept. None of these reliably produce a SCORM 1.2 package that works on mobile — for the technical reasons, see ",[110,111,113],"a",{"href":112},"\u002Fblog\u002Fwhy-free-ppt-to-scorm-tools-fail-on-mobile","why free PPT-to-SCORM tools fail on mobile",".",[12,116,117],{},"The headline price is zero. The total cost depends on what you do when the package doesn't track completion in your LMS and IT has to step in.",[12,119,120],{},"When free works:",[122,123,124,128,131],"ul",{},[125,126,127],"li",{},"You're proofing a course internally.",[125,129,130],{},"The audience is a single browser, single OS, single LMS that you've tested against.",[125,132,133],{},"Nobody is being assessed on the result.",[12,135,136],{},"When it doesn't:",[122,138,139,142,145],{},[125,140,141],{},"The course needs to run on mobile.",[125,143,144],{},"The deck has narration, branching, or embedded video.",[125,146,147],{},"The completion data has to be reportable for compliance.",[16,149,151],{"id":150},"tier-2-authoring-tool-licences-3001500-year","Tier 2 — Authoring-tool licences (£300–£1,500 \u002F year)",[12,153,154],{},"This is the DIY route. You buy an authoring tool, your team learns it, you rebuild each deck inside it, and you publish to SCORM yourselves.",[33,156,157,170],{},[36,158,159],{},[39,160,161,164,167],{},[42,162,163],{},"Tool",[42,165,166],{},"Price (April 2026)",[42,168,169],{},"Notes",[52,171,172,189,203,218],{},[39,173,174,177,180],{},[57,175,176],{},"Articulate 360 — Personal",[57,178,179],{},"$1,449 \u002F user \u002F year (~£1,150)",[57,181,182,183,114],{},"Industry standard. Steep learning curve. Source: ",[110,184,188],{"href":185,"rel":186},"https:\u002F\u002Fwww.articulate.com\u002F360\u002Fpricing\u002F",[187],"nofollow","articulate.com",[39,190,191,194,197],{},[57,192,193],{},"Articulate 360 — Teams",[57,195,196],{},"$1,749 \u002F user \u002F year (~£1,390)",[57,198,199,200,114],{},"Adds team review, asset library, shared folders. Source: ",[110,201,188],{"href":185,"rel":202},[187],[39,204,205,208,215],{},[57,206,207],{},"iSpring Suite Max",[57,209,210,214],{},[211,212,213],"del",{},"$970 \u002F author \u002F year (","£770)",[57,216,217],{},"Plugs into PowerPoint, gentler learning curve. Source: industry pricing data via G2 \u002F Capterra, April 2026.",[39,219,220,223,226],{},[57,221,222],{},"Adobe Captivate — Individual",[57,224,225],{},"$33.99 \u002F month (~£320 \u002F year)",[57,227,228,229,114],{},"Cheapest sticker price. Team pricing is quote-only. Source: ",[110,230,233],{"href":231,"rel":232},"https:\u002F\u002Fwww.adobe.com\u002Fproducts\u002Fcaptivate\u002Fbuying-guide.html",[187],"adobe.com",[12,235,236,237,240],{},"These look reasonable until you do the seat maths. A team of three on Articulate 360 Teams is over $5,200\u002Fyear before they've published a single course. And the licence is just the entry fee — a PowerPoint deck does not author itself. Plan on ",[24,238,239],{},"4–8 hours of designer time per slide"," for a polished rebuild in Storyline; less in Rise or iSpring, but rarely below 1–2 hours.",[12,242,243],{},"When DIY maths works:",[122,245,246,249,252],{},[125,247,248],{},"You publish at least three courses a year.",[125,250,251],{},"You have (or will hire) someone with authoring-tool experience.",[125,253,254],{},"Each course has a long shelf life, so the rebuild amortises.",[12,256,136],{},[122,258,259,262,265],{},[125,260,261],{},"One-off compliance deck — the licence alone costs more than a one-off conversion service.",[125,263,264],{},"Tight deadline — a new author will not move fast.",[125,266,267],{},"The source is a 200-slide Word document, not a finished deck.",[16,269,271],{"id":270},"tier-3-conversion-services-1502000-per-deck","Tier 3 — Conversion services (£150–£2,000+ per deck)",[12,273,274],{},"This is what we do, and what most readers landing on this post are probably here for. You send us the .pptx, we send you a working SCORM package. No licence, no rebuild, no learning curve.",[12,276,277],{},"Other vendors operate in this band too — typical per-slide rates for straight conversions sit somewhere between £8 and £30 per slide, useful as a sanity check on any quote you receive.",[12,279,280],{},"Our published prices:",[33,282,283,295],{},[36,284,285],{},[39,286,287,289,292],{},[42,288,44],{},[42,290,291],{},"Price (GBP)",[42,293,294],{},"What you get",[52,296,297,310,323,336],{},[39,298,299,304,307],{},[57,300,301],{},[24,302,303],{},"Basic",[57,305,306],{},"£150 + tax",[57,308,309],{},"SCORM 1.2 package, slide-by-slide navigation, completion tracking, self-serve upload — converted and emailed within minutes.",[39,311,312,317,320],{},[57,313,314],{},[24,315,316],{},"Enhanced",[57,318,319],{},"from £450 per deck",[57,321,322],{},"Everything in Basic, plus narration support, embedded quiz, embedded video, branching, mobile-responsive layout.",[39,324,325,330,333],{},[57,326,327],{},[24,328,329],{},"Premium",[57,331,332],{},"from £1,200 per deck",[57,334,335],{},"Full rebuild in Rise or Storyline, WCAG 2.2 AA accessibility pass, SCORM 1.2 + 2004, suspend-data optimisation.",[39,337,338,343,346],{},[57,339,340],{},[24,341,342],{},"Custom",[57,344,345],{},"Quote on request",[57,347,348],{},"Multi-course programmes, translation and localisation, xAPI \u002F cmi5, custom LMS integration.",[12,350,351,352,356,357,361,362,366],{},"USD, EUR, CAD, AUD, and JPY equivalents are listed on ",[110,353,355],{"href":354},"\u002F#pricing","our pricing section",". For a Basic-fit deck the fastest path is the ",[110,358,360],{"href":359},"\u002Fconvert","self-serve converter"," — upload, pay, the SCORM zip arrives by email in a few minutes. For Enhanced or Premium, ",[110,363,365],{"href":364},"\u002Fquote","request a quote"," and we'll price against the actual content.",[16,368,370],{"id":369},"tier-4-bespoke-agencies-5000-per-deck","Tier 4 — Bespoke agencies (£5,000+ per deck)",[12,372,373],{},"Specialist eLearning agencies start around £5,000 per finished deck and go up past £20,000 for a fully scripted, voice-recorded, animated rebuild with custom illustration. The pricing reflects what they do — discovery workshops, learning-design consultancy, scriptwriting, voice-over recording, motion graphics, accessibility audit, often a full SME interview pass.",[12,375,376],{},"When this is the right fit:",[122,378,379,382,385],{},[125,380,381],{},"Regulated content (FCA, GDPR, medical, aviation) where you need a learning-design pass, not just a conversion.",[125,383,384],{},"The deck is the centrepiece of a multi-course programme with shared branding.",[125,386,387],{},"You don't have a source PowerPoint — you have a Word document or a draft script that needs structuring into a course first.",[12,389,390],{},"When it's not:",[122,392,393],{},[125,394,395],{},"You already have a finished PowerPoint and just need it on the LMS. A conversion service is half the price and faster.",[16,397,399],{"id":398},"the-hidden-cost-of-free","The hidden cost of \"free\"",[12,401,402],{},"The sticker price is one part of the story. The other part is what happens when a free or DIY route produces a package that fails in production.",[12,404,405],{},"Three things actually cost money:",[407,408,409,415,421],"ol",{},[125,410,411,414],{},[24,412,413],{},"Internal time diagnosing failures."," A failed SCORM upload becomes an IT ticket. IT escalates to L&D. L&D escalates back to whoever ran the conversion. By the time the loop closes, you've burned a week on a deck you thought was ready.",[125,416,417,420],{},[24,418,419],{},"Rebuilds."," If a free converter produces a package that doesn't track completion on mobile, the deck has to be rebuilt — usually in an authoring tool or by a service like ours. You pay twice, and the second invoice is rarely smaller than the first.",[125,422,423,426],{},[24,424,425],{},"Compliance slippage."," Compliance training has a deadline. A broken conversion that misses the deadline is not a £150 problem; it's a regulator problem.",[12,428,429],{},"This is why the \"obvious\" cheap route often isn't.",[16,431,433],{"id":432},"what-actually-drives-the-price","What actually drives the price",[12,435,436],{},"If you're getting quotes from three vendors and the numbers are wildly different, it's usually because each one is scoping a different job. The drivers are predictable:",[122,438,439,445,451,457,463,473],{},[125,440,441,444],{},[24,442,443],{},"Slide count."," A 20-slide deck and a 200-slide deck are not the same job. Most services charge per slide above a threshold; ours scales with deck size, and longer or more complex decks land in Enhanced or Premium rather than Basic.",[125,446,447,450],{},[24,448,449],{},"Narration."," Recorded voice-over multiplies cost. Synthetic narration is much cheaper but isn't appropriate everywhere — accents, pronunciation of jargon, emotional tone all matter for compliance and customer-facing training.",[125,452,453,456],{},[24,454,455],{},"Branching."," Linear courses are cheap. Branching adds authoring time and often pushes you out of pure conversion into rebuild territory.",[125,458,459,462],{},[24,460,461],{},"Multilingual."," Each language is effectively a new build. Translation memory helps; it doesn't make it free.",[125,464,465,468,469,114],{},[24,466,467],{},"SCORM version."," SCORM 1.2 is the default and works almost everywhere. SCORM 2004 (3rd or 4th edition) costs more because the testing surface is larger. We cover the trade-off in ",[110,470,472],{"href":471},"\u002Fblog\u002Fscorm-1-2-vs-2004-for-powerpoint","SCORM 1.2 vs 2004 for PowerPoint",[125,474,475,478],{},[24,476,477],{},"Accessibility."," A WCAG 2.2 AA pass is its own piece of work — alt text, focus order, captions, keyboard navigation, screen-reader testing. Build it in from the start; retrofits are expensive.",[16,480,482],{"id":481},"what-wed-recommend","What we'd recommend",[12,484,485,486,489],{},"If you have one finished PowerPoint deck and you need it on the LMS this week, a conversion service is the right answer. ",[110,487,488],{"href":359},"Upload it on \u002Fconvert"," — Basic at £150 + tax fits a straightforward, linear deck and is returned by email in minutes.",[12,491,492,493,495],{},"If the deck has narration, branching, or needs to be mobile-responsive, ",[110,494,365],{"href":364}," and we'll price Enhanced or Premium against the actual content.",[12,497,498],{},"If you're publishing several courses a year with an in-house designer who already knows Storyline or iSpring, an authoring-tool licence will pay for itself by the third deck.",[12,500,501],{},"If you're commissioning a regulated multi-course programme from a blank Word document, a bespoke agency is the right tool. We are not that tool, and we'll tell you so.",[16,503,505],{"id":504},"tldr","TL;DR",[122,507,508,511,514,517,520],{},[125,509,510],{},"Free converters cost nothing up front and a lot when they break on mobile.",[125,512,513],{},"Authoring tools (Articulate 360, iSpring, Captivate) cost roughly £300–£1,500 per author per year, plus the time to use them.",[125,515,516],{},"Conversion services like ours run £150 for a straightforward deck up to £2,000+ for a full rebuild.",[125,518,519],{},"Bespoke agencies start at £5,000 and are worth it when the job is \"design a course\", not \"convert a deck\".",[125,521,522],{},"Pick the tier that matches the deck in front of you, not the one that matches your budget.",{"title":524,"searchDepth":525,"depth":525,"links":526},"",2,[527,528,529,530,531,532,533,534,535,536],{"id":18,"depth":525,"text":19},{"id":30,"depth":525,"text":31},{"id":104,"depth":525,"text":105},{"id":150,"depth":525,"text":151},{"id":270,"depth":525,"text":271},{"id":369,"depth":525,"text":370},{"id":398,"depth":525,"text":399},{"id":432,"depth":525,"text":433},{"id":481,"depth":525,"text":482},{"id":504,"depth":525,"text":505},"An honest, sourced breakdown of the four price tiers for PPT-to-SCORM in 2026 — from free converters to £5,000+ bespoke agencies — and what actually drives the cost.",false,"md",{"relatedPages":541},[542,544],{"path":112,"title":543},"Why free PPT-to-SCORM tools fail on mobile",{"path":471,"title":472},true,"\u002Fblog\u002Fppt-to-scorm-conversion-cost-2026","2026-04-25",{"title":6,"description":537},"blog\u002Fppt-to-scorm-conversion-cost-2026",[551,552,553],"scorm","powerpoint","pricing","QPmM3gjQpY_pScXknNLKjtKP8d4n0babKeQJctQVfW8",{"id":556,"title":557,"author":7,"body":558,"description":874,"draft":538,"extension":539,"meta":875,"navigation":545,"path":879,"publishedAt":547,"seo":880,"stem":881,"tags":882,"updatedAt":547,"__hash__":886},"blog\u002Fblog\u002Fppt-to-scorm-vs-articulate-ispring.md","PPT to SCORM: when to use Articulate \u002F iSpring, and when to commission a conversion",{"type":9,"value":559,"toc":868},[560,571,574,577,581,584,587,606,612,615,621,624,628,635,638,652,655,683,693,698,705,709,712,715,759,768,771,775,845,856,859,862],[12,561,562,563,567,568],{},"It's Friday afternoon. Compliance has just dropped a 200-slide PowerPoint deck on your desk — ",[564,565,566],"em",{},"\"can you get this into the LMS by Wednesday?\""," — and the question lands again: ",[564,569,570],{},"do I need Articulate for SCORM, or can I just get this one converted?",[12,572,573],{},"It's a fair question, and we get asked it every week. Articulate Storyline is genuinely good. So is iSpring Suite. Either of them, in the right hands, will take a PowerPoint deck and ship a working SCORM package.",[12,575,576],{},"But \"right hands\" and \"right deck\" are doing a lot of work in that sentence. Three things determine whether buying an authoring tool is the right call, or whether commissioning a one-off PPT to SCORM conversion gets you to Wednesday with less pain. Here's how we think about it when clients ask.",[16,578,580],{"id":579},"_1-how-many-decks-a-year-are-you-actually-shipping","1. How many decks a year are you actually shipping?",[12,582,583],{},"Authoring tools are an annual subscription. Bespoke conversions are a per-job fee. The break-even is volume.",[12,585,586],{},"Current annual list pricing (April 2026):",[122,588,589,595,601],{},[125,590,591,594],{},[24,592,593],{},"Articulate 360 Personal",": $1,449 \u002F ≈ £1,150 per seat per year",[125,596,597,600],{},[24,598,599],{},"Articulate 360 Teams",": $1,749 \u002F ≈ £1,380 per seat per year",[125,602,603,605],{},[24,604,207],{},": ~$970 \u002F ≈ £770 per seat per year",[12,607,608,611],{},[24,609,610],{},"The maths:"," ship four decks a year on Articulate Personal and the licence alone costs you ~£290 per deck before you've opened the tool. Ship one a year and that single deck cost you £1,150 in software. Ship twelve and you're at ~£95 per deck — Articulate is the obvious answer.",[12,613,614],{},"Most of our clients sit somewhere between one and four decks a year. A new compliance module annually, a refreshed onboarding deck, an occasional sales-enablement build. At that volume, the licence economics never quite work — and crucially, the seat doesn't transfer to a colleague when the person who knew the tool leaves.",[12,616,617,620],{},[24,618,619],{},"We've seen"," an L&D team of two at a UK retailer renew Articulate three years running because \"we already paid for it last year\". They shipped two decks a year. Total spend over three years: roughly £6,900 in licences for six conversions — about £1,150 per deck, before any of their own time. They could have outsourced every one of those conversions and saved a four-figure sum.",[12,622,623],{},"If you ship monthly, buy Articulate (or iSpring — cheaper, slightly less polished, fine for most decks). If you ship quarterly or less, the maths almost never beat outsourcing. There's no comfortable middle answer that involves saving money on a £1,150 annual subscription.",[16,625,627],{"id":626},"_2-did-you-build-the-deck-or-did-marketing-send-it-over","2. Did you build the deck, or did Marketing send it over?",[12,629,630,631,634],{},"This is the one nobody tells you about up front. Articulate and iSpring both ship a \"convert PowerPoint\" feature. They work — but only well on decks built ",[564,632,633],{},"for"," the tool.",[12,636,637],{},"When you import an external 200-slide PPT into Storyline or iSpring, here's what reliably survives:",[122,639,640,643,646,649],{},[125,641,642],{},"Text (mostly)",[125,644,645],{},"Basic shapes",[125,647,648],{},"Static images",[125,650,651],{},"Simple slide-to-slide transitions",[12,653,654],{},"Here's what reliably doesn't:",[122,656,657,660,663,666,669,672],{},[125,658,659],{},"Custom slide masters with non-trivial layout logic",[125,661,662],{},"Animation timing that depends on PowerPoint's click model",[125,664,665],{},"Embedded video that wasn't packaged the way the tool expects",[125,667,668],{},"Custom fonts that aren't licensed for embedding",[125,670,671],{},"SmartArt, charts that re-flow on resize, the newer 3D models",[125,673,674,675,679,680,682],{},"Anything that depends on ",[676,677,678],"code",{},"tspan","-rendered text overlays — see ",[110,681,113],{"href":112}," for the gory rendering details",[12,684,685,688,689,692],{},[24,686,687],{},"The rebuild tax",": a competent ID can rebuild a 200-slide external deck in Storyline in roughly eight to fifteen hours, depending on how much animation and interactivity needs re-faking. At a £45\u002Fhour internal rate that's £360–£675 in salary cost ",[564,690,691],{},"on top of"," the licence — for one deck. And the rebuild deck is never quite a pixel-match for the source; Marketing notices.",[12,694,695,697],{},[24,696,619],{}," a 240-slide compliance refresh from a UK financial-services firm where Marketing had used custom typefaces, smart-fill backgrounds, and on-click reveals throughout. The in-house ID team scoped 20 hours to rebuild it in Storyline. We took the source file, ran our conversion pipeline, and shipped a working SCORM 1.2 package in under two working days. The visual fidelity was higher than the rebuild estimate — because we render the slides directly rather than reconstructing them in another tool.",[12,699,700,701,704],{},"The rule of thumb: if you built the deck ",[564,702,703],{},"in Articulate"," in the first place, stay in Articulate. If you inherited the deck, the rebuild tax usually exceeds a one-off conversion fee — and no licence purchase removes that tax.",[16,706,708],{"id":707},"_3-how-forgiving-is-your-lms","3. How forgiving is your LMS?",[12,710,711],{},"Articulate's default SCORM export is permissive. It assumes a modern LMS that handles SCORM 1.2 and 2004 cleanly, and it usually works — until you hit one of the half-dozen LMSs that don't.",[12,713,714],{},"Specific quirks we test for, which Articulate's default export does not:",[122,716,717,729,743,753],{},[125,718,719,725,726,728],{},[24,720,721,724],{},[676,722,723],{},"cmi.suspend_data"," overflow."," Articulate's default serialiser can blow past the 4,096-character cap in SCORM 1.2 if the deck is long. Some LMSs (Cornerstone, certain Moodle versions) silently truncate. Others (SAP SuccessFactors) reject the package. We pick the spec version per-LMS — see ",[110,727,472],{"href":471}," for the decision tree.",[125,730,731,734,735,738,739,742],{},[24,732,733],{},"Completion vs passed."," Workday Learning treats ",[676,736,737],{},"lesson_status=\"completed\""," as not-yet-finished if the course has any ",[676,740,741],{},"cmi.score"," field set. Articulate doesn't know about that; we configure the manifest accordingly.",[125,744,745,752],{},[24,746,747,748,751],{},"Manifest ",[676,749,750],{},"\u003Ctitle>"," length."," SAP SuccessFactors caps it at 255 characters. Long compliance titles (\"Fire Safety Awareness and Evacuation Procedures for Building Supervisors Version 3 (2026)\") silently fail ingestion. We check before delivery.",[125,754,755,758],{},[24,756,757],{},"Forward vs back slashes in resource paths."," Windows-built exports occasionally emit paths the spec doesn't permit. Most LMSs forgive; Cornerstone occasionally won't.",[12,760,761,764,765],{},[24,762,763],{},"Where it bites:"," these failures don't show up in Articulate's preview. They show up when the first learner logs in on a Monday morning, can't resume the course they started Friday, and your LMS admin sends you a Slack message that begins ",[564,766,767],{},"\"weird one for you…\"",[12,769,770],{},"This is the meaningful difference between Articulate and an Articulate vs SCORM conversion service comparison: the conversion service bakes LMS-specific testing into the workflow. We launch every package against the target LMS (or against SCORM Cloud, configured to mimic it) before delivery. Articulate gets you \"valid SCORM\". LMS-specific testing gets you \"works in your LMS, on the version your admin actually deployed, on the device the learner actually uses\".",[16,772,774],{"id":773},"tldr-ppt-to-scorm-vs-articulate-which-side-of-the-line-are-you-on","TL;DR — PPT to SCORM vs Articulate: which side of the line are you on?",[33,776,777,793],{},[36,778,779],{},[39,780,781,784,787,790],{},[42,782,783],{},"Volume",[42,785,786],{},"Source decks",[42,788,789],{},"LMS strictness",[42,791,792],{},"Pick",[52,794,795,812,829],{},[39,796,797,800,803,806],{},[57,798,799],{},"12+ a year",[57,801,802],{},"Built in-house in the tool",[57,804,805],{},"Permissive (Moodle default, TalentLMS)",[57,807,808,811],{},[24,809,810],{},"Articulate"," — or iSpring if budget matters",[39,813,814,817,820,823],{},[57,815,816],{},"4–11 a year",[57,818,819],{},"Mixed sources",[57,821,822],{},"Mid (Cornerstone, Docebo)",[57,824,825,828],{},[24,826,827],{},"iSpring",", plus occasional outsourcing for awkward decks",[39,830,831,834,837,840],{},[57,832,833],{},"1–3 a year",[57,835,836],{},"External decks",[57,838,839],{},"Strict (SAP SuccessFactors, Workday)",[57,841,842],{},[24,843,844],{},"Commission the conversion",[12,846,847,848,851,852,855],{},"The decision is rarely ",[564,849,850],{},"\"Articulate is bad\""," — it's ",[564,853,854],{},"\"Articulate is the wrong unit economics for your situation\"",". When licence cost per deck exceeds the cost of having someone else do it, and when the rebuild tax is higher than the conversion fee, outsourcing is just the cheaper answer. When you're shipping monthly with in-house IDs who know the tool, Articulate is the cheaper answer. There's no comfortable middle ground that involves trying to do four decks a year on a £1,150 annual subscription.",[12,857,858],{},"The trap is pretending there is one — paying the licence to feel covered, then paying the rebuild time on top, then paying the LMS-fix time on top of that. Pick a side.",[860,861],"hr",{},[12,863,864,865],{},"If you're on the conversion side of that line and you'd rather hand the deck off, we do flat-rate PPT to SCORM conversions, LMS-tested before delivery. ",[110,866,867],{"href":364},"Get a quote.",{"title":524,"searchDepth":525,"depth":525,"links":869},[870,871,872,873],{"id":579,"depth":525,"text":580},{"id":626,"depth":525,"text":627},{"id":707,"depth":525,"text":708},{"id":773,"depth":525,"text":774},"PPT to SCORM vs Articulate or iSpring? A fair comparison — three decision axes that tell you when an authoring tool wins, and when commissioning a conversion is the cheaper answer.",{"relatedPages":876},[877,878],{"path":471,"title":472},{"path":112,"title":543},"\u002Fblog\u002Fppt-to-scorm-vs-articulate-ispring",{"title":557,"description":874},"blog\u002Fppt-to-scorm-vs-articulate-ispring",[551,552,883,884,885],"articulate","ispring","lms","zMg7-DYSoD4tdq-_co5Cxc9thdA4VVEbwXPm7xV2maU",{"id":888,"title":889,"author":7,"body":890,"description":1192,"draft":538,"extension":539,"meta":1193,"navigation":545,"path":1197,"publishedAt":547,"seo":1198,"stem":1199,"tags":1200,"updatedAt":1203,"__hash__":1204},"blog\u002Fblog\u002Fwhat-we-test-before-shipping-scorm.md","What we actually test before shipping a SCORM package",{"type":9,"value":891,"toc":1185},[892,895,898,902,905,1058,1061,1065,1083,1086,1090,1093,1136,1140,1143,1160,1164,1167,1170,1173],[12,893,894],{},"We test every package in the LMSs our clients actually use, before we hand it over. This post is the literal checklist we run through, not a sales pitch. If a row in the table below doesn't get a green tick, the package doesn't ship.",[12,896,897],{},"It's documentation, not marketing. We're publishing it because \"we test in real LMSs\" is easy to claim and harder to substantiate — so here's the substance.",[16,899,901],{"id":900},"the-checklist","The checklist",[12,903,904],{},"Every package goes through these eight checks before delivery. The \"tool\" column is what we actually use, not what's theoretically available.",[33,906,907,919],{},[36,908,909],{},[39,910,911,914,917],{},[42,912,913],{},"Test",[42,915,916],{},"What we check",[42,918,163],{},[52,920,921,952,967,997,1014,1025,1036,1047],{},[39,922,923,926,944],{},[57,924,925],{},"Manifest validation",[57,927,928,931,932,935,936,939,940,943],{},[676,929,930],{},"schemaversion"," is set, ",[676,933,934],{},"identifier"," values are unique, ",[676,937,938],{},"href"," paths resolve, ",[676,941,942],{},"adlcp:scormtype=\"sco\""," is present on the launchable resource",[57,945,946,951],{},[110,947,950],{"href":948,"rel":949},"https:\u002F\u002Fcloud.scorm.com",[187],"SCORM Cloud"," + Rustici manifest validator",[39,953,954,957,964],{},[57,955,956],{},"Launch-in-iframe smoke test",[57,958,959,960,963],{},"The SCO loads inside a sandboxed iframe with no CORS errors, no ",[676,961,962],{},"X-Frame-Options"," blocks, no console exceptions on first paint",[57,965,966],{},"Chrome DevTools console",[39,968,969,972,994],{},[57,970,971],{},"Completion tracking",[57,973,974,977,978,981,982,985,986,989,990,993],{},[676,975,976],{},"LMSFinish()"," (1.2) or ",[676,979,980],{},"Terminate()"," (2004) actually fires on exit, and the status field is set to a valid value — ",[676,983,984],{},"cmi.core.lesson_status"," in 1.2, ",[676,987,988],{},"cmi.completion_status"," (plus ",[676,991,992],{},"cmi.success_status"," where relevant) in 2004",[57,995,996],{},"DevTools console + network panel",[39,998,999,1005,1008],{},[57,1000,1001,1004],{},[676,1002,1003],{},"suspend_data"," sizing",[57,1006,1007],{},"The serialised state stays well under the 4,096-character SCORM 1.2 cap across the longest plausible session",[57,1009,1010,1011],{},"DevTools watch on ",[676,1012,1013],{},"LMSSetValue",[39,1015,1016,1019,1022],{},[57,1017,1018],{},"Resume \u002F bookmark",[57,1020,1021],{},"Close the course mid-deck, reopen, land on the right slide with the right state",[57,1023,1024],{},"Manual run-through",[39,1026,1027,1030,1033],{},[57,1028,1029],{},"Mobile rendering",[57,1031,1032],{},"The deck reflows at narrow viewports, touch targets are reachable, no horizontal scroll on a phone-sized window",[57,1034,1035],{},"Chrome DevTools device mode",[39,1037,1038,1041,1044],{},[57,1039,1040],{},"Accessibility spot-check",[57,1042,1043],{},"Keyboard-only navigation works, tab order is sensible, focus is visible, key slides announce something coherent to a screen reader",[57,1045,1046],{},"Keyboard + screen-reader spot-check",[39,1048,1049,1052,1055],{},[57,1050,1051],{},"Scoring round-trip (if the course has a quiz)",[57,1053,1054],{},"Score posts to the LMS, the gradebook reflects it, a passing score actually unlocks completion",[57,1056,1057],{},"Manual verify in a test instance of the target LMS",[12,1059,1060],{},"That's it. There isn't a hidden ninth check we left off the list.",[16,1062,1064],{"id":1063},"per-lms-quirks","Per-LMS quirks",[12,1066,1067,1068,1070,1071,1074,1075,1078,1079,114],{},"Each LMS has its own quirks. We keep a private catalogue per client because the list grows every time a new LMS version ships. The five most common ones — manifest strictness, ",[676,1069,1003],{}," limits below the 4KB spec, completion semantics that gate on ",[676,1072,1073],{},"passed"," rather than ",[676,1076,1077],{},"completed",", scoring fields that get rewritten on ingest, manifest title length caps — are documented publicly in ",[110,1080,1082],{"href":1081},"\u002Fblog\u002F5-scorm-errors-that-break-powerpoint-conversions","5 SCORM errors that break PowerPoint conversions",[12,1084,1085],{},"If you're shipping into a specific LMS and you want to know what we already know about it, the fastest way is to ask.",[16,1087,1089],{"id":1088},"tooling","Tooling",[12,1091,1092],{},"Nothing exotic. The combination matters more than any single tool.",[122,1094,1095,1100,1110,1119,1125],{},[125,1096,1097,1099],{},[24,1098,950],{}," for the broad \"is this a valid SCORM package at all\" check. It's permissive — passing here is necessary but not sufficient.",[125,1101,1102,1105,1106,1109],{},[24,1103,1104],{},"Rustici's manifest validator"," for the strict ",[676,1107,1108],{},"imsmanifest.xml"," read.",[125,1111,1112,1115,1116,1118],{},[24,1113,1114],{},"Chrome DevTools"," for everything runtime: watching ",[676,1117,1013],{}," calls, catching iframe sandbox errors, checking responsive layout in device mode.",[125,1120,1121,1124],{},[24,1122,1123],{},"A keyboard and a screen reader"," for the accessibility spot-check. Not a full WCAG audit — a spot-check on the slides where it matters (anything interactive, anything time-bound, anything where a missed announcement loses the learner).",[125,1126,1127,1130,1131,1133,1134,114],{},[24,1128,1129],{},"A test instance of the target LMS"," for the scoring round-trip. SCORM Cloud will not tell you that a real LMS will silently rewrite ",[676,1132,1073],{}," to ",[676,1135,1077],{},[16,1137,1139],{"id":1138},"what-we-dont-test","What we don't test",[12,1141,1142],{},"Worth being explicit about the limits, because the list above sounds more comprehensive than it is.",[122,1144,1145,1148,1151,1154,1157],{},[125,1146,1147],{},"We don't test every version of every LMS. We test the versions our clients are actually deployed on. New LMS versions ship every quarter; chasing every release is busywork.",[125,1149,1150],{},"We don't run an automated regression suite. Every package gets walked through manually because the things that break in SCORM (iframe sandboxes, screen-reader announcements, \"did the resume button bring me back to the right slide\") are not the things automation catches cheaply.",[125,1152,1153],{},"We don't run a full WCAG 2.1 AA audit on every package. The accessibility check is a spot-check, not certification. If you need a formal audit, that's a separate piece of work — say so up front.",[125,1155,1156],{},"We don't pen-test the LMS itself. If your LMS instance has security misconfigurations, we'll spot the obvious ones, but it's not what we're hired for.",[125,1158,1159],{},"We don't load-test the LMS's SCORM endpoints. If you're rolling out to 50,000 learners on day one, that's an LMS-vendor conversation.",[16,1161,1163],{"id":1162},"why-publish-this","Why publish this",[12,1165,1166],{},"Two reasons.",[12,1168,1169],{},"The first is for ourselves. Writing the checklist down forces it to stay honest. If we ever stop running one of these checks, the page either gets edited or it becomes a lie. That's a useful kind of accountability.",[12,1171,1172],{},"The second is for buyers. The people who hire us at the senior end of the market — L&D leads at organisations where a broken SCORM rollout turns into an internal incident — already know that \"we test in real LMSs\" is the easy claim. What they're looking for is the operational detail behind it. This is that detail.",[12,1174,1175,1176,1179,1180,1184],{},"If you'd rather hand the testing off, ",[110,1177,1178],{"href":364},"get a quote",". If you want to know more about who we are, ",[110,1181,1183],{"href":1182},"\u002Fabout","the about page"," covers it.",{"title":524,"searchDepth":525,"depth":525,"links":1186},[1187,1188,1189,1190,1191],{"id":900,"depth":525,"text":901},{"id":1063,"depth":525,"text":1064},{"id":1088,"depth":525,"text":1089},{"id":1138,"depth":525,"text":1139},{"id":1162,"depth":525,"text":1163},"Our pre-delivery checklist: manifest validation, completion tracking, suspend_data sizing, mobile rendering, and the iframe edge cases. Ops, not marketing.",{"relatedPages":1194},[1195,1196],{"path":1081,"title":1082},{"path":471,"title":472},"\u002Fblog\u002Fwhat-we-test-before-shipping-scorm",{"title":889,"description":1192},"blog\u002Fwhat-we-test-before-shipping-scorm",[551,1201,885,1202],"testing","process",null,"uGbd8Jdpczna3vI3w7alMENAOv01gO81v_IHRt5BktY",{"id":1206,"title":1207,"author":7,"body":1208,"description":1345,"draft":538,"extension":539,"meta":1346,"navigation":545,"path":471,"publishedAt":1350,"seo":1351,"stem":1352,"tags":1353,"updatedAt":547,"__hash__":1354},"blog\u002Fblog\u002Fscorm-1-2-vs-2004-for-powerpoint.md","SCORM 1.2 vs 2004 for PowerPoint — which to pick and why most LMSs still want 1.2",{"type":9,"value":1209,"toc":1338},[1210,1213,1216,1220,1227,1230,1243,1246,1250,1253,1273,1276,1280,1283,1293,1300,1307,1311,1314,1317,1319],[12,1211,1212],{},"There are four versions of SCORM you might care about: 1.1 (extinct), 1.2 (2001, still the default), 2004 2nd edition (don't use), and 2004 3rd\u002F4th edition (the \"modern\" choice). Every time a client asks us \"which one should I pick for my PowerPoint conversion?\", they've usually already read a 3,000-word comparison post that doesn't help them decide.",[12,1214,1215],{},"Here's the short version.",[16,1217,1219],{"id":1218},"pick-scorm-12-unless-you-have-a-specific-reason-not-to","Pick SCORM 1.2 unless you have a specific reason not to",[12,1221,1222,1223,1226],{},"Most enterprise LMSs still standardise on SCORM 1.2 internally. Even ones that ",[564,1224,1225],{},"advertise"," SCORM 2004 support often implement it partially, with quirks that break completion tracking or suspend data in ways you don't find until a learner calls you. Moodle, TalentLMS, Cornerstone, Totara and SAP SuccessFactors all handle 1.2 reliably. About a third of them handle 2004 reliably.",[12,1228,1229],{},"If your course is a converted PowerPoint deck — linear, with maybe a quiz at the end — 1.2 does everything you need:",[122,1231,1232,1235,1237,1240],{},[125,1233,1234],{},"Slide-by-slide navigation",[125,1236,971],{},[125,1238,1239],{},"A single score, if you need one",[125,1241,1242],{},"Resume on reload",[12,1244,1245],{},"That's 95% of PowerPoint conversions. SCORM 1.2 is fine.",[16,1247,1249],{"id":1248},"when-2004-actually-matters","When 2004 actually matters",[12,1251,1252],{},"Pick SCORM 2004 if you genuinely need one of these:",[122,1254,1255,1261,1267],{},[125,1256,1257,1260],{},[24,1258,1259],{},"Sequencing and navigation rules."," If the course locks later modules until earlier ones are complete, passed, or bookmarked in a specific way — that's 2004 territory. PowerPoint conversions rarely need this.",[125,1262,1263,1266],{},[24,1264,1265],{},"Multiple learner attempts, scored independently."," 1.2 stores one score per attempt; 2004 handles multiple attempts cleanly.",[125,1268,1269,1272],{},[24,1270,1271],{},"Rich assessment data."," Per-question reporting, objectives beyond a single pass\u002Ffail, xAPI-ish richness without going all the way to xAPI.",[12,1274,1275],{},"None of that is usually a PowerPoint conversion. If you're converting a deck, pick 1.2.",[16,1277,1279],{"id":1278},"the-suspend_data-trap","The suspend_data trap",[12,1281,1282],{},"This is the one that catches people out.",[12,1284,1285,1286,1288,1289,1292],{},"SCORM 1.2 stores \"where the learner is up to\" in a field called ",[676,1287,723],{},". ",[24,1290,1291],{},"The spec caps it at 4,096 characters",", and most LMSs honour the cap. Cornerstone sometimes allows more; Moodle sometimes doesn't. Treat 4KB as the real limit and stay well under.",[12,1294,1295,1296,1299],{},"A 200-slide PowerPoint deck with branching, per-slide quiz state, and bookmarking can blow past 4KB without much effort if the conversion tool serialises lazily. We've seen ",[110,1297,1298],{"href":112},"free converters"," JSON-stringify every slide's metadata into suspend_data; one client came to us after their 180-slide compliance deck lost learner progress every time someone resumed.",[12,1301,1302,1303,1306],{},"SCORM 2004 raised the limit to 64KB, which buys you headroom but doesn't fix the underlying problem: ",[24,1304,1305],{},"you shouldn't be storing 64KB of state per learner session anyway",". If a conversion pushes you that close, the course needs to be split into multiple SCOs (modules), each with its own independent state.",[16,1308,1310],{"id":1309},"what-we-actually-do","What we actually do",[12,1312,1313],{},"When we take on a PowerPoint conversion, the question isn't \"1.2 or 2004?\" — it's \"does this course fit the budget that 1.2 gives us?\". Usually yes. When it doesn't, we split, we don't upgrade.",[12,1315,1316],{},"If you need 2004 because your LMS admin has ruled out 1.2 (rare, but happens), we ship 2004 3rd or 4th edition. Never 2nd.",[16,1318,505],{"id":504},[122,1320,1321,1324,1330,1333],{},[125,1322,1323],{},"Default to SCORM 1.2 for PowerPoint conversions.",[125,1325,1326,1327,1329],{},"Watch the 4KB ",[676,1328,1003],{}," ceiling — split long courses into multiple SCOs before you hit it.",[125,1331,1332],{},"Only go to SCORM 2004 if you have a specific sequencing, multi-attempt, or rich-reporting need — not \"because it's newer\".",[125,1334,1335,1336,114],{},"If someone promises to give you a 200-slide deck in a single SCORM 1.2 package, ask them what's in ",[676,1337,1003],{},{"title":524,"searchDepth":525,"depth":525,"links":1339},[1340,1341,1342,1343,1344],{"id":1218,"depth":525,"text":1219},{"id":1248,"depth":525,"text":1249},{"id":1278,"depth":525,"text":1279},{"id":1309,"depth":525,"text":1310},{"id":504,"depth":525,"text":505},"The short, practical answer to a question every L&D team asks when commissioning a SCORM conversion. Plus the suspend_data trap that bites you if you pick 1.2 without reading the small print.",{"relatedPages":1347},[1348,1349],{"path":1081,"title":1082},{"path":112,"title":543},"2026-04-23",{"title":1207,"description":1345},"blog\u002Fscorm-1-2-vs-2004-for-powerpoint",[551,552,885],"sr3PVEeYKkkvWmJY72DmG5o73Eg3ds7OClCrm4p96Lo",{"id":1356,"title":1357,"author":7,"body":1358,"description":1586,"draft":538,"extension":539,"meta":1587,"navigation":545,"path":112,"publishedAt":1591,"seo":1592,"stem":1593,"tags":1594,"updatedAt":547,"__hash__":1597},"blog\u002Fblog\u002Fwhy-free-ppt-to-scorm-tools-fail-on-mobile.md","Why free PPT-to-SCORM tools fail on mobile (and how to tell before your learners do)",{"type":9,"value":1359,"toc":1577},[1360,1367,1370,1377,1394,1397,1418,1427,1431,1434,1445,1448,1453,1457,1460,1471,1483,1487,1494,1499,1503,1506,1543,1546,1550,1553,1567,1570,1572],[12,1361,1362,1363,1366],{},"Free PowerPoint-to-SCORM converters fail on mobile for four specific reasons: SVG ",[676,1364,1365],{},"\u003Ctspan>","-chopped text, broken font embedding, Chrome's auto-translate destroying the layout, and desktop-sized tap targets. Most clients who come to us for a re-do have hit at least two — usually after their learners (half of them on phones at 11pm finishing mandatory training) start reporting scrambled slides, missing text, and translated-then-broken layouts.",[12,1368,1369],{},"Here's what each looks like and how to test for it before your learners do.",[16,1371,1373,1374,1376],{"id":1372},"_1-they-export-slides-as-svg-with-tspan-chopped-text","1. They export slides as SVG with ",[676,1375,1365],{},"-chopped text",[12,1378,1379,1380,1382,1383,1385,1386,1389,1390,1393],{},"This is the failure mode behind half the entries in ",[110,1381,1082],{"href":1081},". Most converters try to \"preserve fidelity\" by exporting every slide as an SVG. That's fine in principle — until you look at how PowerPoint text gets serialised. Each line, sometimes each word, gets its own ",[676,1384,1365],{}," element with hard-coded ",[676,1387,1388],{},"x"," and ",[676,1391,1392],{},"y"," coordinates.",[12,1395,1396],{},"On desktop browsers at the tool's tested zoom level, it looks identical to PowerPoint. On mobile:",[122,1398,1399,1405,1415],{},[125,1400,1401,1402,1404],{},"Pinch-to-zoom scales the whole SVG, which is fine — except on iOS Safari, long ",[676,1403,1365],{}," sequences sometimes render on top of each other at non-integer zoom levels.",[125,1406,1407,1408,1411,1412,1414],{},"Accessibility zoom (a blind spot — your visually impaired learners ",[564,1409,1410],{},"are"," using it) exposes the ",[676,1413,1365],{}," cracks immediately.",[125,1416,1417],{},"Screen readers read the DOM order, not the visual order. A slide with a heading in the bottom-right and a body block on the left — common in PowerPoint — reads in the order the converter emitted it, which is usually a mess.",[12,1419,1420,1423,1424,1426],{},[24,1421,1422],{},"The fix:"," reflow text into actual HTML blocks at conversion time, not SVG ",[676,1425,1365],{}," sequences. We do this as part of every Enhanced-and-up conversion. It takes a bit longer and the slide isn't pixel-identical to PowerPoint — but the slide also isn't broken.",[16,1428,1430],{"id":1429},"_2-they-dont-embed-fonts-properly","2. They don't embed fonts properly",[12,1432,1433],{},"PowerPoint has the concept of \"embed fonts\". Most converters honour it, sort of — they pull the font file out of the .pptx and ship it alongside the SCORM package. Then:",[122,1435,1436,1439,1442],{},[125,1437,1438],{},"The font path is relative to the wrong root, so the LMS can't find it.",[125,1440,1441],{},"The font is embedded without subsetting, bloating the SCORM zip to 200MB.",[125,1443,1444],{},"The font's licence doesn't permit web embedding, and the converter silently omits it without telling anyone.",[12,1446,1447],{},"All three of these cause the same symptom: learners see a system font substitute, layouts reflow wrongly, buttons end up on line two, quizzes become unclickable.",[12,1449,1450,1452],{},[24,1451,1422],{}," audit every font in the source deck at quote time. Substitute web-safe fonts at conversion time if any of the embedded ones can't be shipped legitimately. Subset everything you do ship.",[16,1454,1456],{"id":1455},"_3-chrome-auto-translate-destroys-the-layout","3. Chrome auto-translate destroys the layout",[12,1458,1459],{},"This is the one most teams have never heard of. Chrome's built-in Translate feature mutates the DOM — it replaces text nodes with translated text nodes, reflows containers, and if your slides are positioned absolutely (which they are, after any SVG-based conversion), the translated text overflows in ways the original positioning can't accommodate.",[12,1461,1462,1463,1466,1467,1470],{},"Even better: some LMS mobile views set ",[676,1464,1465],{},"lang"," attributes incorrectly, so Chrome ",[564,1468,1469],{},"thinks"," an English course is in (say) Dutch and tries to translate it. The result is a course in broken machine-translated Dutch that no-one ordered, with text spilling over quiz buttons.",[12,1472,1473,1475,1476,1389,1479,1482],{},[24,1474,1422],{}," ",[676,1477,1478],{},"\u003Cmeta name=\"google\" content=\"notranslate\">",[676,1480,1481],{},"translate=\"no\""," on containers that must not be touched. We do this on every conversion. It's one line per slide. Free converters don't add it because nobody told them.",[16,1484,1486],{"id":1485},"_4-tap-targets-are-desktop-sized","4. Tap targets are desktop-sized",[12,1488,1489,1490,1493],{},"PowerPoint shapes have whatever click area the shape has. Converted to SCORM and viewed on mobile, a tastefully small \"Next\" chevron becomes a 24-pixel target — below the WCAG minimum of 24×24 CSS pixels for ",[564,1491,1492],{},"adjacent"," controls, and below the 44px Apple Human Interface Guideline for mobile. Learners report that the button \"doesn't work\". It works; their fingers are bigger than 24 pixels.",[12,1495,1496,1498],{},[24,1497,1422],{}," enforce a minimum 44×44px hit area for all interactive elements at conversion time, regardless of what the source PowerPoint says.",[16,1500,1502],{"id":1501},"how-to-tell-before-your-learners-do","How to tell before your learners do",[12,1504,1505],{},"If you're evaluating a free or cheap converter, run this checklist before you commit:",[407,1507,1508,1511,1518,1525,1540],{},[125,1509,1510],{},"Convert one slide. Open the SCORM in Scorm Cloud. Does it look right? (Yes, usually.)",[125,1512,1513,1514,1517],{},"Open it in ",[24,1515,1516],{},"iOS Safari on a real iPhone",", not simulator. Pinch-zoom in and out. Anything overlapping?",[125,1519,1520,1521,1524],{},"Enable ",[24,1522,1523],{},"Chrome Translate"," on Android. Does the layout survive?",[125,1526,1527,1528,1531,1532,1535,1536,1539],{},"Open the SCORM zip and look at the HTML. Are headings structured with ",[676,1529,1530],{},"\u003Ch1>","\u002F",[676,1533,1534],{},"\u003Ch2>",", or are they styled ",[676,1537,1538],{},"\u003Cdiv>","s? Does tappable UI have ARIA labels?",[125,1541,1542],{},"Check the zip size. If a 20-slide deck produces a 50MB+ SCORM, you've got bloated or unsubsetted fonts.",[12,1544,1545],{},"If anything fails the checklist, don't ship.",[16,1547,1549],{"id":1548},"what-we-do","What we do",[12,1551,1552],{},"Every conversion we deliver is tested against:",[122,1554,1555,1558,1561,1564],{},[125,1556,1557],{},"iOS Safari (current + 2 previous)",[125,1559,1560],{},"Chrome Android with Translate toggled on",[125,1562,1563],{},"Chrome desktop with 200% browser zoom",[125,1565,1566],{},"VoiceOver on macOS and NVDA on Windows",[12,1568,1569],{},"The extra hour per deck is the difference between a course that works and a course that generates support tickets.",[860,1571],{},[12,1573,1574,1575],{},"If you've got a deck that fails any of the above, we can probably fix it. ",[110,1576,867],{"href":364},{"title":524,"searchDepth":525,"depth":525,"links":1578},[1579,1581,1582,1583,1584,1585],{"id":1372,"depth":525,"text":1580},"1. They export slides as SVG with \u003Ctspan>-chopped text",{"id":1429,"depth":525,"text":1430},{"id":1455,"depth":525,"text":1456},{"id":1485,"depth":525,"text":1486},{"id":1501,"depth":525,"text":1502},{"id":1548,"depth":525,"text":1549},"Font embedding, SVG tspan rendering, and one specific browser feature that quietly destroys your course mid-lesson. Notes from too many conversions we've had to redo.",{"relatedPages":1588},[1589,1590],{"path":1081,"title":1082},{"path":471,"title":472},"2026-04-21",{"title":1357,"description":1586},"blog\u002Fwhy-free-ppt-to-scorm-tools-fail-on-mobile",[551,552,1595,1596],"mobile","accessibility","iaUXfpRiiuyI5rN1BOEyiT4nGiqeRnllL2WzicdNE6c",{"id":1599,"title":1600,"author":7,"body":1601,"description":1954,"draft":538,"extension":539,"meta":1955,"navigation":545,"path":1081,"publishedAt":1959,"seo":1960,"stem":1961,"tags":1962,"updatedAt":547,"__hash__":1964},"blog\u002Fblog\u002F5-scorm-errors-that-break-powerpoint-conversions.md","5 SCORM errors that break PowerPoint conversions (and what to do about each)",{"type":9,"value":1602,"toc":1944},[1603,1606,1612,1615,1618,1664,1684,1688,1691,1694,1746,1762,1769,1776,1793,1802,1806,1809,1827,1830,1838,1842,1845,1900,1905,1907,1909,1912,1934,1937,1939],[12,1604,1605],{},"When a PowerPoint-converted SCORM package breaks, it breaks in one of five ways. Over the years we've seen every flavour, usually multiple times in the same client's library. Here's the checklist we run through before blaming the LMS.",[16,1607,1609,1610],{"id":1608},"_1-invalid-imsmanifestxml","1. Invalid ",[676,1611,1108],{},[12,1613,1614],{},"The manifest is the metadata file that tells the LMS what's in the package and how to launch it. Most SCORM failures start here.",[12,1616,1617],{},"Common breakages:",[122,1619,1620,1640,1648,1657],{},[125,1621,1622,1627,1628,1631,1632,1635,1636,1639],{},[24,1623,1624,1625,114],{},"Missing ",[676,1626,930],{}," If it's not ",[676,1629,1630],{},"\u003Cschemaversion>1.2\u003C\u002Fschemaversion>"," (or ",[676,1633,1634],{},"2004 3rd Edition"," \u002F ",[676,1637,1638],{},"2004 4th Edition","), the LMS can't classify the package and either silently fails or throws an \"invalid SCORM\" error with no detail.",[125,1641,1642,1647],{},[24,1643,1644,1646],{},[676,1645,934],{}," not unique."," Identifiers must be unique within the manifest. PowerPoint conversions that paste the same identifier on every resource fail validation.",[125,1649,1650,1653,1654,1656],{},[24,1651,1652],{},"Relative path issues."," The ",[676,1655,938],{}," on each resource must match the actual zip layout. Converters that ship on Windows occasionally emit backslashes; SCORM requires forward slashes.",[125,1658,1659,1663],{},[24,1660,1624,1661],{},[676,1662,942],{}," on the launchable resource. Some LMSs accept its absence; Cornerstone and Workday won't.",[12,1665,1666,1669,1670,1672,1673,1677,1678,1683],{},[24,1667,1668],{},"Debug",": unzip the package and open ",[676,1671,1108],{},". Run it through ",[110,1674,1676],{"href":948,"rel":1675},[187],"SCORM Cloud's validator"," or ",[110,1679,1682],{"href":1680,"rel":1681},"https:\u002F\u002Fwww.rustici-software.com",[187],"Rustici's online manifest checker",". If it fails there, your LMS doesn't stand a chance.",[16,1685,1687],{"id":1686},"_2-completion-isnt-tracking","2. Completion isn't tracking",[12,1689,1690],{},"You finish the course. The LMS still says \"In Progress\". Classic.",[12,1692,1693],{},"Causes, in rough order of frequency:",[122,1695,1696,1707,1735],{},[125,1697,1698,1703,1704,1706],{},[24,1699,1700,1701],{},"The SCO never calls ",[676,1702,976],{}," (SCORM 1.2) or ",[676,1705,980],{}," (SCORM 2004). The JavaScript has an error and exits early, or the close button isn't wired up, or the converter didn't emit the call at all.",[125,1708,1709,1714,1715,1718,1719,1718,1722,1718,1725,1718,1728,1718,1731,1734],{},[24,1710,1711,1713],{},[676,1712,984],{}," set to the wrong value."," For SCORM 1.2, the valid values are ",[676,1716,1717],{},"\"passed\"",", ",[676,1720,1721],{},"\"failed\"",[676,1723,1724],{},"\"completed\"",[676,1726,1727],{},"\"incomplete\"",[676,1729,1730],{},"\"browsed\"",[676,1732,1733],{},"\"not attempted\"",". Anything else — including whitespace — fails silently.",[125,1736,1737,1745],{},[24,1738,1739,1740,1742,1743],{},"Progress is set to ",[676,1741,1724],{}," but the LMS is configured to require ",[676,1744,1717],{},". Some LMSs gate completion on a pass, not on finishing. Check with the LMS admin; the fix is usually a config change on their side, not a repackage.",[12,1747,1748,1750,1751,1635,1754,1757,1758,1761],{},[24,1749,1668],{},": open browser DevTools on the SCORM launch page. In the console, watch for calls to ",[676,1752,1753],{},"API.LMSSetValue",[676,1755,1756],{},"API_1484_11.SetValue",". If you don't see ",[676,1759,1760],{},"lesson_status"," being set, that's your bug.",[16,1763,1765,1766,1768],{"id":1764},"_3-suspend_data-overflow-silent-failure","3. ",[676,1767,1003],{}," overflow (silent failure)",[12,1770,1771,1772,1775],{},"Already covered in the ",[110,1773,1774],{"href":471},"SCORM 1.2 vs 2004"," post, but worth repeating because it's the most insidious failure mode:",[122,1777,1778,1784,1787,1790],{},[125,1779,1780,1781,1783],{},"SCORM 1.2 caps ",[676,1782,1003],{}," at 4,096 characters.",[125,1785,1786],{},"Most LMSs enforce the cap. Some truncate silently. Some accept more than 4KB for a while, then stop.",[125,1788,1789],{},"When truncation hits, the learner's progress resets on resume. They can't finish the course because they can never get back to where they were.",[125,1791,1792],{},"The LMS logs nothing. The browser logs nothing. The learner emails you saying \"it keeps losing my place\".",[12,1794,1795,1797,1798,1801],{},[24,1796,1668],{},": in DevTools, watch ",[676,1799,1800],{},"LMSSetValue(\"cmi.suspend_data\", ...)",". If the string length grows past ~3,500 characters, you have a time bomb. Fix by splitting the course into multiple SCOs, or by changing what's stored (serialise only the last completed slide, not the full history).",[16,1803,1805],{"id":1804},"_4-cross-origin-content-breaks-inside-the-lms-iframe","4. Cross-origin content breaks inside the LMS iframe",[12,1807,1808],{},"SCORM packages are served by the LMS inside an iframe. If your course embeds a YouTube video, a Vimeo player, a Typeform, or an external survey, the LMS's iframe sandbox rules apply:",[122,1810,1811,1818,1821],{},[125,1812,1813,1814,1817],{},"Videos with strict ",[676,1815,1816],{},"X-Frame-Options: SAMEORIGIN"," won't play.",[125,1819,1820],{},"Third-party cookies are often blocked (Chrome's phase-out, Safari's ITP), breaking anything that needs a login.",[125,1822,1823,1826],{},[676,1824,1825],{},"postMessage"," between the LMS parent and an embedded widget is usually blocked.",[12,1828,1829],{},"This isn't a SCORM problem per se — it's a general \"iframes in iframes\" problem — but it shows up in SCORM conversions because PowerPoint decks love embedded videos.",[12,1831,1832,1834,1835,1837],{},[24,1833,1668],{},": open the browser console with the LMS course loaded. Look for CORS errors, ",[676,1836,962],{}," errors, or \"blocked by sandbox\" warnings. If you see any, the fix is usually to self-host the asset inside the SCORM package instead of embedding it externally.",[16,1839,1841],{"id":1840},"_5-lms-specific-quirks","5. LMS-specific quirks",[12,1843,1844],{},"The ones that will ruin your week:",[122,1846,1847,1862,1871,1885,1894],{},[125,1848,1849,1852,1853,1855,1856,1858,1859,1861],{},[24,1850,1851],{},"Cornerstone OnDemand",": converts all ",[676,1854,1760],{}," of ",[676,1857,1717],{}," into ",[676,1860,1724],{}," regardless of your score. If scoring matters to you, check that your reporting joins on the right field.",[125,1863,1864,1867,1868,1870],{},[24,1865,1866],{},"Moodle",": occasionally truncates ",[676,1869,1003],{}," at 2KB (yes, half the spec) on older versions. Check your instance's config.",[125,1872,1873,1876,1877,1880,1881,1884],{},[24,1874,1875],{},"Docebo",": ignores ",[676,1878,1879],{},"cmi.core.session_time"," if it's formatted in the SCORM 1.2 ",[676,1882,1883],{},"HHHH:MM:SS.SS"," format with more than 4 hour digits — which breaks courses that span multiple sessions.",[125,1886,1887,1890,1891,1893],{},[24,1888,1889],{},"SAP SuccessFactors",": requires the manifest's ",[676,1892,750],{}," to be ≤ 255 characters. Your \"Fire Safety Awareness and Evacuation Procedures for Building Supervisors Version 3 (2026)\" title will fail ingestion.",[125,1895,1896,1899],{},[24,1897,1898],{},"Workday Learning",": doesn't support SCORM 2004 4th Edition; falls back to 3rd Edition silently, dropping sequencing rules.",[12,1901,1902,1904],{},[24,1903,1668],{},": every LMS has its own error log, usually buried two menus deep under \"Reports\" → \"SCORM\" → \"Launch History\". Get your LMS admin to export it and grep for the course name.",[860,1906],{},[16,1908,901],{"id":900},[12,1910,1911],{},"When a SCORM conversion breaks, before anything else:",[407,1913,1914,1917,1923,1928,1931],{},[125,1915,1916],{},"Validate the manifest.",[125,1918,1919,1920,1922],{},"Watch ",[676,1921,1013],{}," calls in DevTools.",[125,1924,1925,1926,751],{},"Check ",[676,1927,1003],{},[125,1929,1930],{},"Check for iframe\u002FCORS errors in the console.",[125,1932,1933],{},"Check your specific LMS's known quirks.",[12,1935,1936],{},"In our experience, 4 out of 5 \"my SCORM is broken\" calls are one of these five things.",[860,1938],{},[12,1940,1941,1942],{},"If you've got a conversion that's misbehaving and you'd rather hand it off, we do SCORM rescue work as a flat-rate job. ",[110,1943,867],{"href":364},{"title":524,"searchDepth":525,"depth":525,"links":1945},[1946,1948,1949,1951,1952,1953],{"id":1608,"depth":525,"text":1947},"1. Invalid imsmanifest.xml",{"id":1686,"depth":525,"text":1687},{"id":1764,"depth":525,"text":1950},"3. suspend_data overflow (silent failure)",{"id":1804,"depth":525,"text":1805},{"id":1840,"depth":525,"text":1841},{"id":900,"depth":525,"text":901},"Manifest validation, completion tracking, suspend_data overflow, cross-origin, and the LMS-specific quirks we see repeatedly. A debugging checklist.",{"relatedPages":1956},[1957,1958],{"path":471,"title":472},{"path":112,"title":543},"2026-04-18",{"title":1600,"description":1954},"blog\u002F5-scorm-errors-that-break-powerpoint-conversions",[551,552,1963,885],"debugging","7eIYmYa7ALg7jHXtOhia8wjeS-sEvbR1dLrr_zddMKc",1777204337026]