2020–21 through 2025–26 · six annual files · 679 districts
Every year New Jersey publishes how much certificated staff each district reported — teachers, administrators, supervisors and special-service staff — and, for each of those four roles, how that staff divides by race and by sex. It is one of the few public files that describes the adults in a school system rather than the children. It is also a file where the empty-looking cells mean something specific, and usually not what they look like.
New Jersey’s Department of Education posts an annual certificated staff file. A certificated staff member is one who holds a New Jersey educator certificate; the file sorts them into four roles, and the role names below are the publisher’s own.
| Role | What it covers | 2025–26 districts reporting 20+ FTE |
|---|---|---|
| Teacher | Classroom teachers. | 595 of 663 |
| Special Service | Certificated specialists — counsellors, child-study team members, nurses, therapists. | 306 of 663 |
| Administrators | Principals, assistant principals, central-office administrators. | 92 of 663 |
| Supervisors/Coordinators | Supervisors and programme coordinators. Many districts have none at all. | 17 of 663 |
Each role row carries a total FTE, seven race categories and two sex categories — each as both a count of FTE and a percentage — plus a non-binary percentage. Twenty published measures per role, per district, per year, for 679 districts across six school years. We hold the whole district slice: 320,880 values.
We show it on district profiles, in the section Who works in this district. We do not show it on school profiles. The file has school rows, but only 264 school codes across 677 districts — nowhere near school coverage — so a school-level rendering would be a coverage claim the data does not support.
Every number in this file is a full-time equivalent: a measure of reported workload, not a count of employees. A district reporting 730.2 FTE of certificated staff does not have 730 employees. Two half-time teachers are 1.0 FTE and two people; one teacher splitting a year between two districts appears as a fraction in each.
This is the easiest way to get this file wrong, and it runs in both directions.
Across the whole release of 1,524,240 values, 909,830 are an exact published zero — the literal 0, meaning the district reported no staff FTE in that group and that role — and 76,212 are withheld, carrying the literal <.1 and no number at all. There is no third empty state.
The proportions are startling. Of the 16,044 district-level American Indian FTE cells, 15,396 are an exact zero and none is withheld. A tool that renders those as “no data” has reversed the finding: the district answered the question, and the answer was none.
| Metric (district level, all six years) | Reported | Published zero | Withheld |
|---|---|---|---|
race.white.fte | 14,666 | 1,378 | 0 |
gender.female.fte | 14,567 | 1,477 | 0 |
gender.male.fte | 12,179 | 3,865 | 0 |
race.hispanic.fte | 7,057 | 8,987 | 0 |
race.black.fte | 6,023 | 10,021 | 0 |
race.asian.fte | 4,283 | 11,761 | 0 |
race.two-or-more-races.fte | 1,131 | 14,913 | 0 |
race.hawaiian-native.fte | 856 | 15,188 | 0 |
race.american-indian.fte | 648 | 15,396 | 0 |
gender.nonbinary.percent | 0 | 0 | 16,044 |
One more wrinkle, in the opposite direction. The publisher’s own percentage columns are rounded, and eight district cells carry a reported non-zero FTE beside a percentage rounded down to an exact 0.0 — six American Indian, two Two or More Races. Build a composition out of the percentage columns and the smallest reported groups silently vanish. Every share we print is computed from the FTE columns, which add up: the seven race FTE values sum to the role total within 0.1 in all 16,044 district-role cells.
New Jersey’s reporting schema has a non-binary category. Two things are true about it, and both are findings rather than gaps.
First, the category is published as a percentage with no count behind it. Every other category in the file — all seven race categories, female, male — carries both an FTE and a percentage. Non-binary carries a percentage alone. There is no gender.nonbinary.fte metric in the release at all.
Second, that percentage has never once been published. All 76,212 of its cells, at every reporting level, in every one of the six years, for every role, are the literal <.1 with no number. Sixteen thousand and forty-four of those are district cells. Not one district, in any role, in any year, has a published non-binary value.
The race columns reconcile. The sex columns do not, always: in 421 of the 16,044 district-role cells, female FTE plus male FTE does not equal the published total FTE.
It is tempting to read that gap as the withheld non-binary count. It is not, and the data says so plainly. Most of the residuals are rounding — 295 of the 421 are ±0.1. And 181 of them are negative: female plus male exceeds the publisher’s own total, which no count of a third category can explain. The largest is −54.0 against a published total of 1.0.
We therefore publish neither the residual nor anything derived from it. The two published sex values appear with their shares of the published role total, and the gap is left as what it is — an inconsistency in the source.
Certificated staff are not the staff. The paraprofessionals, instructional aides, clerical staff, service workers and skilled trades who make up a large share of the adults a child meets in a school day are in a separate New Jersey file — and that file has exactly two measures, role-fte and total-fte. It carries no race and no sex at all, at any level, in any year.
So a composition reading of a district’s staff is structurally a reading of its certificated half. That is a limit of the state’s collection, not of this site, and we name it on the profile rather than leave it to be inferred.
New Jersey has a lot of very small districts, and this file shows it. Across all 16,044 district-role cells the median total is 10.8 FTE. 5,848 cells are at or below 5.0 FTE. 1,022 are an exact zero — most of them Supervisors/Coordinators, a role many districts simply do not have.
At that size a percentage is arithmetic wearing the clothes of a finding. A role with 3.0 FTE produces shares of 33% and 67%, moves by a third on a single hire, and in a small district identifies individuals quickly.
The file arrives as an exact, offline, byte-pinned Aquifer release — this site downloads and parses nothing. From it we project the whole district-level slice into one table keyed on school year, district code, staff role and metric: 320,880 rows, carrying every published number, every publisher literal and every value state alongside it. Withheld cells are stored with no number, never as a zero.
The projection refuses to install if any of the populations above has moved: the per-metric reported and zero counts, the non-binary disclosure (16,044 cells, 16,044 withheld, 0 published, one distinct literal), and the race and sex reconciliation counts. If New Jersey ever publishes a non-binary value, the build fails rather than quietly contradicting the sentence on the profile.
The district join is by exact zero-padded district code only; names are never a fallback. Five districts in the file have no matching profile and render nothing.
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.
New Jersey Department of Education · 2020-21 through 2025-26 · source confidence A · updated 2026-07-30 · 8 known issues (2 core)
The pitfall: District certificated FTE is published as four separate role rows, not an authoritative district total or a count of employees, payroll, cost, effectiveness, quality, or need — and an empty-looking demographic cell is almost always an exact published zero, not a suppression.
Type: definitional — applies to the whole dataset
How to spot it: The publisher reports numeric FTE by role; no person identifier, employee count, salary, payroll, cost, quality, or need field is present in the district role projection.
The misread: Calling 730.2 FTE 730 employees, adding it to UFB salary dollars as a payroll rate, or treating a change as evidence of service quality or staffing adequacy.
Full entry, with the story and the numbers, in the served ergo doc.
Type: measurement — applies to years: 2020-21 through 2025-26 · tables: staffing_certificated_district_role
How to spot it: District source rows contain exactly Administrators, Special Service, Supervisors/Coordinators, and Teacher; there is no district value with a separate total role.
The misread: Presenting the four-role sum as a separately published NJDOE district total or combining it with the independent non-certificated reported total.
Full entry, with the story and the numbers, in the served ergo doc.
Type: suppression — applies to years: 2020-21 through 2025-26 · tables: staffing_certificated_district_composition
How to spot it: Release-wide, 909,830 of 1,524,240 values are value_state exact-reconciliation-zero with reported_literal '0' and 76,212 are value_state suppressed with reported_literal '<.1'; there is no third empty state. At district level 15,396 of the 16,044 american-indian FTE cells are an exact 0.
The misread: Rendering an exact 0 as 'not reported' or 'no data', which reverses the finding: the district reported no staff FTE in that group and role. Or the mirror error, rendering a withheld <.1 as a zero.
Instead: Carry numeric_value as NULL only where the publisher withheld the value, keep the reported_literal beside it, and give the two states different words on the page.
Full entry, with the story and the numbers, in the served ergo doc.
Type: coverage — applies to years: 2020-21 through 2025-26 · tables: staffing_certificated_district_composition · columns: staff.certificated.gender.nonbinary.percent
How to spot it: The release has 20 metric definitions: seven race categories and two gender categories each carry a .fte and a .percent, and gender.nonbinary carries a .percent alone. All 76,212 of its cells across all reporting levels — 16,044 at district level — are value_state suppressed with reported_literal '<.1' and a NULL numeric value. Not one district, role or year has a published value.
The misread: Dropping the category from a rendering because it is empty, which reads as 'there are none'; or reconstructing a value from total-fte minus female-fte minus male-fte and presenting the residual as a non-binary count.
Instead: Show the category, say that New Jersey published no value for it in any district, any role, or any year, and do not derive one.
Full entry, with the story and the numbers, in the served ergo doc.
Type: measurement — applies to years: 2020-21 through 2025-26 · tables: staffing_certificated_district_composition
How to spot it: Grouping the composition mart by (school_year, district_code, staff_role): the seven race FTE values sum to total-fte in all but 108 cells, off by at most 0.1. The two sex FTE values leave a non-zero residual in 421 cells. 295 of those residuals are +/-0.1; 181 are NEGATIVE, meaning female plus male exceeds the publisher's own total; the largest absolute residual is -54.0 against a published total of 1.0 (district 4270, Teacher, 2022-23).
The misread: Publishing total-fte minus female-fte minus male-fte as a non-binary count, an 'other' category, or an 'unreported' band. The residual is a mixture of publisher rounding and at least one gross publisher inconsistency, and in a small district a derived whole-number residual would identify individuals the publisher chose to withhold.
Instead: Show the two published sex values and their shares of the published role total, say that they do not always add to it, and derive nothing from the gap.
Full entry, with the story and the numbers, in the served ergo doc.
Type: coding — applies to years: 2020-21 through 2025-26 · tables: staffing_certificated_district_composition · columns: staff.certificated.race.american-indian.percent, staff.certificated.race.two-or-more-races.percent
How to spot it: At district level, race.american-indian.fte has 648 reported values but race.american-indian.percent only 642; race.two-or-more-races.fte has 1,131 against 1,129. The six and two extra cells are published zeros in the percent column standing over a reported non-zero FTE.
The misread: Building a composition from the publisher's own .percent metrics, which silently drops the smallest reported groups to zero and leaves the shares not summing to 100.
Instead: Compute every share from the .fte metrics, which are additive: the seven race FTE values sum to the role's total FTE within 0.1 in all 16,044 district-role cells.
Full entry, with the story and the numbers, in the served ergo doc.
Type: coverage — applies to the whole dataset
How to spot it: nj-noncertificated-staff.sqlite has exactly two metric definitions, staff.noncertificated.role-fte and staff.noncertificated.total-fte. There is no race, ethnicity or sex metric at any reporting level or in any year.
The misread: Presenting certificated staff composition as 'the district's staff', which excludes a large share of the adults a child encounters and does so invisibly.
Instead: Name the exclusion on the surface: this is the certificated part of the staff, and New Jersey collects no demographics for the rest.
Full entry, with the story and the numbers, in the served ergo doc.
Type: measurement — applies to years: 2020-21 through 2025-26 · tables: staffing_certificated_district_composition
How to spot it: Across the 16,044 district-role cells the median total FTE is 10.8; 5,848 are at or below 5.0 and 1,022 are an exact zero. In 2025-26 only 17 of 663 districts report 20 or more Supervisors/Coordinators FTE, and 37 districts report under 20 FTE of certificated staff in total.
The misread: Printing '33% of Supervisors/Coordinators FTE' where the role is 3.0 FTE, which is one person-equivalent rendered as a statistic and, in a small district, an identification.
Instead: State an FTE floor, print the reported counts below it and no share, and say which rows were floored and why.
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.