Run an operational report
The operational reports screen is a catalogue of ten reports grouped by category. Pick one, read it as a table, and export it as a spreadsheet or a workbook.
Five of the ten return real data. The other five read tables that nothing writes, or carry a column that can only ever hold one value. Each is marked below.
Run one
- Open the operational reports catalogue.
- Select a report card. Financial Summary navigates to its own screen; the other nine render here directly.
- A table appears with export buttons above it.
- Back to Report Catalog returns to the list.
You cannot set a date range
The screen calls the underlying read with only the current year and nothing else. There is no date choice, no location choice and no year choice on this page.
The consequence: Monthly Attendance is the only report that actually uses the year sent. Daily Attendance, Weekly Attendance, Incident Log and Meal Count all fall back to the server's default of the last 30 days, and the screen does not say so. The four remaining reports are point in time and take no dates at all.
The read itself accepts a start date, an end date and a location. If you need a different window, it can be requested directly. See who can do what with analytics and reports.
The ten reports
| Report | Category | Returns | Trust it? |
|---|---|---|---|
| Daily Attendance | Attendance | Date, location, total check-ins, peak headcount, unique members, average duration | No, always empty. Reads the summary table that has no writer |
| Weekly Attendance | Attendance | Week, date span, totals, average, peak | No, always empty. Same table |
| Monthly Attendance | Attendance | Month, totals, average, peak, days with data | No, always empty. Same table |
| Enrollment Roster | Enrollment | Member name, location, program, enrolled date, status, active enrolments only | Yes |
| Staff Roster | Staff | Name, location, email, role, hire date, active flag | Yes |
| Incident Log | Incidents | Date, location, type, severity, status, description, OCCL-required flag | Yes, last 30 days |
| Meal Count | CACFP | Date, location, meal type, total meals served, validity flag | Partly. The meal counts are real; the validity column reads false on every row in every installed copy of PTRS |
| Compliance Summary | Compliance | Location, overall score, evaluated date, active alerts | No. The score reads zero and alerts read zero for every location, because neither underlying table can be written |
| Financial Summary | Financial | Funders and total funding | Routes to its own screen |
| Demographic Summary | Demographics | Total active members, age groups, gender distribution, ethnicity breakdown | Yes |
An empty attendance report renders as an empty table, not as a message, which looks exactly like a genuinely quiet month. See why analytics figures read zero.
Three catalogue descriptions promise fields that are not there
The card text comes from a fixed catalogue and does not match what the report actually contains, in three places.
| Card says | The report actually contains |
|---|---|
| Daily Attendance mentions check-out counts | Check-ins, peak headcount, unique members, average duration. There is no check-out column, and PTRS creates no check-out record anywhere |
| Staff Roster mentions credential status | Name, location, email, role, hire date, active flag. No credential field |
| Meal Count mentions an age-group breakdown | Date, location, meal type, total served, validity. No age-group breakdown |
The page's own opening line is loose too: it names attendance, members, demographics, financial and programs, while the catalogue's real categories are Attendance, Enrollment, Staff, Incidents, CACFP, Compliance, Financial and Demographics.
Exporting
The workbook export is built on the server and is the one to prefer. It produces one sheet for most reports, four sheets for Demographic Summary, and always appends a Report Info sheet with the report's name, type and period.
The spreadsheet export is built in the browser and does not escape quotes
This screen builds its spreadsheet export in the browser and wraps each value in quotation marks without doubling any quotation mark already inside it. Any cell containing one ends its field early and shifts every column after it on that row.
The report most exposed to this is the Incident Log, whose description column holds free-typed narrative, exactly where a quotation mark is likely to appear.
Use the workbook export for the Incident Log instead. The equivalent spreadsheet button on the financial summary escapes quotation marks correctly; this one does not.
Report types PTRS does not recognise
The read checks the report type against a fixed set of ten names and refuses anything else, saying the type is unknown. PTRS's own error catalogue describes this refusal differently from what is actually returned, so an integrator calling the read directly should expect the refusal PTRS actually sends, not the one its own documentation names.
Related
Checked against PTRS on 7 September 2026.