Skip to main content

Programs

Tom Bradley, the site director at Claymont, is setting up Homework Help for the fall. He needs a program record with a room, a season, an age band and a capacity, and he needs Maya Reyes, age nine, on the roll before the first Monday. Every other part of PTRS leans on what he sets up here: attendance sessions are meant to attach to this program's schedule, the compliance file asks which children were in which program, and Maya's own record shows her programs on its own tab.

What Programs is for

A club's day is built out of programs, not a vague sense of who is "at the club". Maya is not simply present. She is in Homework Help until 4:30, then in the STEM club, in a specific room, with a staff member who is supposed to be there. This module holds the record that says so: a program's type, season, age band, capacity, lifecycle status and its roll of children.

The failure this module exists to prevent is a club that knows how many children walked in the door but not what any of them signed up for: a roll kept in a spreadsheet, a waitlist kept in somebody's head, and a site that quietly runs past the number of children its licence permits.

Who uses it

Site directors, organisation administrators and super admins can use every Programs screen. A regional director sees the same menu and cannot open a program at all: the list itself refuses them with "Failed to load programs", and every tab inside a program does the same. Two screens still work for that role: the Resource Library, which sits outside a specific program, and the Program Calendar, which is linked from nowhere and permanently empty anyway.

A staff member is refused everywhere in this module, including the twelve places that would otherwise admit them. One Programs screen works for a staff member anyway: the AI brainstorm tools, reached from the sidebar, because that screen belongs to the AI module and checks a different setting. Guardians, OCCL auditors and read-only accounts are admitted nowhere.

Unlike most of PTRS, a failed permission here is visible: the screen says "Failed to load programs" rather than showing an empty list, so if you cannot see any programs at all, read that message literally rather than assuming there simply are none.

A regional director can approve almost nothing here

Approving a program charter is meant to be open to organisation administrators, super admins and regional directors alike. In practice a regional director can never reach the Charter tab at all, because the program overview refuses them first. So charter approval works out, in practice, to organisation administrators and super admins only.

Reading a grant is open to more people than creating one

Creating or changing a funding source or a grant is limited to organisation administrators, regional directors and super admins, and reading one carries no such limit. A site director can open every grant amount, grant number, award date and funder contact in the organisation, unpaged and unfiltered, even though the same site director cannot create or edit a single one.

A day in the life

Tom opens Quick Add → Program and creates Homework Help: type, season, delivery mode, an age band, a capacity of 20, a start and end date. The program appears with a grey Draft badge. He moves it through the lifecycle himself, one step at a time, until it reads Active.

Denise Okafor, on the front desk, opens the program and enrols Maya from the overview screen. PTRS checks the club's licensed capacity before it lets the enrolment through, the one enrolment path in the whole product that does. Maya appears on the roll.

A week later Tom wants to set Homework Help's actual meeting days and times. He opens the Schedule tab, builds a recurring pattern, and presses Save. Nothing happens: no message, no error, the screen simply does not save it. He keeps the schedule on the club's shared paper calendar instead, the way the club always has.

What PTRS does for you

  • Holds a detailed program record: its type, season, delivery mode, age band, capacity, waitlist setting, date range, BGCA pillars and free-text tags, created from one dialog and edited from another
  • Stops a site going over its OCCL licensed capacity, on the one enrolment path that checks it: the Enroll button on a program's overview. This is one of the few real regulatory controls in PTRS, and it works
  • Walks a program through a seven-state lifecycle in order, always showing the legal next step or steps and refusing anything else
  • Enrols a whole group of children in one request with Bulk Enroll
  • Runs a waitlist once you turn it on, and lets you promote children off it when a seat frees up
  • Lets you snapshot a program's settings before a big change, and read that snapshot back later
  • Clones a program into a fresh draft for next season, carrying its type, dates, pillars and tags
  • Lets you assign, list and remove staff on a program
Numbers this page does not carry

"Programme fill rate", "average time from draft to live", "waitlist conversion" and "sessions delivered against sessions planned" are the figures an evaluator asks for here. None is published, and the last cannot be: no session can be created through the interface at all, so there is nothing to count sessions delivered against.

The Goals, Assessments, Surveys and Evaluation tabs are the other place an evaluator looks, and every figure on all four is either a count of the definitions a person can create, or a structural zero. No goal has ever changed status, no assessment score has ever been recorded, no survey has ever been answered and no program evaluation has ever been saved, not because nobody has tried, but because no control exists that would let them. What Programs can and cannot measure traces each of those chains in full.

A program's age band is a label, not a rule

Every program carries one of five age tiers, and their bands appear in three different places in PTRS, agreeing with each other, which is worth noting because it is rarer in this product than it should be:

TierBandAge range the create form writes
JuniorsAges 6 to 86 to 8
TweensAges 9 to 129 to 12
TeensAges 13 to 1513 to 15
Senior TeensAges 16 to 1816 to 18
MixedAll ages5 to 18

No regulation is cited for any of these bands anywhere in PTRS. Treat them as the product's own label, not a licensed age range, because that is also how PTRS treats them: nothing in PTRS ever compares a child's age with either the tier or the age range, at enrolment or at any other point. See What happens when a child is enrolled.

The edit screen also lets a program's age range be set independently of its tier, and nothing keeps the two in step. A program can be saved as Juniors with an age range of 16 to 18, and nothing in PTRS will object, because nothing checks either figure against anything.

