Skip to content

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

How a training assignment is created

Creating an assignment is trivial. Dating it is not, and getting the dates wrong is how a training system becomes a permanent list of overdue items that everybody learns to ignore within a month.

Key takeaways

  • Three causes: somebody joined, a role changed, or a completion expired.
  • The grace period belongs to the requirement, not to a global setting.
  • A new starter’s assignments are staggered, because nine due on day one is nine ignored.
  • An expiry assignment is created before the expiry, not after it.
  • An assignment is never created for training with a valid completion, which sounds obvious and is where duplicates come from.

Three causes

The three causes of a new training assignmentA vertical chain of four steps entered by a box labelled The nightly run, and every change. Step one asks whether this is a new person with no completions at all; if so it exits to Stagger the list, ordered by requirement priority. Step two asks whether a role or attribute changed so that the derived list differs from before; if so it exits to Assign the difference, meaning only the new items. Step three asks whether a completion is expiring inside its lead time, reading validity dates from the completions table; if so it exits to Assign the refresher, before it lapses. Step four is Nothing to do, which is most people on most nights. A note says the third cause is the one that keeps working two years after anybody looked.AWS ACCOUNTThe nightly runand every changeNew person?no completions at allStagger the listby requirement priorityyesRole or attribute changed?list differs from beforeAssign the differenceonly the new onesyesCompletion expiring?inside its lead timeCompletionsvalidity datesAssign the refresherbefore it lapsesyesNothing to domost people, most nightsThe third cause is the one that keeps working two years after anybody looked.
Fig 1. The three ways an assignment comes into existence. The expiry path is the one that makes the system worth keeping after the first year, when everybody has done everything once.
  • Database
  • App integration
  • Machine learning
  • Management
  • Front-end & mobile

Grace periods belong to the requirement

RequirementGraceWhy
Site inductionDay oneNobody works on site without it
Fire safety briefing3 daysDelivered in house, no scheduling constraint
Manual handling14 daysDelivered in house but needs a group
Abrasive wheels30 daysExternal course, runs monthly
First aid at work90 daysExternal course, sparse dates
Annual refresher30 days before expiryAssigned early so it can be booked

A single global grace period — “all training due within 30 days” — is wrong in both directions simultaneously. It lets somebody work on site for a month without an induction, and it marks a first-aid course overdue when the next available date is six weeks away. Both errors teach people to disregard the due date.

Staggering a new starter

A new warehouse operative with nine requirements and no completions would, naively, receive nine assignments on their first morning. Seven of them will be overdue by Friday, the list will be red, and the new starter’s first impression of the system is that it is decorative.

How a new starter's training assignments are staggered over a quarterA horizontal row of five boxes. Day one: the induction only. Week one: fire safety and manual handling. Month one: abrasive wheels. Month three: first aid, if designated. Never all at once: and never all red. A note says nine assignments on day one is nine ignored assignments by Friday.A NEW STARTER'S FIRST QUARTERDay oneinduction onlyWeek onefire, manual handlingMonth oneabrasive wheelsMonth threefirst aid, if designatedNever all at onceand never all redNine assignments on day one is nine ignored assignments by Friday.
Fig 2. How a new starter’s requirements are spread out. The ordering comes from each requirement’s own grace period, so nothing needs a separate onboarding schedule.
  • Machine learning
  • Security & identity
  • Analytics
  • Front-end & mobile

The staggering is not a separate feature; it falls out of the grace periods already being per requirement. That is worth noticing, because it means there is no onboarding schedule to maintain separately from the requirements themselves.

The duplicate that catches everybody

The one implementation bug worth naming: creating an assignment for a requirement that already has a valid completion. It happens when the completion check uses the completion date rather than the validity end, or when a role change recomputes the whole list rather than the difference. The symptom is somebody being asked to redo training they did last month, and it destroys confidence in the system faster than anything else it could do.

Next: how a completion gets recorded.

All posts