Skip to main content
All articles

By Marty Papamanolis / Published 3 May 2026 / 11 min read

lms comparison ahpra-cpd

Moodle vs Canvas vs custom for AHPRA CPD: a 2026 comparison

Moodle, Canvas and TalentLMS are good at delivering courses. The question we get from Australian training providers is whether one of these platforms can also carry the audit-shaped data that AHPRA, FAAA and ASIC-licensed CPD ask for. We have run this comparison three times for providers already on Moodle or Canvas. Two of them kept extending the platform. One rebuilt. The call depends on the data model first and the cost crossover second, somewhere around month eighteen.

What Moodle, Canvas and TalentLMS are genuinely excellent at

We want to start here, because the rest of the article is about a kind of work these platforms were not designed for, and that framing is unfair if we do not say what they were designed for.

Moodle is the most adaptable learning platform in wide Australian use. Open source, enormous plugin library, mature gradebook, and a competent Moodle developer can shape it to almost any course structure. Universities run thousands of courses on it. RTOs run national delivery on it. Community contributions cover everything from H5P interactives to xAPI tracking. A training provider with a Moodle instance and a stable hosting partner has an asset that took years to build and would be expensive to replace cleanly.

Canvas is the more polished commercial cousin. The user experience is better out of the box, the mobile apps are good, the analytics are strong, and Instructure invests in the product on a predictable cadence. For a provider running structured, term-based courses with a learner cohort that expects modern UX, Canvas is hard to beat. We have seen training providers move to Canvas because learners complained about Moodle’s interface, and the move solved that problem.

TalentLMS is the lighter SaaS option. It targets corporate training, onboarding and certification programs where the buyer wants to ship this quarter without a Moodle hosting setup. Pricing scales by active users rather than seats, the authoring tools are simple, and the reporting is enough for most internal training use cases. For a provider doing short-form CPD modules with low custom-rule content, TalentLMS removes a lot of friction.

None of these is a bad product. Each has real customers running real CPD on it today. What follows is the part of the work where the platform shape and the regulator shape do not match, and what each of the three providers we worked with did about it.

The data-model mismatch under regulated CPD

The platforms model a course and a learner. The regulator models a practitioner accumulating evidence against a category schema the regulator owns and updates. These are different shapes, and the gap is structural rather than a missing feature.

A course-and-learner model assumes the unit of truth is the course. The course has modules, the modules have activities, the learner moves through them, and the gradebook records what happened. A new course creates a new container; a new learner enrols and the data follows. This is the shape Moodle, Canvas and TalentLMS were built around, and it works for almost every educational context that is not regulated CPD.

A practitioner-and-evidence model assumes the unit of truth is the practitioner. The practitioner holds a registration with AHPRA, FAAA, ASIC or the Tax Practitioners Board. Against that registration the practitioner accumulates hours, points and evidence items in categories the regulator defines. A psychologist’s CPD record carries categories that are not the same as a physiotherapist’s. An ASIC-licensed financial adviser’s record carries categories that change when the regulator publishes a new framework. The unit of audit is the practitioner’s record over a renewal period, not a course completion.

The two models can be bridged, and on the simpler end the bridge is fine. A course completion maps to a category and the platform records points against the learner. The bridge starts breaking when the regulator changes the categories mid-cycle, when a single course delivers hours across two categories, when evidence has to be carried into the record from outside the platform (supervision, conference attendance, reflective practice), or when the audit asks for the practitioner’s full evidence trail rather than a course transcript. Custom fields on a learner record start carrying load they were not designed for.

This is not a deficiency. It is the price of the platform being general enough to serve thousands of contexts that are not regulated CPD. What follows is what providers do when the shape of the audit stops fitting the shape of the data.

What “extending the platform” actually requires

The phrase that comes up on every initial call is “we just need to extend it.” It is usually accurate on intent and incomplete on effort. Three things make up the real extension cost.

