NJ School Data
← Data library
Data explainer

NJ ESSA accountability workbooks

2024–25 measurement · workbooks published April 2, 2026

Once a year New Jersey publishes the arithmetic behind how it rates a school: the indicator results, the weight each one carries at that particular school, the points it earned, and where the total lands against similar schools. Two spreadsheets hold all of it. This page is the manual for reading them — and for the one thing they are most often mistaken for, which is a grade.

1 · The source

The federal Every Student Succeeds Act (ESSA) requires every state to build an annual, published measure of each school from a fixed set of indicators, and to use it to identify the schools that need support. New Jersey does that in two standalone Excel workbooks, posted to the department's accountability page alongside a technical guide:

WorkbookWhat it holdsRows
Comprehensive Support and Improvement Every indicator NJDOE calculated for a school — the result, the 0–100 indicator score, the weight, and the weighted points — plus the summative score and the column labelled Summative Determination. 2,356 schools
Targeted Support and Improvement A per-school summary of which student groups carry an annual targeted-support flag for the following school year, as both a written list and a row of Yes/No columns. 2,358 schools

These are calculation workbooks, not a report card. The measurement year is 2024–25; the files were published April 2, 2026 and the technical guide is dated May 2026. The narrower accountability tabs inside the School Performance Reports are a presentation of the same policy, not the source of it, and we don't use them to patch these files.

We show this data on every school profile whose exact county/district/school code appears in the Comprehensive workbook — 2,351 school pages — in the section How the state scores this school, and in the school table on district budget reports. Two of the 2,358 Targeted schools appear in no Comprehensive row and so have no calculation to show.

2 · A percentile, not a grade

The column called “Summative Determination” is a percentile. It is not a determination of anything.

Each scored school gets a summative score out of 100 — the sum of its weighted indicator points. Statewide those scores run from 0.79 to 99.0. NJDOE then ranks that score against other schools of the same configuration and publishes the percentile in a column named Summative Determination. We label it what it is: a within-configuration publisher percentile.

Three consequences follow, and all three get read wrong:

It is…It is not…
A place in a line-up of schools NJDOE grouped the same wayA grade, a rating, or a mark out of 100
A ranking that necessarily spreads schools from 0 to 100 — somebody is always lastA measure that could show every school improving at once
Relative to a group that changes as schools open, close, and change grade spanComparable year to year, or across configurations

The configuration is the grade span NJDOE assigned the school for the year. There are three, and each is ranked separately:

ConfigurationSchools with a scoreRanked against
Elementary1,659Other Elementary schools only
High363Other High schools only
Mixed59Other Mixed schools only

So a 60th-percentile elementary school and a 60th-percentile high school are not on the same scale, and neither can be compared with the other. Title I and non-Title I schools are pooled together inside a configuration: 1,703 of the 2,356 schools carry a Title I flag and 653 do not, and the ranking does not separate them.

An exact zero percentile is a real published value — the bottom of that configuration's line-up — and not a missing number. There are three of them. A different 275 rows have no score and no percentile at all; those are the unscored rows described in the caveats below, and the blank there means something else entirely.

3 · The indicators and their weights

Ten indicators appear in the workbook. Which of them apply, and how much each is worth, is set by New Jersey's ESSA plan — a policy choice about what to count, not a measurement of school quality.

IndicatorMeasuresApplies toWeight range
ELA proficiencyStudents who met or exceeded expectations on the state ELA testAll three configurations10–24.79%
Math proficiencyStudents who met or exceeded expectations on the state math testAll three10–24.79%
ELA growthMedian student growth percentile in ELAElementary, Mixed12.5–28%
Math growthMedian student growth percentile in mathElementary, Mixed12.5–28%
Four-year graduation rateGraduating within four years of entering ninth gradeHigh, Mixed12.5–35.42%
Five-year graduation rateGraduating within five yearsHigh, Mixed6.25–15.74%
Six-year graduation rateGraduating within six yearsHigh, Mixed6.25–15.74%
Progress toward English proficiencyNJDOE's Progress Toward ELP rate, for English learnersAll three, where reported20%
Students not chronically absent100 minus the chronic-absenteeism rate (see below)All three10–15%
High school persistenceNJDOE's published persistence rateHigh, Mixed0%

Two of those rows deserve to be read twice.

Weights are rescaled per school, so they aren't policy constants

