Source document

data/analysis/philly-absenteeism-descriptives.json

Served verbatim from the project repository. Internal working document conventions apply: documents may reference file paths, branch names, and findings-ledger anchors from the repo.

{
 "meta": {
  "generated": "2026-09-08T16:11:58.541Z",
  "database": "served Postgres (DIRECT_URL), philly_* tables",
  "universe": "All SDP District-sector schools in the source attendance file with an unsuppressed all-students cell, INCLUDING since-closed schools (213-216 per year). The source file carries District sector only — no charter, cyber-charter, contracted, OR alternative schools. Series needing directory metadata (school level, demographic shares, ADA pairs) are restricted to directory-present schools; universe_reconciliation lists every school-year that restriction drops. n_students figures are sums of school-level student counts (students enrolled 10+ days at the school, per SDP); a student enrolled 10+ days at two schools counts at both, so these are student RECORDS, not distinct students.",
  "metric": "pct_below_90 = 100 − ('% with 90%+ Attendance (Yearly)'); weighted rates computed from the exact published numerators. Chronic-absenteeism PROXY; see /philly/methodology/metrics/chronic-absenteeism",
  "weighting": "weighted = student-weighted (Σ(denom−num90)/Σdenom); unweighted = school mean; suppressed cells excluded",
  "baseline_year": "2021-22",
  "baseline_caveat": "2021-22 is the first full in-person year in this file AND the Omicron-affected series maximum; there is no pre-pandemic anchor in the district's school-level file, and changes measured from a series maximum are bounded to be improvements. (Pre-pandemic context exists elsewhere: see external_context and the state series, whose attendance years reach back to 2017-18.)",
  "covid_year_excluded_from_trends": "2020-21",
  "covid_year_note": "2020-21 was mostly virtual, with hybrid in-person instruction from March 2021; SDP used multiple methods to determine presence during virtual instruction (SDP, Student Attendance Patterns in Philadelphia 2017-18 to 2021-22, June 2023). Shown, and excluded from the ANNUAL in-person recovery comparisons (citywide, grade, school-type, subgroup, stability); the monthly records block deliberately reports both all-year and in-person-only comparisons, labeled as such.",
  "external_context": {
   "source": "School District of Philadelphia, Office of Research and Evaluation, 'Student Attendance Patterns in Philadelphia, 2017-18 to 2021-22' (June 2023), https://www.philasd.org/research/wp-content/uploads/sites/90/2023/06/Student-Attendance-Patterns-in-Philadelphia-2017-18-to-2021-22-June-2023.pdf",
   "note": "HAND-TRANSCRIBED from the report's Table A-1 (not recomputed; not covered by the packet QA). District and Alternative schools; 2019-20 runs through March 2020. Cited for pre-pandemic context only.",
   "table_a1_schools_with_more_than_75pct_at_90plus": {
    "2017-18": 94,
    "2018-19": 97,
    "2019-20": 121,
    "2020-21": 83,
    "2021-22": 48
   },
   "table_a1_total_schools": {
    "2017-18": 240,
    "2018-19": 241,
    "2019-20": 241,
    "2020-21": 241,
    "2021-22": 241
   },
   "report_statement": "the share of students attending 90%+ of days rose from 2017-18 to 2019-20, then fell by 18 percentage points from 2019-20 to 2021-22 (report text; Figure 1 values are not machine-readable)"
  },
  "gender_series_note": "Gender restricted to schools reporting BOTH Male and Female: from 2021-22 SDP suppresses one of the two at every school where Non-Binary is suppressed (complementary suppression), including large high schools. The common set changes membership by year; gender_trend_fixed_panel holds it constant as a sensitivity check.",
  "sources": [
   "sdp_attendance_90_school (source CSV — primary)",
   "sdp_attendance_90_district_monthly (source CSV)",
   "served DB: attendance_rate_above_90 (crosscheck), average_daily_attendance, school directory, pct_* shares (2024-25)"
  ],
  "n_crosschecks": 15,
  "n_crosscheck_mismatches": 0,
  "crosscheck_tolerances": "weighted rates: 0.01 — the loaded percentages are published to 2 decimals, so each school's rate can differ from its exact-count rate by up to 0.005, and a weighted average of such errors is bounded by 0.005 when the school sets match; 0.01 is that bound plus a small explicit margin. Counts: exact",
  "max_abs_crosscheck_diff_rate": 0.0003,
  "n_source_only_school_years": 2,
  "n_db_only_school_years": 0,
  "corrections_log": "https://findwhat.works/schools/philly/methodology/metrics/chronic-absenteeism#corrections — the authoritative, dated record of every change; the summary below is partial",
  "revisions": "v4 (2026-09-08, second–fourth external audits) — sector medians and fixed panels; Black–White level pairs and 97-school panel; monthly records block; grade shape and subgroup peaks; hypothesis wording for the publisher offset; student-count comparisons independent of suppression in the QA; evidence-version identifiers. v3 (2026-09-07, external audit) — state attendance stored under attendance years (lagging indicator), 2019-20 workbook added (attendance year 2018-19), state series 2017-18..2023-24 with pandemic years hatched and no basis-change claim; gender fixed panel; within-school Black-White contrasts; closed-school inclusion effect signed from the data; student-record denominators labeled; SDP 10-day rule and PDE 90-day rule documented. v2 — source-CSV full universe for citywide/grade/distribution/stability/subgroups (closed schools included); exact numerators; Sector=District enforced; gender common-universe; Black-White common-school gap; Sep-Mar monthly aggregate; Spearman for CA-vs-ADA; universe reconciliation replaces the circular crosscheck. v1 — initial."
 },
 "citywide_trend": {
  "2020-21": {
   "weighted": 29.3364,
   "unweighted_mean": 32.4286,
   "p10": 7.676,
   "p25": 17.99,
   "p50": 33.8,
   "p75": 45.89,
   "p90": 55.754,
   "sd": 17.6436,
   "n_schools": 213,
   "n_students": 123628
  },
  "2021-22": {
   "weighted": 42.0701,
   "unweighted_mean": 43.5704,
   "p10": 18.801,
   "p25": 31.07,
   "p50": 44.055,
   "p75": 57.9475,
   "p90": 66.832,
   "sd": 18.1614,
   "n_schools": 214,
   "n_students": 126244
  },
  "2022-23": {
   "weighted": 39.0188,
   "unweighted_mean": 40.6141,
   "p10": 18.044,
   "p25": 28.88,
   "p50": 40.03,
   "p75": 53.555,
   "p90": 62.958,
   "sd": 16.7444,
   "n_schools": 215,
   "n_students": 124435
  },
  "2023-24": {
   "weighted": 38.1258,
   "unweighted_mean": 39.996,
   "p10": 16.995,
   "p25": 28.1475,
   "p50": 39.58,
   "p75": 53.4975,
   "p90": 62.485,
   "sd": 16.3043,
   "n_schools": 216,
   "n_students": 124034
  },
  "2024-25": {
   "weighted": 37.7351,
   "unweighted_mean": 39.6173,
   "p10": 17.075,
   "p25": 27.3425,
   "p50": 39.04,
   "p75": 52.055,
   "p90": 61.925,
   "sd": 16.3191,
   "n_schools": 216,
   "n_students": 124306
  }
 },
 "per_grade": {
  "1": {
   "2020-21": {
    "weighted": 33.6954,
    "n_schools": 146,
    "n_students": 9942
   },
   "2021-22": {
    "weighted": 41.0875,
    "n_schools": 147,
    "n_students": 9582
   },
   "2022-23": {
    "weighted": 39.8401,
    "n_schools": 147,
    "n_students": 10133
   },
   "2023-24": {
    "weighted": 37.379,
    "n_schools": 147,
    "n_students": 9920
   },
   "2024-25": {
    "weighted": 36.6136,
    "n_schools": 147,
    "n_students": 9745
   },
   "chg_baseline_to_latest": -4.4739
  },
  "2": {
   "2020-21": {
    "weighted": 32.8797,
    "n_schools": 146,
    "n_students": 10140
   },
   "2021-22": {
    "weighted": 40.8006,
    "n_schools": 147,
    "n_students": 9892
   },
   "2022-23": {
    "weighted": 37.1242,
    "n_schools": 147,
    "n_students": 9479
   },
   "2023-24": {
    "weighted": 35.9657,
    "n_schools": 148,
    "n_students": 10143
   },
   "2024-25": {
    "weighted": 34.6754,
    "n_schools": 147,
    "n_students": 9811
   },
   "chg_baseline_to_latest": -6.1252
  },
  "3": {
   "2020-21": {
    "weighted": 30.0402,
    "n_schools": 146,
    "n_students": 10193
   },
   "2021-22": {
    "weighted": 40.7459,
    "n_schools": 147,
    "n_students": 10109
   },
   "2022-23": {
    "weighted": 36.3721,
    "n_schools": 147,
    "n_students": 9708
   },
   "2023-24": {
    "weighted": 33.5377,
    "n_schools": 148,
    "n_students": 9458
   },
   "2024-25": {
    "weighted": 34.2956,
    "n_schools": 148,
    "n_students": 10115
   },
   "chg_baseline_to_latest": -6.4503
  },
  "4": {
   "2020-21": {
    "weighted": 30.3571,
    "n_schools": 146,
    "n_students": 10248
   },
   "2021-22": {
    "weighted": 39.114,
    "n_schools": 147,
    "n_students": 10045
   },
   "2022-23": {
    "weighted": 35.6279,
    "n_schools": 147,
    "n_students": 9762
   },
   "2023-24": {
    "weighted": 33.2685,
    "n_schools": 148,
    "n_students": 9763
   },
   "2024-25": {
    "weighted": 31.8942,
    "n_schools": 147,
    "n_students": 9450
   },
   "chg_baseline_to_latest": -7.2198
  },
  "5": {
   "2020-21": {
    "weighted": 29.1975,
    "n_schools": 146,
    "n_students": 9994
   },
   "2021-22": {
    "weighted": 38.3571,
    "n_schools": 146,
    "n_students": 9800
   },
   "2022-23": {
    "weighted": 33.3159,
    "n_schools": 147,
    "n_students": 9548
   },
   "2023-24": {
    "weighted": 31.6262,
    "n_schools": 150,
    "n_students": 9587
   },
   "2024-25": {
    "weighted": 30.9561,
    "n_schools": 150,
    "n_students": 9717
   },
   "chg_baseline_to_latest": -7.401
  },
  "6": {
   "2020-21": {
    "weighted": 29.145,
    "n_schools": 123,
    "n_students": 9439
   },
   "2021-22": {
    "weighted": 38.8508,
    "n_schools": 123,
    "n_students": 9346
   },
   "2022-23": {
    "weighted": 34.7769,
    "n_schools": 124,
    "n_students": 9144
   },
   "2023-24": {
    "weighted": 33.4027,
    "n_schools": 124,
    "n_students": 9131
   },
   "2024-25": {
    "weighted": 32.5123,
    "n_schools": 124,
    "n_students": 9135
   },
   "chg_baseline_to_latest": -6.3385
  },
  "7": {
   "2020-21": {
    "weighted": 29.6156,
    "n_schools": 119,
    "n_students": 9522
   },
   "2021-22": {
    "weighted": 38.51,
    "n_schools": 122,
    "n_students": 9369
   },
   "2022-23": {
    "weighted": 35.0336,
    "n_schools": 123,
    "n_students": 9214
   },
   "2023-24": {
    "weighted": 35.0335,
    "n_schools": 124,
    "n_students": 9097
   },
   "2024-25": {
    "weighted": 33.396,
    "n_schools": 124,
    "n_students": 9049
   },
   "chg_baseline_to_latest": -5.114
  },
  "8": {
   "2020-21": {
    "weighted": 28.9003,
    "n_schools": 118,
    "n_students": 9512
   },
   "2021-22": {
    "weighted": 38.5932,
    "n_schools": 119,
    "n_students": 9525
   },
   "2022-23": {
    "weighted": 35.3915,
    "n_schools": 123,
    "n_students": 9118
   },
   "2023-24": {
    "weighted": 33.517,
    "n_schools": 124,
    "n_students": 9073
   },
   "2024-25": {
    "weighted": 33.8361,
    "n_schools": 124,
    "n_students": 9017
   },
   "chg_baseline_to_latest": -4.7571
  },
  "9": {
   "2020-21": {
    "weighted": 26.4213,
    "n_schools": 52,
    "n_students": 10325
   },
   "2021-22": {
    "weighted": 45.9464,
    "n_schools": 52,
    "n_students": 12051
   },
   "2022-23": {
    "weighted": 43.0176,
    "n_schools": 53,
    "n_students": 11751
   },
   "2023-24": {
    "weighted": 44.5673,
    "n_schools": 53,
    "n_students": 10943
   },
   "2024-25": {
    "weighted": 44.1683,
    "n_schools": 53,
    "n_students": 11026
   },
   "chg_baseline_to_latest": -1.7781
  },
  "10": {
   "2020-21": {
    "weighted": 26.9023,
    "n_schools": 52,
    "n_students": 9791
   },
   "2021-22": {
    "weighted": 44.6349,
    "n_schools": 52,
    "n_students": 9860
   },
   "2022-23": {
    "weighted": 43.6677,
    "n_schools": 53,
    "n_students": 10557
   },
   "2023-24": {
    "weighted": 45.7126,
    "n_schools": 53,
    "n_students": 10391
   },
   "2024-25": {
    "weighted": 46.3229,
    "n_schools": 53,
    "n_students": 9736
   },
   "chg_baseline_to_latest": 1.688
  },
  "11": {
   "2020-21": {
    "weighted": 25.3726,
    "n_schools": 51,
    "n_students": 8320
   },
   "2021-22": {
    "weighted": 45.2316,
    "n_schools": 51,
    "n_students": 8441
   },
   "2022-23": {
    "weighted": 41.2862,
    "n_schools": 53,
    "n_students": 8257
   },
   "2023-24": {
    "weighted": 44.3163,
    "n_schools": 53,
    "n_students": 8841
   },
   "2024-25": {
    "weighted": 45.6555,
    "n_schools": 53,
    "n_students": 9092
   },
   "chg_baseline_to_latest": 0.4239
  },
  "12": {
   "2020-21": {
    "weighted": 27.7806,
    "n_schools": 52,
    "n_students": 7984
   },
   "2021-22": {
    "weighted": 51.3568,
    "n_schools": 51,
    "n_students": 8365
   },
   "2022-23": {
    "weighted": 49.964,
    "n_schools": 53,
    "n_students": 8342
   },
   "2023-24": {
    "weighted": 49.3617,
    "n_schools": 53,
    "n_students": 8225
   },
   "2024-25": {
    "weighted": 49.3062,
    "n_schools": 53,
    "n_students": 9009
   },
   "chg_baseline_to_latest": -2.0506
  },
  "K": {
   "2020-21": {
    "weighted": 30.202,
    "n_schools": 146,
    "n_students": 8218
   },
   "2021-22": {
    "weighted": 44.0257,
    "n_schools": 147,
    "n_students": 9792
   },
   "2022-23": {
    "weighted": 41.7464,
    "n_schools": 146,
    "n_students": 9402
   },
   "2023-24": {
    "weighted": 38.0388,
    "n_schools": 147,
    "n_students": 9443
   },
   "2024-25": {
    "weighted": 36.5149,
    "n_schools": 148,
    "n_students": 9377
   },
   "chg_baseline_to_latest": -7.5108
  }
 },
 "per_grade_shape": {
  "2021-22": {
   "trough_grade": "5",
   "trough_value": 38.3571,
   "grades_higher_than_previous": [
    "6",
    "8",
    "9",
    "11",
    "12"
   ],
   "k_to_grade1_direction": "down",
   "monotone_decline_k_to_trough": true,
   "monotone_rise_9_to_12": false
  },
  "2024-25": {
   "trough_grade": "5",
   "trough_value": 30.9561,
   "grades_higher_than_previous": [
    "1",
    "6",
    "7",
    "8",
    "9",
    "10",
    "12"
   ],
   "k_to_grade1_direction": "up",
   "monotone_decline_k_to_trough": false,
   "monotone_rise_9_to_12": false
  }
 },
 "per_grade_change": {
  "1": -4.4739,
  "2": -6.1252,
  "3": -6.4503,
  "4": -7.2198,
  "5": -7.401,
  "6": -6.3385,
  "7": -5.114,
  "8": -4.7571,
  "9": -1.7781,
  "10": 1.688,
  "11": 0.4239,
  "12": -2.0506,
  "K": -7.5108
 },
 "school_level_trend": {
  "Elementary": {
   "2020-21": {
    "weighted": 30.7401,
    "unweighted_mean": 33.706,
    "n_schools": 45
   },
   "2021-22": {
    "weighted": 40.9695,
    "unweighted_mean": 43.0171,
    "n_schools": 45
   },
   "2022-23": {
    "weighted": 37.0416,
    "unweighted_mean": 38.9253,
    "n_schools": 45
   },
   "2023-24": {
    "weighted": 34.1688,
    "unweighted_mean": 37.3704,
    "n_schools": 45
   },
   "2024-25": {
    "weighted": 32.9682,
    "unweighted_mean": 35.9411,
    "n_schools": 45
   },
   "chg_baseline_to_latest": -8.0013
  },
  "Elementary-Middle": {
   "2020-21": {
    "weighted": 32.9771,
    "unweighted_mean": 35.4438,
    "n_schools": 102
   },
   "2021-22": {
    "weighted": 41.7386,
    "unweighted_mean": 44.0402,
    "n_schools": 103
   },
   "2022-23": {
    "weighted": 38.1769,
    "unweighted_mean": 40.4746,
    "n_schools": 103
   },
   "2023-24": {
    "weighted": 36.1996,
    "unweighted_mean": 38.8959,
    "n_schools": 104
   },
   "2024-25": {
    "weighted": 35.6312,
    "unweighted_mean": 38.8742,
    "n_schools": 104
   },
   "chg_baseline_to_latest": -6.1074
  },
  "Middle": {
   "2020-21": {
    "weighted": 19.5852,
    "unweighted_mean": 21.7908,
    "n_schools": 13
   },
   "2021-22": {
    "weighted": 31.4456,
    "unweighted_mean": 32.8692,
    "n_schools": 13
   },
   "2022-23": {
    "weighted": 30.3841,
    "unweighted_mean": 30.9086,
    "n_schools": 14
   },
   "2023-24": {
    "weighted": 30.7633,
    "unweighted_mean": 33.57,
    "n_schools": 14
   },
   "2024-25": {
    "weighted": 29.4778,
    "unweighted_mean": 32.1664,
    "n_schools": 14
   },
   "chg_baseline_to_latest": -1.9678
  },
  "Middle-High": {
   "2020-21": {
    "weighted": 6.9032,
    "unweighted_mean": 9.27,
    "n_schools": 6
   },
   "2021-22": {
    "weighted": 17.4344,
    "unweighted_mean": 20.3583,
    "n_schools": 6
   },
   "2022-23": {
    "weighted": 18.9636,
    "unweighted_mean": 22.44,
    "n_schools": 6
   },
   "2023-24": {
    "weighted": 19.205,
    "unweighted_mean": 23.0683,
    "n_schools": 6
   },
   "2024-25": {
    "weighted": 18.6125,
    "unweighted_mean": 22.9183,
    "n_schools": 6
   },
   "chg_baseline_to_latest": 1.1781
  },
  "High": {
   "2020-21": {
    "weighted": 28.085,
    "unweighted_mean": 30.6943,
    "n_schools": 46
   },
   "2021-22": {
    "weighted": 48.589,
    "unweighted_mean": 48.977,
    "n_schools": 46
   },
   "2022-23": {
    "weighted": 45.8911,
    "unweighted_mean": 47.7479,
    "n_schools": 47
   },
   "2023-24": {
    "weighted": 47.3541,
    "unweighted_mean": 49.0194,
    "n_schools": 47
   },
   "2024-25": {
    "weighted": 47.7765,
    "unweighted_mean": 49.1326,
    "n_schools": 47
   },
   "chg_baseline_to_latest": -0.8125
  }
 },
 "ca_vs_ada": {
  "2020-21": {
   "weighted_ca": 29.3657,
   "weighted_ada": 89.6617,
   "school_level_r": -0.9809,
   "spearman_r": -0.9867,
   "r_squared": 0.9622,
   "n_schools": 212
  },
  "2021-22": {
   "weighted_ca": 42.0446,
   "weighted_ada": 87.6804,
   "school_level_r": -0.9502,
   "spearman_r": -0.9845,
   "r_squared": 0.9029,
   "n_schools": 213
  },
  "2022-23": {
   "weighted_ca": 39.0188,
   "weighted_ada": 88.6571,
   "school_level_r": -0.9527,
   "spearman_r": -0.9847,
   "r_squared": 0.9076,
   "n_schools": 215
  },
  "2023-24": {
   "weighted_ca": 38.1259,
   "weighted_ada": 88.8398,
   "school_level_r": -0.953,
   "spearman_r": -0.9854,
   "r_squared": 0.9081,
   "n_schools": 216
  },
  "2024-25": {
   "weighted_ca": 37.7354,
   "weighted_ada": 89.1626,
   "school_level_r": -0.9441,
   "spearman_r": -0.9825,
   "r_squared": 0.8913,
   "n_schools": 216
  }
 },
 "subgroup_trend": {
  "BLACK": {
   "2020-21": {
    "weighted": 37.0453,
    "n_schools": 211,
    "n_students": 58639
   },
   "2021-22": {
    "weighted": 49.5101,
    "n_schools": 211,
    "n_students": 58790
   },
   "2022-23": {
    "weighted": 45.8305,
    "n_schools": 214,
    "n_students": 55738
   },
   "2023-24": {
    "weighted": 45.5258,
    "n_schools": 215,
    "n_students": 53875
   },
   "2024-25": {
    "weighted": 45.4619,
    "n_schools": 215,
    "n_students": 52864
   }
  },
  "HISPANIC": {
   "2020-21": {
    "weighted": 33.2557,
    "n_schools": 182,
    "n_students": 28765
   },
   "2021-22": {
    "weighted": 47.0465,
    "n_schools": 193,
    "n_students": 31386
   },
   "2022-23": {
    "weighted": 43.2336,
    "n_schools": 194,
    "n_students": 32861
   },
   "2023-24": {
    "weighted": 41.8128,
    "n_schools": 205,
    "n_students": 34322
   },
   "2024-25": {
    "weighted": 41.8384,
    "n_schools": 203,
    "n_students": 34540
   }
  },
  "WHITE": {
   "2020-21": {
    "weighted": 14.335,
    "n_schools": 116,
    "n_students": 17684
   },
   "2021-22": {
    "weighted": 27.7387,
    "n_schools": 116,
    "n_students": 17618
   },
   "2022-23": {
    "weighted": 26.1354,
    "n_schools": 112,
    "n_students": 17505
   },
   "2023-24": {
    "weighted": 24.5864,
    "n_schools": 108,
    "n_students": 17530
   },
   "2024-25": {
    "weighted": 23.5889,
    "n_schools": 112,
    "n_students": 17983
   }
  },
  "ASIAN": {
   "2020-21": {
    "weighted": 6.9909,
    "n_schools": 87,
    "n_students": 11372
   },
   "2021-22": {
    "weighted": 15.4253,
    "n_schools": 95,
    "n_students": 11721
   },
   "2022-23": {
    "weighted": 15.6367,
    "n_schools": 92,
    "n_students": 11780
   },
   "2023-24": {
    "weighted": 15.7717,
    "n_schools": 95,
    "n_students": 12142
   },
   "2024-25": {
    "weighted": 15.3287,
    "n_schools": 97,
    "n_students": 12519
   }
  },
  "TWO_OR_MORE_RACES": {
   "2020-21": {
    "weighted": 22.3957,
    "n_schools": 126,
    "n_students": 4099
   },
   "2021-22": {
    "weighted": 37.8125,
    "n_schools": 110,
    "n_students": 3520
   },
   "2022-23": {
    "weighted": 36.8812,
    "n_schools": 115,
    "n_students": 3636
   },
   "2023-24": {
    "weighted": 35.5906,
    "n_schools": 109,
    "n_students": 3293
   },
   "2024-25": {
    "weighted": 34.9816,
    "n_schools": 117,
    "n_students": 3539
   }
  }
 },
 "subgroup_peak_year": {
  "BLACK": {
   "peak_in_person_year": "2021-22",
   "peak_value": 49.5101,
   "range_in_person": 4.0482
  },
  "HISPANIC": {
   "peak_in_person_year": "2021-22",
   "peak_value": 47.0465,
   "range_in_person": 5.2337
  },
  "WHITE": {
   "peak_in_person_year": "2021-22",
   "peak_value": 27.7387,
   "range_in_person": 4.1498
  },
  "ASIAN": {
   "peak_in_person_year": "2023-24",
   "peak_value": 15.7717,
   "range_in_person": 0.443
  },
  "TWO_OR_MORE_RACES": {
   "peak_in_person_year": "2021-22",
   "peak_value": 37.8125,
   "range_in_person": 2.8309
  }
 },
 "gender_trend_common": {
  "MALE": {
   "2020-21": {
    "weighted": 31.2141,
    "n_schools": 212,
    "n_students": 63939
   },
   "2021-22": {
    "weighted": 45.6052,
    "n_schools": 157,
    "n_students": 41287
   },
   "2022-23": {
    "weighted": 40.4075,
    "n_schools": 165,
    "n_students": 44519
   },
   "2023-24": {
    "weighted": 40.0974,
    "n_schools": 165,
    "n_students": 44170
   },
   "2024-25": {
    "weighted": 38.5273,
    "n_schools": 171,
    "n_students": 46105
   }
  },
  "FEMALE": {
   "2020-21": {
    "weighted": 27.6027,
    "n_schools": 212,
    "n_students": 58853
   },
   "2021-22": {
    "weighted": 45.3034,
    "n_schools": 157,
    "n_students": 37463
   },
   "2022-23": {
    "weighted": 40.2145,
    "n_schools": 165,
    "n_students": 40846
   },
   "2023-24": {
    "weighted": 40.3856,
    "n_schools": 165,
    "n_students": 40559
   },
   "2024-25": {
    "weighted": 38.1617,
    "n_schools": 171,
    "n_students": 42409
   }
  }
 },
 "gender_trend_fixed_panel": {
  "years": [
   "2021-22",
   "2022-23",
   "2023-24",
   "2024-25"
  ],
  "n_schools": 134,
  "note": "Schools reporting both Male and Female (unsuppressed) in every in-person year; a sensitivity check on the per-year common-school series.",
  "MALE": {
   "2021-22": {
    "weighted": 44.9725,
    "n_schools": 134,
    "n_students": 34381
   },
   "2022-23": {
    "weighted": 40.7958,
    "n_schools": 134,
    "n_students": 33273
   },
   "2023-24": {
    "weighted": 39.0562,
    "n_schools": 134,
    "n_students": 32781
   },
   "2024-25": {
    "weighted": 38.5264,
    "n_schools": 134,
    "n_students": 32479
   }
  },
  "FEMALE": {
   "2021-22": {
    "weighted": 44.9716,
    "n_schools": 134,
    "n_students": 31113
   },
   "2022-23": {
    "weighted": 40.7787,
    "n_schools": 134,
    "n_students": 30153
   },
   "2023-24": {
    "weighted": 39.1802,
    "n_schools": 134,
    "n_students": 29788
   },
   "2024-25": {
    "weighted": 38.1253,
    "n_schools": 134,
    "n_students": 29904
   }
  }
 },
 "black_white_common": {
  "2020-21": {
   "black": 29.6806,
   "white": 14.5513,
   "gap": 15.1293,
   "black_mean_school": 30.0882,
   "white_mean_school": 21.6969,
   "gap_within_school_equal_weight": 8.3912,
   "black_bw_weighted": 26.5509,
   "white_bw_weighted": 19.2117,
   "gap_within_school_bw_weight": 7.3392,
   "n_schools": 114
  },
  "2021-22": {
   "black": 45.3348,
   "white": 27.9294,
   "gap": 17.4054,
   "black_mean_school": 43.5293,
   "white_mean_school": 35.1152,
   "gap_within_school_equal_weight": 8.4141,
   "black_bw_weighted": 41.4354,
   "white_bw_weighted": 34.4241,
   "gap_within_school_bw_weight": 7.0113,
   "n_schools": 113
  },
  "2022-23": {
   "black": 40.1534,
   "white": 25.7428,
   "gap": 14.4106,
   "black_mean_school": 38.5973,
   "white_mean_school": 32.0006,
   "gap_within_school_equal_weight": 6.5967,
   "black_bw_weighted": 36.3547,
   "white_bw_weighted": 31.3126,
   "gap_within_school_bw_weight": 5.0421,
   "n_schools": 111
  },
  "2023-24": {
   "black": 39.9685,
   "white": 24.2472,
   "gap": 15.7213,
   "black_mean_school": 37.6445,
   "white_mean_school": 29.3607,
   "gap_within_school_equal_weight": 8.2837,
   "black_bw_weighted": 35.9023,
   "white_bw_weighted": 29.8324,
   "gap_within_school_bw_weight": 6.0699,
   "n_schools": 107
  },
  "2024-25": {
   "black": 39.3085,
   "white": 23.9597,
   "gap": 15.3488,
   "black_mean_school": 37.6574,
   "white_mean_school": 29.0468,
   "gap_within_school_equal_weight": 8.6105,
   "black_bw_weighted": 35.2316,
   "white_bw_weighted": 28.9985,
   "gap_within_school_bw_weight": 6.2331,
   "n_schools": 111
  }
 },
 "black_white_fixed_panel": {
  "years": [
   "2021-22",
   "2022-23",
   "2023-24",
   "2024-25"
  ],
  "n_schools": 97,
  "note": "Schools with unsuppressed Black and White cells in every in-person year; weights are the school's Black + White student records.",
  "2021-22": {
   "black_mean_school": 42.3204,
   "white_mean_school": 33.2276,
   "gap_within_school_equal_weight": 9.0928,
   "gap_within_school_bw_weight": 6.9598,
   "n_schools": 97
  },
  "2022-23": {
   "black_mean_school": 38.0365,
   "white_mean_school": 30.9967,
   "gap_within_school_equal_weight": 7.0398,
   "gap_within_school_bw_weight": 4.96,
   "n_schools": 97
  },
  "2023-24": {
   "black_mean_school": 37.3005,
   "white_mean_school": 28.6737,
   "gap_within_school_equal_weight": 8.6268,
   "gap_within_school_bw_weight": 6.093,
   "n_schools": 97
  },
  "2024-25": {
   "black_mean_school": 36.6899,
   "white_mean_school": 27.8355,
   "gap_within_school_equal_weight": 8.8544,
   "gap_within_school_bw_weight": 6.107,
   "n_schools": 97
  }
 },
 "demographics_correlation": {
  "pct_econ_disadv": {
   "r": 0.4967,
   "n_schools": 216
  },
  "pct_black": {
   "r": 0.4448,
   "n_schools": 216
  },
  "pct_hispanic": {
   "r": 0.1011,
   "n_schools": 216
  },
  "pct_white": {
   "r": -0.6068,
   "n_schools": 216
  },
  "pct_english_learner": {
   "r": -0.159,
   "n_schools": 216
  },
  "pct_special_ed": {
   "r": 0.5867,
   "n_schools": 216
  },
  "enrollment": {
   "r": -0.1974,
   "n_schools": 216
  }
 },
 "composition_segments": {
  "year": "2024-25",
  "note": "Schools split into thirds (equal school counts) by each 2024-25 demographic share; rate = student-weighted below-90 share within the third.",
  "econ_disadv_top_coded": {
   "n_at_100": 188,
   "n_total": 216
  },
  "characteristics": {
   "pct_special_ed": [
    {
     "third": "lowest",
     "share_min": 2.2843,
     "share_max": 16.087,
     "n_schools": 72,
     "weighted_below_90": 27.8663
    },
    {
     "third": "middle",
     "share_min": 16.3194,
     "share_max": 24.1341,
     "n_schools": 72,
     "weighted_below_90": 39.1092
    },
    {
     "third": "highest",
     "share_min": 24.2331,
     "share_max": 48.2927,
     "n_schools": 72,
     "weighted_below_90": 54.3328
    }
   ],
   "pct_white": [
    {
     "third": "lowest",
     "share_min": 0,
     "share_max": 1.2793,
     "n_schools": 72,
     "weighted_below_90": 50.9099
    },
    {
     "third": "middle",
     "share_min": 1.385,
     "share_max": 11.3514,
     "n_schools": 72,
     "weighted_below_90": 44.5148
    },
    {
     "third": "highest",
     "share_min": 11.5326,
     "share_max": 75.2381,
     "n_schools": 72,
     "weighted_below_90": 26.6287
    }
   ],
   "pct_english_learner": [
    {
     "third": "lowest",
     "share_min": 0,
     "share_max": 3.8251,
     "n_schools": 72,
     "weighted_below_90": 37.5591
    },
    {
     "third": "middle",
     "share_min": 3.8549,
     "share_max": 19.4268,
     "n_schools": 72,
     "weighted_below_90": 39.2316
    },
    {
     "third": "highest",
     "share_min": 19.7782,
     "share_max": 70.8895,
     "n_schools": 72,
     "weighted_below_90": 37.0594
    }
   ]
  }
 },
 "distribution": {
  "bins_pp": 5,
  "histograms": {
   "2021-22": {
    "counts": [
     3,
     3,
     10,
     9,
     17,
     10,
     18,
     22,
     20,
     19,
     15,
     26,
     13,
     15,
     9,
     3,
     2,
     0,
     0,
     0
    ],
    "n_schools": 214,
    "bin_edges": [
     0,
     5,
     10,
     15,
     20,
     25,
     30,
     35,
     40,
     45,
     50,
     55,
     60,
     65,
     70,
     75,
     80,
     85,
     90,
     95,
     100
    ]
   },
   "2024-25": {
    "counts": [
     2,
     4,
     9,
     11,
     17,
     25,
     23,
     19,
     22,
     22,
     18,
     17,
     14,
     9,
     2,
     2,
     0,
     0,
     0,
     0
    ],
    "n_schools": 216,
    "bin_edges": [
     0,
     5,
     10,
     15,
     20,
     25,
     30,
     35,
     40,
     45,
     50,
     55,
     60,
     65,
     70,
     75,
     80,
     85,
     90,
     95,
     100
    ]
   }
  },
  "n_above_50_by_year": {
   "2020-21": {
    "n_above_50": 43,
    "n_schools": 213,
    "pct": 20.1878
   },
   "2021-22": {
    "n_above_50": 83,
    "n_schools": 214,
    "pct": 38.785
   },
   "2022-23": {
    "n_above_50": 71,
    "n_schools": 215,
    "pct": 33.0233
   },
   "2023-24": {
    "n_above_50": 64,
    "n_schools": 216,
    "pct": 29.6296
   },
   "2024-25": {
    "n_above_50": 62,
    "n_schools": 216,
    "pct": 28.7037
   }
  }
 },
 "stability": {
  "consecutive_r": {
   "2020-21->2021-22": {
    "pearson_r": 0.8758,
    "n_schools": 213
   },
   "2021-22->2022-23": {
    "pearson_r": 0.9173,
    "n_schools": 213
   },
   "2022-23->2023-24": {
    "pearson_r": 0.9296,
    "n_schools": 215
   },
   "2023-24->2024-25": {
    "pearson_r": 0.9464,
    "n_schools": 216
   }
  },
  "long_arc_baseline_to_latest": {
   "pair": "2021-22->2024-25",
   "pearson_r": 0.8836,
   "n_schools": 213
  },
  "latest_pair_change": {
   "pair": "2023-24->2024-25",
   "n_schools": 216,
   "median_change": -0.84,
   "mean_change": -0.3787,
   "median_abs_change": 2.3,
   "pct_improved_gt2pp": 31.9444,
   "pct_improved_gt5pp": 12.963,
   "pct_worsened_gt2pp": 22.6852,
   "pct_worsened_gt5pp": 11.1111,
   "n_moved_gt5": 52,
   "n_moved_gt10": 12
  },
  "volatility_by_size_latest_pair": {
   "<300": {
    "n": 40,
    "sd_change": 7.3232,
    "median_abs_change": 2.745,
    "mean_change": -1.2205
   },
   "300-599": {
    "n": 115,
    "sd_change": 5.4398,
    "median_abs_change": 2.72,
    "mean_change": -0.166
   },
   "600+": {
    "n": 61,
    "sd_change": 3.0865,
    "median_abs_change": 1.51,
    "mean_change": -0.2277
   }
  },
  "scatter_latest_pair": [
   [
    59.65,
    64.26
   ],
   [
    60.3,
    59.3
   ],
   [
    63.17,
    60.45
   ],
   [
    41.75,
    39.79
   ],
   [
    57.17,
    64.6
   ],
   [
    37.89,
    35.01
   ],
   [
    30.08,
    33.49
   ],
   [
    61.53,
    61.52
   ],
   [
    29.7,
    52.88
   ],
   [
    26.95,
    24.66
   ],
   [
    63.04,
    55.99
   ],
   [
    4.08,
    4.29
   ],
   [
    56.93,
    51.88
   ],
   [
    49.85,
    48.45
   ],
   [
    32.35,
    29.45
   ],
   [
    52.77,
    57.14
   ],
   [
    57.93,
    54.37
   ],
   [
    57.94,
    50.44
   ],
   [
    36.61,
    36.08
   ],
   [
    19.5,
    17.91
   ],
   [
    39.17,
    34.47
   ],
   [
    59.36,
    58.54
   ],
   [
    51.17,
    52.07
   ],
   [
    46.84,
    45.84
   ],
   [
    50.12,
    41.78
   ],
   [
    54.41,
    47.46
   ],
   [
    62.18,
    63.17
   ],
   [
    31.65,
    34.81
   ],
   [
    60.13,
    65.36
   ],
   [
    68.34,
    70.14
   ],
   [
    21.46,
    19.51
   ],
   [
    22.8,
    23.9
   ],
   [
    3.83,
    4.65
   ],
   [
    46.88,
    47.79
   ],
   [
    29.57,
    23.24
   ],
   [
    25.91,
    26.77
   ],
   [
    32.37,
    38.55
   ],
   [
    39.61,
    31.57
   ],
   [
    38.83,
    35.95
   ],
   [
    45.14,
    41.46
   ],
   [
    10.37,
    9.77
   ],
   [
    61.27,
    58.55
   ],
   [
    5.85,
    5.51
   ],
   [
    53.73,
    53.07
   ],
   [
    8.89,
    8.01
   ],
   [
    28.86,
    24.48
   ],
   [
    8.44,
    9.93
   ],
   [
    22.26,
    23.12
   ],
   [
    57.09,
    55.96
   ],
   [
    11.44,
    10.95
   ],
   [
    14.87,
    13.03
   ],
   [
    29.13,
    20.91
   ],
   [
    13.71,
    16.21
   ],
   [
    20.1,
    24.32
   ],
   [
    12.68,
    13.58
   ],
   [
    35.9,
    30.41
   ],
   [
    17.4,
    17.9
   ],
   [
    13.52,
    16.57
   ],
   [
    41.65,
    34.12
   ],
   [
    16.9,
    14.58
   ],
   [
    27.37,
    23.15
   ],
   [
    27.51,
    28.73
   ],
   [
    69.03,
    76.5
   ],
   [
    18.63,
    17.58
   ],
   [
    64.76,
    66.16
   ],
   [
    64.55,
    73.05
   ],
   [
    47.49,
    49.72
   ],
   [
    56.07,
    42.44
   ],
   [
    65.87,
    64.49
   ],
   [
    36.71,
    32.84
   ],
   [
    57.3,
    47.24
   ],
   [
    40.06,
    39.53
   ],
   [
    62.93,
    68.68
   ],
   [
    49.86,
    57.41
   ],
   [
    46.09,
    37.33
   ],
   [
    60.08,
    62.5
   ],
   [
    65.04,
    63.51
   ],
   [
    63.58,
    61.36
   ],
   [
    59.49,
    43.97
   ],
   [
    21.4,
    23.48
   ],
   [
    44.21,
    53.73
   ],
   [
    64.44,
    61.41
   ],
   [
    7.28,
    41.08
   ],
   [
    59.16,
    58.77
   ],
   [
    67.18,
    78.1
   ],
   [
    59.44,
    56.84
   ],
   [
    62.79,
    58.02
   ],
   [
    30.18,
    27.39
   ],
   [
    25.12,
    23.23
   ],
   [
    49.42,
    37.34
   ],
   [
    12.82,
    15.82
   ],
   [
    64.99,
    66.07
   ],
   [
    40.83,
    40.55
   ],
   [
    69.67,
    67.78
   ],
   [
    8.62,
    10.46
   ],
   [
    44.35,
    49.44
   ],
   [
    23.48,
    24.79
   ],
   [
    42.91,
    44.35
   ],
   [
    58.18,
    49.6
   ],
   [
    21.67,
    22.05
   ],
   [
    53.61,
    56.73
   ],
   [
    54.34,
    52.63
   ],
   [
    49.79,
    50.82
   ],
   [
    52.38,
    52.81
   ],
   [
    27.9,
    25.21
   ],
   [
    53.46,
    50.81
   ],
   [
    44.5,
    42.3
   ],
   [
    58.04,
    49.24
   ],
   [
    55.52,
    51.85
   ],
   [
    41.31,
    31.18
   ],
   [
    45.78,
    57.88
   ],
   [
    46.81,
    43.77
   ],
   [
    46.8,
    42.06
   ],
   [
    41.69,
    42.53
   ],
   [
    45.53,
    45.33
   ],
   [
    67.42,
    65.49
   ],
   [
    36.7,
    45.36
   ],
   [
    58.63,
    54.71
   ],
   [
    42.46,
    41.24
   ],
   [
    47.63,
    48.8
   ],
   [
    49.81,
    51.36
   ],
   [
    41.24,
    50.91
   ],
   [
    63.43,
    64.56
   ],
   [
    57.14,
    55.51
   ],
   [
    41.91,
    47.9
   ],
   [
    69.58,
    69.81
   ],
   [
    9.78,
    12.35
   ],
   [
    59.53,
    58.21
   ],
   [
    42.62,
    34.05
   ],
   [
    37.28,
    32.06
   ],
   [
    53.18,
    60.5
   ],
   [
    64.33,
    62.33
   ],
   [
    37.6,
    36.63
   ],
   [
    36.21,
    35.8
   ],
   [
    30.77,
    30.85
   ],
   [
    31.67,
    29.82
   ],
   [
    17.09,
    16.14
   ],
   [
    21.92,
    23.55
   ],
   [
    22.96,
    25.19
   ],
   [
    36.68,
    32.82
   ],
   [
    33.33,
    40.38
   ],
   [
    32.82,
    27.2
   ],
   [
    48.73,
    37.1
   ],
   [
    32.78,
    37.5
   ],
   [
    66.25,
    66
   ],
   [
    27.15,
    33.06
   ],
   [
    40.77,
    45.3
   ],
   [
    13.88,
    11.56
   ],
   [
    24.17,
    26.67
   ],
   [
    26.58,
    28.34
   ],
   [
    25.17,
    26.62
   ],
   [
    52.83,
    44.28
   ],
   [
    24.46,
    21.71
   ],
   [
    39.54,
    36.8
   ],
   [
    66.04,
    64.17
   ],
   [
    68.88,
    67.44
   ],
   [
    47.68,
    43.43
   ],
   [
    44.95,
    49.71
   ],
   [
    51.59,
    54.13
   ],
   [
    29.06,
    43.31
   ],
   [
    34.7,
    34.84
   ],
   [
    34.09,
    34.59
   ],
   [
    41.02,
    35.71
   ],
   [
    31.08,
    30.9
   ],
   [
    33.33,
    27.57
   ],
   [
    32.08,
    37.21
   ],
   [
    50.82,
    52.05
   ],
   [
    45.98,
    45.14
   ],
   [
    32.01,
    28.19
   ],
   [
    34.03,
    33.33
   ],
   [
    34.72,
    38.23
   ],
   [
    41.76,
    42.86
   ],
   [
    57.82,
    56.13
   ],
   [
    33.33,
    20.51
   ],
   [
    48.45,
    47.61
   ],
   [
    33.5,
    35.69
   ],
   [
    36.55,
    34.93
   ],
   [
    49.23,
    46.08
   ],
   [
    47.29,
    43.28
   ],
   [
    36.93,
    34.72
   ],
   [
    38.99,
    41.97
   ],
   [
    37.1,
    43.2
   ],
   [
    30.19,
    29.22
   ],
   [
    50.51,
    58.11
   ],
   [
    39.55,
    46.18
   ],
   [
    58.82,
    49.21
   ],
   [
    53.96,
    52.8
   ],
   [
    44.28,
    41.97
   ],
   [
    43.43,
    45.02
   ],
   [
    23.69,
    20.93
   ],
   [
    44.16,
    42.67
   ],
   [
    28.23,
    22.82
   ],
   [
    32.64,
    31.34
   ],
   [
    16.18,
    15.35
   ],
   [
    30.42,
    28.45
   ],
   [
    33.33,
    35.46
   ],
   [
    27.27,
    27.52
   ],
   [
    47.22,
    45.86
   ],
   [
    38.85,
    37.88
   ],
   [
    26.11,
    26.35
   ],
   [
    35.18,
    31.38
   ],
   [
    24.85,
    26.53
   ],
   [
    29.52,
    28.55
   ],
   [
    25.02,
    26.63
   ],
   [
    33.52,
    29.9
   ],
   [
    27.69,
    28.72
   ],
   [
    16.54,
    14.39
   ],
   [
    28.89,
    28.12
   ],
   [
    36.06,
    31.79
   ],
   [
    16.75,
    15.43
   ],
   [
    33.87,
    31.28
   ],
   [
    27.6,
    26.61
   ],
   [
    8.53,
    13.36
   ],
   [
    14.74,
    16.25
   ],
   [
    53.61,
    57.67
   ],
   [
    27.85,
    26.58
   ]
  ],
  "small_vs_large_ratio": {
   "sd_change": 2.3727,
   "median_abs_change": 1.8179,
   "note": "<300 students vs 600+; the standard-deviation ratio and the median-absolute-change ratio differ, so the page names which one it uses."
  }
 },
 "district_monthly": {
  "2020-21": {
   "Sep": {
    "pct_below_90": 27.32,
    "n_students": 117638
   },
   "Oct": {
    "pct_below_90": 22.35,
    "n_students": 118663
   },
   "Nov": {
    "pct_below_90": 27.1,
    "n_students": 118458
   },
   "Dec": {
    "pct_below_90": 26.95,
    "n_students": 118490
   },
   "Jan": {
    "pct_below_90": 26.31,
    "n_students": 118458
   },
   "Feb": {
    "pct_below_90": 27.72,
    "n_students": 118429
   },
   "Mar": {
    "pct_below_90": 20.72,
    "n_students": 118415
   },
   "Apr": {
    "pct_below_90": 24.37,
    "n_students": 118409
   },
   "May": {
    "pct_below_90": 32.88,
    "n_students": 118407
   },
   "sep_mar_weighted": 25.4934,
   "sep_nov_weighted": 25.5841,
   "dec_feb_weighted": 26.9933
  },
  "2021-22": {
   "Sep": {
    "pct_below_90": 30.94,
    "n_students": 112503
   },
   "Oct": {
    "pct_below_90": 23.17,
    "n_students": 112769
   },
   "Nov": {
    "pct_below_90": 38.2,
    "n_students": 112902
   },
   "Dec": {
    "pct_below_90": 42.44,
    "n_students": 112670
   },
   "Jan": {
    "pct_below_90": 46.91,
    "n_students": 112370
   },
   "Feb": {
    "pct_below_90": 38.44,
    "n_students": 112115
   },
   "Mar": {
    "pct_below_90": 31.17,
    "n_students": 112186
   },
   "Apr": {
    "pct_below_90": 36.06,
    "n_students": 111711
   },
   "May": {
    "pct_below_90": 47.45,
    "n_students": 111879
   },
   "Jun": {
    "pct_below_90": 46.3,
    "n_students": 105493
   },
   "sep_mar_weighted": 35.8928,
   "sep_nov_weighted": 30.7728,
   "dec_feb_weighted": 42.5997
  },
  "2022-23": {
   "Sep": {
    "pct_below_90": 30.52,
    "n_students": 111257
   },
   "Oct": {
    "pct_below_90": 36.06,
    "n_students": 112466
   },
   "Nov": {
    "pct_below_90": 42.83,
    "n_students": 112545
   },
   "Dec": {
    "pct_below_90": 41.18,
    "n_students": 112437
   },
   "Jan": {
    "pct_below_90": 38.02,
    "n_students": 112470
   },
   "Feb": {
    "pct_below_90": 42.13,
    "n_students": 112499
   },
   "Mar": {
    "pct_below_90": 33.49,
    "n_students": 112508
   },
   "Apr": {
    "pct_below_90": 31.16,
    "n_students": 111954
   },
   "May": {
    "pct_below_90": 33.62,
    "n_students": 112386
   },
   "sep_mar_weighted": 37.7586,
   "sep_nov_weighted": 36.4929,
   "dec_feb_weighted": 40.4434
  },
  "2023-24": {
   "Sep": {
    "pct_below_90": 26.77,
    "n_students": 110760
   },
   "Oct": {
    "pct_below_90": 21.52,
    "n_students": 112203
   },
   "Nov": {
    "pct_below_90": 36.7,
    "n_students": 112311
   },
   "Dec": {
    "pct_below_90": 37.93,
    "n_students": 112241
   },
   "Jan": {
    "pct_below_90": 47.13,
    "n_students": 112486
   },
   "Feb": {
    "pct_below_90": 31.8,
    "n_students": 112633
   },
   "Mar": {
    "pct_below_90": 34.64,
    "n_students": 112535
   },
   "Apr": {
    "pct_below_90": 28.35,
    "n_students": 112774
   },
   "May": {
    "pct_below_90": 32.68,
    "n_students": 112786
   },
   "Jun": {
    "pct_below_90": 48.55,
    "n_students": 106027
   },
   "sep_mar_weighted": 33.8019,
   "sep_nov_weighted": 28.3394,
   "dec_feb_weighted": 38.951
  },
  "2024-25": {
   "Sep": {
    "pct_below_90": 19.4,
    "n_students": 112868
   },
   "Oct": {
    "pct_below_90": 22.14,
    "n_students": 113550
   },
   "Nov": {
    "pct_below_90": 37.08,
    "n_students": 113430
   },
   "Dec": {
    "pct_below_90": 33.21,
    "n_students": 113438
   },
   "Jan": {
    "pct_below_90": 45.7,
    "n_students": 113272
   },
   "Feb": {
    "pct_below_90": 42.12,
    "n_students": 113226
   },
   "Mar": {
    "pct_below_90": 26.7,
    "n_students": 113330
   },
   "Apr": {
    "pct_below_90": 32.63,
    "n_students": 112929
   },
   "May": {
    "pct_below_90": 30.76,
    "n_students": 112974
   },
   "sep_mar_weighted": 32.3389,
   "sep_nov_weighted": 26.2165,
   "dec_feb_weighted": 40.3396
  },
  "2025-26": {
   "Sep": {
    "pct_below_90": 19.08,
    "n_students": 111785
   },
   "Oct": {
    "pct_below_90": 19.76,
    "n_students": 111831
   },
   "Nov": {
    "pct_below_90": 33.46,
    "n_students": 111362
   },
   "Dec": {
    "pct_below_90": 44.89,
    "n_students": 111195
   },
   "Jan": {
    "pct_below_90": 47.36,
    "n_students": 111068
   },
   "Feb": {
    "pct_below_90": 35.12,
    "n_students": 110888
   },
   "Mar": {
    "pct_below_90": 37.93,
    "n_students": 110803
   },
   "sep_mar_weighted": 33.9153,
   "sep_nov_weighted": 24.0876,
   "dec_feb_weighted": 42.4616
  }
 },
 "monthly_records": {
  "note": "'all_years' = every year in the monthly file; 'in_person' excludes 2020-21 (mostly virtual), matching the trend-statement exclusion. Lowest = best attendance.",
  "by_month": {
   "Sep": {
    "all_years": {
     "lowest": "2025-26",
     "lowest_value": 19.08,
     "highest": "2021-22",
     "highest_value": 30.94,
     "second_highest_value": 30.52,
     "n_years": 6
    },
    "in_person": {
     "lowest": "2025-26",
     "lowest_value": 19.08,
     "highest": "2021-22",
     "highest_value": 30.94,
     "second_highest_value": 30.52,
     "n_years": 5
    }
   },
   "Oct": {
    "all_years": {
     "lowest": "2025-26",
     "lowest_value": 19.76,
     "highest": "2022-23",
     "highest_value": 36.06,
     "second_highest_value": 23.17,
     "n_years": 6
    },
    "in_person": {
     "lowest": "2025-26",
     "lowest_value": 19.76,
     "highest": "2022-23",
     "highest_value": 36.06,
     "second_highest_value": 23.17,
     "n_years": 5
    }
   },
   "Nov": {
    "all_years": {
     "lowest": "2020-21",
     "lowest_value": 27.1,
     "highest": "2022-23",
     "highest_value": 42.83,
     "second_highest_value": 38.2,
     "n_years": 6
    },
    "in_person": {
     "lowest": "2025-26",
     "lowest_value": 33.46,
     "highest": "2022-23",
     "highest_value": 42.83,
     "second_highest_value": 38.2,
     "n_years": 5
    }
   },
   "Dec": {
    "all_years": {
     "lowest": "2020-21",
     "lowest_value": 26.95,
     "highest": "2025-26",
     "highest_value": 44.89,
     "second_highest_value": 42.44,
     "n_years": 6
    },
    "in_person": {
     "lowest": "2024-25",
     "lowest_value": 33.21,
     "highest": "2025-26",
     "highest_value": 44.89,
     "second_highest_value": 42.44,
     "n_years": 5
    }
   },
   "Jan": {
    "all_years": {
     "lowest": "2020-21",
     "lowest_value": 26.31,
     "highest": "2025-26",
     "highest_value": 47.36,
     "second_highest_value": 47.13,
     "n_years": 6
    },
    "in_person": {
     "lowest": "2022-23",
     "lowest_value": 38.02,
     "highest": "2025-26",
     "highest_value": 47.36,
     "second_highest_value": 47.13,
     "n_years": 5
    }
   },
   "Feb": {
    "all_years": {
     "lowest": "2020-21",
     "lowest_value": 27.72,
     "highest": "2022-23",
     "highest_value": 42.13,
     "second_highest_value": 42.12,
     "n_years": 6
    },
    "in_person": {
     "lowest": "2023-24",
     "lowest_value": 31.8,
     "highest": "2022-23",
     "highest_value": 42.13,
     "second_highest_value": 42.12,
     "n_years": 5
    }
   },
   "Mar": {
    "all_years": {
     "lowest": "2020-21",
     "lowest_value": 20.72,
     "highest": "2025-26",
     "highest_value": 37.93,
     "second_highest_value": 34.64,
     "n_years": 6
    },
    "in_person": {
     "lowest": "2024-25",
     "lowest_value": 26.7,
     "highest": "2025-26",
     "highest_value": 37.93,
     "second_highest_value": 34.64,
     "n_years": 5
    }
   },
   "Apr": {
    "all_years": {
     "lowest": "2020-21",
     "lowest_value": 24.37,
     "highest": "2021-22",
     "highest_value": 36.06,
     "second_highest_value": 32.63,
     "n_years": 5
    },
    "in_person": {
     "lowest": "2023-24",
     "lowest_value": 28.35,
     "highest": "2021-22",
     "highest_value": 36.06,
     "second_highest_value": 32.63,
     "n_years": 4
    }
   },
   "May": {
    "all_years": {
     "lowest": "2024-25",
     "lowest_value": 30.76,
     "highest": "2021-22",
     "highest_value": 47.45,
     "second_highest_value": 33.62,
     "n_years": 5
    },
    "in_person": {
     "lowest": "2024-25",
     "lowest_value": 30.76,
     "highest": "2021-22",
     "highest_value": 47.45,
     "second_highest_value": 33.62,
     "n_years": 4
    }
   },
   "Jun": {
    "all_years": {
     "lowest": "2021-22",
     "lowest_value": 46.3,
     "highest": "2023-24",
     "highest_value": 48.55,
     "second_highest_value": 46.3,
     "n_years": 2
    },
    "in_person": {
     "lowest": "2021-22",
     "lowest_value": 46.3,
     "highest": "2023-24",
     "highest_value": 48.55,
     "second_highest_value": 46.3,
     "n_years": 2
    }
   }
  },
  "windows": {
   "sep_nov_weighted": {
    "all_years": {
     "lowest": "2025-26",
     "lowest_value": 24.0876,
     "highest": "2022-23",
     "highest_value": 36.4929,
     "n_years": 6
    },
    "in_person": {
     "lowest": "2025-26",
     "lowest_value": 24.0876,
     "highest": "2022-23",
     "highest_value": 36.4929,
     "n_years": 5
    }
   },
   "dec_feb_weighted": {
    "all_years": {
     "lowest": "2020-21",
     "lowest_value": 26.9933,
     "highest": "2021-22",
     "highest_value": 42.5997,
     "n_years": 6
    },
    "in_person": {
     "lowest": "2023-24",
     "lowest_value": 38.951,
     "highest": "2021-22",
     "highest_value": 42.5997,
     "n_years": 5
    }
   },
   "sep_mar_weighted": {
    "all_years": {
     "lowest": "2020-21",
     "lowest_value": 25.4934,
     "highest": "2022-23",
     "highest_value": 37.7586,
     "n_years": 6
    },
    "in_person": {
     "lowest": "2024-25",
     "lowest_value": 32.3389,
     "highest": "2022-23",
     "highest_value": 37.7586,
     "n_years": 5
    }
   }
  }
 },
 "crosschecks": [
  {
   "stat": "common_weighted_2020-21",
   "from_db": 29.3657,
   "from_source": 29.3657,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_n_schools_2020-21",
   "from_db": 212,
   "from_source": 212,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_n_students_2020-21",
   "from_db": 122895,
   "from_source": 122895,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_weighted_2021-22",
   "from_db": 42.0446,
   "from_source": 42.0448,
   "diff": -0.0002,
   "match": true
  },
  {
   "stat": "common_n_schools_2021-22",
   "from_db": 213,
   "from_source": 213,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_n_students_2021-22",
   "from_db": 125830,
   "from_source": 125830,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_weighted_2022-23",
   "from_db": 39.0188,
   "from_source": 39.0188,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_n_schools_2022-23",
   "from_db": 215,
   "from_source": 215,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_n_students_2022-23",
   "from_db": 124435,
   "from_source": 124435,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_weighted_2023-24",
   "from_db": 38.1259,
   "from_source": 38.1258,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_n_schools_2023-24",
   "from_db": 216,
   "from_source": 216,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_n_students_2023-24",
   "from_db": 124034,
   "from_source": 124034,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_weighted_2024-25",
   "from_db": 37.7354,
   "from_source": 37.7351,
   "diff": 0.0003,
   "match": true
  },
  {
   "stat": "common_n_schools_2024-25",
   "from_db": 216,
   "from_source": 216,
   "diff": 0,
   "match": true
  },
  {
   "stat": "common_n_students_2024-25",
   "from_db": 124306,
   "from_source": 124306,
   "diff": 0,
   "match": true
  }
 ],
 "universe_reconciliation": {
  "2020-21": {
   "source_only": [
    {
     "ulcs": "8140",
     "name": "Austin Meehan School",
     "n_students": 733,
     "below_90": 24.42
    }
   ],
   "db_only": [],
   "weighted_full_universe": 29.3364,
   "weighted_directory_only": 29.3657,
   "effect_of_including_source_only": -0.0293
  },
  "2021-22": {
   "source_only": [
    {
     "ulcs": "8140",
     "name": "Austin Meehan School",
     "n_students": 414,
     "below_90": 49.76
    }
   ],
   "db_only": [],
   "weighted_full_universe": 42.0701,
   "weighted_directory_only": 42.0448,
   "effect_of_including_source_only": 0.0253
  },
  "2022-23": {
   "source_only": [],
   "db_only": [],
   "weighted_full_universe": 39.0188,
   "weighted_directory_only": 39.0188,
   "effect_of_including_source_only": 0
  },
  "2023-24": {
   "source_only": [],
   "db_only": [],
   "weighted_full_universe": 38.1258,
   "weighted_directory_only": 38.1258,
   "effect_of_including_source_only": 0
  },
  "2024-25": {
   "source_only": [],
   "db_only": [],
   "weighted_full_universe": 37.7351,
   "weighted_directory_only": 37.7351,
   "effect_of_including_source_only": 0
  }
 },
 "sector_state_measure": {
  "measure": "Per school: 100 − the Future Ready PA Index 'Regular Attendance' figure (PercentPersistentAttendance in the 2021-22+ workbooks), i.e. the share of the school's students enrolled 90 or more school days who attended LESS than 90% of them (PA Dept. of Education). Sector figures are averages of these school rates (fixed 2024-25 enrollment weights, or unweighted mean/median), NOT the share of all students in the sector — the state publishes no student counts for this measure. Separate publisher and enrollment basis from the SDP-based series; do not splice.",
  "year_semantics": "Years are ATTENDANCE years. PDE's Future Ready glossary: Regular Attendance is 'a lagging indicator indicating data is from the year prior to the reporting year', so the 2024-25 workbook's value is 2023-24 attendance and is stored under 2023-24 (scripts/loaders/philly/_lib.ts STATE_METRIC_YEAR_OFFSET). The latest state observation is therefore 2023-24, one year behind the district's file. Corrected 2026-09-07 after an external audit.",
  "latest_year": "2023-24",
  "universe_note": "District-run (REGULAR) and charter (CHARTER) schools present in the 2024-25 school directory — the state's rows are joined to schools through that directory's CURRENT state codes, so schools closed before 2024-25 are absent from every year, and so is the earlier history of any school that changed operator or state code (e.g. John B. Stetson and Olney, Renaissance charters until 2022 and district-run since, appear in the 2018-19 workbook under charter codes 133513315-8149 and 126513452-8205 that the current crosswalk cannot join; their pre-2022 years are missing from this series). Sector and school-type classifications are the current ones, carried backward. Historical observations for schools matchable to the current directory, not a year-by-year universe of who ran which school. Contracted/alternative programs (19 schools), cyber charters, and the special-education school are excluded from both sectors. Enrollment rule (PDE glossary): only students enrolled 90 or more school days count, versus the district file's 10-day rule. The state's figure runs a median ~0.8–1.7 points above the district's for the same schools and year; the eligibility difference is a plausible contributor, but its share of that offset has not been measured (the district file has no enrollment-spell detail), and local partial-day coding is another candidate.",
  "selection_note": "A charter-vs-district gap is descriptive, not a measure of what charter schools do. Possible mechanisms these aggregate files cannot measure: most charters enroll by citywide lottery (Renaissance charters — former district schools run by charter operators — keep neighborhood catchments); students who leave a charter mid-year may enroll in district-run schools; the state's 90-day rule leaves out any enrollment spell shorter than 90 days, so the most mobile students are only partly represented; and PDE lets each local education agency decide how partial-day absences count. None of these is quantified here, and no Philadelphia study is cited for the attendance of mid-year leavers.",
  "years": [
   "2017-18",
   "2018-19",
   "2019-20",
   "2020-21",
   "2021-22",
   "2022-23",
   "2023-24"
  ],
  "pandemic_years": [
   "2019-20",
   "2020-21"
  ],
  "trend_windows": {
   "pre_pandemic": [
    "2017-18",
    "2018-19"
   ],
   "in_person": [
    "2021-22",
    "2022-23",
    "2023-24"
   ]
  },
  "year_notes": {
   "2017-18": "pre-pandemic; from the 2018-19 workbook (older long format, element 'Percent Regular Attendance')",
   "2018-19": "pre-pandemic; from the 2019-20 workbook (older long format). Registered 2026-09-07 — an earlier version of this site wrongly stated PDE never published a 2019-20 datafile",
   "2019-20": "PANDEMIC: buildings closed 13 March 2020 and the year finished virtually; from the 2020-21 workbook. Shown hatched, excluded from trend statements",
   "2020-21": "PANDEMIC: mostly virtual, hybrid in-person from March 2021 (SDP); attendance recorded under remote rules; from the 2021-22 workbook. Shown hatched, excluded from trend statements",
   "2021-22": "first full in-person year; from the 2022-23 workbook. The state's figure tracks the district's for the same schools in every aligned year (cross-publisher check), so the in-person trend window is 2021-22 → 2023-24",
   "2023-24": "latest state observation (2024-25 workbook); the district's own file runs a year later, to 2024-25"
  },
  "weighting_note": "weighted_by_2024_25_enrollment uses each school's 2024-25 enrollment as a fixed weight in every year (the state publishes no student counts for this measure, and enrollment is loaded for all sectors only for 2024-25) — it is an enrollment-weighted average of school rates with FIXED weights, not the share of students in the sector; mean_school/median_school are unweighted and carried alongside so the reader can see all three.",
  "sector_labels": {
   "REGULAR": "District-run schools",
   "CHARTER": "Charter schools"
  },
  "directory": {
   "REGULAR": {
    "n_schools": 230,
    "lottery": 16,
    "catchment": 179,
    "renaissance": 0,
    "standalone_high": 53,
    "serving_high_school_grades": 63,
    "mixed_grade_with_high_school": 10,
    "k8_or_elementary_only": 164,
    "standalone_high_with_state_value_latest": 48
   },
   "CHARTER": {
    "n_schools": 81,
    "lottery": 63,
    "catchment": 18,
    "renaissance": 17,
    "standalone_high": 9,
    "serving_high_school_grades": 31,
    "mixed_grade_with_high_school": 22,
    "k8_or_elementary_only": 50,
    "standalone_high_with_state_value_latest": 9
   }
  },
  "trend": {
   "REGULAR": {
    "2017-18": {
     "n_schools": 214,
     "mean_school": 26.2467,
     "median_school": 25.2,
     "weighted_by_2024_25_enrollment": 24.193,
     "n_schools_with_enrollment_weight": 214
    },
    "2018-19": {
     "n_schools": 215,
     "mean_school": 26.2679,
     "median_school": 25,
     "weighted_by_2024_25_enrollment": 24.1085,
     "n_schools_with_enrollment_weight": 215
    },
    "2019-20": {
     "n_schools": 215,
     "mean_school": 21.8195,
     "median_school": 21,
     "weighted_by_2024_25_enrollment": 20.0274,
     "n_schools_with_enrollment_weight": 215
    },
    "2020-21": {
     "n_schools": 215,
     "mean_school": 31.6544,
     "median_school": 32.6,
     "weighted_by_2024_25_enrollment": 26.7229,
     "n_schools_with_enrollment_weight": 215
    },
    "2021-22": {
     "n_schools": 216,
     "mean_school": 42.1222,
     "median_school": 41.95,
     "weighted_by_2024_25_enrollment": 38.4992,
     "n_schools_with_enrollment_weight": 216
    },
    "2022-23": {
     "n_schools": 218,
     "mean_school": 39.0867,
     "median_school": 38.45,
     "weighted_by_2024_25_enrollment": 36.3689,
     "n_schools_with_enrollment_weight": 218
    },
    "2023-24": {
     "n_schools": 219,
     "mean_school": 38.7292,
     "median_school": 38.5,
     "weighted_by_2024_25_enrollment": 35.7401,
     "n_schools_with_enrollment_weight": 219
    }
   },
   "CHARTER": {
    "2017-18": {
     "n_schools": 73,
     "mean_school": 20.0767,
     "median_school": 19.2,
     "weighted_by_2024_25_enrollment": 18.2928,
     "n_schools_with_enrollment_weight": 73
    },
    "2018-19": {
     "n_schools": 76,
     "mean_school": 21.7461,
     "median_school": 21.1,
     "weighted_by_2024_25_enrollment": 19.8338,
     "n_schools_with_enrollment_weight": 76
    },
    "2019-20": {
     "n_schools": 77,
     "mean_school": 17.5714,
     "median_school": 14.8,
     "weighted_by_2024_25_enrollment": 16.4227,
     "n_schools_with_enrollment_weight": 77
    },
    "2020-21": {
     "n_schools": 77,
     "mean_school": 28.8364,
     "median_school": 27.7,
     "weighted_by_2024_25_enrollment": 25.718,
     "n_schools_with_enrollment_weight": 77
    },
    "2021-22": {
     "n_schools": 77,
     "mean_school": 36.1013,
     "median_school": 36.1,
     "weighted_by_2024_25_enrollment": 33.6586,
     "n_schools_with_enrollment_weight": 77
    },
    "2022-23": {
     "n_schools": 78,
     "mean_school": 32.9282,
     "median_school": 32.7,
     "weighted_by_2024_25_enrollment": 30.4374,
     "n_schools_with_enrollment_weight": 78
    },
    "2023-24": {
     "n_schools": 78,
     "mean_school": 29.0256,
     "median_school": 27,
     "weighted_by_2024_25_enrollment": 26.7673,
     "n_schools_with_enrollment_weight": 78
    }
   }
  },
  "fixed_panel": {
   "note": "Schools with an unsuppressed all-students value in all seven state years; same fixed 2024-25 enrollment weights. A sensitivity check on the changing-coverage series above.",
   "n_schools": {
    "REGULAR": 214,
    "CHARTER": 72
   },
   "trend": {
    "REGULAR": {
     "2017-18": {
      "n_schools": 214,
      "mean_school": 26.2467,
      "median_school": 25.2,
      "weighted_by_2024_25_enrollment": 24.193,
      "n_schools_with_enrollment_weight": 214
     },
     "2018-19": {
      "n_schools": 214,
      "mean_school": 26.1808,
      "median_school": 24.75,
      "weighted_by_2024_25_enrollment": 24.0544,
      "n_schools_with_enrollment_weight": 214
     },
     "2019-20": {
      "n_schools": 214,
      "mean_school": 21.6897,
      "median_school": 20.95,
      "weighted_by_2024_25_enrollment": 19.9504,
      "n_schools_with_enrollment_weight": 214
     },
     "2020-21": {
      "n_schools": 214,
      "mean_school": 31.6182,
      "median_school": 32.55,
      "weighted_by_2024_25_enrollment": 26.69,
      "n_schools_with_enrollment_weight": 214
     },
     "2021-22": {
      "n_schools": 214,
      "mean_school": 42.0192,
      "median_school": 41.95,
      "weighted_by_2024_25_enrollment": 38.5237,
      "n_schools_with_enrollment_weight": 214
     },
     "2022-23": {
      "n_schools": 214,
      "mean_school": 38.8799,
      "median_school": 38.25,
      "weighted_by_2024_25_enrollment": 36.0348,
      "n_schools_with_enrollment_weight": 214
     },
     "2023-24": {
      "n_schools": 214,
      "mean_school": 38.4107,
      "median_school": 38.1,
      "weighted_by_2024_25_enrollment": 35.3044,
      "n_schools_with_enrollment_weight": 214
     }
    },
    "CHARTER": {
     "2017-18": {
      "n_schools": 72,
      "mean_school": 20.2292,
      "median_school": 19.3,
      "weighted_by_2024_25_enrollment": 18.4266,
      "n_schools_with_enrollment_weight": 72
     },
     "2018-19": {
      "n_schools": 72,
      "mean_school": 21.2569,
      "median_school": 19.45,
      "weighted_by_2024_25_enrollment": 19.3831,
      "n_schools_with_enrollment_weight": 72
     },
     "2019-20": {
      "n_schools": 72,
      "mean_school": 17.4611,
      "median_school": 14.7,
      "weighted_by_2024_25_enrollment": 16.3205,
      "n_schools_with_enrollment_weight": 72
     },
     "2020-21": {
      "n_schools": 72,
      "mean_school": 27.8542,
      "median_school": 26.65,
      "weighted_by_2024_25_enrollment": 25.0678,
      "n_schools_with_enrollment_weight": 72
     },
     "2021-22": {
      "n_schools": 72,
      "mean_school": 35.5403,
      "median_school": 34.85,
      "weighted_by_2024_25_enrollment": 33.3257,
      "n_schools_with_enrollment_weight": 72
     },
     "2022-23": {
      "n_schools": 72,
      "mean_school": 32.3847,
      "median_school": 31.8,
      "weighted_by_2024_25_enrollment": 30.1113,
      "n_schools_with_enrollment_weight": 72
     },
     "2023-24": {
      "n_schools": 72,
      "mean_school": 28.3722,
      "median_school": 26.65,
      "weighted_by_2024_25_enrollment": 26.4278,
      "n_schools_with_enrollment_weight": 72
     }
    }
   }
  },
  "by_level_latest": {
   "Elementary": {
    "REGULAR": {
     "n_schools": 45,
     "mean_school": 35.9889,
     "median_school": 36.8,
     "weighted_by_2024_25_enrollment": 32.3572,
     "n_schools_with_enrollment_weight": 45
    },
    "CHARTER": {
     "n_schools": 13,
     "mean_school": 31.7077,
     "median_school": 26,
     "weighted_by_2024_25_enrollment": 29.2357,
     "n_schools_with_enrollment_weight": 13
    }
   },
   "Elementary-Middle": {
    "REGULAR": {
     "n_schools": 104,
     "mean_school": 37.224,
     "median_school": 35.65,
     "weighted_by_2024_25_enrollment": 33.6659,
     "n_schools_with_enrollment_weight": 104
    },
    "CHARTER": {
     "n_schools": 30,
     "mean_school": 27.0567,
     "median_school": 25.5,
     "weighted_by_2024_25_enrollment": 26.547,
     "n_schools_with_enrollment_weight": 30
    }
   },
   "High": {
    "REGULAR": {
     "n_schools": 48,
     "mean_school": 47.975,
     "median_school": 52,
     "weighted_by_2024_25_enrollment": 44.5782,
     "n_schools_with_enrollment_weight": 48
    },
    "CHARTER": {
     "n_schools": 9,
     "mean_school": 42.2333,
     "median_school": 42,
     "weighted_by_2024_25_enrollment": 37.5466,
     "n_schools_with_enrollment_weight": 9
    }
   }
  },
  "subgroup_gaps_latest": {
   "ECON_DISADV": {
    "REGULAR": {
     "n_schools": 218,
     "mean_subgroup_below_90": 41.2445,
     "mean_all_below_90_same_schools": 38.756,
     "mean_gap": 2.4885,
     "median_gap": 2.05
    },
    "CHARTER": {
     "n_schools": 77,
     "mean_subgroup_below_90": 30.8623,
     "mean_all_below_90_same_schools": 29.3494,
     "mean_gap": 1.513,
     "median_gap": 0.8
    }
   },
   "IEP": {
    "REGULAR": {
     "n_schools": 215,
     "mean_subgroup_below_90": 43.6535,
     "mean_all_below_90_same_schools": 38.3944,
     "mean_gap": 5.2591,
     "median_gap": 5.7
    },
    "CHARTER": {
     "n_schools": 78,
     "mean_subgroup_below_90": 32.5205,
     "mean_all_below_90_same_schools": 29.0256,
     "mean_gap": 3.4949,
     "median_gap": 3.3
    }
   },
   "ELL": {
    "REGULAR": {
     "n_schools": 131,
     "mean_subgroup_below_90": 28.3672,
     "mean_all_below_90_same_schools": 36.8198,
     "mean_gap": -8.4527,
     "median_gap": -7.7
    },
    "CHARTER": {
     "n_schools": 38,
     "mean_subgroup_below_90": 14.4316,
     "mean_all_below_90_same_schools": 24.5368,
     "mean_gap": -10.1053,
     "median_gap": -8.3
    }
   },
   "BLACK": {
    "REGULAR": {
     "n_schools": 217,
     "mean_subgroup_below_90": 42.0373,
     "mean_all_below_90_same_schools": 38.7908,
     "mean_gap": 3.2465,
     "median_gap": 1.4
    },
    "CHARTER": {
     "n_schools": 77,
     "mean_subgroup_below_90": 29.9636,
     "mean_all_below_90_same_schools": 29.074,
     "mean_gap": 0.8896,
     "median_gap": 0.2
    }
   },
   "WHITE": {
    "REGULAR": {
     "n_schools": 97,
     "mean_subgroup_below_90": 26.4588,
     "mean_all_below_90_same_schools": 29.2557,
     "mean_gap": -2.7969,
     "median_gap": -0.2
    },
    "CHARTER": {
     "n_schools": 26,
     "mean_subgroup_below_90": 25.4692,
     "mean_all_below_90_same_schools": 25.1077,
     "mean_gap": 0.3615,
     "median_gap": -0.8
    }
   }
  },
  "cross_publisher_check": {
   "sdp_year": "2023-24",
   "frpi_year_served": "2023-24",
   "frpi_workbook": "2024-25",
   "n_pairs": 216,
   "median_delta": 1.725,
   "mean_delta": 1.715,
   "stdev_delta": 1.717,
   "min_delta": -3.9,
   "max_delta": 6.51,
   "pct_within_1": 27.8,
   "pct_within_2": 55.1,
   "pct_within_5": 97.2,
   "n_abs_gt_10": 0,
   "pearson_r": 0.9948,
   "sdp_mean_pct_90plus": 60,
   "frpi_mean_regular": 61.72,
   "publishers": {
    "sdp": "School District of Philadelphia, '% with 90%+ Attendance (Yearly)' (sdp_attendance_90_school); students enrolled 10+ days at the school",
    "frpi": "PA Dept. of Education, Future Ready PA Index 'Regular Attendance' / PercentPersistentAttendance (futurereadypa_performance_<year+1>; lagging indicator, stored under the attendance year); students enrolled 90+ school days"
   },
   "delta_definition": "frpi − sdp, in percent of students (positive = the state shows MORE students at 90%+, i.e. FEWER below 90%)",
   "year_alignment": "Both sides describe 2023-24 attendance. The state's value comes from its 2024-25 workbook (PDE glossary: 'a lagging indicator indicating data is from the year prior to the reporting year').",
   "splice_thresholds": {
    "median_abs_delta_max": 0.5,
    "pct_within_1_min": 80
   },
   "verdict": "NOT_SPLICEABLE",
   "verdict_note": "Not interchangeable, but closely related: for 216 district-run schools in 2023-24, the state's figure runs a median +1.73 points above the district's (fewer students below 90%), 27.8% of schools agree within ±1, 97.2% within ±5, 0 differ by more than 10, r = 0.9948. The per-school difference ranges from -3.90 to +6.51, so the offset is a central tendency, not a one-directional gap at every school. The pre-committed splice threshold (median within 0.5 and 80% of schools within ±1) is not met, so cross-sector (charter vs district) comparisons use the state's measure on BOTH sides and never mix publishers in one series. POSSIBLE EXPLANATION (untested): the publishers' eligibility rules differ — PDE counts only students enrolled 90+ school days (PDE Future Ready glossary), the district counts students enrolled 10+ days at the school (SDP, Student Attendance Patterns in Philadelphia 2017-18 to 2021-22, June 2023). If short-enrollment records have lower attendance, that would push the state's rate up; but neither the excluded share nor the excluded records' attendance is published, so how much of the offset it explains is unknown. Local attendance coding, attribution of transfers, revisions, and rounding are other candidates. PER-YEAR SWEEP (same attendance year on both sides): the median offset is +0.77 to +1.73 across the overlapping years (2020-21 +0.77, 2021-22 +1.69, 2022-23 +1.71, 2023-24 +1.73), with r ≥ 0.9934 in every year; no year stands out as a basis change. CORRECTION (2026-09-07): an earlier version of this check compared the state's workbook year to the district's attendance year and reported ~11-point gaps in 2020-21/2021-22 and a 'basis change at 2022-23'. That was a year misalignment (the state's attendance element lags one year); see report_year_matched_diagnostic. SCOPE: this check covers district-run schools only, in the years both publishers describe (2020-21 onward); it does not test charter schools, the two pre-pandemic years, or whether local attendance coding is identical across sectors.",
   "per_year": {
    "2020-21": {
     "n_pairs": 212,
     "median_delta": 0.77,
     "mean_delta": 0.928,
     "pct_within_1": 61.8,
     "pct_within_5": 99.1,
     "n_abs_gt_10": 0,
     "pearson_r": 0.9981,
     "sdp_mean_pct_90plus": 67.53,
     "frpi_mean_regular": 68.46,
     "frpi_workbook": "2021-22"
    },
    "2021-22": {
     "n_pairs": 213,
     "median_delta": 1.69,
     "mean_delta": 1.62,
     "pct_within_1": 21.6,
     "pct_within_5": 94.8,
     "n_abs_gt_10": 0,
     "pearson_r": 0.9934,
     "sdp_mean_pct_90plus": 56.46,
     "frpi_mean_regular": 58.08,
     "frpi_workbook": "2022-23"
    },
    "2022-23": {
     "n_pairs": 215,
     "median_delta": 1.71,
     "mean_delta": 1.81,
     "pct_within_1": 22.3,
     "pct_within_5": 97.7,
     "n_abs_gt_10": 0,
     "pearson_r": 0.9955,
     "sdp_mean_pct_90plus": 59.39,
     "frpi_mean_regular": 61.2,
     "frpi_workbook": "2023-24"
    },
    "2023-24": {
     "n_pairs": 216,
     "median_delta": 1.725,
     "mean_delta": 1.715,
     "pct_within_1": 27.8,
     "pct_within_5": 97.2,
     "n_abs_gt_10": 0,
     "pearson_r": 0.9948,
     "sdp_mean_pct_90plus": 60,
     "frpi_mean_regular": 61.72,
     "frpi_workbook": "2024-25"
    }
   },
   "report_year_matched_diagnostic": {
    "2020-21": {
     "district_year": "2020-21",
     "state_workbook": "2020-21",
     "state_attendance_year": "2019-20",
     "n_pairs": 212,
     "median_delta": 11.66,
     "pct_within_1": 3.3,
     "pct_within_5": 27.4,
     "n_abs_gt_10": 119,
     "pearson_r": 0.8285
    },
    "2021-22": {
     "district_year": "2021-22",
     "state_workbook": "2021-22",
     "state_attendance_year": "2020-21",
     "n_pairs": 212,
     "median_delta": 11.535,
     "pct_within_1": 3.3,
     "pct_within_5": 17.9,
     "n_abs_gt_10": 128,
     "pearson_r": 0.8684
    },
    "2022-23": {
     "district_year": "2022-23",
     "state_workbook": "2022-23",
     "state_attendance_year": "2021-22",
     "n_pairs": 213,
     "median_delta": -0.48,
     "pct_within_1": 16.9,
     "pct_within_5": 60.6,
     "n_abs_gt_10": 35,
     "pearson_r": 0.9146
    },
    "2023-24": {
     "district_year": "2023-24",
     "state_workbook": "2023-24",
     "state_attendance_year": "2022-23",
     "n_pairs": 215,
     "median_delta": 1.13,
     "pct_within_1": 19.5,
     "pct_within_5": 61.9,
     "n_abs_gt_10": 23,
     "pearson_r": 0.92
    },
    "2024-25": {
     "district_year": "2024-25",
     "state_workbook": "2024-25",
     "state_attendance_year": "2023-24",
     "n_pairs": 216,
     "median_delta": 1.11,
     "pct_within_1": 19.9,
     "pct_within_5": 74.5,
     "n_abs_gt_10": 12,
     "pearson_r": 0.952
    }
   }
  }
 }
}