Picture a peak body that needs every member council to run the same updated child-safety module by the end of the quarter. The course is the easy part — it exists, it is signed off, it plays. The hard part is the next sentence: making sure the right people, across dozens of separate organisations, are enrolled, and stay enrolled as roles change underneath them. A new team leader starts at one council. A duty officer transfers at another. Someone retires. The obligation hasn’t moved, but the people it lands on have. In most systems, keeping that picture true is somebody’s recurring job: a coordinator with a spreadsheet and a calendar reminder to chase it.
That coordinating job is the work Lattice Learn is built to delete. The hardest part of mandatory training at scale was never delivering the content. It was enrolment that stays correct without a human maintaining it.
A rule authored once, not enforced council by council
In Lattice Learn, a mandatory training requirement is not a manual enrolment exercise repeated per organisation. It is a rule — authored once, at a peak-body or master level, and expressed as data rather than as an action someone performs. The rule says, in effect: this competency is required for these positions. From that point on, the system owns the consequence.
The rule is versioned and effective-dated, which is the part that makes it defensible rather than just convenient. You are not overwriting last year’s obligation when this year’s lands; you add a new effective-dated version, and the old one remains exactly as it was. When an auditor asks what was mandatory in March, the answer is the version that was effective in March — not a reconstruction, not a best guess. The same discipline runs through how Lattice Learn keeps records you can defend: the rule is history, not a setting that quietly changed.
Because the rule is data, auto-enrolment follows from it. When a worker’s position changes to one the rule targets, the system enrols them — no one runs a report, spots the gap, and sends an email. Change the position; the obligation finds the person. And every one of those auto-enrolments is written to an automated-decisions log, so the answer to “why is this person enrolled” is always “this effective-dated rule, on this date,” never a shrug.
Enrolment is driven by the matrix, so the rule and the gap agree
The reason auto-enrolment can be trusted is that it reads from the same backbone as everything else: the position-to-competency matrix. A rule does not target a hand-keyed list of names. It targets positions, and the matrix is what maps positions to the competencies they require. We wrote about why we built that training matrix from scratch — this is one of the payoffs.
It matters because the rule and the skills-gap view read the same source of truth. The gap analysis diffs required-versus-held competencies per position; the mandatory rule enrols people into the courses that close those gaps. They cannot disagree, because there is no second copy to drift out of sync. If the matrix says a position requires a competency, the gap view shows it as missing for anyone who lacks it, and the rule enrols exactly those people. One model, read two ways.
And because completion lands natively in the compliance schema, finishing the course closes the loop without an export. A pass writes the skills record the gap view reads, the live compliance score recalculates on its own, and the same completion can mint a high-risk-work licence that the PPE pre-start gate enforces — an uncertified operator is physically blocked from the task. That is the broader pattern: one completion, several downstream consequences, none of them a batch job. We cover the full set in when finishing a course changes what’s allowed on site.
Master distribution: one course, many member councils
The rule decides who must do the training. Master distribution decides how the course itself reaches every member organisation without being copied and re-copied until each version drifts.
A course authored at the master level is distributed to member councils as a controlled artefact, and each distribution carries an explicit copyright mode governing how much, if anything, the member may change:
USE_AS_IS— the member runs the master course read-only. No edits. Useful when the content is regulatory and uniformity is the whole point; every council delivers byte-for-byte the same material.LOCALISE_ALLOWED— the member may make per-locale edits: local contacts, site-specific examples, regional terminology — while the master remains the parent. Localisation is scoped, not a fork.WRAP_ONLY— the member may add wrapper content around the master course (an introduction, a local context module, a sign-off) but the core stays untouched. The master author keeps the integrity of what they shipped; the member keeps the context their learners need.
The mode is a property of the distribution, not a setting someone enforces by convention. A peak body that needs strict uniformity ships USE_AS_IS and knows no member can quietly alter a regulated module; one that wants consistency with room for local reality ships LOCALISE_ALLOWED or WRAP_ONLY, and the boundary holds on its own.
This rests on the same copy-on-write versioning that governs authoring everywhere in Lattice Learn: a published course is immutable, and changes create new versions rather than mutating what learners already saw. Distribution inherits that property. When the master is revised, the new version propagates — and the old one still exists, exactly as delivered, for anyone who completed it under the previous edition.
What this removes
Put the two together and the coordinating role disappears. The peak body authors a rule once and a course once. The rule cascades to every member council and auto-enrols the matching cohort by position. The matrix keeps enrolment honest. The copyright mode keeps the content correct without policing. As roles change across dozens of organisations, the obligations re-target themselves, and each change is logged as an effective-dated decision rather than a manual edit.
No coordinator chasing a list. No reconciliation pass to find who fell out of scope. The list maintains itself, because the rule, the matrix, the enrolment and the compliance score are not four systems agreeing — they are one.
This is also why learning sits in the base tier rather than as a bolt-on module. A rule that cascades from a peak body, drives enrolment off the matrix, and feeds the live compliance score is not a side feature you could carve out and sell separately — it is half the compliance engine. We make that argument in full on why learning belongs in the base and in our pricing, and the wider architecture is laid out across the platform’s features.