Program Registration Audit Report
Date: 2026-01-02
District: Beaumont USD
Linear: ATT-2099
Impact: Compliance & Auditing
Status: Complete
Overview
Created a comprehensive Program Registration Audit Report in Explo that displays student enrollment information, parent signatures, and program acknowledgement tracking. This report enables administrators to verify compliance with program registration requirements and provides auditors with complete documentation of parent acknowledgements.
Business Need
Problem
Districts needed a way to:
- Verify that parents have signed acknowledgement forms for program enrollment
- Audit registration compliance for specific programs or students
- Document which acknowledgement steps parents agreed to at registration
- Track registration dates and parent signature timestamps
Use Cases
- Student-specific audits: Run from student card to see all program registrations for one student
- Program-wide audits: Filter by program and date range to review all registrations for compliance
- Acknowledgement verification: Confirm parent signatures and timestamps for audit purposes
Technical Implementation
Database Schema Analysis
Used Metabase tools to explore Beaumont database structure:
- enrollment table: Contains registration records with
state(‘complete’, ‘waitlist’),created_attimestamp, and metadata with parent signature info - program table: Has
descriptioncolumn (text) andmetadata(jsonb) containing acknowledgement steps - dependent table: Student information with
metadatacontainingschoolStudentId,grade, andmainLocationId - location table: School information joined via
mainLocationId
Key metadata fields discovered:
// enrollment.metadata
{
"termsAcceptance": {
"signature": "Parent Name",
"timestamp": "2025-11-06T06:59:10Z"
}
}
// program.metadata
{
"acknowledgementStepsCheckboxes": [
{"en": "I acknowledge...", "es": "...", "vi": "...", "zh_Hans": "..."}
]
}SQL Query Development
Built query with these components:
Core joins:
FROM enrollment
INNER JOIN dependent ON enrollment.dependent_id = dependent.id
INNER JOIN program ON enrollment.program_id = program.id
LEFT JOIN location ON location.id = (dependent.metadata->>'mainLocationId')::uuidAcknowledgement steps parsing: Used subquery to extract English-only text from multilingual acknowledgement steps and format with numbering:
(
SELECT STRING_AGG(
step_order || '. ' || CASE
WHEN jsonb_typeof(step_value) = 'object' THEN step_value->>'en'
ELSE step_value::text
END,
E'\n' ORDER BY step_order
)
FROM jsonb_array_elements(program.metadata->'acknowledgementStepsCheckboxes')
WITH ORDINALITY AS t(step_value, step_order)
) AS "program_acknowledgement_steps"Key features:
- Extracts only English text from acknowledgement steps (handles both object format with translations and plain text)
- Numbers each step automatically (1., 2., 3., etc.)
- Separates steps with single newlines for proper formatting
- Uses
TRIM()on program description to remove leading/trailing whitespace - Formats timestamps in Pacific timezone with MM/DD/YYYY HH12:MI:SS AM format
- Includes both ‘complete’ and ‘waitlist’ enrollment states
Parameters:
{{student_name}}- Optional filter by student first/last name (LIKE pattern){{program}}- Required program name filter (single select){{date.startDate}}/{{date.endDate}}- Optional date range filter{{sites}}- Optional school site filter (single select){{grade}}- Optional grade filter (single select)
HTML Presentation
Created two-component presentation in Explo:
Component 1: Program Information
<div style="font-family: Arial, sans-serif; max-width: 9000px; margin: 20px 0;">
<h3 style="color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 10px;">
Program Information
</h3>
<h4 style="color: #2c3e50; margin: 20px 0 10px 0;">Program Description</h4>
<div style="line-height: 1.8; color: #34495e; white-space: pre-line;
padding: 15px; background-color: #f8f9fa;
border-left: 4px solid #6c757d; margin: 0;">
{{audit_registration.program_description}}
</div>
</div>Component 2: Acknowledgement Steps
<div style="font-family: Arial, sans-serif; max-width: 9000px; margin: 0;">
<h4 style="color: #2c3e50; margin: 20px 0 10px 0;">Acknowledgement Steps</h4>
<div style="line-height: 1.6; color: #34495e; white-space: pre-line;
padding: 15px; background-color: #f8f9fa;
border-left: 4px solid #6c757d; margin: 0;">
{{audit_registration.program_acknowledgement_steps}}
</div>
<div style="line-height: 1.6; color: #34495e; margin: 15px 0 0 0;
padding: 15px; background-color: #fff3cd;
border-left: 4px solid #ffc107; text-indent: 0;">
<strong>Important:</strong> All parents/guardians enrolling students in this
program must acknowledge and sign off on the steps listed above.
</div>
</div>Key styling decisions:
white-space: pre-line- Honors newlines but collapses other whitespaceline-height: 1.6- Provides comfortable reading spacing without excessive gaps- Gray boxes (
#f8f9fa) for program information sections - Yellow warning box (
#fff3cd) for important compliance note - Blue accents (
#3498db) for headers matching other reports - Explicit
margin: 0andtext-indent: 0to eliminate unwanted indentation
Technical Challenges & Solutions
Challenge 1: Multilingual acknowledgement steps
- Problem: Steps stored as JSON objects with translations (en, es, vi, zh_Hans)
- Solution: Used
jsonb_typeof()to detect object format, then extracted English text with->>'en'
Challenge 2: Inconsistent formatting
- Problem: Some programs had acknowledgements as plain strings, others as translation objects
- Solution: CASE statement handles both formats - checks type and extracts accordingly
Challenge 3: HTML rendering issues
- Problem: Initially tried single text block, HTML tags rendered as literal text
- Solution: Split into separate HTML components in Explo, each parsed independently
Challenge 4: Excessive line spacing
- Problem: Used double newlines (
\n\n) and high line-height (2.2), created huge gaps - Solution: Changed to single newlines (
\n) and reduced line-height to 1.6
Challenge 5: Text indentation
- Problem: Browser default styling added unwanted indentation to paragraphs
- Solution: Added explicit
text-indent: 0andmargin: 0to all content containers
Challenge 6: Program description location
- Problem: Initially looked for description in
program.metadata->>'description' - Solution: Discovered description is in dedicated
program.descriptioncolumn (text type, not jsonb)
Output Columns
| Column | Source | Format |
|---|---|---|
| First Name | dependent.first_name | Text |
| Last Name | dependent.last_name | Text |
| Student ID | dependent.metadata→>‘schoolStudentId’ | Text |
| School Name | location.name | Text |
| Program Name | program.name | Text |
| program_description | program.description | Text (trimmed) |
| program_acknowledgement_steps | program.metadata | Numbered list (English only) |
| Registration Date/Time | enrollment.created_at | MM/DD/YYYY HH12:MI:SS AM |
| Parent Name/Signature | enrollment.metadata | Text |
| Acknowledgment Signed Date/Time | enrollment.metadata | MM/DD/YYYY HH12:MI:SS AM |
| Grade | dependent.metadata→>‘grade’ | Formatted (PK, TK, K, 1st-12th) |
| Grade_Sort | dependent.metadata→>‘grade’ | Integer (hidden, for sorting) |
Business Impact
Value Delivered
- Compliance verification: Admins can quickly verify all required acknowledgements are signed
- Audit readiness: Complete documentation trail for program registrations
- Student-specific queries: Can run from student card for individual student audits
- Program-wide audits: Can review all registrations for a specific program within date range
- Time savings: Eliminates manual review of individual enrollment records
Key Features
- Includes both completed enrollments and waitlisted registrations
- Extracts only English text from multilingual acknowledgements
- Automatically numbers acknowledgement steps for clarity
- Shows parent signature name and exact timestamp
- Handles missing signatures gracefully (shows blank)
- Professional formatting matches other district reports
Future Enhancements
Potential improvements:
- Add filter to show only students missing acknowledgements
- Export to PDF for auditor submission
- Add column showing which specific steps were acknowledged (if stored in enrollment metadata)
- Summary count of registrations with/without signatures
- Link to student profile page from student ID
Related Work
- Attendance Recovery reporting queries
- P-1 PADC ADA Report structure
- Program metadata standardization across districts
Report accessible in Explo dashboard for Beaumont USD administrators and auditors