Skip to main content

Compliance

People → Compliance answers one question: is this person allowed to do this work today?

It is organised into tracks. A track is a named list of things somebody must hold, each with its own validity period. Every control room starts with one, and you add one per client that demands its own paperwork.

TrackWhat it is
StatutoryWhat the law and your insurer expect of everybody — PSIRA registration, firearm competency, driver's licence and first aid. Created for you, applies to every person in the control room, and nobody has to be enrolled.
A client trackWhat one client's site demands — a mine's annual medical and site induction, a power station's access permit, an airport pass. You create it, you choose who is on it, and you record every date yourself.

Switch between tracks with the row of pills at the top. A red dot on a track means somebody on it needs attention.

Client tracks are fully manual

Nothing on a client track is checked against any register — there is no register to check. You type the date, CleverOps colours it, counts it, and reminds you before it lapses. The one exception is the statutory track's PSIRA registration, which can be verified against PSIRA's own register — from the person's record, or for the whole room at once.

Reading the screen​

Four cards sit across the top, and they always describe the track you're looking at:

CardMeaning
ExpiredLapsed. Somebody is working on a credential that is no longer valid.
Expiring ≤ N daysInside this track's warning window. Start the renewal now.
In dateRecorded and current.
Nothing recordedNever captured. Grey, not red — most office staff will never hold a firearm competency, and a screen that painted them red would bury the four real problems.

Below them is the matrix: one row per person, one column per item on the track. Each cell is a coloured pill carrying the short version — Expired 39d ago, 41 d, May 2027, or the card number for something that doesn't expire. Hover a cell for the full detail: the certificate number, the grade, the issue date and the exact expiry.

A stripe down the left of each row repeats that person's worst item, so the rows that need you are obvious before you read a single date. Rows sort worst-first.

The Needs attention / Everyone toggle decides what you see. It opens on Needs attention — expired and expiring only — because that is the working list. Switch to Everyone to see the whole track, including the people with nothing recorded.

Recording something​

Click any cell. A small form opens with the issue date, the expiry, an optional certificate or card number, and an optional document to attach.

  • Where the item has a validity period, the expiry fills itself in — a twelve-month medical issued today expires a year today. Change it if the certificate says otherwise.
  • Recording a renewal does not overwrite the old one. A new record is added and the previous one becomes history on the person's record, so "what did they hold in March" still has an answer.
  • Everything you record here is the same record the person's own Compliance tab holds. There is no second copy and no way for the two screens to disagree.

Cells reading n/a are items the track marks optional — nothing is outstanding, but you can still record one.

Reading a driving licence off the card​

A driver's licence does not have to be typed in. On the person's Compliance tab, Scan licence reads the PDF417 barcode on the back of the card and fills the record from it.

There are three ways to get the barcode in, and the screen offers all three:

  • Handheld scanner — the barcode scanner a control room already owns. It behaves as a keyboard, so you put the cursor in the box and pull the trigger. This is the default and the fastest.
  • Camera — a phone or webcam, pointed at the card.
  • Photo — a picture of the barcode taken earlier. This is the least reliable of the three: a close, flat, evenly-lit picture of the barcode itself usually reads, a picture of the whole card usually does not. Where a control room has a handheld scanner, use it.

What it reads​

  • Every licence code on the card (A1, A, B, EB, C1, C, EC1, EC) with the date each was issued. Each code becomes its own record, so "may this responder drive a code C1" has a direct answer.
  • The expiry date and the licence number.
  • A professional driving permit and its expiry, filed as its own item rather than as "Other".
  • The ID number, but only when the person's record does not already have one.

Nothing is written until you say so​

The scan opens a review screen first, with everything the card said next to what is already on file. Each line has its own tick, and the defaults are deliberate:

  • A field that is blank on file is ticked — filling a blank is what scanning is for.
  • A field that disagrees with what is on file is left unticked and marked differs. Tick it only if the card in your hand is right and the record is wrong.
  • Codes the person already holds start unticked.

The two things it refuses to do​

It will not attach the wrong person's licence. The surname on the card is compared with the name on the record, and if they do not match the save is held until you tick a box confirming you have looked at the card and it really is theirs.

It will not correct an ID number. A scan fills a blank ID number; it never overwrites one. If the card disagrees with what is on file you are told, and nothing is written — that is a difference for a person to resolve, not a scan. Where the ID number has already been verified with PSIRA it is locked and the database refuses the write outright.

What "scanned" means and does not mean

The card's barcode is sealed with the state's own key, and CleverOps checks that it opens cleanly and that the card agrees with itself — the birth date and gender it carries in one place are checked against the ID number it carries in another. Those results are shown on the review screen. It is still not a check against a live register the way the PSIRA lookup is: it says the card is genuine and readable, not that the licence is currently valid. Fields filled from a scan stay editable.

Checking the whole room against the PSIRA register​

PSIRA is the one column on the statutory track that can be checked against an outside register, and Check everybody with PSIRA, at the top right of the matrix, does it for the whole control room instead of one person at a time.

It opens on everybody who has something to look up with — a PSIRA number on their compliance, a 13-digit ID number on their Person tab, or both. People with neither are not listed; there is nothing to ask the register about them. The screen opens on the ones not yet verified, with the already-verified hidden behind Everyone, and shows how many checks the control room has spent today out of its daily allowance.

