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)
  • waitlistOnly flag indicates enrollment-closed programs
  • Cached counts available: enrollmentCountCache, waitlistCountCache

Enrollment Model

TablePurposeVolume
enrollmentStudent → Program link3,544
program_waitlistSeparate waitlist table821
registrationStudent → Session (daily)296,941

Key: Enrolled vs waitlisted are separate tables, not a status column.

Grade Data

  • Stored in dependent.metadata.grade as integer
  • Values: -1 (PreK), 0 (K), 1-12
  • grade_lookup table maps to display names
  • Program grade requirements in program.metadata.grades array

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 locationIds but 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)

ProgramEnrolledWaitlistedStaff Assigned
Explorers-GH109670
Explorers-BRES117480
Explorers-EACMS103480
Explorers-HVES146310

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

Tags: romoland elop staffing dashboard paused