Back to blog
Engineering · 1 May 2026 · 5 min read

We Didn't Bolt On an LMS. We Grew One Inside the Compliance Schema.

Most platforms connect learning to operations through SCORM export and manual reconciliation. We grew the LMS inside the compliance schema: same system, not connected to it.

Aditya Varma
Aditya Varma
Founder / Director

Most safety and compliance platforms treat learning and operations as two countries that share a border. The learning management system lives over here, your compliance register lives over there, and the customs checkpoint between them is a SCORM export, a nightly CSV, and a compliance officer with a spreadsheet doing the reconciliation by hand. Someone finishes a course in the LMS. Hours or days later, a human notices, copies the result across, and updates the record that actually matters. The two systems agree only because a person keeps making them agree.

That gap — the one between “the course is done” and “the compliance score knows it” — is where most platforms quietly fall apart. So we didn’t build a bridge across it. We removed the border.

Same system, not connected to it

When we say LatticeLook has an LMS, the easy assumption is that we did what most suites do: pick a module, wire it in over an API, and call learning a swappable component. We didn’t. The LMS grew inside the same schema as the compliance engine, the training matrix, and the employee register. It isn’t a product we integrated. It’s a set of tables that already share the same foreign keys as everything else.

The difference shows up the instant someone finishes a course. There’s no export, no sync job, no reconciliation queue. A completed course that’s mapped to the compliance catalogue writes a completion straight into the employee’s completion record, and that write triggers a council compliance recalculation. The score moves on its own. Nobody copies anything across, because there’s nowhere to copy it from — it was already in the same place.

That’s the spine of this whole series: the LMS lives inside the compliance schema, the same system, not connected to it.

What one completion actually touches

Because learning isn’t a guest in the schema, a single completion ripples through the parts of the platform that care about it — without any of them having to ask a separate system.

  • The completion materialises into the employee’s skills record, and the skills-gap view diffs required-versus-held competencies for that person’s position. Finishing the course doesn’t just tick a box; it closes a measured gap.
  • A high-risk-work licence minted from an LMS-verified competency is enforced by the PPE pre-start gate (OHS Regs reg 129). An operator who hasn’t certified is blocked at pre-start. The course result doesn’t sit in a learning silo — it changes what’s allowed on site.
  • Controlled documents from Document Control embed into courses as linked resources, and Document Control reads that linkage back. The document register and the course content point at each other through the same keys, so a controlled procedure can’t quietly drift out of the training that references it.

None of this is plumbing bolted on after the fact. It’s what falls out of putting learning in the same schema as the things learning is supposed to govern.

Authored once, enforced everywhere

The “same system” property scales up as well as down. A mandatory training rule authored at the peak-body level cascades down to the councils beneath it and auto-enrols the matching cohorts by position — the right people, on the right job titles, without a coordinator chasing a list. And a course authored once at the master level is distributed to many councils at once, with tenant-isolated cross-council reads and copyright-licence modes that decide who can copy, adapt, or only consume it.

For a sector where 79 councils keep solving the same compliance problem in parallel, that’s the quiet superpower: write the course once, push the rule once, and let the schema fan it out under proper tenant isolation rather than emailing a SCORM package around and hoping everyone loaded the same version.

Why the border had to go

You can fake a lot with integrations. What you can’t fake is a compliance score that’s correct the moment a course ends. The market pattern — connect learning to operations through SCORM export and manual reconciliation, or treat the LMS as a separately-integrated module — leaves a reconciliation gap, and reconciliation gaps are exactly where audits find the discrepancies. A worker shows as trained in one system and overdue in another, and the truth depends on who reconciled last.

When learning lives in the compliance schema, there is no “other system” to disagree with. There’s one record, and finishing a course updates it directly. That’s not a feature we marketed onto the side. It’s the foundation the rest of the platform stands on — the same instinct behind building the training matrix from scratch and the same architecture described in multi-tier interoperability. It’s also why we sell one platform in pieces rather than a federation of products that share a login.

This post is the opening of a series on the LMS. From here we get specific: how we author courses and run SCORM without the cloud tax, how we prove someone actually did the training, what happens when finishing a course changes what’s allowed on site, why it’s built for RTOs, not just course tracking, and ultimately why learning belongs in the base. Same system. Not connected to it.

lms architecture compliance integration

Ready to see Lattice Look in action?

Five minutes to sign up. Free onboarding.