# NJDOE ESSA Accountability Calculation Workbooks

```toml ergo
[dataset]
ergo = "0.4"
slug = "essa-accountability-workbooks"
title = "NJDOE ESSA Accountability Calculation Workbooks"
publisher = "NJ Department of Education"
subject = "https://www.nj.gov/education/title1/accountability/"
source_url = "https://www.nj.gov/education/title1/accountability/"
pitfall = "These are 2024-25 policy-defined school calculations and 2026-27 annual TSI flags, not site grades or current CSI/ATSI status."
status = "live"
confidence = "A"
updated = "2026-07-30"
implementation = "https://github.com/lavallee/njschooldata"

[dataset.coverage]
period = "2024-25 measurement; April 2, 2026 workbooks; May 2026 guide; annual TSI effective 2026-27"
grain = "Comprehensive Summative school x metric; Targeted Summary school x flag group; Targeted Summary school x exact group list; publisher defect"
entities = "2,356 Comprehensive Summative school rows; 2,358 Targeted Summary school rows; 2,081 schools carry a summative score; 558 of 587 rendered budget districts match by exact code"

[dataset.access]
keys = ["school_year", "county_code", "district_code", "school_code", "student_group_id", "metric_id"]
```

## Consumer question and boundary

AQ-063 adds one product-owned question, asked on the district report and — since
2026-07-30 — on every school profile that has a calculation row:

> What did NJDOE's 2024-25 calculation workbooks publish for each eligible
> school: the indicator results, weights and weighted values that make up its
> summative score, that score's within-configuration percentile, and any
> 2026-27 annual TSI student-group flag, without turning these into quality
> grades or current CSI/ATSI status?

