Spending and Class Size vs Performance: Findings Memo Regenerated: 2026-08-06 Scope - Data: 2024-2025 processed English, Math, Science school rows. - Outcome: Percent Proficient, reconstructed as Number Proficient / Scored Performance Denominator. - Predictors of interest: Overall spending per student, Classroom spending per student, Median class size. - Context controls (baseline continuity spec): Per-capita income, Adult BA+ rate, Regular attendance. - Companion context spec: Students Experiencing Poverty, with censored AAG disclosures represented by documented interval midpoints and their raw tokens/bounds preserved upstream. - Weighting: students with reported Level 1-4 results. Methods used 1) Weighted bivariate checks (correlation and simple slope). 2) Weighted multivariable OLS-style checks with controls. 3) Weighted ridge regression with 5-fold CV (to stabilize collinear spending variables). 4) District fixed-effects ridge (within-district demeaning) with CV and permutation importance. Executive summary - Your chart-level impression is largely confirmed: class size shows little robust predictive contribution once SES and attendance are included. - Spending shows a detectable but inconsistent contribution and is highly sensitive to context specification and model frame. - Education and attendance remain dominant in pooled models and many fixed-effects models, but not every poverty-controlled fixed-effects result. - Income is generally intermediate: weaker than education and attendance, often similar to or above spending. - The poverty-aware fixed-effects sensitivity is a qualification: the combined spending signal is notably larger for Math and Science than in the pooled poverty models, so a single project-wide rank ordering is too strong. Key findings by factor 1) Median class size - Bivariate association can appear positive. - After controls and regularization, standardized effects are near zero in all subjects. - Permutation importance is near zero in most settings. - Interpretation: class size is not a strong standalone predictor in these school-level cross-sections. 2) Spending (overall/classroom) - The two spending variables are highly collinear (weighted corr ~0.85 to 0.88). - Ridge regularization was necessary to reduce coefficient instability. - Combined spending signal (permutation drop in CV R2): - Per-capita-income spec, non-FE ridge: English 0.065, Math 0.013, Science 0.090. - Per-capita-income spec, FE ridge: English 0.307, Math 0.018, Science 0.061. - Poverty spec, non-FE ridge: English 0.010, Math 0.011, Science 0.010. - Poverty spec, FE ridge: English 0.001, Math 0.153, Science 0.093. - Interpretation: spending can carry a secondary signal, but strength is uneven across subjects, context controls, and model frames. The English income-spec FE result and the Math/Science poverty-spec FE results should be treated as sensitivity findings, not stable effects, until replicated with lagged spending and alternative fixed-effects specifications. 3) Education, attendance, income - Education and attendance produce the largest predictive contribution in the pooled models and most income-spec fixed-effects results. - Math FE ridge particularly emphasizes attendance. - Income remains meaningful but below education/attendance in most configurations. - Under the poverty-spec fixed-effects lens, combined spending exceeds BA+ in Math and exceeds both BA+ and attendance in Science; this exception is why the findings are described as model-sensitive rather than placed in a single ordering. How to interpret the apparent contradictions - Sign flips and coefficient changes across models are expected under strong collinearity (especially between overall and classroom spending). - Permutation importance is more stable for relative contribution than raw coefficient signs. - FE models answer a different question (within-district differences) than pooled models (between + within combined), so effect sizes are not directly interchangeable. What this means for the project - It is reasonable to say: "At this stage, class size remains weak, while spending is model-sensitive: usually secondary in pooled statewide models but more prominent in several fixed-effects specifications." - It is not yet reasonable to say: "Spending has no effect." This data structure (single-year spending, high collinearity, cross-sectional school aggregates) limits causal interpretation. Recommended next analyses (highest value first) 1) Lag-aligned resource models - Match outcomes to prior-year or multi-year averaged spending/class-size where possible. - Rationale: test outcomes may respond to resource conditions with delay. 2) FE + regularized nonlinear checks - Add spline terms for spending and attendance under ridge/elastic-net. - Rationale: linear effects may understate threshold or diminishing-return structure. 3) Spending decomposition - Replace or augment the available spending measures with more policy-proximal components (instructional share, staffing mix, support services, etc., if available). - Rationale: total spending may mask the relevant channel. 4) Robustness by school level (elementary/middle/high) - Run the same ridge/FE stack by school level. - Rationale: resource-performance coupling may differ by grade span. Files produced - Technical model report: docs/spending_class_size_ridge_report.txt - Companion OLS-style report: docs/spending_class_size_effects_report.txt - Scripts: scripts/report_spending_classsize_ridge.py scripts/report_spending_classsize_effects.py