2016–17 to 2024–25 · eight editions, seven measured school years
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.
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:
| Workbook | What it holds | Rows |
|---|---|---|
| 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.
There are eight of these workbook pairs, not one. New Jersey has published an accountability workbook for every school year from 2016-17 to 2024-25 except two, and this site holds all of them: 2016-17 twice (a preliminary edition with seven indicators and a final one with eight), then 2017-18, 2018-19, 2021-22, 2022-23, 2023-24 and 2024-25 — eight editions across seven measured school years. 2019-20 and 2020-21 are absent because the federal government waived the requirement; the 2021-22 technical guide records that the March 2020 and March 2021 waivers removed the “Calculation of indicator scores and summative scores… and Identification of schools,” so nothing was calculated for any school in the state in either year. The rest of this page describes the 2024-25 edition in detail; the whole record, and the rule for which of its years may be compared with which, is on each school’s own profile.
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 has judged 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.
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 way | A grade, a rating, or a mark out of 100 |
| A ranking that necessarily spreads schools from 0 to 100 — somebody is always last | A measure that could show every school improving at once |
| Relative to a group that changes as schools open, close, and change grade span | Comparable across configurations, or across a year in which NJDOE changed the weighting |
Year to year is the harder question, and the answer is “yes, but only as a position.” Two of NJDOE’s ratings may be read against each other when the school was in the same configuration and that configuration carried the same weight vector in both years — that is the whole comparability rule, and it holds for elementary and middle schools across all seven measured years and for high schools across six of them. What such a comparison shows is where the school sat among its contemporaries, and nothing else. It cannot show that a school got better in any absolute sense, because the inputs are relative too: every indicator score is itself a percentile against that year’s other schools before it is weighted, so a year in which the whole state improved looks exactly like a year in which none of it did.
The configuration is the grade span NJDOE assigned the school for the year. There are three, and each is ranked separately:
| Configuration | Schools with a score | Ranked against |
|---|---|---|
| Elementary | 1,659 | Other Elementary schools only |
| High | 363 | Other High schools only |
| Mixed | 59 | Other 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.
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.
| Indicator | Measures | Applies to | Weight range |
|---|---|---|---|
| ELA proficiency | Students who met or exceeded expectations on the state ELA test | All three configurations | 10–24.79% |
| Math proficiency | Students who met or exceeded expectations on the state math test | All three | 10–24.79% |
| ELA growth | Median student growth percentile in ELA | Elementary, Mixed | 12.5–28% |
| Math growth | Median student growth percentile in math | Elementary, Mixed | 12.5–28% |
| Four-year graduation rate | Graduating within four years of entering ninth grade | High, Mixed | 12.5–35.42% |
| Five-year graduation rate | Graduating within five years | High, Mixed | 6.25–15.74% |
| Six-year graduation rate | Graduating within six years | High, Mixed | 6.25–15.74% |
| Progress toward English proficiency | NJDOE's Progress Toward ELP rate, for English learners | All three, where reported | 20% |
| Students not chronically absent | 100 minus the chronic-absenteeism rate (see below) | All three | 10–15% |
| High school persistence | NJDOE's published persistence rate | High, Mixed | 0% |
Two of those rows deserve to be read twice.
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.
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.
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.
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.
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.
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.
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:
| School | The inconsistency |
|---|---|
| Trenton, school 250 | The list names four groups; the Yes columns flag only three, leaving Economically Disadvantaged unflagged. |
| Prospect Park, school 010 | The list names Economically Disadvantaged and the any-group column reads Yes, but every named-group flag is blank. |
| Penns Grove–Carneys Point, school 080 | Same 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.
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.
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.
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.
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.
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.
| Table | From | Holds | Rows |
|---|---|---|---|
accountability_school_summative | Comprehensive workbook | Every metric on every school row: results, indicator scores, weights, weighted values, score, percentile, configuration, methodology, and the value state of each cell | 110,732 |
accountability_school_tsi_flag | Targeted workbook | Per-school, per-group Yes/No targeted-support flags | 23,580 |
accountability_school_tsi_list | Targeted workbook | The publisher's written group list, kept separate from the flags so the three disagreements stay visible | 2,358 |
accountability_publisher_defect | Targeted workbook | The three cross-column inconsistencies, with their exact row locators | 3 |
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.
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-08-03 · 13 known issues (4 core)
The 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.
Type: measurement — applies to tables: accountability_edition, accountability_school_series · columns: weight_regime_json
How to spot it: Walking accountability_edition.weight_regime_json in measurement order gives six weight-vector changes across the three configuration classes: elementary once (the 2016-17 final adds Progress toward ELP), high twice (that, then 2024-25), mixed three times (that, then 2023-24, then 2024-25). Elementary and middle schools carry ELA .175 / Math .175 / ELA Growth .25 / Math Growth .25 / ELP .2 / ChrAbs .15 in all seven measured years from the 2016-17 final on.
The misread: Drawing one school's 2016-17 to 2024-25 ratings as a single trend for every school, or reading a high school's 2023-24-to-2024-25 movement as improvement or decline. At 2024-25 the high-school composite drops proficiency from 17.5% to 15% per subject, the five-year graduation rate from 25% to 10%, adds a six-year rate at 10%, and drops chronic absenteeism from 15% to 10% — the number moves because the formula moved.
Full entry, with the story and the numbers, in the served ergo doc.
Type: coverage — applies to tables: accountability_edition, accountability_school_series · columns: stage, school_year · rows: edition_id IN ('essa-2016-17-preliminary','essa-2016-17-final')
How to spot it: accountability_edition holds eight editions across seven distinct school_year values. essa-2016-17-preliminary carries seven indicators and essa-2016-17-final eight; both cover the same 2,105 schools, and joining their summative_score rows gives zero identical values. The final adds Progress toward ELP, which the January 2018 guide says was not yet available.
The misread: Counting eight editions as eight years, which invents a school year and doubles 2016-17 in any series; or averaging the two, which mixes a seven-indicator score with an eight-indicator one.
Full entry, with the story and the numbers, in the served ergo doc.
Type: coverage — applies to tables: accountability_absent_year · columns: value_state, evidence_quote
How to spot it: accountability_absent_year holds three rows, all typed structural-absence, each with an evidence_source and an evidence_quote. The 2019-20 and 2020-21 rows quote the 2021-2022 Technical Guide, page 3: the March 2020 and March 2021 waivers removed the 'Calculation of indicator scores and summative scores', the measurement of progress toward long-term goals, and the 'Identification of schools'.
The misread: Rendering the pandemic years as a gap in this site's holdings, which is what the module did until 2026-07-31 for a seven-year span that was mostly not a gap at all; or interpolating a rating across them because a line has points on both sides.
Full entry, with the story and the numbers, in the served ergo doc.
Type: suppression — applies to tables: accountability_school_series · columns: value_state, numeric_value
How to spot it: In accountability_school_series the summative_score field is 'reported' 16,787 times, 'structural-absence' 1,037 times — rows NJDOE published in a year it scored nobody, marked 'N/A - Not an Identification Year' — and 'unresolved-unknown' once, at 11-3230-060 in 2021-22, where the workbook prints an empty cell the release could classify as neither. A further 17,155 unresolved-unknown cells are status and Title I columns in editions that published no such column.
The misread: Collapsing the three into one dash, which tells a reader of an unscored row that their school has no data when the state simply did not score anyone that year, and hides the one row where the publisher left a blank nobody can explain.
Full entry, with the story and the numbers, in the served ergo doc.
Type: measurement — applies to tables: accountability_school_series · columns: reported_literal
How to spot it: reported_literal in accountability_school_series is two decimals in the 2016-17 preliminary and in every edition from 2021-22, and unrounded in the 2016-17 final, 2017-18 and 2018-19 — for example 53.80281690140845 at Columbia High School in 2018-19.
The misread: Re-rounding the unrounded editions so the column looks tidy, which overwrites a published literal with a computed one and hides a change the state actually made in what it published.
Full entry, with the story and the numbers, in the served ergo doc.
Type: definitional — applies to tables: accountability_edition, accountability_school_series · columns: reported_literal, weight_regime_json · rows: field_id = 'configuration'
How to spot it: The configuration field is 'ES/MS' in the 2016-17 final, 2017-18 and 2018-19 and 'Elementary' in the 2016-17 preliminary and from 2021-22 on. The weight vector behind both spellings is identical, and no school changes class at the rename.
The misread: Keying comparability on the literal, which would break every elementary school's series twice at a spelling change; or conforming the literal, which hides that the publisher's own vocabulary moved.
Full entry, with the story and the numbers, in the served ergo doc.
Type: identity — applies to tables: accountability_school_summative, accountability_school_tsi_flag, accountability_school_tsi_list, accountability_school_series · columns: capture_id
How to spot it: Between aq063-accountability-refresh-2 and aq063-accountability-editions-2 all 1,099,355 accountability_values rows and all 33,087 source_rows changed capture_id from a '-836cbabc' suffix to '-430ca802', matching the source_contract_sha256 in metadata. Diffing every other column across the two releases gives zero differing rows, and both workbook file hashes are unchanged.
The misread: Reading a full-column table digest as proof that data changed, or — worse — as proof that it did not, without knowing which columns are lineage and which are values.
Full entry, with the story and the numbers, in the served ergo doc.
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.
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.
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.
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.
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.
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.
Machine-readable: this page as an ergo doc · all datasets (index.json) · format: ergo · implementation: source repo
The text on this page was generated by Claude Opus 5, working as part of a stack of tools created by Lyra Forge.