The school-profile half of that question ("why is this school rated the way it
is") could not be answered from the original two-metric projection, which
carried the summative score and its percentile and nothing that produced them.
The Comprehensive Summative worksheet is therefore projected **entire** — all
47 of its metrics, 110,732 values — rather than as a metric subset. The rule is
"the whole worksheet", so no editorial choice sits between the workbook and the
mart, and the module renders the publisher's arithmetic without recomputing any
of it.

Aquifer owns custody of the standalone Comprehensive and Targeted workbooks,
their exact rows and literals, policy vintage, student-group context,
calculation stages, missingness, locators, defects, immutable releases, and
offline snapshots. This repo owns the narrower school-summary question,
four-table consumer mart, exact-code identity join, school labels, district
report placement, editorial framing, static UAT, and rollback.

The standalone calculation workbooks are authoritative for this question.
The School Performance Report accountability tabs are a narrower presentation
projection and are not ingested again or used to repair the producer. Annual
targets, profile data, prior editions, assessment cross-tabs, and awards remain
outside this consumer adoption.

## Policy and time basis

The workbooks measure school year 2024-25 and were published April 2, 2026.
The technical guide is dated May 2026. Annual TSI flags in the Targeted Summary
apply to 2026-27.

This was not a CSI or ATSI identification year, and these workbooks do not
publish current CSI/ATSI status. The guide describes the previous and next
triennial identification points as January 2024 and January 2027; the landing
page says fall 2023 and fall 2026. The product preserves that conflict rather
than inventing a reconciled month and uses the detailed current guide to
interpret the bundle.

The workbook column called `Summative Determination` is the percentile of a
school's summative score among Title I and non-Title I schools in the same
configuration. The product labels it a within-configuration publisher
percentile. It is not a determination of identification status, a site-created
rank, or a school-quality grade. Its three exact zeroes remain zero; 275
structural blanks remain not published.

## Exact offline pin and mart

The committed pin is
`contracts/aquifer/nj-essa-accountability-workbooks.lock.json`:

- release: `aq063-accountability-refresh-2`;
- manifest SHA-256:
  `1ed28c89ad8fa1f4e529123395b1d3790a5515e9113fced5d38c41301224e263`;
- SQLite SHA-256:
  `d8dbf835f5566b8aac79c796380859793d6781fa23a52c94b4f866bca7bf8c6c`;
- byte count: `1,064,304,640`.

The adapter verifies the entire artifact before cloning the current consumer
warehouse. It fail-closes on all 33,087 source rows, 1,099,355 typed values, 96
metric definitions, 21 worksheet populations, five value-state populations,
ten Targeted Summary flag groups, 15 any-group Yes flags, two Targeted-only
schools, and all three unrepaired defects. It then projects only the fields
needed by the product question and atomically promotes the candidate:

| Consumer table | Rows | Deterministic row SHA-256 |
| --- | ---: | --- |
| `accountability_school_summative` | 110,732 | `627b82f447f992289fccf6ec267ba94a3f941f1dc4dd0a51db0caf23762e5045` |
| `accountability_school_tsi_flag` | 23,580 | `1eb729ebadf9f21b7bc8ec743178438daf089330c8c64478a17e595b29e4d40f` |
| `accountability_school_tsi_list` | 2,358 | `58faacc61c90c4b3126fd684b443fed8086c22c3b555c9005437d52e50a86479` |
| `accountability_publisher_defect` | 3 | `623c7e694cd325f1e3388734001a594905dd85b25e5512b4f308d72fa831f26f` |

Comprehensive retains 60,076 reported values, 861 exact reconciliation zeroes,
44,473 structural absences, 2,334 suppressed cells and 2,988 derived flags
across all 47 worksheet metrics. Targeted retains 23,548 derived blank-to-No
flags and 32 reported Yes flags; the separate publisher-list table retains 15
lists and 2,343 structural absences. Keeping flags and lists separate makes
their three source inconsistencies visible rather than repaired.

Two acceptance rules protect the claims the school module makes out loud, and
both are bounds rather than equalities because the publisher rounds: across the
2,081 scored schools the indicator weights sum to 100% within 0.01 points, and
the weighted values sum to the published summative score within 0.02 points.
A third rule pins HS Persistence at zero non-zero weights. All three fail the
build closed rather than repairing a value.

## Issues

### The absenteeism column is a non-chronic rate

```toml ergo
[issue]
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"
core = true
type = "definitional"
status = "mitigated"
detection = "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."
misuse = "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%."

[issue.scope]
tables = ["accountability_school_summative"]
columns = ["numeric_value"]
rows = "metric_id = 'accountability.chronic-absenteeism.actual-performance'"
```

The profile module labels the row **Students not chronically absent** and states
the arithmetic in the row's own description. It never calls the number chronic
absenteeism.

### Indicator weights are rescaled per school

```toml ergo
[issue]
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"
detection = "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."
misuse = "Reading a weight as a statewide policy constant, comparing two schools' weighted values without their weights, or ranking schools on one indicator's points."

[issue.scope]
tables = ["accountability_school_summative"]
rows = "metric_id LIKE '%.weight-percent'"
```

An indicator with no published result carries no weight, and the remainder are
rescaled to 100% without it. The module always shows the weight beside the
points and says in the caption that the weights are specific to that school.

### Weighted values round; they do not reconcile exactly

```toml ergo
[issue]
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"
detection = "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."
misuse = "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."

[issue.scope]
tables = ["accountability_school_summative"]
rows = "metric_id LIKE '%.weight-percent' OR metric_id LIKE '%.weighted-value'"
```

The adapter's acceptance rules are tolerances (0.02 on weights, 0.03 on the
score) rather than equalities for exactly this reason, and the profile caption
says the bars add up "within the publisher's own rounding".

### A blank indicator cell means two different things

```toml ergo
[issue]
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"
core = true
type = "suppression"
status = "mitigated"
detection = "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."
misuse = "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."

[issue.scope]
tables = ["accountability_school_summative"]
columns = ["value_state", "numeric_value"]
```

Elementary schools are never scored on the three graduation rates or HS
Persistence; High schools are never scored on ELA or Math Growth. The module
derives that scope from the data — an indicator counts for a configuration only
where some school in it carries a weight — and says "not part of the
calculation for a school NJDOE groups as Elementary" there, while a suppressed
cell gets the separate minimum-group-size sentence.

### HS Persistence is calculated and weighted zero

```toml ergo
[issue]
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"
detection = "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."
misuse = "Counting HS Persistence among the indicators that produced a high school's score, or reading a strong persistence rate as points the school earned."

[issue.scope]
tables = ["accountability_school_summative"]
rows = "metric_id IN ('accountability.hs-persistence.weight-percent','accountability.hs-persistence.weighted-value')"
```

The module keeps the row in the table — the calculation is real and published —
greys it, leaves it out of the chart, and says in prose that it adds nothing.
The adapter fails closed if a non-zero HS Persistence weight ever appears.