The weights always add to 100 at that school. When an indicator drops out — because it doesn't apply to the configuration, or because there was no publishable result — the remaining weights are scaled up to fill the gap. Among the 2,081 scored schools there are 20 distinct sets of weighted indicators. ELA proficiency alone carries eleven different weights across the state: 17.5% at 1,098 schools, 15% at 914, and nine other values elsewhere.

Practical effect: the same result is worth a different number of points at different schools, so an indicator's points can't be compared between two schools without also carrying their weights. Reading a weight as a statewide constant — “graduation is worth 20% in New Jersey” — is wrong at most schools.

The weights and points round, and they do not reconcile exactly. Summing the ten weighted values and subtracting the summative score gives exactly zero at 1,068 schools, ±0.01 at 958, and ±0.02 at 55; the weights themselves sum to 100.01 at four schools and 99.99 at one. That residual is the publisher's rounding, not an error, and renormalising it would replace a published number with a computed one. Our build accepts these as tolerances and fails closed outside them.

High school persistence is calculated, then weighted zero

413 schools have a published persistence result and 410 of them carry a weight — and all 410 of those weights are exactly zero. There is not a single non-zero high-school-persistence weight in the file. The indicator is real, calculated, and published, and it contributes nothing to any score in this edition. We keep the row on the profile — it is part of what NJDOE published about the school — greyed out, off the chart, and labelled as adding nothing.

4 · Minimum group sizes, and two kinds of blank

An indicator score is not built from the school-wide number. NJDOE standardises the result for each student group large enough to report and combines those. Below the state's minimum group size, nothing is reported at all — and an indicator with no result carries no weight. The other indicators are then rescaled to add to 100 without it.

That is why a small school and a large one down the road can be scored on different sets of indicators, and why the small school's remaining indicators each count for more. The most common case by far is Progress toward English proficiency: 1,125 schools have no publishable result for it, and their other indicators absorb its 20 points.

The workbook prints the same empty cell whether an indicator was suppressed for too few students or simply never applied to that school's configuration. Only a separate value-state field in the underlying release tells them apart: 2,334 blank measure cells are suppressions and 44,473 are structural absences. Collapsing the two is how you end up telling an elementary-school parent that their school's graduation rate was withheld.

We say the two differently on the profile. A suppressed indicator gets the minimum-group-size sentence and the note that its weight was redistributed. An indicator outside the configuration gets “not part of the calculation for a school NJDOE groups as Elementary,” with no suggestion that anything was withheld.

5 · The absenteeism column runs backwards

The workbook's absenteeism measure is the share of students who were not chronically absent. Higher is better. Read it the other way and it inverts.

The canonical metric identifier reads chronic-absenteeism, but the source column header is Non-Chronic Absenteeism Rate — that is, 100 minus the chronic rate — and the indicator's polarity is higher-is-better, as it must be for the arithmetic to work.

The trap is specific and it is on the same page: Columbia High School's workbook value is 87, meaning 87% of its students were not chronically absent. Its chronic absenteeism module, a few sections up the same profile, reports 13%. Those are the same fact. Print the 87 under the label “chronic absenteeism” and the school appears to have an absenteeism crisis instead of a normal year.

We label the row Students not chronically absent and state the arithmetic in the row's own description. We never call the number chronic absenteeism.

6 · Targeted support flags

The second workbook answers a different question: which student groups at a school triggered an annual targeted-support flag. The flags in this edition apply to 2026–27, a year after the data that produced them.

Fifteen schools carry a Yes in the any-student-group column. Across the ten named groups, nine flags are for students with disabilities, four for Hispanic students, and four for multilingual learners; the other seven groups have none.

The workbook records the same answer twice — as a written, semicolon-delimited list of groups, and as a row of per-group Yes/No columns — and at three schools those two fields disagree:

SchoolThe inconsistency
Trenton, school 250The list names four groups; the Yes columns flag only three, leaving Economically Disadvantaged unflagged.
Prospect Park, school 010The list names Economically Disadvantaged and the any-group column reads Yes, but every named-group flag is blank.
Penns Grove–Carneys Point, school 080Same shape: a named group in the list, Yes in the any-group column, and no named-group flag set.

We do not repair these. Both fields are shown exactly as published, with both workbook row locators, and a sentence saying the two do not agree. The School Performance Reports carry a differing status for each of the three, and we do not use it to overwrite the calculation file — a defect that is silently patched is a defect nobody can find again.

