Work · an industry safety-certification body
A training record registry auditors can trust
The problem
Safety training records for an industry standard lived with the training providers who issued them. An employer hiring a technician had no single place to check whether a certificate was real, current, or had been withdrawn — and the body that owned the standard had no way to correct a record once it was out.
The approach
A central registry that providers upload into in batches. Each batch is validated before it counts for anything: records are separated into valid, duplicate and errored, and the batch sits as a draft with those counts visible until someone commits it. Delegates hold certificates against courses, courses are tied to the published standard, and every transition — committed, discarded, revoked — records who did it and when.
What was technically hard
A certificate is a claim someone will rely on when deciding who is allowed onto a hazardous site, so nothing may be quietly overwritten. That ruled out treating an upload as a simple import: a batch is staged and counted first, corrections arrive as explicit revoke and change requests rather than edits, and the audit trail is part of the schema instead of a log nobody reads. Getting duplicate detection right mattered most — the same delegate legitimately retrains, so a repeat is only a duplicate in a narrow, defined sense.
One decision we made, and why
Validation results are shown before the batch is committed, not after. Rejecting a two-thousand-record upload wholesale because forty rows were wrong would have pushed providers into re-uploading blind; showing the split lets them fix the forty and commit the rest, which is what keeps the registry current rather than merely correct.
More work
- Reconciliation that reports breaks the day they happen →
Time to detect a reconciliation break fell from weeks to one day.
- Machine data that arrives twice, late, or not at all →
Shift totals now reconcile to the plant's own counts.
- Population statistics for any polygon a user can draw →
$ tell us what you're building and where it's stuck
Book a 30-min discovery call
We reply within one business day.