### Unscored rows still publish indicator results

```toml ergo
[issue]
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"
detection = "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."
misuse = "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."

[issue.scope]
tables = ["accountability_school_summative"]
rows = "methodology = 'N/A - Not an Identification Year'"
```

Those schools render the module with the publisher's methodology literal quoted,
the indicator results that were published, and an explicit statement that none of
them was scored or ranked.

## Static rendering and omissions

The canonical build writes 587 district budget reports. Exactly 558 join the
AQ-063 mart by zero-padded NJDOE district code and render the school table.
These 29 exact-code nonmatches omit it instead of falling back to names:

| Code | District route |
| --- | --- |
| `0125` | `atlantic-county-special-services` |
| `0130` | `atlantic-highlands` |
| `0200` | `bass-river` |
| `0225` | `bayshore-jointure-commission` |
| `0285` | `bergen-county-special-services` |
| `0605` | `burlington-county-special-services` |
| `0695` | `camden-co-ed-serv-comm` |
| `0715` | `cape-may-county-special-services` |
| `0810` | `chesilhurst` |
| `1387` | `essex-regional-educational-services-commission` |
| `1774` | `gloucester-county-special-services` |
| `2120` | `henry-hudson-regional-monmouth-2120` |
| `2160` | `highlands` |
| `2305` | `hunterdon-county-educational-services-commission` |
| `3103` | `mercer-county-special-services` |
| `3145` | `educational-services-commission-new-jersey` |
| `3255` | `monmouth-ocean-educational-services-commission-school-distri` |
| `3364` | `educational-services-commission-morris-county` |
| `3395` | `morris-union-jointure-commission` |
| `3975` | `northern-region-educational-services-commission` |
| `4635` | `salem-county-special-services` |
| `4700` | `sea-isle` |
| `4720` | `seaside-park` |
| `4805` | `somerset-county-educational-services-commission` |
| `4845` | `south-bergen-jointure-commission` |
| `5105` | `sussex-county-educational-services-commission` |
| `5245` | `union-county-educational-services-commission` |
| `5450` | `warren-co-special-service` |
| `5490` | `washington-burlington` |

South Orange-Maplewood renders all nine eligible schools. Columbia High School
shows a 55.66 summative score and 57.46 publisher percentile; the other eight
scores/percentiles are 39.58/32.15, 58.68/62.73, 63.69/69.66, 58.34/62.12,
53.26/54.22, 65.6/72.74, 77.64/87.45, and 79.93/89.51 in school-code order.
No any-group flag was published for those nine Targeted Summary rows. Every
school row exposes exact workbook locators.

Trenton, Prospect Park, and Penns Grove-Carneys Point visibly mark the three
publisher inconsistencies. For example, Trenton school `250` retains the
publisher list containing Students with Disabilities, Multilingual Learners,
Hispanic, and Economically Disadvantaged while the adjacent Yes columns retain
only the first three. No value is repaired from SPR.

### School profiles

Every generated school profile whose exact `(district_code, school_code)` pair
appears in the Summative worksheet renders a **How the state scores this
school** module. 2,356 of the 2,358 workbook schools are Comprehensive rows; the
two Targeted-only schools have no calculation row and render nothing.

Columbia High School shows 55.66 points from seven weighted indicators, ranked
above 57.46% of the 363 schools NJDOE grouped as High. Its HS Persistence row is
greyed at a 0% weight; ELA and Math Growth are named as outside the calculation
for a High-configuration school. Brookdale Elementary in Bloomfield shows the
suppression case: Progress Toward ELP has no published result, so it carries no
weight and the other five indicators are rescaled to 100%. Althea Gibson Academy
in East Orange shows the unscored case, quoting the methodology literal.

Battle Monument Intermediate in Trenton renders all three framings at once — an
exact zero percentile said as the bottom of the line-up rather than a blank, a
1.42-point score, and the publisher inconsistency between its group list and its
Yes columns, with both source locators exposed.

## Changelog

```toml ergo
[change]
date = "2026-07-30"
note = "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."
issues = ["absenteeism-column-is-the-non-chronic-rate", "weights-are-rescaled-per-school", "weighted-values-round-not-reconcile", "blank-cells-are-suppression-or-scope", "hs-persistence-is-weighted-zero", "unscored-rows-still-publish-results"]
```
