Updates after testing

This commit is contained in:
emfurst 2026-03-30 20:42:08 -04:00
commit 04095c9970
15 changed files with 238 additions and 33 deletions

View file

@ -221,10 +221,12 @@ def query_student_staff_ratios(conn: duckdb.DuckDBPyConnection) -> pl.DataFrame:
def query_growth_index(conn: duckdb.DuckDBPyConnection) -> pl.DataFrame:
"""Management vs enrollment growth, indexed to first year = 100."""
"""Management, faculty, and enrollment growth, indexed to first year = 100."""
return conn.execute("""
WITH base AS (
SELECT s.management_total AS base_mgmt, e.total_enrollment AS base_enrl
SELECT s.management_total AS base_mgmt,
s.faculty_total AS base_fac,
e.total_enrollment AS base_enrl
FROM raw_ipeds_staff s
JOIN raw_ipeds_enrollment e ON e.unitid = s.unitid AND e.year = s.year
WHERE s.unitid = ?
@ -232,9 +234,12 @@ def query_growth_index(conn: duckdb.DuckDBPyConnection) -> pl.DataFrame:
)
SELECT s.year,
s.management_total,
s.faculty_total,
e.total_enrollment,
ROUND(s.management_total * 100.0
/ NULLIF((SELECT base_mgmt FROM base), 0), 1) AS mgmt_index,
ROUND(s.faculty_total * 100.0
/ NULLIF((SELECT base_fac FROM base), 0), 1) AS faculty_index,
ROUND(e.total_enrollment * 100.0
/ NULLIF((SELECT base_enrl FROM base), 0), 1) AS enrollment_index
FROM raw_ipeds_staff s