Skip to main content

Who can do what with curriculum, staffing, goals, assessments and surveys

This page covers all 49 things PTRS can do for a program's curriculum and resource library, its staffing, and its goals, assessments, surveys and evaluation. The core setup and enrolment half is covered on Who can do what with a program's setup, schedule and enrolment; the money and governance half is covered on Who can do what with money and governance.

Every row states whether anything in the product actually reaches it.

Who is admitted

All 49 require the module-wide setting. Only one of them adds a second, narrower setting on top: reading a program's staff list, the last of thirteen actions across the whole module that narrow this way.

RequirementCountEffective audience
The module-wide setting only37Site directors, regional directors, organisation administrators, super admins
The module-wide setting, narrowed1Site directors, organisation administrators, super admins
No setting beyond being signed in to the group11Site directors, regional directors, organisation administrators, super admins

None of the 49 widens access, and none is open with no sign-in check.

What a role actually experiences

Twelve of these screens sit inside a program's own tabs, so a role first has to pass the check every tab depends on: reading the program's own detail.

RoleWhat they can actually reach
Site directors, organisation administrators, super adminsAll 49, and every screen
Regional directors48 of the 49 by setting alone, and only one screen in practice. Every program tab shows a failure message, because the check every tab depends on refuses the role first. The one exception is the Resource Library, which sits outside a specific program and works fully for that role, including adding and removing items
Staff membersNone. The module-wide setting excludes the role, so reading the staff list is refused too, even though its narrower setting would otherwise admit it
Guardians, OCCL auditors, read-only accountsNone
The resource library is the one Programs screen a regional director can use

It is the first Programs surface in this portal whose effective audience includes that role. The Program Calendar is the other screen the role can load, and it is permanently empty and linked from nowhere; the resource library holds real records, and its add and delete controls both work.

How to read the "Reachable" column

ValueMeaning
A screen or component nameSomething in the product calls this action in normal use
Nothing reaches itThe action is built correctly and no screen calls it
Reachable, always stuckA control calls it and the branch that would matter never actually runs

Summary

Count
Actions in this subset49
Reachable by a screen27
Reachable by nothing22
Of the 27, cannot succeed as built1
Of the 27, wired up and never reached1
Add a narrower setting1
Carry no setting beyond the module-wide one11

Curriculum, units, sessions and the resource library (21 actions)

ActionReachable byNote
Create a curriculumThe Curriculum tabLength checks match the underlying storage exactly, 200 and 2,000
Correct a curriculum's name or hoursNothing reaches itThe only way to rename a curriculum or change its estimated hours
Read one curriculum in fullThe Curriculum tabReturns the whole outline, units, sessions, activities, materials, assessments, in order
Read a program's curriculaThe Curriculum tabNewest first
Delete a curriculumThe Curriculum tabPermanent. Takes every unit, session, activity, material and assessment with it
Publish a curriculumThe Curriculum tabOne-way. A second attempt is refused. There is no unpublish
Clone a curriculumThe Curriculum tabA genuine deep copy, every unit, session, activity, material and assessment. The copy starts as a fresh draft in the same program
Add a unitThe Curriculum tabAlways sends the fixed name "New Unit" and zero estimated hours; there is no form
Correct a unitNothing reaches itThe only way to rename a unit or give it learning objectives
Delete a unitThe Curriculum tabPermanent, taking its sessions and their contents
Reorder a unit or sessionReachable, always stuckSee Drag-to-reorder
Add a sessionThe Curriculum tabAlways sends the fixed title "New Session", 60 minutes and type Workshop; there is no form
Correct a sessionNothing reaches itThe only way to retitle a session, change its length or type, or link it to a real dated meeting
Delete a sessionThe Curriculum tabPermanent
Set a session's activitiesNothing reaches itReplace-all. The only writer of a session's activities
Set a session's materialsNothing reaches itReplace-all. The only writer of a session's materials, and therefore the only way to attach a resource library item to anything
Set a session's assessmentsNothing reaches itReplace-all. The only writer of a session's assessments
Add a library resourceThe Resource LibraryTakes the organisation from your own sign-in, unlike the Members create path
Correct a library resourceNothing reaches itNo edit control exists on the screen
Read the libraryThe Resource LibraryAn exact match on content type, plus a search over title, description and tags
Delete a library resourceThe Resource LibraryPermanent. Any session material pointing at it has its reference cleared

Drag-to-reorder can never succeed

Drag-to-reorder can never succeed

The Curriculum Builder wraps units and sessions in a drag-and-drop list. On drop, the screen and PTRS disagree on the wording of what is being moved, and PTRS refuses the request, naming the wrong term for it in the message.

What you see: the list animates into the new order, a red message appears carrying that wording mismatch, and the order reverts. Nothing is saved, and a unit or session's position therefore only ever holds the value it was given at creation, the length of the list at the time, so insertion order.

The same underlying action has a third case for reordering activities, and nothing anywhere calls it: no screen renders an activity list that can be reordered.

Nothing can be put inside a session

The three replace-all actions above are the only writers of a session's activities, materials and assessments, and none of the three is reachable from any screen. The session detail panel renders all three lists read-only and shows "No activities yet", "No materials yet" and "No assessments yet" on every session in every program.

Program staffing and certification (7 actions)

