Fivexer
Start free

The BRCGS Training Matrix Is a Rota Problem

brcgs training matrixskill routingrota planning

An auditor asks for two documents. One is the training matrix: every person, every competence, the date it was assessed and the date it needs assessing again. The other is the production rota for the period under review. Then they put the two side by side and start reading down the names.

That reconciliation is the finding. Not the matrix on its own, which is usually immaculate, because it is maintained by somebody whose job is to maintain it. The finding is a name that appears on Tuesday's high-care line whose competence for high care was signed off fourteen months ago on an annual review cycle.

The two documents are owned by different people, live in different systems and are updated on different days. Nothing in most plants makes them agree except somebody remembering to check.

A forklift carrying a pallet up the ramp into a trailer, seen from inside the trailer.
A forklift carrying a pallet up the ramp into a trailer, seen from inside the trailer.

What the audit actually asks

BRCGS requires role-appropriate hygiene training with assessed competency for every food handler currently on the production rota, and that includes agency and temporary workers, reconciled against the current employee list (BRCGS audit readiness checklist, Kiwa on BRCGS certification).

Read that as a data requirement rather than a training requirement and it says something specific. The unit of compliance is not the person. It is the person on a particular shift on a particular line on a particular date. Somebody can be fully trained on 3 June and not competent for the shift they worked on 2 June, and the matrix on its own cannot tell you which.

Where the drift comes from

Three places, in roughly this order of frequency.

Cover. Somebody calls in sick at 05:40 and the supervisor fills the gap from whoever is on site. The person who steps onto the high-care line is a real employee with real training, and the question of whether that training covers this line was answered by a supervisor under time pressure from memory.

Agency staff. They are in the audit's scope and usually not in the training matrix, because the matrix is an HR document and they are not employees. Their competence sits in a folder from the agency, or in an induction record, or nowhere.

Expiry. This is the one that produces findings on plants that are otherwise well run. A competence with an annual review does not fail loudly. The certificate does not stop working. The person turns up, does the job perfectly well, and the only thing that changed is a date nobody was looking at.

The UK Food and Drink Federation put the sector's vacancy rate at 3.9% in the first quarter of 2025, against 2.1% for manufacturing as a whole (State of Industry Report). Every one of those gaps is filled by somebody, and every fill is a decision made quickly about who is allowed to do what.

Move the check to the moment of assignment

The reconciliation is being done in the wrong direction and at the wrong time. It happens after the period, on paper, by a person reading two lists. It could happen before the shift, automatically, at the moment somebody is put on it.

That means treating the competence as a hard rule on the assignment rather than a fact in a filing cabinet. Here is one high-care packing shift against a five-person crew.

One high-care shift against five packers and one competence floor — computed outcome:

  1. Five people carry packing experience or hygiene competence or both. One high-care shift needs somebody tagged for packing who is assessed at hygiene level 3.
  2. Pool, then the floor, then the score. Omar is not a packer. Sofia is the strongest packer on the crew and is assessed at level 1. Elena is already on two lines. Anna clears the floor and scores 70.
  3. The shift is filled, and the record keeps every name that was not, with the rule that removed each one.

Sofia is the point of that figure. She is the best packer on the crew by a clear margin, and on a short-handed morning she is exactly who a supervisor reaches for. The floor removes her before anything is scored, and it removes her whether or not the line is short.

That ordering is the whole design. A competence floor that can be outweighed by being good at the job, or by being the only person available, is not a floor. It is a preference, and preferences bend on the mornings when they matter.

A threshold is not a strong preference

The distinction is worth being pedantic about, because scoring systems blur it by default and the blurring is invisible until an audit.

A weight says Sofia is a better packer than Marco. A threshold says a person at hygiene level 1 must never be put on the high-care line. Systems that model the second as a heavily weighted version of the first will do the right thing on an ordinary Tuesday and the wrong thing on the Tuesday when three people are off, which is the Tuesday the auditor asks about.

There is a second, quieter benefit. When the floor genuinely cannot be met, a system that enforces it tells you so — the shift stays open, visibly, with the reason attached. A system that treats it as a preference fills the shift and tells you nothing. One of those is reporting a staffing problem. The other is hiding it inside a rota that looks complete.

