How Do You Stop an Unlicensed Guard From Being Deployed?
You stop it with two mechanisms working together: an expiry alert ladder that fires long before a licence or certificate lapses, and a hard eligibility block in the scheduler that makes a guard with a lapsed document unassignable to any post that requires it. Alerts alone fail, because they depend on somebody acting. Blocks alone fail, because a block that arrives on the morning of the shift is an operational emergency. You need both, and the alerts need to start early enough that renewal is a task rather than a scramble.
This is the highest-consequence compliance function a Singapore security agency has, and it is the one most commonly run on a spreadsheet with a conditional-formatting rule that nobody opens.
What actually has to be tracked
The Security Officer Licence issued by the Police Licensing and Regulatory Department is the obvious item, but it is not the only expiring document that determines whether a guard can legally and contractually stand a given post.
A workable registry covers:
- The officer licence itself: number, issue date, expiry date, current status.
- Work pass validity for non-local officers, whether Employment Pass, S Pass or Work Permit. A valid officer licence does not help if the work pass has lapsed.
- Role-specific certifications: first aid and AED, fire safety, crowd management, and any course certificates tied to specific competencies.
- Auxiliary police status and firearms permits where the agency operates in that space.
- Client or site-specific requirements, which are contractual rather than regulatory but function identically. A site that requires a particular induction or clearance has effectively created another expiring document.
The registry needs the scanned document attached, versioned, with an access log. When a regulator or a client asks for evidence, the useful answer is the document itself with a clear provenance trail, not an assurance that it exists somewhere.
Why the alert ladder needs four rungs
A single reminder produces a single outcome: either somebody acts on it or the licence lapses. A ladder at 90, 60, 30 and 7 days produces escalating responses matched to how much time is left.
At 90 days the appropriate action is administrative. Renewal paperwork gets started, a course gets booked if a certificate needs re-sitting, and the officer is told. Nothing is urgent.
At 60 days the item should be assigned to a named person with a due date, because the fact that it is still open means the 90-day action did not happen or did not complete.
At 30 days it becomes an operational concern rather than an administrative one, because the scheduler is now building rosters that extend past the expiry date. This is the point at which deployment planning has to take the expiry into account.
At 7 days it is an exception requiring a decision: either the renewal completes, or the officer comes off the affected posts and replacements are found.
The ladder also produces something a single reminder does not, which is a record of escalation. If a licence does lapse, the trail shows the agency raised it four times and can demonstrate the process worked even where an individual case did not.
Why the block has to be hard
There is a strong temptation to make expiry a warning rather than a prohibition, because operations teams under coverage pressure will always want the option to override. Resist it, for a practical reason as much as a compliance one: a soft warning becomes background noise within about two weeks, and after that it is functionally invisible.
A hard block means the constraint is enforced at the point of assignment, on every path into a shift. That includes automatic roster generation, manual drag-and-drop adjustment, a supervisor filling a gap at short notice, and a guard claiming an open shift from the marketplace. If any one of those paths skips the check, that path becomes the route by which non-compliant deployments happen.
Two design details make the difference between a block that holds and one that gets worked around.
Eligibility is computed per post, not per guard. A guard whose first aid certificate has lapsed may still be perfectly eligible for posts that do not require it. A blanket suspension over-restricts and pushes supervisors to find workarounds. A per-post rule keeps the guard deployable where they legitimately can be.
The block explains itself. An assignment that fails with a structured reason such as an expired licence code tells the supervisor what to fix. A generic refusal tells them to call somebody, which is how overrides get requested.
The reporting that closes the loop
Two reports turn this from a control into a system you can demonstrate.
The first is a compliance status view per guard: every licence and certificate with its status and days to expiry, alongside the officer’s grade, current wage position against the applicable Progressive Wage Model floor, and working-hours position for the recent period. This is the single view an HR or compliance officer needs before answering any question about an individual.
The second is a blocked-assignment report: every occasion the system prevented an assignment because of a lapsed or missing document, and how each was resolved. That report is genuinely useful in two directions. Internally it shows where renewal processes are failing. Externally, in an audit, it is evidence that the control is live and operating rather than merely configured.
The agency-level view worth building on top is an expiry heat map across the workforce by month, because it surfaces clustering. If eleven officers hold certificates expiring in the same fortnight, that is a training-capacity problem three months out, and it is only visible in aggregate.
Where this connects to everything else
Licence compliance is not a standalone module in practice. It is the eligibility gate that constraint-based rostering queries on every assignment, which is why the two have to share a data model rather than exchange files. It sits alongside Progressive Wage Model compliance, which asks a different question about the same guard record. And the evidence it produces feeds directly into agency-level competency evaluation and audit readiness.
How Moxogo implements it
Moxogo Security tracks each officer’s licence and certifications with the 90, 60, 30 and 7 day alert ladder described above, raising activities against named owners as each threshold is crossed, and hard-blocks guards with expired mandatory documents from assignment to posts that require them. Eligibility is evaluated per post against required grade and required certificates, and every blocked assignment is logged. The stated design goal for the module is zero unlicensed deployments, which is a target the scheduling logic is built to enforce rather than a published customer statistic, and it is worth asking to see it demonstrated against your own post definitions during evaluation.
The scans and supporting documents sit in a document store with versioning and access logging, which matters for Personal Data Protection Act obligations as much as for audit response, since guard licence records contain personal data that needs a retention and access policy rather than an open shared drive.
A practical test of your current state
Pick a date three months in the past. From your existing records, answer this: which officers stood posts on that date requiring a certificate that had already expired. If answering takes more than a few minutes, or if the answer depends on cross-referencing a spreadsheet against a roster in a different file, the control is not operating. That is not a criticism of the people running it; it is a structural limitation of tools that hold information without linking it.
Frequently Asked Questions
What documents besides the PLRD officer licence need expiry tracking? Work pass validity for non-local officers, role-specific certifications such as first aid and AED, fire safety and crowd management, auxiliary police status and firearms permits where applicable, and any site or client-specific inductions that function as prerequisites for a post.
Why alert at 90, 60, 30 and 7 days instead of once? Because each interval calls for a different response. Ninety days is administrative, sixty assigns an owner, thirty affects roster planning that already extends past the expiry, and seven is an exception requiring a decision. A single reminder gives you one chance to act and no escalation record.
Should an expired certificate block a guard from all shifts? No. Eligibility should be evaluated per post against that post’s actual requirements. A guard whose first aid certificate lapsed remains legitimately deployable to posts that do not require it, and blanket suspension pushes supervisors toward workarounds.
Is a warning enough, or does the system need to block assignment? A block, enforced on every path into a shift including automatic rostering, manual adjustment, gap-filling and guard shift claims. Warnings become background noise quickly, and any unchecked path becomes the route through which non-compliant deployments occur.
What evidence should the system produce for an audit? A per-guard compliance status view with all documents and days to expiry, and a blocked-assignment report showing every prevented assignment and its resolution. The second demonstrates the control is operating rather than merely configured, which is the question an auditor is actually asking.
Related in this series
- Overview: What Does a Security Agency in Singapore Actually Need From an ERP?
- Progressive Wage Model compliance
- constraint-based rostering
- audit readiness