ActionReachable byNote
Assign staff to a programThe Staff tabRefuses a duplicate assignment. Checks that the staff member exists and nothing else, not a background check, not an onboarding clearance, not whether the person is active
Read a program's staffThe Staff tabThe subset's only action requiring the narrower setting. A staff record that was removed disappears from this list too
Remove a staff assignmentThe Staff tabPermanent, which is what makes re-assigning the same person afterward work
Set a program's certification requirementsNothing reaches itReplace-all. The only writer of a program's certification requirements, and the whole Compliance tab depends on it, see below
Check staff complianceThe Staff tabCorrect credential arithmetic including grace periods. Returns an empty result when the program has no requirements
Read available staffThe Staff tabEvery active staff member in the organisation, minus those already assigned. Not filtered to the program's own site
Correct a staff assignmentNothing reaches itThe only way to change a role, an end date, hours per week, the primary flag, or whether the assignment is active

The Compliance tab can never show anything

The Compliance tab can never show anything

The compliance check returns an empty result as soon as either the assignment list or the requirement list is empty. Setting a program's certification requirements has no client control and is reachable from no screen anywhere in PTRS.

So no program has a certification requirement, the check comes back empty on every program, and the Compliance tab reads: "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 anywhere in PTRS.

The consequence is worth stating plainly: this is the only place in PTRS that checks a credential against the specific program a staff member is working on, and it cannot run.

Goals, KPIs, learning outcomes, assessment, surveys and evaluation (21 actions)

ActionReachable byNote
Create a goalThe Goals tabChecks Category against a seven-choice list, without regard to case. Always creates the goal Not Started
Change a goal's statusNothing reaches itThe only way to move a goal's status anywhere
Read a program's goalsNothing reaches itComplete and unused; the Goals tab reads the dashboard instead
Read the goals dashboardThe Goals tabFive status counters plus the full goal outline
Set a program's learning outcomesNothing reaches itReplace-all, and the only writer of a learning outcome. Replacing them deletes any child progress attached to the old ones
Create an assessmentThe Assessments tabChecks Type against a nine-choice list. Always starts active
Read a program's assessmentsThe Assessments tabEach assessment's result count is a live count
Read a child's progress on an outcomeNothing reaches itNo screen shows a child's progress against a program's learning outcomes
Record a child's progressNothing reaches itA correct upsert keyed on the child, the program and the outcome. The only writer of that record
Record a program evaluationNothing reaches itChecks the overall rating against a fixed list. The Evaluation screen calls nothing at all, see below
Read a program's evaluationsNothing reaches itSame
Create a surveyThe Survey BuilderHas nowhere to carry the builder's Active checkbox, so it is dropped; every survey starts active by default instead
Correct a surveyReachable, always stuckThe builder calls this when given an existing survey to edit. The surveys screen never renders that way, so the branch never runs
Read a program's surveysThe Surveys tabEach survey's response count is a live count
Compare pre and post assessment averagesThe Assessments tabSee the pre/post pairing
Add an objective under a goalNothing reaches itThe only writer of an objective
Set an objective's value and success criteriaNothing reaches itReplace-all for success criteria. The only writer of them
Record a KPI measurementNothing reaches itThe only writer of a KPI measurement
Record an assessment scoreNothing reaches itThe only writer of an assessment result. Falls back to the assessment's own maximum score when none is given
Submit a survey responseNothing reaches itThe only writer of a survey response. Refuses a second response from the same child
Read a survey's resultsNothing reaches itNo screen shows survey responses

The Evaluation screen does not connect to PTRS at all

The Evaluation screen does not connect to PTRS at all

The Evaluation tab loads no data and calls no action. Its list is a fixed, empty value built into the screen, and its create dialog's five inputs have no value and no response to typing; Create closes the dialog and does nothing else.

So the screen is permanently empty and its three tiles permanently read zero, whatever the database holds, and both underlying actions, complete and correct, have no screen reaching them.

It is also the only Programs tab with no role check on its primary action: every other tab hides its create control behind the management setting; this one shows New Evaluation unconditionally.

The pre/post comparison cannot be matched to its assessment

The pre/post comparison cannot be matched to its assessment if you follow PTRS's own naming convention

PTRS groups assessments by their title with "(Pre)" and "(Post)" stripped off, the convention it expects, and returns the stripped title.

The assessments screen matches that back with an exact comparison against the unstripped title.

So a pair named "Reading (Pre)" and "Reading (Post)" produces a comparison keyed "Reading", which matches neither card, and no comparison is ever shown. A pair given the exact same title twice does match, and is the only naming that works.

Requests that always fail

RequestWhyWhat you see
Reorder a unitPTRS expects the plural form of the word and the screen sends the singularThe list snaps back and a red message names the wrong term
Reorder a sessionThe same mismatchThe same message, naming the other term

Both are the same underlying mismatch and the same one-word fix.

Length checks in this subset

Sixteen of the subset's 29 body-taking write actions have a real length check; thirteen have none. The split is not even across areas.

AreaWrite actions taking a bodyWith a checkWithout
Curriculum, units, sessions, resource library13121, reordering
Staffing and certification330
Goals, KPIs, assessment, surveys, evaluation131, creating a goal12

Where a check exists in the curriculum area, its limits match the underlying storage exactly: 200 for every name and title, 2,000 for a description, 4,000 for learning objectives and a session description, 2,000 for a file address, 100 for a content type, 1,000 for tags. That matches the discipline found in the scheduling half of the core subset, and it is the best of any area read so far.

Where no check exists, the storage size is the only limit, so an over-length value is a plain server error rather than a field message, and every date parsed by hand in those actions is unguarded.

Full list, with the storage limit each field is written into: Curriculum and goal fields.

Where to go next

Checked against PTRS on 7 September 2026.