The first is custom plugins or apps. On Moodle, this is a plugin built in the framework, which means a developer who knows Moodle internals, the upgrade path between Moodle releases, and the data dictionary for grade items, course completions and user profile fields. Plugin work is software development inside the Moodle codebase, not configuration. It is also where most of the “fit the regulator” logic ends up living: categories, evidence types, registration numbers, audit trails and reporting back to the regulator. None of that is in core Moodle, and none of it should be.

On Canvas, the equivalent is an LTI app or a custom integration over the Canvas API. The API is good, the data is there, but the LTI path means the regulator-shaped functionality lives outside Canvas and refers back into it. The provider owns two systems with one set of users.

On TalentLMS, the extension is custom fields and custom reports, plus API integrations for the bits the platform does not model natively. TalentLMS has fewer hooks than Moodle and a smaller surface than Canvas, which makes the extension cheaper at first and more limiting at the end.

The second is the integration glue. CPD programs rarely live alone. Practitioners arrive from the regulator’s directory, payment runs through Stripe or the provider’s accounting system, certificates are countersigned by the supervising body, and reporting goes back to the regulator on a defined cycle. Each touchpoint is custom integration work. Some platforms have prebuilt connectors for some of them; none of the three has prebuilt connectors for all of them.

The third is the migration debt. Every plugin, integration and customisation has to survive the platform’s release cycle. Moodle ships major versions yearly. Canvas updates fortnightly. TalentLMS pushes changes whenever the vendor decides. A custom plugin written against Moodle 4.3 needs review and likely rework when Moodle 4.5 lands. Every customisation that makes the platform fit becomes recurring compatibility work. That cost is real, ongoing, and rarely shows in the initial business case.

These three layered together are the actual extension cost. We have seen providers budget for the first, partially budget for the second, and forget the third entirely.

The four workarounds providers try, and which two survive past year two

Across the three engagements we have run, plus the providers we have spoken to during scoping calls that did not move forward, we have seen the same four workarounds. The order is roughly cheapest to most ambitious.

Workaround one: spreadsheets next to the LMS. The LMS holds course completion. The CPD record lives in Excel. A staff member exports completions weekly, copies them into a master spreadsheet, applies category logic, and produces the practitioner’s evidence record. This is what most providers do for the first one or two renewal cycles. It breaks at three signals: the category logic gets too complex for spreadsheet formulas, two staff members start keeping their own copies of the master, and the audit asks for a chain of custody the spreadsheet cannot show. At a few hundred practitioners it can hold for years. At several thousand it usually breaks inside eighteen months.

Workaround two: custom fields and custom reports inside the LMS. Moodle user profile fields get extended to carry registration number, profession and renewal date. Course-level custom fields carry category and points. Custom reports query against these and produce a practitioner-shaped output. Workable for a provider with a stable, single-regulator, single-profession audience. Most of the providers we have spoken to sit here today. It does not survive a regulator changing the category schema, because historical completions were tagged against the old schema and have to be retro-fitted by hand.

Workaround three: a parallel CPD database that reads from the LMS. The LMS keeps doing courses. A separate database, sometimes a small custom web app and sometimes a Microsoft Access application, holds the practitioner record. Data flows from the LMS on a schedule. This survives longer than the spreadsheet because the database can model the regulator’s shape properly. It is also where the extension cost starts looking like a custom build with extra steps. The provider pays for the LMS, the database, and the integration between them, with two upgrade paths and three sources of truth (LMS, database, and whatever the regulator’s portal expects).

Workaround four: a custom plugin or app inside the LMS that holds the regulator-shaped data natively. The plugin treats the practitioner as the primary entity, courses as evidence sources, and renders the regulator’s audit on demand. Two of the three providers we worked with took this path on Moodle, and both are still running it three years later. It worked because they had budget to build the plugin properly, a developer relationship that survived multiple Moodle upgrades, and a regulator whose category schema did not change radically during that period.

The two that survive past year two are workaround two (for stable, single-regulator providers under a few hundred practitioners) and workaround four (for providers with budget, developer continuity and a regulator who does not move the schema underneath them). The other two are bridges that hold while the provider decides whether to commit to extension or rebuild.

