WCapsuleM8

Training Matrix & Competency Tracker

Free

Track who is trained on what, work out when each certificate runs out, and see your compliance rate on the training that is actually required. Runs entirely in your browser — nothing is uploaded.

Version 1.0.0 · Updated Aug 5, 2026

Overview

CM8-27 is a training matrix and competency register. You record who has been trained on what, when they were trained and how long it lasts; it works out when each certificate runs out, tells you who is out of date, and calculates a compliance rate over the training that is actually required rather than over everything anybody has ever attended. Everything runs inside this single file. There is no account, no upload and no network request of any kind, so names, roles, certificate details and costs never leave the computer you are using. That matters here: a training matrix is personnel data about identifiable people, and in most places it is protected.

How to use Training Matrix & Competency Tracker

The complete in-tool guidance, reproduced here so you can read it before you download.

What this tool does

CM8-27 is a training matrix and competency register. You record who has been trained on what, when they were trained and how long it lasts; it works out when each certificate runs out, tells you who is out of date, and calculates a compliance rate over the training that is actually required rather than over everything anybody has ever attended.

Everything runs inside this single file. There is no account, no upload and no network request of any kind, so names, roles, certificate details and costs never leave the computer you are using. That matters here: a training matrix is personnel data about identifiable people, and in most places it is protected.

One row per person and course

Each row is one cell of the matrix: this person, this competency. Enter the employee, the team, the role, the course, whether it is required for that role, and the state it is in. The tool refuses a second row for the same person and the same course, and that refusal is deliberate — two rows for one requirement would count it twice in the denominator of the compliance rate and once in the numerator, which drags the figure down for no reason.

So this is a current-state register, not a training history. When somebody renews a certificate, edit the existing row: change the date achieved, and the new expiry follows. If you need the history of who attended what and when, keep the certificates themselves, or export a CSV before each renewal and archive it.

If a person has left, delete their rows. Leaving them in inflates both the record count and the number of required competencies, and makes your compliance look worse than it is.

Statuses and standing

Two different columns describe where a record has got to, and they are not the same thing.

  • Status is what you typed: not started, booked, in progress, achieved or expired.
  • Standing is what the tool works out from the dates: valid, expiring, expired, or one of the not-yet-achieved states carried over from the status.

A row can say achieved and still show a standing of expired, because the validity period has run out since somebody last looked at it. That is the single most useful thing this tool does, and it is why the status alone is never used to decide compliance. The only case where the status overrides the dates is when you mark a record expired yourself — a certificate that has been withdrawn or a competency that has been signed off as lost is not valid, whatever the dates say.

A competency is currently valid when: status = achieved AND a date achieved is recorded AND (there is no expiry date, OR the expiry date is today or later)

Anything else — not started, booked, in progress, expired, or achieved with a lapsed date — is not valid.

How the expiry date is worked out

You can record validity in either of two ways, and the tool will not let you use both on one row, so the date it shows is never a guess between them:

Expiry date = date achieved + valid-for months (the day of the month is kept; where that day does not exist in the target month, the last day of that month is used instead)

Or enter a fixed expiry date straight from the certificate, and the tool uses that exactly as written. Prefer the fixed date whenever the certificate carries one: awarding bodies do not all count from the same day, and some expire at the end of the month of issue rather than on the anniversary.

Leave the validity period blank, or enter 0, for training that does not expire. Those records show a standing of valid (no expiry) and count as compliant indefinitely. Be careful with that: relatively little training genuinely never lapses, and where an awarding body only recommends a refresher, the honest thing is to enter the recommended period so the renewal appears in your planning.

The expiry date is treated as the last valid day. A certificate expiring today still counts as valid today and is not valid tomorrow. If your awarding body treats the printed date as the first invalid day, enter the day before as the fixed expiry.

Days to expiry and the warning window

Days to expiry = expiry date − today (0 = expires today · negative = already overdue)

The warning window on the Settings tab decides when a valid certificate starts being flagged as expiring. The default of 60 days is a starting point, not a rule. Set it to the time it actually takes you to get somebody trained: if your first-aid provider runs a course once a quarter and needs six weeks' notice, 60 days is already too short, and 120 would serve you better.

The window drives the amber flags, the headline tile and which rows appear in the renewals table. It does not change the compliance rate — a certificate inside its warning window is still valid, and is counted as such.

The compliance rate

This is the number everything else in the tool exists to protect, so it is worth being precise about how it is built.

Compliance rate = required competencies currently valid ÷ ALL required competencies × 100