We wrote the general version of this argument in skills-based routing, explained; this is the food-plant reading of it.

The date is the hard part

Everything above works if "is competent" is a fact. It is not. It is a fact with a start and an end, and the end is where the findings are.

The rostering engine behind Fivexer models a qualification as a tag with a validity window, and checks it against the date of the shift rather than against today. A shift on 12 April asks whether the person held that competence on 12 April. The refusal names which of the two it was — never assessed, or assessed and lapsed on a date it prints — because those lead to completely different fixes. One is a training booking. The other is a re-assessment somebody already owes.

The honest limitation: the hosted console does not yet give you a field to type that expiry date into. Skills on a worker record carry a level, not a validity window. So today the date lives in your training records and the practice is to drop the tag when it lapses, which is a manual step and therefore a step that can be missed. The engine underneath is open source and does the dated check; the screen that would let a technical manager maintain the dates is not built. It is the next thing this needs.

Cold-store rotation is the same shape

A frozen store often runs a rotation rule — a widely used form is 45 minutes in, 15 minutes to warm up (BFFF guidance on working breaks within a coldstore). That is not a welfare note in a folder. It is a constraint on how a person's day may be assembled, in exactly the way a rest rule is, and it is almost always managed by a supervisor's judgement and a wall clock.

Rules of that shape belong wherever the rest rules live, because they compete for the same hours and a person applying them by hand is applying them one at a time. Fivexer's rostering rules are caller-supplied throughout — the engine ships the shape of a rule and never a jurisdiction's numbers, so a plant's own rotation, its own break minimums and its own weekly caps are all stated by the plant. The rules documentation covers what can be expressed.

What to do this week

You do not need software to start. You need the reconciliation to happen before the shift instead of after the period.

  1. Name the competences that gate a line, and be strict about the word "gate". High care, allergen handling, a particular machine. Most training records hold thirty entries per person and three of them decide what somebody may be put on.
  2. Give each one an expiry date, in whatever you have. A column in the same spreadsheet is fine. The date is what makes the next two steps possible.
  3. Check the coming week's rota against those dates, not the last period's. This is a fifteen-minute job once a week and it converts every future finding into a training booking.
  4. Decide what happens when the answer is no. Somebody has to be allowed to leave a shift unfilled and escalate it. If they are not, the check will be overridden at 05:40 and you are back where you started.
  5. Put agency workers in the same list. They are in the audit's scope. Whatever the agency sends, the plant is the one being audited.

Steps one to four are the work. Software makes step three continuous instead of weekly, and makes step four the default rather than an act of courage.

Common questions

Does this replace our training records?
No, and it should not try to. The training record is where the assessment lives, with the assessor's name and the evidence. What the rota needs from it is one thing per person per competence: the date it stops being true. Keeping two full copies of a training record is how they start disagreeing.

Our matrix is in a spreadsheet and it is fine.
The matrix is usually fine. The reconciliation is what fails, and it fails on the days the spreadsheet is not open — the sick call, the line change, the agency shift on a Sunday.

We are not BRCGS certified. Does any of this apply?
The certification is what makes it a finding. The underlying question is the same wherever an unqualified person can be put on a task by somebody working quickly: what stopped it, and can you show what stopped it. Fivexer's decision records exist for the second half of that.

Can we just block anybody whose training is out of date?
You can, and it will produce open shifts. That is the correct outcome and it is also the one people quietly turn off in week two. Decide in advance who is allowed to see an unfillable shift and what they do about it, before you turn anything on.

---

If your next audit is the thing prompting this, start by exporting the coming month's rota and the competence expiry dates into one sheet and sorting by date. Whatever that turns up is what to fix first, and it will tell you more about your exposure than any tool will.

You can watch the rostering engine apply rules like these to a sample week in the browser, with nothing to install, at the roster simulator.

Photograph: Unsplash.

New guides, when there are new guides

Nothing else. No product news, no sequence, and an unsubscribe link on every one.