The run happens in two passes, and the second one is the one that writes:

  1. Check — the ticked people are looked up one at a time, a few seconds apart, and the gap is deliberately uneven. Nothing is written; each row fills in with what PSIRA holds — name, status, grade, expiry — beside what is on file. The row count and the pause until the next person are on screen, and Stop ends the run wherever it has got to. Somebody already checked six times in the last hour is skipped and said so.
  2. Confirm & lock — only the rows you tick. Each one is looked up again and then written and locked exactly as the per-person check does.

What is ticked for you afterwards is the important part. A row is ticked only where PSIRA confirmed the number already on file and the name it returned shares a word with the name on file. Two kinds of row are left for you to read first, and marked:

MarkedWhy it is not ticked
new registrationWe had no PSIRA number and found this one by searching the ID number. A mistyped ID matches a real other person, and locking it would freeze the wrong human onto this employee. Read the name.
name differsPSIRA's name has nothing in common with the name on file. Usually a married name or an initial; sometimes the wrong person.

Newer PSIRA registrations don't show an ID number on the register, so a new registration row found that way says PSIRA's record does not show the ID. The ID number that would be locked is the one you searched with. The same applies when the number on file matches but the ID number would be filled in from such a search: the row says so and is not ticked either.

Rows that come back Does not match or Not on the register cannot be locked at all — nothing is written, and the reason is on the row. Fix the number on file and run it again.

The run stops itself if PSIRA fails to answer three times in a row, or when the control room's daily allowance runs out — what it managed is kept, and you carry on later or tomorrow. Every lookup is logged the same way a single check is, and a bulk run is recorded as one batch so it can be told apart afterwards.

Still one person, one lookup

There is no bulk endpoint at PSIRA and CleverOps does not pretend otherwise — this screen simply works down a list, one request at a time, paced so it can never look like a scraper. That is why a big control room takes a few minutes rather than a few seconds.

Sent in by staff​

Guards renew their own certificates and then have to get the paper to the office — historically a WhatsApp photo to whoever answered. The roster link you share with them (see Roster links) has a Certificates tab where they can see what they hold, when it runs out, and send the new one in with its dates and a photo.

Those arrivals queue in the Sent in by staff card on the right of this screen. It is control-room wide, not per track — somebody working through it is clearing a queue, not auditing a track. Each line names the person, the item, how long it has been waiting, and the expiry they gave.

Click one to open it. You get what they sent — Open what they sent shows the photo — with the issue date, the expiry and an optional certificate number, all editable. Then:

  • Accept & record writes the credential. The dates you accept are the ones that go on the record, so if the photo says 14 March and they typed 14 May, correct it before accepting. From that moment the matrix, the person's record and the weekly reminder email all agree.
  • Decline keeps the submission with your reason. Whatever you type in Note back to them is shown on their own Certificates tab, so they know to send a clearer photo rather than assuming it arrived.
Nothing is on the record until you accept it

A submission is a request. Until somebody here accepts it the person's compliance state is unchanged — an expiring item stays amber. This is what stops a forwarded roster link being a way to self-certify.

PSIRA can't be sent in at all. The register is the truth for PSIRA, so the portal offers no button for it and this screen refuses to accept one even if a submission somehow exists. Use Check with PSIRA on the person's record — or Check everybody with PSIRA for the whole room — instead. The same applies to any item already verified.

Every submission is kept, accepted or not. The person's own record carries the full history under Sent in from their roster link — what they sent, when, what you decided and why — so "I sent my first-aid card in March" has an answer.

Setting up a client track​

Use + New track beside the track pills.

  1. Name it after the client or site — Driefontein mine, Matimba power station.
  2. Say what it's for, in a sentence, for whoever inherits the screen.
  3. Set flag as expiring soon — how many days before an item lapses it should start warning. 45 days suits a medical you can book inside a month; the statutory track runs at 60 because PSIRA renewals are slow.
  4. Pick a starter — Mine site (medical, induction, access card), Power station / plant (access permit, safety induction), or Start empty. Whatever you pick, every item is editable afterwards.

Then Enrol people. Enrolment is a list you pick from, not a rule — who goes to a mine this month is a staffing decision, and it is not derivable from somebody's app ticks or job title. Everybody you enrol gets a row with every item outstanding until you record it.

The track panel​

The panel on the right says what the track is: who it applies to, its warning window, who may record against it, and the items it carries. Edit changes the name, the description and the window.

Each item shows its validity and two actions:

  • Make optional / Make required — an optional item with nothing recorded reads n/a instead of counting as outstanding. Use it for the things only some of the crew need.
  • Remove — takes the column off this track. Nothing anybody has already recorded is deleted — those certificates stay on each person's record, and the item can be added back later.

Add item puts a new column on the track: its name, whether it expires and for how long, whether it is required, and whether it carries a certificate number.

Two items with the same name are the same item

Name an item Medical on two different tracks and one certificate satisfies both — which is usually what you want, since a person has one annual medical however many mines they visit. When two clients genuinely demand separate certificates, give them separate names: Driefontein medical and Matimba medical.

The Statutory track can be renamed, and its items changed, but it cannot be deleted — the People list's compliance column reads from it.

Reminders​

Any item with an expiry joins the weekly compliance email, alongside PSIRA and licence renewals, sent to everybody subscribed to the PSIRA, firearm competency, driver's licence, documents topic under Settings → Reminders. The horizon for that email is the one set there, control-room wide.

The flag as expiring soon figure on a track is separate: it is what colours a cell amber and what the Needs attention list counts, per track.

Who can see and change this​

Managing compliance needs the same permission as managing the control room. Somebody without it does not see the tab's editing controls, and the compliance column on the People list stays empty for them.

Every record keeps who captured it and when.