Skip to main content

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.

Thirteen of these write paths have no check 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.

FieldOn screenPTRS's ruleLimit
NameCurriculum nameRequired, max 200200, matches
DescriptionDescription, optionalMax 2,000 when supplied2,000, matches
Estimated hoursEst. hoursZero or greaterStored to two decimal places
Versionnot shown on the formSet by PTRS: 1 on create, plus 1 on publish
Publishednot shown on the formSet 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.

FieldWhat the screen sendsPTRS's ruleLimit
Namethe fixed text "New Unit"Required, max 200200, matches
Descriptionnot sentMax 2,000 when supplied2,000, matches
Sort orderthe current number of unitsZero or greater
Estimated hourszeroZero or greater
Learning objectivesnot sentMax 4,000 when supplied4,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.

FieldWhat the screen sendsPTRS's ruleLimit
Titlethe fixed text "New Session"Required, max 200200, matches
Descriptionnot sentMax 4,000 when supplied4,000, matches
Sort orderthe current number of sessions in the unitZero or greater
Duration60 minutesGreater than zero
Session typethe fixed text "Workshop"Required; matched against a fixed list
Linked meetingnot sentOptional

The action that would correct a session accepts all of these and is reachable from no screen.

The session type match is exact, and two other checks in the module are not

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

FieldPTRS's ruleLimit
NameRequired, max 200200, matches
Descriptionnone2,000, no rule
Activity typeRequired; matched exactly against a fixed list
Duration in minutesGreater than zero
Sort orderZero or greater
Instructor notesnone4,000, no rule

Material

FieldPTRS's ruleLimit
TitleRequired, max 200200, matches
Resource library itemnone, not checked to exist
File web addressnone2,000, no rule
Material typeRequired; matched exactly against a fixed list
Requirednone

Session assessment

FieldPTRS's ruleLimit
TitleRequired, max 200200, matches
Descriptionnone2,000, no rule
Assessment typeRequired; matched exactly against a fixed list
Max scorenone
Rubricnone, no shape checked at all

Resource library item

Created from the form on the Resource Library screen.

FieldOn screenPTRS's ruleLimit
TitleTitleRequired, max 200200, matches
File web addressFile URLRequired, max 2,000. No format check at all; any text is accepted2,000, matches
DescriptionDescription, optionalMax 2,000 when supplied2,000, matches
Content typea four-choice selectRequired, max 100. Free text as far as PTRS is concerned; the four choices are only a screen convenience100, matches
TagsTags, comma-separatedMax 1,000 when supplied1,000, matches
SharedShared across organizationnone

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.

"Shared across organization" changes nothing

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.

FieldOn screenPTRS's ruleLimit
Staff membera choice filled from the program's available-staff listMust not be blank; must existUnique together with the program
Rolea six-choice selectRequired, max 50; matched exactly against a fixed list
Start datea date picker defaulting to todayMust not be blank. No further check before use
End datenot on the dialognone
Hours per weekHours/Week, for example 20Greater than 0 and at most 168 when supplied
Primary contacta checkboxnone. Any number of assignments can be primary

The six role choices are exactly what PTRS will accept, one of the module's clean dropdowns.

Assignment checks nothing about the person's clearance

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.

FieldPTRS's ruleLimit
Credential typeRequired, max 50; matched exactly against a fixed list. Unique per program
DescriptionOptional, capped at 500500, matches
Requirednone, defaults to true
Grace period in daysZero or greater

Goal

The Create Goal dialog on a program's Goals tab.

FieldOn screenPTRS's ruleLimit
TitleTitleRequired, max 300300, matches
DescriptionDescriptionnone, over 2,000 characters is a plain server error2,000, no rule
CategoryCategory, a free-text boxMust not be blank; matched against a seven-choice list without regard to case, else refused by name50, matches
Target DateTarget Date, a date pickernone. Not checked for validity before use
Sort orderthe current number of goalsnone
Statusnot on the dialogSet by PTRS to Not Started, always
The Category box is free text against a seven-choice list, and its own example is invalid

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

FieldPTRS's ruleLimit
Descriptionnone2,000, no rule
Measure typenone, free text with no fixed vocabulary200, no rule
Target valuenone
Current valuecorrecting only
Due datenone, not checked for validity before use
Statuscorrecting only; matched against a fixed listDefaults to Not Started
Sort ordernone

Success criterion, replaced wholesale by the objective update:

FieldPTRS's ruleLimit
Descriptionnone1,000, no rule
Is metnone
Sort ordernone

KPI measurement

