Curriculum and goal fields
What PTRS accepts on each of the Programs delivery screens. PTRS runs no check in the browser before a save is sent, so the check on PTRS's own side, run after the save leaves the screen, is the only rule there is, and where there is no check at all, there is no rule at all.
Sixteen of the subset's 29 body-taking write actions have a real length check. Twelve of the thirteen that do not are in the goals, assessment and survey area; the thirteenth is reordering.
Where no check exists, the underlying storage is the only limit, so an over-length value comes back as a plain server error, not a field message, and every date parsed by hand in those actions is unguarded, so a date the screen did not produce is a plain server error too.
Curriculum
Created from the sidebar form on a program's Curriculum tab.
| Field | On screen | PTRS's rule | Limit |
|---|---|---|---|
| Name | Curriculum name | Required, max 200 | 200, matches |
| Description | Description, optional | Max 2,000 when supplied | 2,000, matches |
| Estimated hours | Est. hours | Zero or greater | Stored to two decimal places |
| Version | not shown on the form | Set by PTRS: 1 on create, plus 1 on publish | |
| Published | not shown on the form | Set by PTRS: false on create and on clone |
Every limit above matches its storage exactly.
Unit
There is no form. Pressing Add Unit sends a fixed set of values.
| Field | What the screen sends | PTRS's rule | Limit |
|---|---|---|---|
| Name | the fixed text "New Unit" | Required, max 200 | 200, matches |
| Description | not sent | Max 2,000 when supplied | 2,000, matches |
| Sort order | the current number of units | Zero or greater | |
| Estimated hours | zero | Zero or greater | |
| Learning objectives | not sent | Max 4,000 when supplied | 4,000, matches |
The action that would let a unit be renamed, described or given objectives after creation accepts all five fields and is reachable from no screen, so a unit cannot be renamed, described or given objectives once created. Every unit in every program is called New Unit.
Session
Also no form. Pressing Add Session sends a fixed set of values.
| Field | What the screen sends | PTRS's rule | Limit |
|---|---|---|---|
| Title | the fixed text "New Session" | Required, max 200 | 200, matches |
| Description | not sent | Max 4,000 when supplied | 4,000, matches |
| Sort order | the current number of sessions in the unit | Zero or greater | |
| Duration | 60 minutes | Greater than zero | |
| Session type | the fixed text "Workshop" | Required; matched against a fixed list | |
| Linked meeting | not sent | Optional |
The action that would correct a session accepts all of these and is reachable from no screen.
Creating a session matches its type against a fixed list exactly, so "workshop" in lower case is refused and "Workshop" is accepted. The same is true of assigning staff, setting certification requirements, and the three session sub-resource actions.
Creating or correcting a goal, an objective, a KPI measurement, a program's learning outcomes, an assessment and an evaluation all match without regard to case. PTRS is inconsistent about this within one module.
Activities, materials and assessments inside a session
No screen writes any of these. The three replace-all actions exist, are checked, and are reachable from no screen. The fields are listed because someone integrating directly can use them, and because the session panel displays them.
Activity
| Field | PTRS's rule | Limit |
|---|---|---|
| Name | Required, max 200 | 200, matches |
| Description | none | 2,000, no rule |
| Activity type | Required; matched exactly against a fixed list | |
| Duration in minutes | Greater than zero | |
| Sort order | Zero or greater | |
| Instructor notes | none | 4,000, no rule |
Material
| Field | PTRS's rule | Limit |
|---|---|---|
| Title | Required, max 200 | 200, matches |
| Resource library item | none, not checked to exist | |
| File web address | none | 2,000, no rule |
| Material type | Required; matched exactly against a fixed list | |
| Required | none |
Session assessment
| Field | PTRS's rule | Limit |
|---|---|---|
| Title | Required, max 200 | 200, matches |
| Description | none | 2,000, no rule |
| Assessment type | Required; matched exactly against a fixed list | |
| Max score | none | |
| Rubric | none, no shape checked at all |
Resource library item
Created from the form on the Resource Library screen.
| Field | On screen | PTRS's rule | Limit |
|---|---|---|---|
| Title | Title | Required, max 200 | 200, matches |
| File web address | File URL | Required, max 2,000. No format check at all; any text is accepted | 2,000, matches |
| Description | Description, optional | Max 2,000 when supplied | 2,000, matches |
| Content type | a four-choice select | Required, max 100. Free text as far as PTRS is concerned; the four choices are only a screen convenience | 100, matches |
| Tags | Tags, comma-separated | Max 1,000 when supplied | 1,000, matches |
| Shared | Shared across organization | none |
The four content-type choices on screen are a PDF, a video, an image or a web address type. The list filter offers the same four; the grid also recognises a second image type the create form cannot produce.
That setting is saved, returned and searchable, and nothing anywhere reads it. Every item in the library is already scoped to one organisation. Ticking or clearing the box has no effect on who sees the item.
Staff assignment
The Assign Staff dialog on a program's Staff tab.
| Field | On screen | PTRS's rule | Limit |
|---|---|---|---|
| Staff member | a choice filled from the program's available-staff list | Must not be blank; must exist | Unique together with the program |
| Role | a six-choice select | Required, max 50; matched exactly against a fixed list | |
| Start date | a date picker defaulting to today | Must not be blank. No further check before use | |
| End date | not on the dialog | none | |
| Hours per week | Hours/Week, for example 20 | Greater than 0 and at most 168 when supplied | |
| Primary contact | a checkbox | none. Any number of assignments can be primary |
The six role choices are exactly what PTRS will accept, one of the module's clean dropdowns.
Assigning someone checks that the program exists, that the staff member exists, and that the pair is not already assigned. It does not check a background check, an onboarding clearance, or even whether the person is active.
The picker only offers active staff, so that last check happens on the way in for anyone using the screen, but someone integrating directly is not protected the same way, and neither clearance check exists on any path. This is the same gap Staff recorded on shift creation, on a second surface: see Staff, what happens automatically.
Certification requirement
No screen writes these. The action is checked correctly and reachable from no screen, which is why the program's Compliance tab is permanently empty.
| Field | PTRS's rule | Limit |
|---|---|---|
| Credential type | Required, max 50; matched exactly against a fixed list. Unique per program | |
| Description | Optional, capped at 500 | 500, matches |
| Required | none, defaults to true | |
| Grace period in days | Zero or greater |
Goal
The Create Goal dialog on a program's Goals tab.
| Field | On screen | PTRS's rule | Limit |
|---|---|---|---|
| Title | Title | Required, max 300 | 300, matches |
| Description | Description | none, over 2,000 characters is a plain server error | 2,000, no rule |
| Category | Category, a free-text box | Must not be blank; matched against a seven-choice list without regard to case, else refused by name | 50, matches |
| Target Date | Target Date, a date picker | none. Not checked for validity before use | |
| Sort order | the current number of goals | none | |
| Status | not on the dialog | Set by PTRS to Not Started, always |
The placeholder reads "e.g., Academic, Social-Emotional".
PTRS accepts Academic, Behavioral, Social, Physical, Emotional, Leadership and Creative. Social-Emotional is not one of them, so typing the second half of the field's own suggestion is refused by name.
Objective, success criterion and KPI measurement
No screen writes any of these. All three actions are complete, none has a length check, and none is reachable from any screen.
Objective
| Field | PTRS's rule | Limit |
|---|---|---|
| Description | none | 2,000, no rule |
| Measure type | none, free text with no fixed vocabulary | 200, no rule |
| Target value | none | |
| Current value | correcting only | |
| Due date | none, not checked for validity before use | |
| Status | correcting only; matched against a fixed list | Defaults to Not Started |
| Sort order | none |
Success criterion, replaced wholesale by the objective update:
| Field | PTRS's rule | Limit |
|---|---|---|
| Description | none | 1,000, no rule |
| Is met | none | |
| Sort order | none |
KPI measurement
| Field | PTRS's rule | Limit |
|---|---|---|
| Metric name | none, free text with no fixed vocabulary | 200, no rule |
| Value | none | |
| Target value | none | |
| Period | matched against a fixed list | |
| Measured date | none, not checked for validity before use | |
| Notes | none | 1,000, no rule |
Learning outcome and member progress
No screen writes either.
Learning outcome, replace-all:
| Field | PTRS's rule | Limit |
|---|---|---|
| Description | none | 2,000, no rule |
| Outcome type | matched against a fixed list | |
| Measurement method | none, free text | 500, no rule |
| Sort order | none |
Member progress, an upsert:
| Field | PTRS's rule | Limit |
|---|---|---|
| Child | must exist | |
| Learning outcome | must exist and belong to this program | |
| Progress percentage | no rule at all | A small box: 150 is stored happily and 1,000 is a plain server error |
| Notes | none | 2,000, no rule |
| Last updated | set by PTRS to today |
Assessment and result
The Create Assessment dialog on a program's Assessments tab. This action has no length check at all.
| Field | On screen | PTRS's rule | Limit |
|---|---|---|---|
| Title | Title | none | 300, no rule |
| Type | Type, a free-text box | Matched against a nine-choice list without regard to case, else refused by name | |
| Description | Description | none | 2,000, no rule |
| Max Score | Max Score | none | |
| Pre-Assessment | a switch, on by default | none | |
| Post-Assessment | a switch, off by default | none | |
| Active | not on the dialog | Set by PTRS to true, and nothing can ever turn it off |
The placeholder reads "e.g., Academic, Social-Emotional, Health".
PTRS accepts Quiz, Rubric, Observation, Portfolio, Peer Review, Self Assessment, Skills Check, Participation and Project. None of Academic, Social-Emotional or Health is among them, so all three are refused.
The badge colour shown for the type is matched against the same five invalid names, so every type badge you can actually create falls through to grey.
Assessment result, no check, reachable from no screen:
| Field | PTRS's rule | Limit |
|---|---|---|
| Child | must exist | |
| Score | none, a negative or unbounded value is accepted | |
| Max score | none; falls back to the assessment's own value when left out | |
| Completed date | none, not checked for validity before use | |
| Notes | none | 2,000, no rule |
Survey and response
The Survey Builder panel on a program's Surveys tab. Neither creating nor correcting a survey has a length check.
| Field | On screen | PTRS's rule | Limit |
|---|---|---|---|
| Title | Survey Title | none | 300, no rule |
| Description | Description, optional | none | 2,000, no rule |
| Questions | the question builder, saved as structured text | none, no shape checked at all | unlimited |
| Pre-Survey | a checkbox | none | |
| Post-Survey | a checkbox | none | |
| Active | a checkbox, ticked by default | Not on the create action at all | Defaults to true |
Creating a survey has no place to carry that value, so it is ignored and every survey starts active regardless. Unticking Active before pressing Create Survey therefore still produces an active survey.
Correcting a survey does honour the field, and the correcting path in the builder is never actually shown, so there is no way to reach it.
The builder offers six question types: Short Text, Long Text, Multiple Choice, Checkboxes, Rating 1 to 5, and Yes / No. Nothing on PTRS's own side reads that structure back, so the vocabulary is the builder's own.
Survey response, no check, reachable from no screen:
| Field | PTRS's rule |
|---|---|
| Child | must exist; one response per child per survey, else refused as a duplicate |
| Responses | none, no shape checked at all |
| Completed date | set by PTRS to today |
Evaluation
Recording a program evaluation has no length check and is reachable from no screen; the Evaluation screen calls nothing. The fields are listed for someone integrating directly.
| Field | PTRS's rule | Limit |
|---|---|---|
| Evaluator name | none, a free-text name, not a link to a staff record | 200, no rule |
| Evaluation date | none, not checked for validity before use | |
| Overall rating | matched against a fixed list without regard to case | |
| Summary | none | 5,000, no rule |
| Recommendations | none | 5,000, no rule |
| Strengths | none, no shape checked at all | unlimited |
| Weaknesses | none, no shape checked at all | unlimited |
The vocabularies
Every fixed list a field in this subset is matched against, in full.
| Choice | Members |
|---|---|
| Session type | Lecture, Workshop, Discussion, Hands On, Field Trip, Assessment, Review, Free Play, Group Activity, Individual Work |
| Activity type | Instruction, Exercise, Game, Discussion, Demonstration, Practice, Presentation, Reflection, Warm Up, Cool Down |
| Material type | Handout, Worksheet, Video, Presentation, Document, Link, Supply, Equipment, Book, Other |
| Assessment type | Quiz, Rubric, Observation, Portfolio, Peer Review, Self Assessment, Skills Check, Participation, Project |
| Staff role | Program Director, Lead Instructor, Assistant Instructor, Volunteer, Specialist, Mentor |
| Credential type | CPR, First Aid, Medication Administration, Background Check, Transportation Check, CPR and First Aid, Background Check (DOJ), Child Abuse Recognition, Site Director Licence |
| Goal category | Academic, Behavioral, Social, Physical, Emotional, Leadership, Creative |
| Goal status | Not Started, In Progress, Achieved, At Risk, Not Achieved |
| KPI period | Daily, Weekly, Monthly, Quarterly, Annually |
| Outcome type | Knowledge, Skill, Attitude, Behavior |
| Evaluation rating | Excellent, Good, Satisfactory, Needs Improvement, Unsatisfactory |
Which of these a screen actually offers
| Screen control | What it offers | Matches PTRS's own list? |
|---|---|---|
| Session type, curriculum panel colours | all ten session types | Yes, exactly |
| Role, Assign Staff | all six staff roles | Yes, exactly |
| Goal status, goals page colours and labels | all five goal statuses | Yes, exactly |
| Evaluation rating, evaluation page colours and labels | all five evaluation ratings | Yes, and the screen is inert, so nothing is ever actually sent |
| Content type, resource library | four choices | Free text as far as PTRS is concerned, not a fixed list |
| Category, Create Goal | a free-text box suggesting Academic, Social-Emotional | No. One of the two suggestions is invalid |
| Type, Create Assessment | a free-text box suggesting Academic, Social-Emotional, Health | No. All three suggestions are invalid |
| Assessment type badge colours | Academic, Social-Emotional, Health, Physical, Behavioral | No. None of the five is a real assessment type |
Two free-text boxes against fixed lists, and one colour map keyed on wording that does not exist in PTRS at all. The core subset found eight clean dropdowns with no mismatches; this half is not as clean.
Where to go next
Checked against PTRS on 7 September 2026.