The cost crossover: when extension stops being cheaper than rebuild

The honest version of the number is a range.

The extension path on Moodle runs in three components. Hosting and Moodle support, which a managed Moodle partner will charge in the order of $20,000 to $40,000 per year for a provider with a few thousand active practitioners. Custom plugin development for the regulator-shaped layer, which sits between $40,000 and $120,000 for the first release. Annual maintenance on the plugin and integrations, in the order of $20,000 to $50,000 per year, including upgrade work each Moodle release. Add in-house admin time, and a Moodle-with-extension setup for a regulated CPD provider sits at $80,000 to $180,000 per year by year two.

Canvas at the same scope is similar in shape with different line items. The Canvas licence sits at $10,000 to $50,000 per year depending on enrolment; the LTI app or custom integration runs in the same range as the Moodle plugin; maintenance is comparable. TalentLMS is cheaper on the licence (often $5,000 to $20,000 per year), but the extension headroom is smaller, and providers tend to outgrow the customisation limits inside two cycles.

A custom build on a database-first foundation is heavier upfront. The first usable release for a regulated CPD provider, with the practitioner-and-evidence model native, multi-regulator support, audit trail and reporting back to the regulator, sits between $120,000 and $300,000 depending on scope. After that, the running cost is hosting (often $300 to $1,000 a month for a provider of this size) plus ongoing development the provider would have paid for either way. Three-year total cost is usually $200,000 to $500,000.

The two cost shapes overlap. The crossover for most providers we have run the numbers on lands somewhere around month eighteen. Before that, extension is cheaper. After that, the cumulative extension cost (plugin work, integration glue, migration debt, parallel databases, audit firefighting) catches up to and eventually passes the custom rebuild. The exact crossover depends on the size of the practitioner cohort, how often the regulator changes the category schema, and whether the provider runs one regulator or several.

We have not seen a provider with a stable scope, one regulator, fewer than a thousand practitioners, and a regulator who does not move the schema, beat custom on cost inside three years. We have seen providers with several thousand practitioners across two regulators, one of which changes the schema every two years, beat extension on cost by month fifteen.

The real call is which side of the crossover the provider sits on, and whether the data shape is going to get more complex or stay where it is. A provider who knows their cohort is doubling, that a second regulator is coming into scope, or that the regulator has signalled a category schema review is on the wrong side of the crossover already. A provider whose program is stable and whose practitioners number in the hundreds is on the right side.

Where to take this next

If you are running Moodle, Canvas or TalentLMS today and the audit pressure has started to surface in your team, the question worth asking is where on the crossover you are sitting now and where you will be in eighteen months. The diagnostic call we run before any LMS work answers this in about a week. We will tell you if the answer is keep extending, build a parallel database, or rebuild on the practitioner-and-evidence model. The honest answer is the cheapest one that holds.

For providers in the earlier stage of the conversation, where the question is what a CPD-native LMS has to do in the first place, our custom LMS for CPD compliance post is the companion piece. It covers the data model, the regulator’s audit shape, and the five fields a CPD record has to carry before any platform-versus-custom decision is on the table.

The closest published proof we have is the learning management system case study for a regulated education provider. Different regulator, different cohort, same shape: assessment rules lived in instructors’ heads, evidence lived in seven places, and the renewal deadline arrived the same way every year. The rebuild kept the data model and replaced the platform layer.

For more on how we approach LMS work for regulated providers, see our custom LMS development page. For allied health practices specifically, where AHPRA CPD evidence often sits alongside the practice management system rather than inside an LMS, the allied health practices view covers the integration shape that usually applies.

About the author

Marty Papamanolis, Managing Director of Devinium

Marty Papamanolis

Managing Director, Devinium

Devinium is a Melbourne software practice operating since October 2007. Mechatronics engineering from the University of Queensland with First Class Honours. Marty wrote his first production database at 19 and has been building data-driven systems since.

Need help with your data?

A 30-minute call costs nothing. We'll tell you honestly whether we can help.