Assign staff to a program
Programs → a program → Staff answers one question, who is on this program and in what role, and it answers it correctly. The Compliance tab beside it is meant to answer a second, harder one, and it cannot; that is explained below.
Assign somebody
- Open the program and choose the Staff tab.
- Press Assign Staff.
- Pick a Staff Member from the list.
- Choose a Role: Program Director, Lead Instructor, Assistant Instructor, Volunteer, Specialist or Mentor.
- Set the Start Date, which defaults to today, and optionally Hours/Week.
- Tick Primary contact for this program if this is the lead.
- Press Assign.
The six role choices are exactly the ones PTRS will accept, one of the module's clean dropdowns. Hours per week must be greater than zero and at most 168 if you supply it.
Staff Member is filled with every active staff member in the organisation, minus those already assigned to this program. It is not filtered to the program's own site, so a directory of any size will list people from other sites.
Assigning someone checks three things: the program exists, the staff member exists, and the pair is not already assigned. It does not check a background check or an onboarding clearance.
A staff member whose onboarding board shows a red "Cannot Start Work" banner can be assigned to a program as Lead Instructor, and nothing in this module objects. Staff recorded the same gap on shift creation; this is a second surface with the same shape.
The picker does leave out anyone marked inactive, so a deactivated person is not offered, but the check behind it does not, so someone integrating directly is not protected the same way. See Staff, what happens automatically.
That flag is saved exactly as sent. Nothing clears it on whoever held it before and nothing refuses a second one, so a program can have five primary contacts, all showing the gold star. Nothing else in PTRS reads the flag.
Remove somebody
Press the bin icon on their row and confirm.
This is a permanent removal, which is what makes re-assigning the same person to the same program work afterward. A soft removal would have left the old row in place and turned the second assignment into a raw conflict instead.
What you cannot change afterwards
Correcting an assignment, its role, its dates, its hours or its primary flag, is built correctly and reachable from no screen. There is no edit control on the row.
So an assignment is created once and then only removed. In particular:
- a role cannot be corrected, so you remove and re-assign instead;
- an end date can never be set, so no assignment ever formally ends and the list shows every person ever assigned;
- the active flag starts true on creation and nothing can ever set it false, which matters because the compliance check filters on it.
The Compliance tab
The second tab is titled Compliance with a count beside it. It is permanently zero, on every program, in every organisation.
The check behind this tab is well written: for each active assignment it compares the program's certification requirements against the person's own credential records, honours each requirement's grace period, treats an optional requirement with no matching credential as compliant, and reports each credential's status and expiry date.
It begins with this rule: if there are no assignments, or no requirements, return an empty list.
The one action that would add a certification requirement to a program is reachable from no screen. No screen, dialog or button anywhere in PTRS creates one.
So the requirement list is empty for every program, the check stops before it starts, and the tab shows: "No compliance data. Assign staff and set certification requirements to see compliance."
The second half of that sentence names a control that does not exist.
Staff-module credential tracking answers "is this person's CPR certificate current?" This check answers a different and more useful question: "does this person hold the credentials this specific program requires, allowing for its grace period?", which is the form a DELACARE inspection takes.
It is correct code, and there is no way to give it anything to check.
For someone integrating directly
Setting a program's certification requirements works. It is replace-all: send the full list you want on the program. Each entry needs a credential type drawn from a nine-member list, matched exactly on wording, plus an optional description up to 500 characters, a required flag and a grace period in days. The same credential type cannot appear twice on one program.
Once requirements exist, the compliance check starts returning real results for every screen that reads it.
For each requirement, the check takes the first matching credential it finds for the person, with no particular ordering. A staff member holding both a lapsed CPR certificate and its renewal may be judged on either one.
Full list with roles and reachability: Who can do what with curriculum, staffing, goals, assessments and surveys. Field rules: Curriculum and goal fields.
Where to go next
Checked against PTRS on 7 September 2026.