7 · Caveats that matter

These files carry no CSI or ATSI status

Comprehensive and targeted identification happens on a triennial cycle. 2024–25 was not an identification year, so nothing in this edition says a school is or is not identified for comprehensive (CSI) or additional targeted (ATSI) support. NJDOE's own documents disagree about when the surrounding identification points fall — the technical guide says January 2024 and January 2027, the landing page says fall 2023 and fall 2026 — and we preserve that conflict rather than picking a month.

Do not read one year as a trend

Only this edition is published here, and it should not be extended backwards or forwards. Between identification cycles the indicator set changes, the weights change, and the ranking group changes as schools open, close, and shift grade span. A school whose percentile moves from one cycle to the next may not have changed at all — the line-up it was ranked in did.

275 rows have indicator results but no score

Two hundred and seventy-five schools — 264 Elementary and 11 High — carry the methodology literal “N/A - Not an Identification Year”. They have no summative score, no percentile, and no weights, but all 275 still publish a non-chronic absenteeism rate and 118 publish an ELA proficiency rate. Both misreads are available: dropping their published results as “no data,” or reading those results as though they had been scored and ranked. We render the module for these schools with the publisher's literal quoted, the results shown, and an explicit statement that none of them was scored or ranked.

Twenty-nine districts have no school table

We join the workbook to our districts on the exact zero-padded NJDOE district code, never on names. Of the 587 district budget reports the build writes, 558 match and render the school table; the other 29 — mostly county special-services districts and educational-services commissions — omit it rather than guess at a name match.

8 · What we built

The workbooks arrive as an exact, verified offline pin from our upstream data warehouse; this repository downloads and parses nothing. The build checks the full artifact — every source row and typed value, the metric definitions, the value states, the flag groups, and all three publisher defects — before it writes anything, then projects the fields our pages need into four tables in the same SQLite warehouse as the enrollment and report-card data, joined on NJDOE county / district / school codes.

TableFromHoldsRows
accountability_school_summativeComprehensive workbookEvery metric on every school row: results, indicator scores, weights, weighted values, score, percentile, configuration, methodology, and the value state of each cell110,732
accountability_school_tsi_flagTargeted workbookPer-school, per-group Yes/No targeted-support flags23,580
accountability_school_tsi_listTargeted workbookThe publisher's written group list, kept separate from the flags so the three disagreements stay visible2,358
accountability_publisher_defectTargeted workbookThe three cross-column inconsistencies, with their exact row locators3

The Comprehensive worksheet is projected whole — all 47 of its metrics — rather than as a chosen subset, so no editorial decision sits between the workbook and what we can show. Three acceptance rules protect the claims the profile makes out loud: that a school's weights sum to 100, that its weighted values sum to its score, and that no high-school persistence weight is ever non-zero. Each is a bound rather than an equality, because the publisher rounds, and each fails the build rather than repairing a value.

Source data: New Jersey Department of Education, 2024–25 ESSA Accountability Calculation Workbooks (nj.gov/education/title1/accountability), published April 2, 2026.

The issue registry

Every dataset behind this site keeps a structured registry of its known issues — the format breaks, suppression rules, entry errors, and definitional traps we hit while building on it — so that the next person (or agent) who works with this data doesn't rediscover them the hard way. Each issue has a stable id, a machine-readable scope (which years, columns, and tables it touches), and an effect: breaks stops a pipeline, corrupts silently wrongs the numbers, misleads invites a wrong reading of right numbers, context is background you must hold to use the data responsibly. Issues marked ★ are core: read them before any use of this data. The registry is maintained in the ergo format and served in machine-readable form alongside this page — links at the end of this section.

NJ Department of Education · source confidence A · updated 2026-07-30 · 6 known issues (2 core)

The pitfall: These are 2024-25 policy-defined school calculations and 2026-27 annual TSI flags, not site grades or current CSI/ATSI status.

absenteeism-column-is-the-non-chronic-rate [corrupts · mitigated] 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

Type: definitional — applies to tables: accountability_school_summative · columns: numeric_value · rows: metric_id = 'accountability.chronic-absenteeism.actual-performance'

How to spot it: The source header is 'Non-Chronic Absenteeism Rate' while the canonical metric id is accountability.chronic-absenteeism.actual-performance; the release metadata carries chronic_absenteeism_actual_polarity = non-chronic-rate-higher-is-better and the metric's polarity is higher-is-better.

