Why this matters
If you are an L&D director, an EdTech founder, or a product lead, the cost question arrives before any other and you are usually expected to answer it with a single number you do not yet have. The trap is that learning platforms do not have a price — they have a build cost and a run cost, and the run cost is the one that quietly ends careers when a video bill that looked like a rounding error at launch becomes the largest line in the budget at scale. This article gives you the model that engineers and vendors are using behind the scenes, in plain language, so you can sanity-check a quote, decide whether to build or buy, and brief your team on the trade-offs before you commit. Read it with the platform anatomy map open — every box on that map is a line in this budget.
The two halves of the number
Almost every bad cost estimate comes from confusing two different things. There is the cost to build the platform — a one-time project that ends — and the cost to run it — a recurring bill that arrives every month for as long as the platform is alive. They are different in size, different in who pays them, and different in how they grow.
The build cost is paid once, by a project budget, and it is largely fixed: a fully featured custom learning-video platform costs the same to build whether one learner or one million eventually use it. The run cost is paid forever, by an operating budget, and it scales with use: every additional learner who streams a video adds to next month's bill. A platform that is cheap to build can be ruinous to run, and the reverse is also true.
The rule that follows is simple and almost always ignored: estimate both halves separately, then add them across a time horizon. A three-year total cost of ownership — the build plus three years of run cost — is the only number that lets you compare building against buying honestly. We will calculate exactly that later in this article.
Figure 1. The two halves of the number. Build is paid once and is roughly fixed; run is paid every month and grows with every learner you add.
The five things that drive cost
Before any spreadsheet, you need the five levers that move a learning-platform budget. Every quote you ever receive is some combination of these, and naming them lets you interrogate a number instead of accepting it.
The first lever is learner volume — how many people use the platform, and how actively. This is the dominant driver of run cost and barely touches build cost. Ten thousand learners watching five hours a month is a very different bill from a hundred learners watching one.
The second is content type — recorded video on demand, live virtual classrooms, interactive branching lessons, simple documents. On-demand video and live video carry the heaviest delivery costs; text and slides are nearly free to serve. We keep these strictly separate because they have entirely different cost shapes, a distinction the formats article maps in detail.
The third is interactivity — whether learners passively watch or actively do things the platform must track. A plain video player is cheap. An interactive player with in-video quizzes, branching, and per-second tracking is a serious build, because every interaction is an event the system must capture, store, and report.
The fourth is integrations — every external system the platform must talk to. Single sign-on, an HR system, a payment processor, and especially the learning standards that let your content run inside someone else's learning system: the packaging standard called SCORM (Sharable Content Object Reference Model), the modern tracking standard xAPI (Experience API), and the launch standard LTI (Learning Tools Interoperability). Each integration is build effort, and some add run cost too.
The fifth is live versus on-demand. A recorded video is produced once and streamed many times from cheap, cacheable storage. A live class is produced in real time, for every attendee at once, over infrastructure that cannot cache anything — so it is billed by the participant-minute and is structurally more expensive per hour delivered.
Figure 2. The five levers: learner volume, content type, interactivity, integrations, and live-vs-on-demand. Volume and live-vs-on-demand dominate run cost; interactivity and integrations dominate build cost.
What it costs to build
Build cost is the price of turning an idea into a working platform. The honest range is wide because "learning platform" covers everything from a WordPress site with a course plugin to a custom video-tracking system, but the market clusters into three recognisable tiers in 2026 [1][2][3].
A minimum viable product — core features only, web-only, an off-the-shelf player, basic completion tracking — runs roughly $8,000–$15,000 and takes two to four months [1][3]. This is the right starting point for validating an idea, not for serving a real audience at scale.
A professional, scalable platform — a custom interactive player, proper SCORM or xAPI tracking, one or two integrations, a clean admin experience — is the sweet spot for most organisations at $20,000–$60,000 [1][2]. Add a native mobile app and you are looking at $15,000–$75,000 more, because mobile is effectively a second client to build and maintain [1].
An enterprise ecosystem — heavy security, AI features, multiple LMS and HR integrations, live virtual classrooms, advanced analytics — starts at $50,000–$100,000+ and frequently runs into the low hundreds of thousands as scope grows [1][2]. Custom LMS work as a whole spans $8,000 to $500,000+ depending on complexity [1].
Inside any of these, the build budget breaks into recognisable pieces. Design alone is $3,000–$25,000 depending on polish [1]. Data migration — moving existing courses and learner records into the new system — is $2,000–$8,000 and is routinely forgotten until it appears [1]. The rest is engineering: the player, the tracking layer, the integrations, the admin tools, testing, and project management.
| Build line item | Typical range (2026) | What drives it |
|---|---|---|
| Discovery & design | $3,000–$25,000 | Brand polish, UX research, number of screens |
| Interactive video player | $15,000–$60,000 | Quizzes, branching, per-second tracking |
| Tracking layer (SCORM/xAPI) | $10,000–$40,000 | Which standards, LRS, reporting depth |
| Integrations (SSO, LMS, HR, payments) | $5,000–$30,000 each | Count and complexity of systems |
| Native mobile app | $15,000–$75,000 | A second client; iOS + Android |
| Data migration | $2,000–$8,000 | Volume and messiness of existing data |
| Web-only vs multi-platform | −30% to −50% | Web-only is markedly cheaper |
A web-only build is roughly 30–50% cheaper than a multi-platform one [1] — the single largest scoping decision you control.
For the rest of this article we will use a mid-range build of $180,000 as our worked example: a professional custom learning-video platform with an interactive player, xAPI tracking, two integrations, a basic live-classroom capability, and a web client plus a light mobile app. The exact arithmetic for arriving at a number like this is the subject of scoping and estimating a learning-video project.
What it costs to run
Run cost is where learning platforms surprise people, because nothing about the build prepares you for a bill that grows every month. The recurring cost has five main components, and one of them usually dwarfs the rest.
Video delivery: almost always the largest line
When a learner streams a recorded video, the bytes travel from a content-delivery network (a CDN — a global network of caching servers that sit close to learners) to their device, and you pay per gigabyte delivered. This is egress, and it is the line item that ends budgets.
Let us do the arithmetic out loud. A 1080p video streamed at an average of 3 megabits per second consumes:
- 3 Mbps × 3,600 seconds = 10,800 megabits per hour
- 10,800 ÷ 8 = 1,350 megabytes = 1.35 GB per hour of viewing
Now scale it. Suppose 5,000 active learners each watch 5 hours a month:
- 5 hours × 1.35 GB = 6.75 GB per learner per month
- 6.75 GB × 5,000 learners = 33,750 GB ≈ 33.75 TB per month
The bill for those 33.75 TB depends entirely on which CDN you chose [4][5]:
- On Amazon CloudFront at $0.085/GB: 33,750 × $0.085 = $2,869 per month ≈ $34,400 per year.
- On a commodity CDN like Bunny at $0.01/GB: 33,750 × $0.01 = $338 per month ≈ $4,050 per year.
Same product, same learners, same videos — an 8.5× difference in the single biggest run-cost line, decided by a procurement choice the product team often never sees. This is why the delivery layer deserves real attention; scaling delivery: CDN, transcoding, and cost at volume goes deep on it, and the underlying multi-CDN strategy lives in our Video Streaming section.
A managed video API (Mux, Cloudflare Stream) bundles encoding, adaptive streaming, and analytics into one per-minute price — Mux is around $0.007 per minute delivered [5][8]. For our example, 5 hours × 60 × 5,000 = 1,500,000 minutes/month × $0.007 = $10,500/month. You pay more per gigabyte than raw CDN, but you buy away an entire category of engineering. That trade-off — convenience versus unit cost — repeats at every layer of this budget.
One more delivery warning: egress in Asia-Pacific, Latin America, and the Middle East runs 40–70% higher than in North America and Europe on every major provider [4]. A global learner base costs more to serve than a domestic one, by geography alone.
Live sessions: billed by the participant-minute
Live virtual classrooms are billed differently — by the minute, per participant — because nothing can be cached. Using a real-time video API, published rates in 2026 sit around $0.004 per participant-minute for group video on the cheaper providers, with Daily at roughly $4 per 1,000 minutes and LiveKit's published pay-as-you-go rates among the lowest [6][7].
Suppose 200 of our learners attend 2 hours of live class a month:
- 200 learners × 2 hours × 60 = 24,000 participant-minutes/month
- 24,000 × $0.004 = $96/month ≈ $1,150/year
Modest here, because live is a small slice of this platform. Flip the ratio — a platform that is mostly live cohort classes — and this line becomes the dominant one. The mechanics of why live is structurally harder and more expensive are covered in WebRTC for live learning.
Storage, transcoding, and captions: smaller, real, and easy to forget
Storing your course catalogue is cheap. A 500-hour library at multiple renditions is roughly 1 TB; at AWS S3's $0.023/GB/month that is about $23/month ≈ $280/year; on Cloudflare R2 at $0.015/GB with no egress fees, less [9][10].
Transcoding — converting each uploaded video into the multiple quality levels adaptive streaming needs — is priced per minute of source. AWS Elemental MediaConvert starts around $0.0075/minute [10]. Ingesting 50 new hours a year = 3,000 minutes × $0.0075 = $22.50/year. Trivial in this example, meaningful for a platform publishing thousands of hours.
Captions are both an accessibility requirement and a cost line. Automatic speech recognition transcribes a video for roughly $0.006/minute with a model like Whisper [11]. 50 new hours = 3,000 minutes × $0.006 = $18/year in machine cost — plus human review time, which is the real expense and the part that makes captions compliant rather than merely present. Accessibility is not optional for many buyers: WCAG 2.1 Level AA requires captions for prerecorded video (Success Criterion 1.2.2) and is mandated by law in much of the public sector [12]. Budget captions as a line item, not an afterthought.
Hosting, the LRS, and everything that keeps the lights on
The unglamorous remainder — application servers, the database, the Learning Record Store that holds your xAPI data, monitoring, backups, security tooling, and the engineering time to operate it all — is a real recurring cost that scales gently with usage. For a platform of this size, budget on the order of $15,000–$25,000/year, more if you run live at scale or store large volumes of tracking data.
Figure 3. The annual run cost for our 5,000-learner example. Video egress is the largest line, and the CDN choice alone swings the total from roughly $24,000 to $55,000.
Adding our example up, on a commodity CDN: $4,050 (egress) + $1,150 (live) + $280 (storage) + $40 (transcoding + captions) + $18,000 (hosting/LRS/ops) ≈ $23,500/year. On CloudFront, the egress line jumps to $34,400 and the total to roughly $54,000/year. The product is identical; the bill is more than double.
The pitfall that catches everyone
The most expensive mistake in learning-platform budgeting is pricing only the build. A team gets a $180,000 build quote, funds it, launches, and then discovers a video bill nobody modelled. At 5,000 learners that bill is $24,000–$54,000 a year, every year, growing with the audience. Over three years it can equal or exceed the entire build budget — and unlike the build, it never ends.
The fix is a habit, not a tool: whenever someone quotes a build, ask "and what does it cost to run at our expected volume?" If they cannot answer, the estimate is half-finished. A second, related trap is pricing run cost at today's learner count and forgetting it scales — the egress line is linear in viewing hours, so doubling your audience roughly doubles your largest bill.
Build versus buy: where the lines cross
Now the decision the whole section is built around. You can buy a software-as-a-service learning platform — pay a monthly fee per learner and use what the vendor built — or build your own. SaaS learning platforms in 2026 run roughly $2–$15 per active user per month, with $5 a common mid-market figure, though implementation and integration fees routinely add 50–100% to the sticker price [13][14].
Watch what per-seat pricing does at scale. At $5 per user per month:
- 5,000 learners × $5 × 12 = $300,000 per year, every year.
Compare that to building: a $180,000 one-time build plus roughly $24,000/year to run (the commodity-CDN figure we calculated above). Over three years:
- Buy: $300,000 × 3 = $900,000
- Build: $180,000 + ($24,000 × 3) = $252,000
At 5,000 learners, building is dramatically cheaper over three years — because SaaS cost grows linearly with every learner while your build cost does not. But run the same comparison at 200 learners:
- Buy: 200 × $5 × 12 × 3 = $36,000
- Build: $180,000 + ($24,000 × 3) = $252,000
Here buying wins by a mile, because the $180,000 build never pays back against such a small per-seat bill. Somewhere between these two cases the lines cross. Setting the three-year totals equal — $180 × L (the per-learner three-year SaaS cost) = $180,000 + $72,000 — gives a crossover at roughly 1,400 active learners. Below it, buy; above it, building starts to pay for itself; well above it, building wins decisively.
Figure 4. The build-vs-buy crossover. SaaS cost rises with every learner; a custom build is mostly fixed. For our worked numbers the lines cross near 1,400 active learners over three years.
That 1,400 number is specific to these assumptions — change the per-seat price, the build cost, or the time horizon and it moves. Treat it as a method, not a constant: model your own numbers (the spreadsheet below does exactly this) and find your own crossover. The deeper version of this decision, including the hybrid path, lives in build vs buy vs extend an existing LMS and the capstone build vs buy vs hybrid for learning video.
The hybrid path most teams actually take
The build-or-buy framing is a useful simplification, but most successful platforms are hybrid: buy the commodity layers, build the layer that differentiates you. A common shape is to run an off-the-shelf LMS (Moodle, Canvas) for course management and enrolment, and build a custom interactive-video layer on top that the LMS cannot provide — connected through the standards (SCORM, xAPI, LTI) so the two systems talk.
Hybrid changes the cost shape: a smaller build (you are not rebuilding course management), a SaaS or open-source LMS fee, and your own video run cost. It is often the lowest three-year total for organisations that need custom video but not a custom everything. The table below lays the three paths side by side, with the standards-support column that matters when your content has to move between systems.
| Approach | Build cost | Run cost | Standards support (SCORM / xAPI / LTI) | Best fit |
|---|---|---|---|---|
| Buy (SaaS LMS) | ~$0 | $2–$15/user/mo + fees | Vendor-provided, fixed | Small audience, standard needs, fast launch |
| Build (fully custom) | $50k–$250k+ | Your infra only | Whatever you build | Large audience, custom video, full control |
| Hybrid (LMS + custom video) | $30k–$120k | LMS fee + your video infra | LMS provides; you emit xAPI | Custom video, standard course management |
Tint marks the lowest-friction cell per row. Standards support is the difference between content that travels and content that is trapped.
A note on the standards you will pay to integrate
Three standards quietly shape the integration column of your budget, and skipping them is a false economy. SCORM packages a course so any compliant learning system can play and track it — the shipping container of e-learning [15]. xAPI records learning as statements ("Maria completed Module 3") in a Learning Record Store, and is what you need for the rich, per-second video tracking SCORM cannot capture [16]. LTI 1.3 lets your tool launch securely inside another organisation's LMS using a signed token — the mechanism behind "it just appears in our Canvas" [17].
Each is build effort, and xAPI adds a small run cost (the Learning Record Store has to live somewhere). But they are what make content portable, sellable to institutions, and future-proof. A platform that tracks completion in a proprietary format saves a little at build time and pays for it forever in lock-in. The plain-language tour of each is in SCORM explained and tracking video with xAPI.
Where Fora Soft fits in
Fora Soft has built video streaming, real-time WebRTC, and interactive-player software since 2005, and in e-learning the cost conversation is usually about the video layer — the part a generic LMS cannot give you and the part that drives the run cost. The build-vs-buy trade-off we help teams navigate is rarely all-or-nothing: most clients buy or keep their course-management layer and have us build the custom interactive-video and live-classroom layer on top, wired to the standards so nothing is trapped. We model the three-year total cost of ownership before a line of code is written, because the run cost — not the build — is what decides whether a learning product is sustainable.
What to read next
- Build vs buy vs extend an existing LMS
- Scoping and estimating a learning-video project
- Scaling delivery: CDN, transcoding, and cost at volume
Call to action
- Talk to a e-learning engineer — book a 30-minute scoping call to talk through your elearning platform cost plan.
- See our case studies — 250+ shipped projects across video streaming, WebRTC, OTT, telemedicine, e-learning, surveillance, and AR/VR.
- Download the Learning-Platform Cost Model (spreadsheet) — An editable cost model: plug in learner count, watch hours, bitrate, CDN rate, live minutes, storage, build cost, and SaaS price to get build and run estimates and your own build-vs-buy crossover.
References
- Aalpha. LMS Development Costs, All You Need to Know — 2026. https://www.aalpha.net/articles/how-much-does-it-cost-to-develop-lms/ — Tier 4 (vendor engineering). Tiered build ranges ($8k MVP to $500k+ enterprise), design $3k–$25k, migration $2k–$8k, mobile $15k–$75k, web-only 30–50% cheaper, timelines.
- AnyforSoft. How Much Does Custom LMS Development Cost in 2026. https://anyforsoft.com/blog/custom-lms-development-cost/ — Tier 4 (vendor engineering). Professional and enterprise build tiers corroborated.
- ExcellentWebWorld. How Much Does It Cost to Build an LMS in 2026. https://www.excellentwebworld.com/how-much-does-it-cost-to-build-an-lms/ — Tier 6 (orientation). MVP range and timeline (2–4 months simple, 6–10+ advanced).
- BlazingCDN. AWS CloudFront Pricing 2026: Per-GB Cost and Regional Breakdown. https://blog.blazingcdn.com/en-us/aws-cloudfront-pricing-2026-per-gb-cost-and-regional-breakdown — Tier 4 (vendor). CloudFront $0.085/GB NA/EU; commodity CDN $0.004–$0.01/GB; APAC/LATAM/MEA 40–70% higher.
- LeanOps. Mux vs Cloudflare Stream vs Self-Hosted vs CloudFront (2026). https://leanopstech.com/blog/mux-vs-cloudflare-stream-vs-cloudfront-2026/ — Tier 4 (vendor). Mux ~$0.007/min delivered; Cloudflare Stream $1/1,000 min delivered + $5/1,000 min stored.
- Fora Soft. LiveKit vs Agora Pricing: Complete 2026 Cost Analysis. https://www.forasoft.com/blog/article/livekit-vs-agora-cost-analysis — Tier 3 (first-party engineering). Real-time video per-minute economics; LiveKit published pay-as-you-go rates.
- TRTC. Zoom Video SDK Pricing 2026. https://trtc.io/blog/details/zoom-video-sdk-pricing-2026 — Tier 4 (vendor). Daily ~$4/1,000 min; Agora ~$0.99/1,000 audio min; Zoom Video SDK $100–$450/mo + custom.
- BuildMVPFast. Video Streaming Pricing Comparison (2026): Mux, Cloudflare Stream, AWS. https://www.buildmvpfast.com/api-costs/video — Tier 6 (orientation). Managed-video per-minute rates cross-checked.
- Vocal/Futurism. Cloudflare R2 2026 Pricing and AWS S3 Comparison. https://vocal.media/futurism/cloudflare-r2-2026-pricing-features-and-aws-s3-comparison — Tier 6 (orientation). S3 $0.023/GB-mo + $0.09/GB egress; R2 $0.015/GB-mo, zero egress.
- AWS. AWS Elemental MediaConvert / Elastic Transcoder Pricing. https://aws.amazon.com/elastictranscoder/pricing/ — Tier 3 (first-party). Transcoding from ~$0.0075/minute of source.
- FutureAGI. Speech-to-Text APIs in 2026: Benchmarks, Pricing. https://futureagi.com/blog/speech-to-text-apis-in-2026-benchmarks-pricing-developer-s-decision-guide/ — Tier 4 (vendor). ASR ~$0.006/min (Whisper) to ~$0.022/min (premium streaming).
- W3C. Web Content Accessibility Guidelines (WCAG) 2.1. https://www.w3.org/TR/WCAG21/ — Tier 1 (primary standard). Level AA; SC 1.2.2 Captions (Prerecorded), 1.2.4 Captions (Live), 1.2.5 Audio Description — captions are a required cost line.
- Software Finder. LMS Cost & Pricing Guide (2026). https://softwarefinder.com/resources/lms-pricing — Tier 6 (orientation). SaaS LMS $2–$15/user/mo baseline; enterprise tiers.
- Capterra. LMS Pricing Models and Hidden Costs Guide. https://www.capterra.com/resources/lms-pricing-models-guide/ — Tier 6 (orientation). Implementation, integration, and support fees add 50–100% to per-seat sticker price.
- ADL Initiative. SCORM 2004 4th Edition — Content Aggregation Model & Run-Time Environment. https://adlnet.gov/projects/scorm/ — Tier 1 (primary standard). SCORM packages and tracks a fixed data model inside an LMS launch — an integration cost driver.
- ADL Initiative. Experience API (xAPI) Specification v1.0.3 — Part 2: Statements. https://github.com/adlnet/xAPI-Spec — Tier 1 (primary standard). Statement model and the Learning Record Store interface — a build and small run-cost driver.
- 1EdTech (IMS Global). Learning Tools Interoperability (LTI) 1.3 Core + LTI Advantage. https://www.imsglobal.org/spec/lti/v1p3 — Tier 1 (primary standard). OIDC-based signed-token launch inside a host LMS — an integration cost driver.
Where sources disagreed, the official specs were followed: vendor cost guides often describe SCORM/xAPI integration loosely as "LMS compatibility"; this article keeps SCORM (packaging) [15], xAPI (tracking) [16], and LTI (launch) [17] as three separate cost drivers per their primary specs, overriding the blurred vendor framing. Build and run prices are vendor and market figures (tier 3–6) cited with their 2026 source and date; the standards and accessibility cost drivers are anchored to tier-1 primary documents [12][15][16][17].