Three points follow from that, and each of them is a way the figure could otherwise be flattered:

  • The denominator is every required competency, not every valid one. A person who has never started a required course still appears in the denominator. If missing training quietly dropped out of the bottom of the fraction, an organisation that trained nobody would score 100 %.
  • Optional training is excluded by default. A spreadsheet course does not offset a lapsed forklift licence. Turning on "count optional training towards compliance" moves every record into both halves of the fraction, which almost always makes the number go up without a single legal requirement being met. The basis in force is printed under the tile and on the report — if the tile does not say "required competencies only", the figure is not a compliance rate in the usual sense.
  • The unit is the competency, not the row. If duplicate rows ever reach the register — through an import, say, rather than through the entry form — each person-and-course pair is still counted once, and counts as valid if any of its rows is valid.

Where nothing is required, there is nothing to comply with. A person, a team or a filter with no required items shows n/a, never 0 % and never 100 %. Both of those would be inventions: zero implies failure and one hundred implies achievement, and neither has happened.

Required or optional

The required flag is a judgement about the role, not about the person, and it is the input most likely to be wrong. Work it out from the job, the equipment and the tasks: what does this person have to hold to do this job lawfully and safely? Then mark everything else optional.

When you genuinely cannot decide, mark it required. That understates your compliance rather than overstating it, and an understated figure prompts a conversation while an overstated one prevents one.

Review the flags whenever somebody changes role. A supervisor who moves to a desk job may no longer need the forklift licence, and leaving it marked required keeps an imaginary gap on your report for three years.

Reading the charts

Compliance by team ranks teams weakest first. Bar length is relative to the strongest team on the chart, so read the rate printed on each bar rather than comparing lengths by eye. Teams with no required training are left out entirely.

Records by status is the shape of what you have typed, and is mostly a data-quality check. A register that is almost entirely "achieved" with nothing booked usually means renewals are not being planned, not that everything is under control.

Expiries by month looks forward across your planning horizon and counts the certificates falling due in each month, with the required ones noted underneath. A tall bar three months out is a booking problem you can still solve; the same bar next week is not.

Compliance gaps by course counts how many people are missing each required competency. Booked, in progress, never started and lapsed all count as a gap, because none of them is a valid certificate. This chart is usually where the work is: one course with six people missing is a single scheduled session, not six separate problems.

Planning renewals

The renewals table lists everything already expired plus everything falling due inside the warning window, in date order, with the overdue items at the top. Work down it. The matrix summary answers the other question — who is furthest behind — and sorts people worst first, so the person who needs a conversation is on the first line.

Nothing in this tool sends a reminder or books anything. It is a register you have to open. Put a recurring entry in your own calendar to open it, and use Print Report at the same interval so there is a dated record of what the position was.

Cost

The cost column is a straight total of whatever you type into it, in the currency set on the Settings tab. It includes booked courses, so it reads as committed spend rather than as money already gone, and it excludes everything you do not enter: the wages of the person while they are away from the job, cover for their shift, travel, room hire and your own administration time. Those are usually larger than the course fee. Treat the figure as the invoice total for the training in view, not as the cost of training.

What this tool cannot do

It cannot tell you what training the law requires of you. Statutory training, refresher intervals and record-keeping periods differ by country, by industry and often by the specific equipment in use, and no generic tool can decide them for your site.

It cannot verify a certificate, check that an awarding body is accredited, or confirm that somebody is actually competent. Holding a valid certificate and being competent are different things, and only the first of them fits in a register.

It cannot see anything you have not entered. A missing row is not a gap as far as this tool is concerned — it is silence. Build the matrix from the roles first, listing every required competency for every person even where nothing has been done, and only then fill in what has been achieved.

Printing and sharing

Print Report produces a report from whatever the current filter shows: header, headline figures, the four charts, the matrix summary, the renewals list, the full register and your closing notes. Print to PDF to circulate it or to attach it to an audit response.

The scope line under the title states the filter in force, and the compliance tile states its basis. Clear the filters before issuing anything described as the whole organisation — a report filtered to one category is a report about that category, however it is titled.

Saving your work

Records, settings and the report header are written to this browser's local storage as you type, and the toolbar shows the time of the last save. That storage belongs to one browser on one computer: another browser, a private window, a second machine or a clean-up tool that clears site data will not have it.

Treat Export .json as the real save — one file containing everything, which Import .json restores anywhere. Export CSV gives you the register for spreadsheet work, including the calculated expiry date, days to expiry and standing for every filtered record. Reset asks twice, then erases everything this tool has stored. There is no undo.

Because the matrix identifies people, treat exports as confidential personnel records and store them the way you store the rest of the personnel file.

Accuracy & disclaimer

This tool records what you enter and calculates from it. It cannot tell whether a course was correctly marked as required, whether the validity period matches the certificate, or whether the person who signed the record was entitled to — and the compliance rate depends on all three.

Statutory training requirements, refresher intervals, awarding-body rules and record-retention periods differ by country and by industry. This is an internal record-keeping and calculation aid, not legal advice, not evidence of competence, and not a substitute for the certificates themselves.