ELO Staffing Dashboard Planning
For: Romoland USD (internal planning) Status: Paused - Surya deprioritized; will revisit for SAUSD summer staffing (registration opens Feb 2025) Context: Create report showing student registrations per grade per program with CA staffing ratio calculations
Requirements (from ticket)
- Display student count by grade per program
- Show enrollment vs. waitlist status
- Calculate staff needs based on CA ratios:
- 1:20 standard staff-to-pupil ratio
- 1:10 for TK/K pupils (EC Section 46120(b)(2)(D))
- Mixed groups with ANY TK/K must use 1:10 ratio
Schema Findings
Program Structure
- Programs identified by
metadata.tags(e.g.,["ELOP", "asp", "Explorers"]) - Tags distinguish: ELOP, ASES, AR (Attendance Recovery), SAT (Saturday)
waitlistOnlyflag indicates enrollment-closed programs- Cached counts available:
enrollmentCountCache,waitlistCountCache
Enrollment Model
| Table | Purpose | Volume |
|---|---|---|
enrollment | Student → Program link | 3,544 |
program_waitlist | Separate waitlist table | 821 |
registration | Student → Session (daily) | 296,941 |
Key: Enrolled vs waitlisted are separate tables, not a status column.
Grade Data
- Stored in
dependent.metadata.gradeas integer - Values: -1 (PreK), 0 (K), 1-12
grade_lookuptable maps to display names- Program grade requirements in
program.metadata.gradesarray
Staff Assignment Gap
Critical finding: program.metadata.assignedStaffs is NOT populated for main ELOP programs.
- Only AR (Attendance Recovery) programs have staff assigned
- 137 staff exist in
organization_user_relationship(role=‘staff’) - Staff have
locationIdsbut no program-level assignment
This means dashboard can only show required staff (calculated), not actual staff or gap analysis.
Dashboard Design (Draft)
Staffing projection tool rather than gap analysis:
Program | Location | TK/K | 1-8 | Total | Ratio | Staff Req
--------------|----------|------|-----|-------|-------|----------
Explorers-GH | GH | 15 | 94 | 109 | 1:10 | 11
Explorers-BRES| BRES | 12 | 105 | 117 | 1:10 | 12
Calculation logic:
IF (TK/K count > 0) THEN ratio = 1:10, staff = CEIL(total/10)
ELSE ratio = 1:20, staff = CEIL(total/20)Sample ELOP Programs (current data)
| Program | Enrolled | Waitlisted | Staff Assigned |
|---|---|---|---|
| Explorers-GH | 109 | 67 | 0 |
| Explorers-BRES | 117 | 48 | 0 |
| Explorers-EACMS | 103 | 48 | 0 |
| Explorers-HVES | 146 | 31 | 0 |
Next Steps (When Resumed)
- Clarify if staff assignment data exists elsewhere (spreadsheet?)
- Decide: calculate for enrolled only, or enrolled + waitlist?
- Consider “what-if” tool where users input actual staff counts
- Build for SAUSD summer staffing first (Feb 2025 registration)
Related: Hub