The misread: Plotting the column as a chronic-absenteeism rate. Columbia High School's 87 means 87% of students were NOT chronically absent; read as chronic absenteeism it inverts the school's own absenteeism module, which reports 13%.

Full entry, with the story and the numbers, in the served ergo doc.

weights-are-rescaled-per-school [misleads · mitigated] Each school's indicator weights are rescaled to fill 100%, so the same indicator is worth different points at different schools

Type: measurement — applies to tables: accountability_school_summative · rows: metric_id LIKE '%.weight-percent'

How to spot it: Among the 2,081 scored schools there are 20 distinct sets of weighted indicators. ELA Proficiency carries 11 distinct weights (17.5% at 1,098 schools, 15% at 914, and nine other values); ELA Growth carries nine; Chronic Absenteeism is 15% at the 1,125 schools with no Progress Toward ELP weight and 10% at the 956 with one.

The misread: Reading a weight as a statewide policy constant, comparing two schools' weighted values without their weights, or ranking schools on one indicator's points.

Full entry, with the story and the numbers, in the served ergo doc.

weighted-values-round-not-reconcile [corrupts · open] 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

Type: measurement — applies to tables: accountability_school_summative · rows: metric_id LIKE '%.weight-percent' OR metric_id LIKE '%.weighted-value'

How to spot it: Summing the ten weighted-value metrics per school and subtracting the summative score gives 0.00 for 1,068 schools, ±0.01 for 958 and ±0.02 for 55. Summing the ten weight metrics gives exactly 100 for 2,076 schools, 100.01 for four and 99.99 for one.

The misread: Renormalising the weights to 100 or back-solving a weighted value from the score. Both silently overwrite a published number with a computed one, and neither residual is an error to repair.

Full entry, with the story and the numbers, in the served ergo doc.

blank-cells-are-suppression-or-scope [breaks · mitigated] The workbook prints the same empty cell whether an indicator was suppressed for this school or never applied to its configuration

Type: suppression — applies to tables: accountability_school_summative · columns: value_state, numeric_value

How to spot it: In the Summative worksheet 2,334 blank measure cells are typed 'suppressed' and 44,473 'structural-absence'. Both are the same empty spreadsheet cell; only the release's value_state separates them. 2,250 of the suppressed cells are Progress Toward ELP at 1,125 schools.

The misread: Treating every blank as 'not applicable' and hiding a suppression, or treating every blank as a suppression and telling an elementary-school reader their graduation rate was withheld.

Full entry, with the story and the numbers, in the served ergo doc.

hs-persistence-is-weighted-zero [misleads · mitigated] 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

Type: policy — applies to tables: accountability_school_summative · rows: metric_id IN ('accountability.hs-persistence.weight-percent','accountability.hs-persistence.weighted-value')

How to spot it: 413 schools have an HS Persistence indicator score and 410 carry a weight; every one of those 410 weights is exactly 0, typed exact-reconciliation-zero, and every weighted value is 0. There are no non-zero HS Persistence weights in the file.

The misread: Counting HS Persistence among the indicators that produced a high school's score, or reading a strong persistence rate as points the school earned.

Full entry, with the story and the numbers, in the served ergo doc.

unscored-rows-still-publish-results [context · mitigated] 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

Type: coverage — applies to tables: accountability_school_summative · rows: methodology = 'N/A - Not an Identification Year'

How to spot it: 275 of 2,356 Summative rows have a structural-absence summative score and the methodology literal 'N/A - Not an Identification Year' (264 Elementary, 11 High). All 275 carry a reported non-chronic absenteeism rate and 118 a reported ELA proficiency rate; every weight and weighted value on those rows is blank.

The misread: Reading the methodology literal as 'no data for this school' and dropping its published indicator results, or reading its unweighted indicator results as if they had been scored and ranked.

Full entry, with the story and the numbers, in the served ergo doc.

Changelog

  • — Widened the Comprehensive Summative projection from two metrics to the whole worksheet (4,712 to 110,732 rows) so the indicator results, weights and weighted values behind a summative score reach the consumer warehouse; added weight-sum, score-sum and HS-Persistence acceptance rules; shipped the school-profile module and registered the six issues a reader-facing surface has to get right.

The text on this page was generated by Claude Opus 5, working as part of a stack of tools created by Lyra Forge.