Skip to content

Part 2 of 7 · Training reminder bot series ~5 min read

How training requirements are derived

A role-to-training mapping is the right idea and slightly too simple on its own. Two people with the same job title at two sites frequently need different training, and a system that cannot express that gets worked around with a manual list, which is the thing it was built to avoid.

Key takeaways

  • Requirements attach to a role plus attributes: site, equipment, shift, driving.
  • Person-level additions exist and are recorded with a reason, because reality has exceptions.
  • A person-level removal does not exist. Exceptions add, never subtract.
  • A requirement removed from a role marks assignments not-required and keeps completions.
  • The engine runs on a schedule as well as on change, so a sheet edit takes effect the same day.

Role plus attributes

AttributeExampleWhat it adds
RoleWarehouse operativeThe base list: manual handling, fire, induction
SiteAshford depotSite induction, and the fuel bay awareness talk
EquipmentCounterbalance forkliftThe forklift ticket and its refresher
DrivingCompany vehicleDriver awareness, licence check
ShiftNightsLone working, and the different first-aid arrangement
ResponsibilityFirst aiderThe first-aid qualification and its three-year refresher

Six attributes covers essentially every case in a small business, and none of them is exotic — every one is something the business already knows about a person. The combination is what produces the list, so a warehouse operative on nights at Ashford who drives a forklift gets a materially different list from the same job title on days at another site, without anybody maintaining two roles.

The engine

How a person's required training list is derivedA vertical chain of five steps entered by a box labelled A person, carrying a role and attributes. Step one takes the base list from the role using the requirements sheet mapping roles to training. Step two adds per attribute, covering site, equipment and shift. Step three adds any person-level extras, each recorded with a reason, from an additions-only exceptions list. Step four subtracts completions that are valid and not yet expired, read from the completions table with their validity dates. Step five produces what is outstanding, which is the assignment list. A note says the engine runs on every change and nightly, so a sheet edit propagates without a trigger.AWS ACCOUNTA personrole and attributesBase list from the rolethe common caseRequirements sheetrole to trainingAdd per attributesite, kit, shiftAdd person-level extraswith a reasonExceptionsadditions onlySubtract valid completionsnot yet expiredCompletionswith validity datesWhat is outstandingthe assignment listRun on every change and nightly, so a sheet edit propagates without a trigger.
Fig 1. How a person’s outstanding training is computed. Nothing is stored per person except completions and additive exceptions; the list itself is derived every time.
  • Database
  • Machine learning
  • Management
  • Analytics
  • Front-end & mobile
  • People

Exceptions add, never subtract

Person-level additions are necessary: somebody is designated a fire marshal, somebody is being trained into a new role, somebody had an incident and additional training was agreed. All of those are real and none of them fits a role mapping.

Person-level removals do not exist, and the omission is deliberate. “This person does not need the manual handling that everybody else in their role needs” is either a mistake in the role mapping or a decision that ought to be visible, and both are better handled by changing the mapping or changing the attributes than by a quiet exception that nobody reviews.

The one legitimate-looking case — somebody holds an equivalent qualification from elsewhere — is handled as a completion rather than an exception. Record the external qualification with its expiry, and the requirement is satisfied through the normal path with a proper record of why.

Removing a requirement

What happens when a training requirement is removed from a roleA horizontal row of five boxes. Removed from the role: by a sheet edit. Outstanding ones: marked not-required. Chasing stops: the same day. Completions kept: because they still happened. History intact: and explainable. A note says deleting the completions would erase the record of training that genuinely happened.WHAT REMOVING A REQUIREMENT DOESRemoved from the rolea sheet editOutstanding onesmarked not-requiredChasing stopssame dayCompletions keptthey still happenedHistory intactand explainableDeleting the completions would erase the record of training that genuinely happened.
Fig 2. What happens when a requirement is dropped from a role. Outstanding assignments stop; completed ones stay, because they describe something that actually occurred.
  • App integration
  • Machine learning
  • Security & identity
  • Management

Marking outstanding assignments not-required rather than deleting them matters for the gap report: a sudden drop in outstanding training should be explainable, and “eleven assignments became not-required on the 4th because the requirement was dropped” is a much better answer than a chart that quietly improved.

Next: how assignments get created and dated.

All posts