FieldPTRS's ruleLimit
Metric namenone, free text with no fixed vocabulary200, no rule
Valuenone
Target valuenone
Periodmatched against a fixed list
Measured datenone, not checked for validity before use
Notesnone1,000, no rule

Learning outcome and member progress

No screen writes either.

Learning outcome, replace-all:

FieldPTRS's ruleLimit
Descriptionnone2,000, no rule
Outcome typematched against a fixed list
Measurement methodnone, free text500, no rule
Sort ordernone

Member progress, an upsert:

FieldPTRS's ruleLimit
Childmust exist
Learning outcomemust exist and belong to this program
Progress percentageno rule at allA small box: 150 is stored happily and 1,000 is a plain server error
Notesnone2,000, no rule
Last updatedset 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.

FieldOn screenPTRS's ruleLimit
TitleTitlenone300, no rule
TypeType, a free-text boxMatched against a nine-choice list without regard to case, else refused by name
DescriptionDescriptionnone2,000, no rule
Max ScoreMax Scorenone
Pre-Assessmenta switch, on by defaultnone
Post-Assessmenta switch, off by defaultnone
Activenot on the dialogSet by PTRS to true, and nothing can ever turn it off
None of the three types the box suggests is valid

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:

FieldPTRS's ruleLimit
Childmust exist
Scorenone, a negative or unbounded value is accepted
Max scorenone; falls back to the assessment's own value when left out
Completed datenone, not checked for validity before use
Notesnone2,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.

FieldOn screenPTRS's ruleLimit
TitleSurvey Titlenone300, no rule
DescriptionDescription, optionalnone2,000, no rule
Questionsthe question builder, saved as structured textnone, no shape checked at allunlimited
Pre-Surveya checkboxnone
Post-Surveya checkboxnone
Activea checkbox, ticked by defaultNot on the create action at allDefaults to true
The Active checkbox is dropped on create

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:

FieldPTRS's rule
Childmust exist; one response per child per survey, else refused as a duplicate
Responsesnone, no shape checked at all
Completed dateset 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.

FieldPTRS's ruleLimit
Evaluator namenone, a free-text name, not a link to a staff record200, no rule
Evaluation datenone, not checked for validity before use
Overall ratingmatched against a fixed list without regard to case
Summarynone5,000, no rule
Recommendationsnone5,000, no rule
Strengthsnone, no shape checked at allunlimited
Weaknessesnone, no shape checked at allunlimited

The vocabularies

Every fixed list a field in this subset is matched against, in full.

ChoiceMembers
Session typeLecture, Workshop, Discussion, Hands On, Field Trip, Assessment, Review, Free Play, Group Activity, Individual Work
Activity typeInstruction, Exercise, Game, Discussion, Demonstration, Practice, Presentation, Reflection, Warm Up, Cool Down
Material typeHandout, Worksheet, Video, Presentation, Document, Link, Supply, Equipment, Book, Other
Assessment typeQuiz, Rubric, Observation, Portfolio, Peer Review, Self Assessment, Skills Check, Participation, Project
Staff roleProgram Director, Lead Instructor, Assistant Instructor, Volunteer, Specialist, Mentor
Credential typeCPR, First Aid, Medication Administration, Background Check, Transportation Check, CPR and First Aid, Background Check (DOJ), Child Abuse Recognition, Site Director Licence
Goal categoryAcademic, Behavioral, Social, Physical, Emotional, Leadership, Creative
Goal statusNot Started, In Progress, Achieved, At Risk, Not Achieved
KPI periodDaily, Weekly, Monthly, Quarterly, Annually
Outcome typeKnowledge, Skill, Attitude, Behavior
Evaluation ratingExcellent, Good, Satisfactory, Needs Improvement, Unsatisfactory
Screen controlWhat it offersMatches PTRS's own list?
Session type, curriculum panel coloursall ten session typesYes, exactly
Role, Assign Staffall six staff rolesYes, exactly
Goal status, goals page colours and labelsall five goal statusesYes, exactly
Evaluation rating, evaluation page colours and labelsall five evaluation ratingsYes, and the screen is inert, so nothing is ever actually sent
Content type, resource libraryfour choicesFree text as far as PTRS is concerned, not a fixed list
Category, Create Goala free-text box suggesting Academic, Social-EmotionalNo. One of the two suggestions is invalid
Type, Create Assessmenta free-text box suggesting Academic, Social-Emotional, HealthNo. All three suggestions are invalid
Assessment type badge coloursAcademic, Social-Emotional, Health, Physical, BehavioralNo. 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.