Programs adds no staff-to-child ratio

Attendance already found three disagreeing ratio calculations in PTRS, none of which reads real-time occupancy correctly. A reader coming here should know that Programs adds no fourth: no program, schedule, cohort or booking record carries a staff-to-child figure of any kind. The two capacity numbers this module holds, the program's own capacity and its schedule's capacity, are plain headcounts, and only the first is ever read by anything.

What stays your job

  • Set and track a program's actual meeting schedule yourself, on paper or in a shared calendar. PTRS cannot save a recurring schedule, generate a session from one, book a room, or record a schedule conflict, so nothing about a program's day-to-day timing lives on the screen
  • Keep collecting and filing signed consent forms the way the club always has. The Consent tab's Record button always fails, so a guardian's consent for a specific program is never actually captured in PTRS
  • Track who is really in a group yourself. A cohort can be named and capped, and nobody can be put in one from any screen
  • Check a child's age and eligibility against a program by hand before you enrol them. PTRS never runs that check itself, even where a rule has been typed in
  • Treat every enrolment as permanent once made, and note a mistake on paper rather than expecting to undo it. There is no way to remove a child from a program anywhere in the product
  • Track grants, funders and partner organisations outside PTRS, in a spreadsheet or on paper. Nothing in the product can create one
  • Keep your own record of a program's approved budget and its real spending. The Budget tab's own totals do not add up to anything reliable, for reasons set out below
  • Keep a paper or shared-drive copy of a signed program charter and of any compliance and funding documents. The corresponding tabs record a name and a typed web address, not a real uploaded file, and none of it moves through a real approval workflow

What has been built

Twenty screens make up Programs.

ScreenWhat it isWhat it can do today
The program listEvery program at your site or organisation, with status tabs and four stat tilesWorks
A program's overviewCapacity, dates, age range, waitlist, roll, tags, lifecycle and version historyMostly works. A snapshot can be read back and never restored
The Schedule tabThe recurrence editor, the session list, and exceptionsLoads and looks complete. Nothing on it can actually be saved
The Enrollment tabThe roll, the waitlist, Bulk Enroll, and the eligibility rule builderEnrolling and bulk enrolling both work. A typed eligibility rule is stored and never checked
The Cohorts tabCreate and cap a named groupCreating works. Nobody can be put in one
The Consent tabBuild a consent form, and a queue of who still needs to signBuilding a form works. Recording a signed consent always fails
The Program CalendarA month grid of room bookingsLoads and is permanently empty, and is linked from nowhere in the product
The Curriculum BuilderBuild a curriculum out of units and sessionsCreating and publishing work. Nothing inside a unit or session can be renamed, reordered, or filled in
The Resource LibraryA searchable, organisation-wide library of teaching materialsAdding and searching both work. Nothing can be attached to a session
The Staff tabAssign staff to a program, and check their credentials against itAssigning, listing and removing staff all work. The credential check can never run
The Goals tabSet goals for a program and track them on a dashboardCreating a goal works. Its status can never change, and every dashboard tile but one reads zero
The Assessments tabCreate an assessment and compare results before and afterCreating an assessment works. No score can ever be recorded for any child
The Surveys tabBuild a survey with several question typesBuilding a survey works. Nobody can answer one, anywhere in PTRS
The Evaluation tabRecord a program evaluationLoads and does nothing. Its Create button closes the dialog and saves nothing
The Charter tabDraft and approve a program charterThe one Programs screen that runs start to finish
The Budget tabTrack a program's budget and its expensesCreates a budget and records expenses. Its running totals do not update
The Partnerships tabTrack a partner organisation and its agreementsNothing in PTRS can create a partner, so this tab has nothing to show
The Compliance tabTrack a program's DELACARE, OCCL and federal requirementsShows a red 0% Compliant on every program and checks nothing
The Documents tabFile a program's compliance and funding documentsRecords a document's name and a typed web address, not a real file
The AI brainstorm toolsSeven AI drafting helpers for a program's charter, curriculum and moreWorks, from the sidebar and from inside a program

What happens on its own

No background task or scheduled job of any kind touches this module. A program whose end date passed months ago stays Active until somebody changes it by hand, a waitlist is never worked unless somebody opens the tab, and no enrolment, promotion or consent produces a notification, an email or any other message. That last part is true across all of PTRS: PTRS has never sent a notification of any kind, anywhere in the product.

What it connects to

Connects toHow
MembersEnrolling a child into a program, and the licensed-capacity check that runs when you do, both happen here, not on the child's record. The child's own Programs tab reads this module's tables, and the link is solid, with one caveat: the consent status that tab shows is never written by anything
CentersEnrolling a child checks the site's licensed capacity, held on the site's own profile in Centers. This is the only place in PTRS that check is ever consulted
AttendanceAn attendance session is meant to attach to a program's schedule. Structural only: no session can be created here, so there is nothing for an attendance session to attach to
CACFPA meal count is taken against children on a roll, and CACFP keeps an entirely separate enrolment of its own with no shared identifier
NotificationsNot connected. Nothing in Programs sends a message of any kind
StaffAssigning a staff member to a program, and checking their credentials against it, are both meant to work together. Assigning, listing and removing all work; the credential check, the only one in PTRS that runs against a specific program, can never actually run

Not yet available

Where to go next

Do a task:

Look something up:

Understand why:

When something goes wrong: Programs troubleshooting.

Checked against PTRS on 7 September 2026.