{
  "ergo": "0.4",
  "datasets": [
    {
      "slug": "auditor-management-reports",
      "title": "NJ District Auditor's Management Reports",
      "publisher": "NJ Department of Education, Office of Fiscal Accountability and Compliance",
      "status": "live",
      "confidence": "A",
      "updated": "2026-08-03",
      "subject": "https://www.nj.gov/education/finance/fp/acfr/",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "The FY2025 excess-surplus schedule is an audited-finance period record, not the later User-Friendly Budget proposal, current cash, or an audit finding.",
      "coverage": {
        "period": "FY2025, ending June 30, 2025",
        "grain": "district management report × schedule line or arithmetic check",
        "entities": "682 reviewed Aquifer identity links; publisher code 6183 remains quarantined"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/finance/fp/acfr/"
      ],
      "counts": {
        "issues": 0,
        "core": 0,
        "practices": 0,
        "effects": {}
      },
      "issues": [],
      "practices": [],
      "latest_change": "",
      "page": "auditor-management-reports.md",
      "page_url": "https://njschooldata.fyi/data/ergo/auditor-management-reports.md"
    },
    {
      "slug": "certificated-staff",
      "title": "NJDOE Certificated Staff",
      "publisher": "New Jersey Department of Education",
      "status": "live",
      "confidence": "A",
      "updated": "2026-08-03",
      "subject": "https://www.nj.gov/education/doedata/cs/index.shtml",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "The record runs twenty-seven editions and breaks three times inside it, so no series may be drawn straight across it and an empty-looking demographic cell is almost always an exact published zero rather than a suppression.",
      "coverage": {
        "years": "1999-2000 through 2025-26",
        "grain": "school year x district x certificated role x metric",
        "entities": "27 editions; 17,773 district-year rows and 51,773 district-year-role rows across the whole record, plus 16,044 district-role rows and 320,880 district composition cells in the six modern-vocabulary editions; 661 of 738 rendered district profiles carry the published record"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/doedata/cs/index.shtml"
      ],
      "counts": {
        "issues": 16,
        "core": 4,
        "practices": 0,
        "effects": {
          "breaks": 1,
          "corrupts": 4,
          "misleads": 10,
          "context": 1
        }
      },
      "issues": [
        {
          "id": "fte-is-not-headcount-or-payroll",
          "title": "Certificated FTE is fractional reported workload, not employee headcount, payroll, salary cost, effectiveness, quality, or need",
          "effect": "misleads",
          "type": "definitional",
          "status": "open",
          "core": false
        },
        {
          "id": "district-total-is-derived",
          "title": "The district release has four certificated role rows but no authoritative district-total row",
          "effect": "misleads",
          "type": "measurement",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "published-zero-is-not-a-suppression",
          "title": "A blank-looking demographic cell is an exact published zero (literal 0), not a withheld value; the only withheld cells in the release carry the literal <.1",
          "effect": "corrupts",
          "type": "suppression",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "nonbinary-is-never-published",
          "title": "staff.certificated.gender.nonbinary.percent is a percentage with no count metric behind it, and it is withheld in every district, every role and every year",
          "effect": "misleads",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "sex-fte-does-not-reconcile-to-total",
          "title": "The two published sex FTE values do not sum to the published total FTE in 421 of 16,044 district-role cells, and the residual is not a recoverable non-binary count",
          "effect": "misleads",
          "type": "measurement",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "percent-column-rounds-a-reported-fte-to-zero",
          "title": "Eight district cells carry a reported non-zero FTE and a percent the publisher rounded to an exact 0.0, so the two columns disagree about whether anyone is there",
          "effect": "misleads",
          "type": "coding",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "noncertificated-has-no-race-or-sex",
          "title": "The non-certificated release carries no demographic metric, so paraprofessionals, aides, clerical and service staff are absent from any staff-composition reading",
          "effect": "misleads",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "small-denominator-share-floor",
          "title": "Half of all district-role cells report 10.8 FTE or less, where a single hire moves a share by ten points or more",
          "effect": "misleads",
          "type": "measurement",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "headcount-becomes-fte",
          "title": "Counts through 2007-08 are whole staff and counts from 2008-09 are fractional FTE",
          "effect": "corrupts",
          "type": "measurement",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "race-vocabulary-changes-three-times",
          "title": "Five categories, then seven with an OTHER, then OTHER renamed Two or More Races in place",
          "effect": "misleads",
          "type": "definitional",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "role-split-is-absent-from-2016-17",
          "title": "Three editions print a both-sexes row for the all-positions line only",
          "effect": "corrupts",
          "type": "suppression",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "2005-06-position-split",
          "title": "The 2005-06 teacher and special-services split is not comparable with its neighbours",
          "effect": "corrupts",
          "type": "entry",
          "status": "open",
          "core": false
        },
        {
          "id": "identity-spine-is-a-current-snapshot",
          "title": "A matched 1999 record confirms the code exists today, not that it is the same district",
          "effect": "misleads",
          "type": "identity",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "staff-counted-on-one-october-day",
          "title": "Each annual figure is a single-day snapshot, stated in exactly one edition of twenty-seven",
          "effect": "context",
          "type": "definitional",
          "status": "open",
          "core": false
        },
        {
          "id": "special-services-is-spelled-two-ways",
          "title": "The archive says Special Services and the modern releases say Special Service",
          "effect": "breaks",
          "type": "coding",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "presentation-and-vocabulary-break-one-edition-apart",
          "title": "2019-20 is laid out like the modern editions but named like the archive ones",
          "effect": "misleads",
          "type": "coding",
          "status": "mitigated",
          "core": false
        }
      ],
      "practices": [],
      "latest_change": "2026-08-01",
      "page": "certificated-staff.md",
      "page_url": "https://njschooldata.fyi/data/ergo/certificated-staff.md"
    },
    {
      "slug": "district-source-notes",
      "title": "District source notes (knowledge layer)",
      "publisher": "njschooldata (curated from public records)",
      "status": "live",
      "confidence": "B",
      "updated": "2026-08-03",
      "subject": "https://njschooldata.fyi/data/district-source-notes/",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "Only rows with rights = public_record or link_quote may publish — anything else is rejected by seed validation, the table CHECK constraint, and catalog construction before local or static rendering.",
      "coverage": {
        "entities": "South Orange-Maplewood SD only (district_code 4900) as of this writing; the layer is designed to extend to any NJ district",
        "years": "2026 (dates of the underlying statements/documents)",
        "vintage": "SEED list curated 2026-07"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://njschooldata.fyi/data/district-source-notes/"
      ],
      "counts": {
        "issues": 6,
        "core": 1,
        "practices": 0,
        "effects": {
          "breaks": 1,
          "corrupts": 1,
          "context": 4
        }
      },
      "issues": [
        {
          "id": "complementary-not-ufb-revision",
          "title": "Notes render beside UFB budget figures on district pages but are not a revision to them",
          "effect": "context",
          "type": "definitional",
          "status": "open",
          "core": true
        },
        {
          "id": "invalid-rights-blocks-publish",
          "title": "A rights value outside public_record/link_quote is rejected before it can publish",
          "effect": "breaks",
          "type": "coding",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "confidence-values-are-not-letters",
          "title": "Loaded rows use confidence values 'high'/'medium', not the documented A/B/C letters",
          "effect": "corrupts",
          "type": "coding",
          "status": "open",
          "core": false
        },
        {
          "id": "db-rebuilt-from-seed-each-run",
          "title": "district_source_notes is dropped and rebuilt from the SEED list on every run",
          "effect": "context",
          "type": "revision",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "internal-only-marker-is-freetext",
          "title": "The internal_only flag is a substring inside quote_or_claim, not a column",
          "effect": "context",
          "type": "coverage",
          "status": "open",
          "core": false
        },
        {
          "id": "source-url-non-http-not-linked",
          "title": "Local warehouse paths in source_url render without a link",
          "effect": "context",
          "type": "format",
          "status": "open",
          "core": false
        }
      ],
      "practices": [],
      "latest_change": "2026-07-10",
      "page": "district-source-notes.md",
      "page_url": "https://njschooldata.fyi/data/ergo/district-source-notes.md"
    },
    {
      "slug": "esea-waiver-accountability-profiles",
      "title": "New Jersey ESEA Flexibility waiver accountability profiles, 2012 to 2016",
      "publisher": "NJ Department of Education, Office of Title I",
      "status": "live",
      "confidence": "A",
      "updated": "2026-08-03",
      "subject": "https://www.nj.gov/education/title1/accountability/",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "YES* never means the school met its published target. Through 2014 it marks a school that missed it and was credited within a 95 percent confidence interval; from 2015 it is a participation determination, in a different column, in editions that publish no performance target at all.",
      "coverage": {
        "period": "Five annual editions, 2012 through 2016. Nothing before 2012 and nothing between 2017 and 2023 exists at this path; the ESSA calculation workbooks begin with 2024-25.",
        "grain": "academic determination = entity x edition x subject x student group; graduation determination = entity x edition x student group; attendance determination = entity x edition, never by student group",
        "entities": "2,325 school CDS codes and 679 district CDS codes across the five editions; 2,234 schools and 645 districts resolve to a current njschooldata slug"
      },
      "missingness": {
        "zero_is_missing": false,
        "source_tokens": [
          "-",
          "--"
        ]
      },
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/title1/accountability/"
      ],
      "counts": {
        "issues": 10,
        "core": 3,
        "practices": 2,
        "effects": {
          "breaks": 1,
          "corrupts": 2,
          "misleads": 5,
          "context": 2
        }
      },
      "issues": [
        {
          "id": "no-performance-target-after-2014",
          "title": "2015 and 2016 publish no progress target and no performance determination, for every school in New Jersey",
          "effect": "breaks",
          "type": "coverage",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "the-asterisk-is-not-met",
          "title": "Through 2014, YES* marks a school that MISSED its target and was credited within a 95 percent confidence interval",
          "effect": "misleads",
          "type": "coding",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "the-asterisk-changes-column-in-2015",
          "title": "From 2015 the asterisk moves to the participation column and means participation averaging, not a confidence-interval credit",
          "effect": "misleads",
          "type": "coding",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "the-double-dash-is-not-in-the-legend",
          "title": "A sixth token, --, appears in the performance column and is documented nowhere",
          "effect": "corrupts",
          "type": "coding",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "graduation-and-attendance-block-not-captured",
          "title": "Each profile carries a third table: graduation per student group and attendance per entity, printed in four of the five editions",
          "effect": "misleads",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "preliminary-is-not-final",
          "title": "Three editions are labelled preliminary, one final and one unmarked — and in 2013 the school profiles are final while the district profiles are preliminary",
          "effect": "misleads",
          "type": "revision",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "subgroup-labels-drift",
          "title": "2012 through 2015 print Limited English Proficiency; 2016 prints English Language Learners",
          "effect": "misleads",
          "type": "definitional",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "many-entities-no-longer-exist",
          "title": "The CDS codes are 2012–2016 entities and the identity release is a current snapshot, so a real share of rows will never join",
          "effect": "context",
          "type": "identity",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "the-recoverable-span-is-2012-to-2016",
          "title": "11.zip, 17.zip and 18.zip return 404, and the seven years between this record and the ESSA workbooks will not fill",
          "effect": "context",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "determinations-without-a-target",
          "title": "Some 2012 charter district rows carry a real determination against a printed target of `-`",
          "effect": "corrupts",
          "type": "entry",
          "status": "open",
          "core": false
        }
      ],
      "practices": [
        {
          "id": "keep-the-two-regimes-apart",
          "title": "Keep the regimes apart and draw the gap as a gap",
          "question": "Can I put these years on one axis?",
          "authority": "project",
          "rule": "Present 2012–2014 and 2015–2016 as two bands, comparable within each and not across, put the 2017–2023 absence between them and the 2024-25 ESSA score as a third instrument, and carry the determination stage and the performance measure on every year so the discontinuity is visible rather than smoothed.",
          "because": "There is no single comparable score across the waiver era and there never will be. The regime change is not noise — it is what the reader learns.",
          "naive": "Deriving a composite score, or drawing a trend line, so the years fit on one chart."
        },
        {
          "id": "pin-the-glyph-per-edition",
          "title": "Ask what the glyph meant that year, from that year's own documents",
          "question": "What does this determination glyph mean in the edition it was printed in?",
          "authority": "publisher",
          "rule": "Resolve every determination glyph against the edition it appears in, using that edition's recorded column, meaning and authority, and generate the reader-facing words from those rather than from a lookup table shared across the archive.",
          "because": "The same five characters encode a confidence-interval credit on a performance determination through 2014 and participation averaging on a participation determination from 2015. One constant would state a finding about a student group that the record does not support.",
          "naive": "Building one glyph-to-meaning map for the whole archive because the glyphs are the same five characters."
        }
      ],
      "latest_change": "2026-07-30",
      "page": "esea-waiver-accountability-profiles.md",
      "page_url": "https://njschooldata.fyi/data/ergo/esea-waiver-accountability-profiles.md"
    },
    {
      "slug": "essa-accountability-workbooks",
      "title": "NJDOE ESSA Accountability Calculation Workbooks",
      "publisher": "NJ Department of Education",
      "status": "live",
      "confidence": "A",
      "updated": "2026-08-03",
      "subject": "https://www.nj.gov/education/title1/accountability/",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "Eight editions, seven measured school years. Comparability is per configuration, not per span: only years sharing a weight vector may be compared, and these are policy-defined school calculations, not site grades or current CSI/ATSI status.",
      "coverage": {
        "period": "2016-17 through 2024-25 in eight editions across seven measured school years; 2019-20 and 2020-21 waived and never calculated; 2024-25 indicator detail from the April 2, 2026 workbooks and the May 2026 guide; annual TSI effective 2026-27",
        "grain": "Comprehensive Summative school x metric (2024-25); school x edition x headline field (all eight editions); edition; absent school year; Targeted Summary school x flag group; Targeted Summary school x exact group list; publisher defect",
        "entities": "2,356 Comprehensive Summative school rows and 2,358 Targeted Summary school rows in 2024-25; 2,081 schools carry a 2024-25 summative score; 2,446 distinct schools across all eight editions, 2,007 of them in all seven measured years; 558 of 587 rendered budget districts match by exact code"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/title1/accountability/"
      ],
      "counts": {
        "issues": 13,
        "core": 4,
        "practices": 0,
        "effects": {
          "breaks": 2,
          "corrupts": 3,
          "misleads": 4,
          "context": 4
        }
      },
      "issues": [
        {
          "id": "comparability-is-per-configuration",
          "title": "Whether two of a school's ESSA years may be compared depends on what kind of school it is: the elementary weight vector never moves, the high-school one breaks at 2024-25, and the mixed one breaks twice",
          "effect": "misleads",
          "type": "measurement",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "2016-17-was-published-twice",
          "title": "There are two 2016-17 editions measuring the same school year, and all 2,105 summative scores differ between them",
          "effect": "breaks",
          "type": "coverage",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "two-years-were-waived-not-missing",
          "title": "2019-20 and 2020-21 have no determination because the federal government waived the requirement, and 2015-16 because it belongs to the previous regime — none of the three is a failure to acquire",
          "effect": "misleads",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "an-unexplained-blank-is-not-an-absence",
          "title": "A blank summative rating is one of three different facts, and only value_state separates them",
          "effect": "corrupts",
          "type": "suppression",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "the-rounding-regime-changes-mid-record",
          "title": "Three editions publish the summative score and its percentile at full float precision while the others round to two decimals",
          "effect": "context",
          "type": "measurement",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "configuration-literal-changes-not-the-configuration",
          "title": "NJDOE spells the same configuration 'ES/MS' in three editions and 'Elementary' in the other five",
          "effect": "context",
          "type": "definitional",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "capture-ids-move-when-the-contract-does",
          "title": "Every 2024-25 capture_id changed between two releases in which no published value changed, because the id carries the source contract's SHA-256",
          "effect": "context",
          "type": "identity",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "absenteeism-column-is-the-non-chronic-rate",
          "title": "The Summative worksheet's absenteeism measure is the NON-chronic rate — 100 minus chronic absenteeism — so higher is better and the metric id reads the other way",
          "effect": "corrupts",
          "type": "definitional",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "weights-are-rescaled-per-school",
          "title": "Each school's indicator weights are rescaled to fill 100%, so the same indicator is worth different points at different schools",
          "effect": "misleads",
          "type": "measurement",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "weighted-values-round-not-reconcile",
          "title": "Summative score minus the sum of the published weighted values is non-zero for 1,013 of 2,081 scored schools, and five schools' weights sum to 99.99 or 100.01",
          "effect": "corrupts",
          "type": "measurement",
          "status": "open",
          "core": false
        },
        {
          "id": "blank-cells-are-suppression-or-scope",
          "title": "The workbook prints the same empty cell whether an indicator was suppressed for this school or never applied to its configuration",
          "effect": "breaks",
          "type": "suppression",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "hs-persistence-is-weighted-zero",
          "title": "HS Persistence is calculated for every high school in this edition and weighted zero at all of them, so it contributes nothing to any summative score",
          "effect": "misleads",
          "type": "policy",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "unscored-rows-still-publish-results",
          "title": "The 275 rows marked 'N/A - Not an Identification Year' have no score, percentile or weight, but all 275 still publish a non-chronic absenteeism rate",
          "effect": "context",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        }
      ],
      "practices": [],
      "latest_change": "2026-07-31",
      "page": "essa-accountability-workbooks.md",
      "page_url": "https://njschooldata.fyi/data/ergo/essa-accountability-workbooks.md"
    },
    {
      "slug": "fall-enrollment",
      "title": "NJ DOE Fall Enrollment Reports",
      "publisher": "NJ Dept. of Education",
      "status": "live",
      "confidence": "A",
      "updated": "2026-08-03",
      "subject": "https://www.nj.gov/education/doedata/enr/",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "'Two or More Races' and 'Native Hawaiian/Pacific Islander' don't exist before 2006-07 — and the warehouse stores 0, not NULL, for them in every earlier year, so a naive trend line reads a definitional change as a demographic swing.",
      "coverage": {
        "years": "1998-99 → 2025-26 (28 yrs)",
        "grain": "school year × school; also rolled up to school year × district",
        "entities": "744 districts, ~3,038 schools, all 21 NJ counties (plus charter / state-operated groupings)"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/doedata/enr/"
      ],
      "counts": {
        "issues": 24,
        "core": 2,
        "practices": 0,
        "effects": {
          "breaks": 10,
          "corrupts": 9,
          "misleads": 2,
          "context": 3
        }
      },
      "issues": [
        {
          "id": "era-format-drift",
          "title": "A parser must detect the era (CSV, long workbook, or School/District sheets) before it can read a row",
          "effect": "breaks",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "era-b-file-quirks",
          "title": "2009-10 and 2010-11 are binary .xls (openpyxl can't open them directly); the filename inside the zip also isn't fixed",
          "effect": "breaks",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "header-naming-variants",
          "title": "Race/sex columns use different header spellings by era (WhiteM vs WHM, and others)",
          "effect": "breaks",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "grade-mislabeled-total-prgcode",
          "title": "Grade_Level reads 'Total' for every row in some Era B years; the real grade is in a separate PRGCODE column",
          "effect": "corrupts",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "header-row-not-first",
          "title": "Some sheets bury the header a few rows down; row 1 can be a title or note",
          "effect": "breaks",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "era-b-vs-c-ambiguous",
          "title": "File extension alone can't distinguish the long-workbook era from the School/District-sheet era — both are .xlsx",
          "effect": "breaks",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "count-percent-adjacency",
          "title": "Modern School/District sheets place a % column immediately after every count column",
          "effect": "corrupts",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "grade8-misspelled-header",
          "title": "The grade-8 header reads 'Eight Grade' (missing the 'h') in 2020-21 through 2022-23",
          "effect": "corrupts",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "race-category-scope-change",
          "title": "'Two or More Races' and 'Native Hawaiian/Pacific Islander' didn't exist before 2006-07; Asian's meaning narrows that year",
          "effect": "misleads",
          "type": "coding",
          "status": "open",
          "core": true
        },
        {
          "id": "pre-2006-race-fields-zero",
          "title": "The legacy producer stored 0 (not NULL) for hawaiian_pi/two_or_more before the categories existed",
          "effect": "corrupts",
          "type": "coding",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "total-vs-grade-double-count",
          "title": "Era A/B files carry an authoritative Total row per school plus separate per-grade (and sometimes special-ed) rows",
          "effect": "corrupts",
          "type": "measurement",
          "status": "monitor",
          "core": false
        },
        {
          "id": "ungraded-students-shortfall",
          "title": "A school's pk..g12 columns can sum to less than its total; the gap is ungraded (mostly special-ed) students, not a parsing error",
          "effect": "context",
          "type": "definitional",
          "status": "open",
          "core": false
        },
        {
          "id": "fractional-shared-time-counts",
          "title": "Counts are not always integers — shared-time students split between schools are reported as halves",
          "effect": "corrupts",
          "type": "measurement",
          "status": "monitor",
          "core": false
        },
        {
          "id": "rollup-rows-as-schools",
          "title": "School code 999 or a 'TOTAL' name is the district's own aggregate row; district code 9999 or a county/state name is a rollup, not a real district",
          "effect": "corrupts",
          "type": "entry",
          "status": "monitor",
          "core": false
        },
        {
          "id": "suppressed-blank-cells",
          "title": "Missing/suppressed values show up as sentinel strings ('.', '*', 'N', '-'), not empty cells",
          "effect": "corrupts",
          "type": "suppression",
          "status": "monitor",
          "core": false
        },
        {
          "id": "school-identity-vs-name-drift",
          "title": "School names change, and even (district_code, school_code) has one known school-year collision that must be quarantined",
          "effect": "corrupts",
          "type": "linkage",
          "status": "monitor",
          "core": false
        },
        {
          "id": "synthesized-district-rows",
          "title": "district_enrollment mixes source-published district totals with rows we synthesized by summing member schools, distinguished by a synthesized flag",
          "effect": "context",
          "type": "measurement",
          "status": "monitor",
          "core": false
        },
        {
          "id": "non-race-dimension-coverage-phase-in",
          "title": "Non-race dimensions don't share one coverage window: military starts 2019-20, homeless 2009-10 then 2019-20 onward",
          "effect": "context",
          "type": "coverage",
          "status": "open",
          "core": false
        },
        {
          "id": "frl-is-a-certification-count",
          "title": "free_lunch and reduced_lunch are an administrative certification count; CEP participation pushes them down, not up",
          "effect": "misleads",
          "type": "definitional",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "rollback-producer-shares-the-warehouse",
          "title": "The retired local enrollment producer unlinked the whole warehouse, destroying every other family",
          "effect": "breaks",
          "type": "availability",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "percent-only-composition-years",
          "title": "2019-20 through 2021-22 publish free/reduced lunch and the other composition dimensions as percentages with no count column",
          "effect": "breaks",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "prgcode-55-is-the-total-row",
          "title": "2010-11 and 2011-12 ship no GRADE_LEVEL column, so nothing spells 'Total' and the authoritative row is marked only by PRGCODE 55",
          "effect": "breaks",
          "type": "coding",
          "status": "monitor",
          "core": false
        },
        {
          "id": "era-b-extra-column-spellings",
          "title": "2009-10 abbreviates reduced-price lunch to RED_LUNCH and migrant to MIG, and ships a HOMELESS column the parser never looked for",
          "effect": "breaks",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "multilingual-learner-renamed",
          "title": "The column reads 'English Learners' through 2022-23 and 'Multilingual Learners' from 2023-24",
          "effect": "breaks",
          "type": "format",
          "status": "monitor",
          "core": false
        }
      ],
      "practices": [],
      "latest_change": "2026-07-29",
      "page": "fall-enrollment.md",
      "page_url": "https://njschooldata.fyi/data/ergo/fall-enrollment.md"
    },
    {
      "slug": "idea-classification-rates",
      "title": "NJDOE IDEA Section 618 Classification Rates",
      "publisher": "NJ Department of Education, Office of Special Education",
      "status": "live",
      "confidence": "A",
      "updated": "2026-08-03",
      "subject": "https://www.nj.gov/education/specialed/monitor/ideapublicdata/",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "NJDOE counted public and non-public students through October 2018 and public-school students only from October 2019 — a 1.13 to 1.21 percentage-point step statewide — so no figure may be joined, averaged or compared across that break.",
      "coverage": {
        "period": "Eleven October reference dates, 2014-10-15 to 2024-10-15 — but on two counted populations, so not eleven comparable points",
        "grain": "district overall classification row x coverage universe x metric; statewide category row x coverage universe x metric",
        "entities": "8,495 district rows across eleven editions and two coverage universes, 13 edition-universe registers, 84 statewide category rows, and 99 Section 618 report-family coverage cells; zero school rows in any edition; 558 of 587 rendered budget districts match by exact code"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/specialed/monitor/ideapublicdata/docs/2025_618data/2025IDEA618PublicReporting_ClassificationRates.xlsx"
      ],
      "counts": {
        "issues": 10,
        "core": 3,
        "practices": 0,
        "effects": {
          "breaks": 1,
          "corrupts": 3,
          "misleads": 2,
          "context": 4
        }
      },
      "issues": [
        {
          "id": "three-empties-are-not-zero",
          "title": "Three districts have a suppressed enrollment denominator (`*`), one has not-collected IEP and rate cells (empty), and four have an exact zero NJDOE printed — none of the three may render as the others",
          "effect": "breaks",
          "type": "suppression",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "rate-is-an-administrative-count",
          "title": "The classification rate is the share of students holding an IEP on one October day; it measures neither need, identification quality, service quality, staffing, spending, placement nor compliance, and it is directionless",
          "effect": "misleads",
          "type": "definitional",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "no-district-level-breakdowns",
          "title": "The 13 disability categories in this workbook exist for New Jersey only and there is no district-level breakdown by disability, race, gender or educational environment in THIS file — but NJDOE publishes exactly those breakdowns at district grain in a sibling Section 618 report family, and a surface must not turn this file's limit into a claim about the publisher",
          "effect": "context",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "coverage-universe-changes-midway",
          "title": "Through the October 2018 count NJDOE counted public and non-public students together; from October 2019 it counted public-school students only; and in October 2022 and October 2023 it published both — so the eleven editions are two series, not one",
          "effect": "corrupts",
          "type": "universe",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "denominator-header-contradicts-the-query",
          "title": "Seven of the eleven editions head the enrollment column `Gened` or `General Ed. Enrollment`, but the publisher's own embedded query counts every student aged 3-21 including those with IEPs, and only that wider reading reconciles against the published rate",
          "effect": "corrupts",
          "type": "coding",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "identity-before-the-spine-has-evidence",
          "title": "The district-code join runs 97.55% (2015 edition) to 99.54%, but the organization spine holds no evidence before 2020-08-11, so a matched pre-2020 row proves the code is in use today rather than that the entity behind it is the same district",
          "effect": "context",
          "type": "identity",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "category-breakdown-is-four-editions-of-eleven",
          "title": "The statewide disability-category breakdown ships as a workbook in only four editions and as a PDF in the other seven, so the category series has four points where the district series has eleven — and three categories were renamed across the span",
          "effect": "context",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "deaf-blindness-rate-rounds-to-zero",
          "title": "The statewide Deaf-Blindness row publishes a classification rate of exactly 0 against a headcount of 18 students",
          "effect": "corrupts",
          "type": "measurement",
          "status": "open",
          "core": false
        },
        {
          "id": "embedded-title-contradicts-reference-date",
          "title": "The 2025-edition workbook's embedded title reads `School Year 2023-24` while the reference date NJDOE states for the data is 2024-10-15",
          "effect": "misleads",
          "type": "entry",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "special-services-districts-have-no-row",
          "title": "29 of the 587 rendered district reports have no exact-code row in this file, and 20 of them are the county special-services districts, educational-services commissions and jointure commissions a special-education surface most invites a reader to look for",
          "effect": "context",
          "type": "linkage",
          "status": "mitigated",
          "core": false
        }
      ],
      "practices": [],
      "latest_change": "2026-08-01",
      "page": "idea-classification-rates.md",
      "page_url": "https://njschooldata.fyi/data/ergo/idea-classification-rates.md"
    },
    {
      "slug": "noncertificated-staff",
      "title": "NJDOE Non-Certificated Staff",
      "publisher": "New Jersey Department of Education",
      "status": "live",
      "confidence": "A",
      "updated": "2026-07-22",
      "subject": "https://www.nj.gov/education/doedata/ncs/index.shtml",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "The publisher's district total is authoritative: 84 rounded 2020-21 role rows differ from it by 0.1 or 0.2 FTE, and FTE is not employee headcount, payroll, cost, quality, or need.",
      "coverage": {
        "years": "2020-21 through 2025-26",
        "grain": "school year x district x non-certificated support role, plus one publisher total",
        "entities": "32,048 district-role rows and 4,006 district totals; 582 of 587 rendered budget districts have both staffing families"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/doedata/ncs/index.shtml"
      ],
      "counts": {
        "issues": 3,
        "core": 1,
        "practices": 0,
        "effects": {
          "corrupts": 2,
          "misleads": 1
        }
      },
      "issues": [
        {
          "id": "fte-is-not-headcount-or-payroll",
          "title": "Non-certificated FTE is fractional reported workload, not employee headcount, payroll, cost, effectiveness, quality, or need",
          "effect": "misleads",
          "type": "definitional",
          "status": "open",
          "core": false
        },
        {
          "id": "reported-total-rounding",
          "title": "Eighty-four 2020-21 district role sums differ from the publisher-reported total by 0.1 or 0.2 FTE",
          "effect": "corrupts",
          "type": "measurement",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "post-sentinel-trailer-rows",
          "title": "Twelve rows after the declared table sentinel are duplicate or conflicting trailers, not accepted replacements",
          "effect": "corrupts",
          "type": "format",
          "status": "mitigated",
          "core": false
        }
      ],
      "practices": [],
      "latest_change": "2026-07-22",
      "page": "noncertificated-staff.md",
      "page_url": "https://njschooldata.fyi/data/ergo/noncertificated-staff.md"
    },
    {
      "slug": "spr",
      "title": "NJ School Performance Reports",
      "publisher": "NJ Dept. of Education, Office of Performance Reports",
      "status": "live",
      "confidence": "A",
      "updated": "2026-08-03",
      "subject": "https://www.nj.gov/education/spr/",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "NJ publishes two 4-yr graduation rates — State and Federal — but only State is populated across years (27,115 of 27,201 trend rows; Federal in just 5,423, effectively one year); plotting Federal as a trend, or comparing states on it, is the classic misread.",
      "coverage": {
        "years": "2015-16 → 2024-25 for graduation and chronic absenteeism, from all ten published editions; 2021-22 → 2024-25 for assessment and growth, which still read the current workbook's trend tabs only (see spr/trend-tabs-post-covid-only)",
        "grain": "school year × entity × student group",
        "entities": "every NJ public school, district, and the state"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/spr/"
      ],
      "counts": {
        "issues": 25,
        "core": 1,
        "practices": 0,
        "effects": {
          "breaks": 5,
          "corrupts": 5,
          "misleads": 4,
          "context": 11
        }
      },
      "issues": [
        {
          "id": "url-host-split",
          "title": "Files live under /education/sprreports/, not the /education/spr/ landing path",
          "effect": "breaks",
          "type": "availability",
          "status": "monitor",
          "core": false
        },
        {
          "id": "layout-types-lie",
          "title": "Code columns typed 'Numeric' in the layout are zero-padded TEXT in the data",
          "effect": "corrupts",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "schoolyear-typing-inconsistent",
          "title": "SchoolYear is declared Numeric in some tabs' layout and Text in others, though the data is always the string \"2020-21\"",
          "effect": "corrupts",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "rate-prose-suppression",
          "title": "Rate cells carry % signs, prose suppression sentences, and >90%/<10% privacy caps",
          "effect": "breaks",
          "type": "suppression",
          "status": "monitor",
          "core": true
        },
        {
          "id": "grad-state-vs-federal",
          "title": "State and Federal 4-yr graduation rates coexist; only State is populated across years",
          "effect": "misleads",
          "type": "measurement",
          "status": "monitor",
          "core": false
        },
        {
          "id": "monolithic-workbook-size",
          "title": "The school-level workbook is ~330 MB with ~80 tabs — a full non-streaming load is impractical",
          "effect": "breaks",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "new-format-2024-25-xlsx-only",
          "title": "From 2024-25 on, NJDOE drops the zip, Access, and Reference Guide PDF variants",
          "effect": "context",
          "type": "availability",
          "status": "open",
          "core": false
        },
        {
          "id": "legacy-archive-link-is-dead",
          "title": "The legacy-years archive link is dead, and the live location is elsewhere",
          "effect": "breaks",
          "type": "availability",
          "status": "resolved",
          "core": false
        },
        {
          "id": "cohort-profile-text-suppression-tell",
          "title": "NonContinuing/Persisting columns on GraduationCohortProfile are typed Text while their siblings are Numeric",
          "effect": "breaks",
          "type": "suppression",
          "status": "open",
          "core": false
        },
        {
          "id": "trend-tabs-post-covid-only",
          "title": "The 2024-25 file's trend tabs start at 2020-21 or 2021-22, not earlier",
          "effect": "context",
          "type": "coverage",
          "status": "open",
          "core": false
        },
        {
          "id": "the-nine-earlier-editions-are-the-same-measure",
          "title": "Older editions republish the same figures, and the overlap is the proof",
          "effect": "context",
          "type": "measurement",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "edition-census-is-source-shaped-not-conformed",
          "title": "The edition census preserves publisher columns and asserts no metric identity",
          "effect": "context",
          "type": "measurement",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "the-trend-tab-is-two-editions-old",
          "title": "Only the last two editions publish a chronic-absenteeism trend tab at all",
          "effect": "context",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "chronic-absenteeism-was-waived-in-2019-20",
          "title": "New Jersey collected no chronic absenteeism for 2019-20, by waiver",
          "effect": "corrupts",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "pandemic-editions-carry-per-element-publisher-cautions",
          "title": "NJDOE cautions 2019-20 and 2020-21 element by element, not once",
          "effect": "misleads",
          "type": "measurement",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "graduation-rate-type-is-recovered-from-the-statewide-column",
          "title": "Six editions lose GraduationRateType, and it is recovered rather than guessed",
          "effect": "corrupts",
          "type": "measurement",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "the-all-students-row-is-labelled-four-ways",
          "title": "Chronic absence labels its all-students row four ways across ten editions",
          "effect": "corrupts",
          "type": "identity",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "no-statewide-absence-rate-before-2021-22",
          "title": "Only the 2024-25 edition prints a statewide chronic-absence comparator",
          "effect": "context",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "two-2024-25-tabs-disagree-for-one-school",
          "title": "The 2024-25 student-group and trend tabs disagree for Bayonne Alternative High",
          "effect": "context",
          "type": "measurement",
          "status": "open",
          "core": false
        },
        {
          "id": "pre-2020-editions-join-on-an-unverified-code",
          "title": "Before 2020-08-11 a resolving CDS code proves the code, not the school",
          "effect": "misleads",
          "type": "identity",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "the-oldest-graduation-edition-rounds-to-whole-percent",
          "title": "2015-16 publishes graduation rates as bare whole numbers on a different sheet",
          "effect": "context",
          "type": "measurement",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "grade-aggregation-bias",
          "title": "Summing grade-test proficiency into a school-wide figure is biased by suppression and course-mix — a capped Algebra I once inflated one",
          "effect": "misleads",
          "type": "measurement",
          "status": "monitor",
          "core": false
        },
        {
          "id": "hs-no-sgp",
          "title": "StudentGrowthTrends has no rows for standalone high schools — SGP only exists for grades 4-8",
          "effect": "context",
          "type": "universe",
          "status": "open",
          "core": false
        },
        {
          "id": "math-cohort-grades-3-8-only",
          "title": "The cohort-diagonal view (a class followed as it moves up) only works for grades 3-8 math",
          "effect": "context",
          "type": "coverage",
          "status": "open",
          "core": false
        },
        {
          "id": "grade-mix-context",
          "title": "District/state context blends all tested grades; a school's value covers only its own",
          "effect": "context",
          "type": "definitional",
          "status": "open",
          "core": false
        }
      ],
      "practices": [],
      "latest_change": "2026-08-03",
      "page": "spr.md",
      "page_url": "https://njschooldata.fyi/data/ergo/spr.md"
    },
    {
      "slug": "spr-discipline-safety",
      "title": "NJDOE SPR Discipline and Safety",
      "publisher": "NJ Department of Education, Office of Performance Reports",
      "status": "live",
      "confidence": "A",
      "updated": "2026-08-03",
      "subject": "https://www.nj.gov/education/spr/",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "These are separate per-edition records of reported incidents and responses, not a combined safety score or evidence of cause, effectiveness, or budget performance; NJDOE states its own 2019-20 and 2020-21 discipline data are not comparable with adjacent years.",
      "coverage": {
        "period": "2024-25 School Performance Report edition for the conformed marts; the eight editions that carry a district disciplinary-removals sheet, 2017-18 to 2024-25, for the removal history",
        "grain": "district headline x metric; district x HIB nature x metric; district x All Students publisher row x metric; district x student group x metric and district x grade x metric; district x edition x removal measure x unit",
        "entities": "666 district reporting units; 576 of 587 rendered budget districts match by exact code"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/sprreports/download/DataFiles/2024-2025/Database_DistrictStateDetail.xlsx"
      ],
      "counts": {
        "issues": 18,
        "core": 5,
        "practices": 0,
        "effects": {
          "breaks": 2,
          "corrupts": 2,
          "misleads": 13,
          "context": 1
        }
      },
      "issues": [
        {
          "id": "two-suppression-markers",
          "title": "Suppressed cells carry either `*` or `<5`, and `<5` bounds the value where `*` says nothing at all",
          "effect": "misleads",
          "type": "suppression",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "less-than-five-is-count-only",
          "title": "`<5` never appears on a percentage metric; the percentage partner of a `<5` headcount is always a bare `*`",
          "effect": "misleads",
          "type": "suppression",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "less-than-five-includes-zero",
          "title": "The `<5` marker bounds a headcount at zero to four, not one to four — most `<5` cells are masked zeros",
          "effect": "corrupts",
          "type": "suppression",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "small-cell-rule-is-inconsistent",
          "title": "NJDOE masks 34,193 small district headcounts as `<5` but publishes 13,939 headcounts of one to four outright, so a published rate can rest on a single student",
          "effect": "misleads",
          "type": "suppression",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "sex-count-withheld-rate-published",
          "title": "For Male and Female alone, NJDOE suppresses 98.522% of district headcounts and only 16.121% of the matching percentages",
          "effect": "misleads",
          "type": "suppression",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "suppression-tracks-group-size",
          "title": "The smallest student groups are withheld most: 98.522% of Non-Binary cells and 92.327% of American Indian cells against 16.603% for Students with Disabilities",
          "effect": "misleads",
          "type": "coverage",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "published-zero-is-not-a-gap",
          "title": "`0` and `0.00%` are exact publisher zeros, not missing values, and they are the majority state in the early grades and the small districts",
          "effect": "corrupts",
          "type": "suppression",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "dimensions-effectively-never-published",
          "title": "Non-Binary/Undesignated Gender, American Indian or Alaska Native and Grade PK are present in every district row and almost never carry a value",
          "effect": "misleads",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "arrest-columns-are-named-police",
          "title": "The source fields behind the arrest measures are named PoliceCount and PolicePercent while the published layout defines them as all incidents leading to arrest",
          "effect": "misleads",
          "type": "definitional",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "reported-incidents-measure-reporting",
          "title": "Every measure here is an administrative record of what a district recorded and referred, so a diligent recorder looks worse than a district that handles the same behaviour informally",
          "effect": "misleads",
          "type": "definitional",
          "status": "open",
          "core": true
        },
        {
          "id": "covid-editions-are-not-comparable",
          "title": "NJDOE prints, inside the 2019-20 and 2020-21 workbooks, that their discipline data may not be comparable with adjacent years",
          "effect": "misleads",
          "type": "measurement",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "an-unlegended-n-marker",
          "title": "Five editions print a bare `N` in place of a number and none of them says what it means",
          "effect": "misleads",
          "type": "coding",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "all-students-changes-row-shape",
          "title": "Through 2022-23 the district's suspension figure is its own row; from 2023-24 it is a member of a student-group list, named `Districtwide` and then `All Students`",
          "effect": "breaks",
          "type": "format",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "one-edition-renames-the-removal-columns",
          "title": "2023-24 alone spells the removal columns `#StudentsAnySuspension` and `%StudentsAnySuspension`; every other edition, before and after, uses `AnySusp_Count` and `AnySusp_Pct`",
          "effect": "breaks",
          "type": "format",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "removals-sheet-lost-two-measures",
          "title": "`Arrest_Count`/`Arrest_Pct` and `SchoolDaysMissed_OSS` are on the removals sheet through 2022-23 and on no sheet at all afterwards",
          "effect": "misleads",
          "type": "availability",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "district-row-suppression-stops-in-2022-23",
          "title": "NJDOE withholds the district all-students suspension figure in roughly 130 to 240 districts per edition through 2021-22, and in none from 2022-23",
          "effect": "misleads",
          "type": "suppression",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "student-groups-were-redefined-in-2024-25",
          "title": "The student-group breakdown exists in two editions and they do not share a category list",
          "effect": "misleads",
          "type": "definitional",
          "status": "mitigated",
          "core": true
        },
        {
          "id": "identity-evidence-starts-in-2020",
          "title": "For the four editions before 2020-08-11 a resolving district code is a verified code, not a verified district",
          "effect": "context",
          "type": "identity",
          "status": "mitigated",
          "core": false
        }
      ],
      "practices": [],
      "latest_change": "2026-08-01",
      "page": "spr-discipline-safety.md",
      "page_url": "https://njschooldata.fyi/data/ergo/spr-discipline-safety.md"
    },
    {
      "slug": "state-aid",
      "title": "NJDOE K-12 State Aid (GBM District Details)",
      "publisher": "New Jersey Department of Education, Office of School Finance",
      "status": "live",
      "confidence": "A",
      "updated": "2026-08-03",
      "subject": "https://www.nj.gov/education/stateaid/",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "FY24/FY25 carry an 'Adjustment Aid' category that FY26/FY27 drop entirely, and the state budget act's aid collar (+6.00%/-3.00%) legally binds only primary categories — so a district's total year-over-year change routinely lands close to, but not exactly on, +6.00% or -3.00%.",
      "coverage": {
        "years": "2023-24 → 2026-27 (FY24-FY27, 4 yrs)",
        "grain": "school year × district (excludes charters and the statewide total row)",
        "entities": "574-578 NJ operating school districts and county vocational districts per year"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/stateaid/"
      ],
      "counts": {
        "issues": 5,
        "core": 1,
        "practices": 0,
        "effects": {
          "breaks": 2,
          "corrupts": 1,
          "misleads": 2
        }
      },
      "issues": [
        {
          "id": "county-code-not-in-source",
          "title": "The workbook's County column is a plain name; there is no county-code column at all",
          "effect": "breaks",
          "type": "linkage",
          "status": "monitor",
          "core": false
        },
        {
          "id": "adjustment-aid-retired-fy26",
          "title": "FY24/FY25 files carry an 'Adjustment Aid' category that FY26/FY27 files drop entirely",
          "effect": "misleads",
          "type": "definitional",
          "status": "monitor",
          "core": false
        },
        {
          "id": "filename-container-drift",
          "title": "FY26/FY27 publish a direct per-year xlsx; FY24/FY25 are only inside a zip, under a drifting filename",
          "effect": "breaks",
          "type": "availability",
          "status": "monitor",
          "core": false
        },
        {
          "id": "collar-primary-categories-only",
          "title": "The FY26/FY27 aid collar (+6.00%/-3.00%) legally binds only primary aid categories, not the published total",
          "effect": "misleads",
          "type": "definitional",
          "status": "open",
          "core": true
        },
        {
          "id": "state-total-row-embedded",
          "title": "A 'State'/'Total' rollup row sits directly beneath the last real district row",
          "effect": "corrupts",
          "type": "entry",
          "status": "monitor",
          "core": false
        }
      ],
      "practices": [],
      "latest_change": "2026-07-12",
      "page": "state-aid.md",
      "page_url": "https://njschooldata.fyi/data/ergo/state-aid.md"
    },
    {
      "slug": "tges-fund-balance",
      "title": "NJDOE TGES Fund Balance (Indicators 20 & 21)",
      "publisher": "New Jersey Department of Education",
      "status": "archived",
      "confidence": "A",
      "updated": "2026-08-03",
      "subject": "https://www.nj.gov/education/guide/",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "'Actual (Used) or Generated' in Indicator 20 is a flow — the year's fund-balance activity per the audit — not a stock: it is not the district's total year-end reserve, and a negative value means the district *drew down* reserves that year, not that it ran a deficit.",
      "coverage": {
        "years": "2020-21 → 2023-24 (4 school years, from 3 report editions: 2023, 2024, 2025)",
        "grain": "school year × district",
        "entities": "653-658 NJ operating districts and charter schools per school year (unlike state-aid, TGES includes charters)"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/guide/"
      ],
      "counts": {
        "issues": 4,
        "core": 1,
        "practices": 0,
        "effects": {
          "breaks": 1,
          "corrupts": 1,
          "misleads": 1,
          "context": 1
        }
      },
      "issues": [
        {
          "id": "actual-balance-is-a-flow-not-a-stock",
          "title": "'Actual (Used) or Generated' is the year's audited fund-balance movement, not the district's total year-end reserve",
          "effect": "misleads",
          "type": "definitional",
          "status": "open",
          "core": true
        },
        {
          "id": "report-year-overlap",
          "title": "Each TGES edition republishes the immediately preceding fiscal year alongside its newest one",
          "effect": "context",
          "type": "coverage",
          "status": "monitor",
          "core": false
        },
        {
          "id": "container-format-drift",
          "title": "2023 ships every TGES indicator as CSV inside one big zip; 2024/2025 ship one xlsx per indicator",
          "effect": "breaks",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "cp1252-csv-decode",
          "title": "The 2023 edition's CSG20.CSV/CSG21.CSV contain cp1252 smart quotes that break a strict UTF-8 decode",
          "effect": "corrupts",
          "type": "format",
          "status": "monitor",
          "core": false
        }
      ],
      "practices": [],
      "latest_change": "2026-08-03",
      "page": "tges-fund-balance.md",
      "page_url": "https://njschooldata.fyi/data/ergo/tges-fund-balance.md"
    },
    {
      "slug": "ufb",
      "title": "NJDOE User-Friendly Budgets",
      "publisher": "New Jersey Department of Education, User Friendly Budgets",
      "status": "live",
      "confidence": "A",
      "updated": "2026-08-03",
      "subject": "https://www.nj.gov/education/budget/ufb/index.shtml",
      "derived_from": [],
      "version": "",
      "implementation": "https://github.com/lavallee/njschooldata",
      "pitfall": "The per-pupil figures are NJDOE's own published comparative-cost calculation, not something to recompute from spending and enrollment — and every dollar column silently mixes actual, revised, original, and proposed budget bases.",
      "coverage": {
        "years": "2019-20 → 2025-26",
        "grain": "budget year × district (school code blank)",
        "entities": "NJ operating school districts that file a User-Friendly Budget"
      },
      "missingness": {},
      "unknowns": [],
      "source_urls": [
        "https://www.nj.gov/education/budget/ufb/index.shtml"
      ],
      "counts": {
        "issues": 20,
        "core": 3,
        "practices": 0,
        "effects": {
          "breaks": 3,
          "corrupts": 4,
          "misleads": 9,
          "context": 4
        }
      },
      "issues": [
        {
          "id": "cp1252-encoding-drift",
          "title": "Some UFB CSV downloads are not UTF-8 and break a naive decode",
          "effect": "breaks",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "filename-suffix-drift",
          "title": "CSV filenames use different year suffixes between years (rev26.csv vs rev25_minus_1.csv)",
          "effect": "breaks",
          "type": "availability",
          "status": "monitor",
          "core": false
        },
        {
          "id": "mixed-budget-bases",
          "title": "Actual-cost, original-budget, revised/current-budget, and proposed-budget columns are mixed within one file",
          "effect": "misleads",
          "type": "measurement",
          "status": "open",
          "core": true
        },
        {
          "id": "do-not-recompute-comparative-cost",
          "title": "Comparative cost per pupil is NJDOE's own calculation; recomputing it gives a different number",
          "effect": "misleads",
          "type": "measurement",
          "status": "open",
          "core": true
        },
        {
          "id": "zero-comparative-cost-zero-enrollment",
          "title": "A few rows publish $0 comparative cost per pupil with 0 estimated on-roll",
          "effect": "corrupts",
          "type": "entry",
          "status": "monitor",
          "core": false
        },
        {
          "id": "fund-specific-categories",
          "title": "Revenue and appropriation rows belong to specific funds, not one all-funds ledger",
          "effect": "misleads",
          "type": "definitional",
          "status": "open",
          "core": false
        },
        {
          "id": "overlapping-subtotal-detail-rows",
          "title": "Subtotal and detail rows overlap and do not add up to a clean total",
          "effect": "misleads",
          "type": "definitional",
          "status": "open",
          "core": false
        },
        {
          "id": "ufb-planning-vs-fall-enrollment",
          "title": "UFB planning enrollment is the budget denominator and differs from fall enrollment",
          "effect": "misleads",
          "type": "definitional",
          "status": "open",
          "core": true
        },
        {
          "id": "sent-received-overlap",
          "title": "Enrollment file's sent and received rows are not mutually exclusive population categories",
          "effect": "misleads",
          "type": "definitional",
          "status": "open",
          "core": false
        },
        {
          "id": "tax-rate-slices",
          "title": "Estimated tax rates are per $100 of valuation, come in regional/municipal slices, and include implausible rows",
          "effect": "misleads",
          "type": "definitional",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "tax-levy-label-drift",
          "title": "The operating tax levy appears under different labels across years (Local Tax Levy / Local Tax Levy-Base Budget / Total Tax Levy)",
          "effect": "corrupts",
          "type": "coding",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "line31-blank-labels",
          "title": "Enrollment line 31 (post-secondary, other) is sparse and carries blank labels in loaded CSVs",
          "effect": "corrupts",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "recap-amount4-close-balance",
          "title": "Recap amount_4 is the projected close-of-year balance, not an appropriation",
          "effect": "misleads",
          "type": "definitional",
          "status": "open",
          "core": false
        },
        {
          "id": "side-files-not-totals",
          "title": "The recap/esttax/unusual/shared/schapp/employees files are reader context, not replacement totals",
          "effect": "context",
          "type": "definitional",
          "status": "open",
          "core": false
        },
        {
          "id": "shared-service-savings-self-reported",
          "title": "Shared-service amount_saved is district-reported, not an audited saving",
          "effect": "context",
          "type": "definitional",
          "status": "open",
          "core": false
        },
        {
          "id": "salary-self-reported",
          "title": "Administrative salary/benefit rows are self-reported and mix incompatible units",
          "effect": "context",
          "type": "definitional",
          "status": "open",
          "core": false
        },
        {
          "id": "admin-salary-header-drift",
          "title": "The administrative salary files changed the district-code header (district_id vs EMP_DISTRICT_ID)",
          "effect": "corrupts",
          "type": "format",
          "status": "monitor",
          "core": false
        },
        {
          "id": "ufb-coverage-gaps",
          "title": "Some district-profile entities have no matching UFB row at all",
          "effect": "context",
          "type": "coverage",
          "status": "open",
          "core": false
        },
        {
          "id": "omitted-distress-districts",
          "title": "NJDOE omits some fiscally-stressed districts from the statewide UFB revenue/recap files",
          "effect": "breaks",
          "type": "coverage",
          "status": "mitigated",
          "core": false
        },
        {
          "id": "doe-loan-in-state-sources",
          "title": "The Department of Education Loan Against State Aid sits inside Total State Sources but is debt, not aid",
          "effect": "misleads",
          "type": "definitional",
          "status": "mitigated",
          "core": false
        }
      ],
      "practices": [],
      "latest_change": "2026-07-12",
      "page": "ufb.md",
      "page_url": "https://njschooldata.fyi/data/ergo/ufb.md"
    }
  ],
  "base_url": "https://njschooldata.fyi/data/ergo/"
}
