Skip to content

Methodology

Sources, definitions, and limits

Every fact on this site traces to a specific row of a specific public file. This page names those files, explains the processing rules, and states plainly what the data cannot tell you.

Primary sources

Primary source files, publisher, coverage, and snapshot checksums
FileCoverageRetrievedSnapshot (SHA-256, first 12)
New Jersey Major Discipline Data, 2020-20252020-20252026-07-0366f8ebad457d
New Jersey Internal Affairs Agency Totals, 2021-20252021-20252026-06-09e4abb189a7a7
New Jersey Internal Affairs Investigations, 2024-20252024-20252026-06-09aef2d0c1efd3
New Jersey Internal Affairs Officers, 2024-20252024-20252026-06-0932956a3af475
New Jersey Internal Affairs Data Download, 2021-20232021-20232026-06-098b14373cd2a5
New Jersey Major Discipline Data: Notesnotes2026-061b953d56c762
New Jersey Internal Affairs Data: Notesnotes2026-064ebbecb4007d
Agencies Without Reported IA Investigations, 2021-2025notes2026-06085e01ba1059

Publisher for all files: New Jersey Office of the Attorney General. The build verifies each file's checksum before generating any page. The Phase 1 prototype ingests the major discipline file and the IA agency totals; the investigation-level IA files follow in the full build.

Definitions, from the AG's own notes

  • Major discipline means termination, demotion, or a suspension of more than five days. Reporting is required of every NJ law enforcement agency by AG Directives 2020-5, 2021-6, and 2022-14.
  • Records are final. Discipline is listed only after all appeals conclude, in the year it became final. It is the adjudicated record, not a log of allegations.
  • Blanks mean not provided.The AG's notes state that blank fields were not provided by the submitting agency. This site renders them as "not reported," never as "no" or zero.
  • Some fields did not exist in early years.Sustained charges were collected from 2021 on; the resigned-while-IA-pending flag from 2023 on. Earlier records show "not applicable" for those fields.
  • Internal affairs totals are aggregate. The IA files count investigations and incidents per agency per year. They name no officers, and allegations in them are not findings: many end unfounded, exonerated, or not sustained.

How this site processes the files

  • As reported, always. Values are shown exactly as the AG data reports them. The site never infers a value the agency did not report.
  • Provenance on every record. Each ingested record carries the file, sheet, and row it came from; the footnotes on every page render directly from that data.
  • One agency, one page. The AG files key agencies differently across releases. Every dataset on this site joins through a single canonical agency registry, and spelling variants are merged into it only through an explicit, hand-reviewed alias list; nothing is merged on a guess. A duplicate detector runs on every data refresh and flags any pair of entries that could be the same agency for human review. Municipal names that repeat across counties (several townships share names) get county-qualified page addresses.
  • Officer pages group records. Rows with the same name at the same agency appear on one page, each entry cited separately. Officer pages are built only from the major discipline record, never from the un-named IA data.
  • Normalized comparisons are labeled analysis.Where the site computes a rate (like investigations per 100 officers), the raw values and the denominator's source are stated, and the comparison stays within one agency type. The Attorney General's own IA data has no arrest or population denominator, so no per-capita misconduct rate is possible from it alone; see FBI staffing databelow for the one genuine per-capita figure this site offers, and why it is not interchangeable with the AG's own "Number of Officers" field.
  • Higher IA volume is ambiguous. More investigations can mean more misconduct or a stronger reporting culture. Every comparative surface on this site repeats that caveat.

How other datasets are matched, and how matches are verified

The pension, FBI staffing, 1033 transfer, and Fatal Encounters sections below all face the same problem: linking an outside record to the right agency or officer. The rules are shared, and they all follow one principle: a wrong link is treated as a worse failure than a blank.

  • Deterministic first. Every match starts from mechanical rules (normalized names, counties, agency types) with confidence tiers. Only high-confidence matches ever publish. For federal data keyed by FBI agency identifiers (ORIs), the join runs through a single committed, hand-reviewed agency-to-ORI crosswalk rather than per-dataset name matching, including written reasons for the identifiers that deliberately do not join.
  • Researched decisions are recorded with evidence.Some ambiguous candidates are resolved by research: a match is confirmed only with a cited public source and a verbatim quote, and a candidate that cannot be confirmed is recorded as a no-match rather than left open. Those decisions are committed to the site's repository and spot-audited against their cited sources. Human review always takes precedence over them, and site builds only read the committed decisions; no automated research runs when pages are built.
  • Genuinely unresolvable collisions stay unpublished. Where two real agencies or two real people could own the same record and no evidence separates them, the record is withheld by design. That is a deliberate outcome, not a gap to be closed by guessing.

Internal affairs dispositions, defined by the AG

Under the Internal Affairs Policy and Procedures (AG Directive 2022-14), every law enforcement agency files an annual internal affairs summary with the Office of Public Integrity and Accountability. The files cover all investigations open at any point in the reporting year, and the data is a yearly snapshot: a single case cannot be tracked across years. The complaint mix shown on department pages uses the "most serious allegation" each agency assigned to an investigation.

An investigation's internal disposition is what the agency concluded. These are the Attorney General's own definitions, and they are the reason this site repeats that allegations are not findings:

  • Sustained. A preponderance of the evidence shows an officer violated a law, regulation, directive, policy, or procedure.
  • Not sustained. The investigation failed to disclose sufficient evidence to clearly prove or disprove the allegation.
  • Exonerated. The conduct did occur but did not violate any law, regulation, directive, policy, or rule.
  • Unfounded. A preponderance of the evidence shows the alleged conduct did not occur.
  • Administratively closed. There was insufficient information to move the investigation forward.

Only sustained findings mean a rule was broken. A high count of investigations includes complaints that ended unfounded, exonerated, or not sustained, which is why investigation volume is not a count of misconduct.

How report-card grades are computed

A grade is a relative position within a peer group, never an absolute verdict. Every number below renders directly from the same configuration the engine runs on, so this description cannot drift from the code.

  • Peer groups. Agencies are compared only within their own type. Municipal departments are further banded by mean reported officer count: 1-14 officers, 15-29 officers, 30-59 officers, 60+ officers. Every other type (corrections, sheriffs, prosecutors, state) forms a single statewide band. A group needs at least 8agencies to grade; smaller groups render an honest "not graded" state.
  • Components. IA volume (investigations per 100 reported officers, multi-year mean; weight 40%), discipline severity (sanction-weighted major discipline per 100 officers, 2020-2025; weight 40%), and allegation severity (mean tier of IA allegations; weight 20%). Each component becomes a percentile within the peer group, where higher means more reported volume or severity.
  • Grade. The weighted mean of component percentiles is re-ranked among peers; the grade is the fifth of the peer group it lands in. A: lowest fifth. F: highest fifth. At least two computable components are required.
  • Confidence.Shown separately from the grade, never blended into it: years on the AG's non-reporting list, few usable reporting years, and small officer counts (noisy rates) each lower confidence, and the reasons are printed on the card.

Sanction weights: termination 4, demotion 3, suspension 2, separation while IA pending 2, other sanctions 1. Allegation tiers are an editorial choice, published in full below; values the AG reports as unknown or not provided are excluded from severity math rather than guessed.

Allegation severity tiers used by the report-card engine
TierWeightAllegations
critical4excessive force; sexual assault/criminal sexual violation; domestic violence (criminal); assault; other criminal violation; theft; false documentation/falsifying a report (criminal); dui/dwi on duty
high3use of force policy violation; improper arrest; improper search; improper entry; differential treatment; harassment/stalking; domestic violence (non-criminal); false documentation/falsifying a report (non-criminal); dui/dwi off duty; drug test failure
moderate2demeanor; neglect of duty; insubordination/disobeying an order; conduct unbecoming/discredit to the agency; improper supervision/failure to supervise; vehicular pursuit policy violation; bwc/mvr violation; eeo; property damage/criminal mischief
low1other departmental rule violation; preventable mv accident; attendance issues; loss of or failure to safeguard agency property

Salary and pension data

Some officer pages show a salary or pension figure from New Jersey Treasury's YourMoney transparency data. This is a different source from the Attorney General discipline records, and it is the most identity-sensitive feature on the site, so the rules below are deliberately strict. When a match is not certain, nothing is shown.

  • Which pension systems.Only the Police and Firemen's Retirement System (PFRS) and the State Police Retirement System (SPRS) are used. PFRS membership alone does not mean a person is a police officer: it also covers firefighters and many corrections titles. So the fund is a filter, not proof. Authoritative police relevance comes from the employer, resolved to an agency this site already covers. For active members the data also carries a "police officer" group that excludes firefighters up front; the retired file has no such flag, so retired municipal PFRS records are never shown (police and firefighter cannot be told apart there). SPRS members are sworn State Police.
  • How a figure is linked to an officer.A pension record is attached to a named officer only at high confidence: the normalized full name matches and the pension employer resolves to the officer's exact agency (or, for SPRS, to the State Police). A timeline check rejects namesakes: a retiree whose retirement predates the officer's earliest discipline record cannot be that officer, so the match is dropped. If more than one pension record could be that officer, or the same record could be more than one officer, the match is withheld rather than guessed; some of those candidates are later resolved by the evidence-cited verification process described above, and the rest stay unpublished. Lower-confidence matches (same county but not the exact agency, or name-only) are never published.
  • What the amount is. Figures are as reported by NJ Treasury as of 2026-03-31. A salary is the pension-basis figure and may not include overtime, accrued leave, stipends, or other pay. A retiree's figure is the monthly allowance. Blank fields read "not reported."
  • Corrections. Because the officer-to-record link is an inference, a disputed match is removed on request through the corrections process, which is honored as a permanent suppression.
Pension source files, publisher, snapshot date, and checksums
FileSnapshot (as of)RetrievedSnapshot (SHA-256, first 12)
YourMoney Active Pension Members (PFRS/SPRS subset)2026-03-312026-07-0441ab8a082b82
YourMoney Retired Pension Members (PFRS/SPRS subset)2026-03-312026-07-044f5e4e1d292a

Publisher for both files: New Jersey Department of the Treasury (YourMoney). These are the committed PFRS/SPRS subsets the build reads; the multi-gigabyte raw files are not redistributed. The build verifies each subset's checksum before generating any page.

Comparing police pay and school-staff pay

The police and teacher pay pages compare two workforces using the same NJ Treasury snapshot described above. Nothing on those pages is attached to a person, and the committed school-staff subset carries no member names at all: the columns filtered out of the raw file are the name columns, so the identity never enters this repository. Every constant quoted below is read directly from the configuration the computation runs on, so this description cannot drift from the code.

  • The two groups.Police are active members of the Police and Firemen's Retirement System in the "police officer" group, which excludes firefighters at source, further restricted to employers that resolve to municipal or county law enforcement. Employers of type state or other, and statewide bodies with no county of their own, are excluded, because a state prison or NJ Transit is not what a community pays for its own policing. School staff are every active member of the Teachers Pension and Annuity Fund.
  • TPAF is not only classroom teachers. Every active member of the Teachers Pension and Annuity Fund. The fund covers certificated school staff and the file carries no job title, so principals, supervisors and other certificated staff are counted alongside classroom teachers. School support staff (aides, secretaries, custodians, drivers) are enrolled in PERS instead and are not counted here, so this is not a school payroll figure. That is a real limit on the comparison and it is stated on every page of the vertical, not only here.
  • How county is assigned.From the source's own location field, which the active file populates for every fund. No name matching, no district crosswalk, and no inference. Rows the source places in its "regional" or "statewide" buckets are excluded from county figures rather than assigned somewhere. The published file states exactly how many rows entered each figure and how many were excluded, by reason.
  • What the amount is. Pensionable base salary as reported to the pension system. It excludes overtime, stipends, longevity, off-duty detail pay and accrued-leave payouts for both groups. Actual compensation is higher for both, and this data cannot say by how much for either, so it cannot say which direction the omission moves the ratio. A school contract year and a police work year are not the same length. The source carries no work-year field, so these are annual salaries compared as reported, not pay per day or per hour.
  • The tenure adjustment. Police can retire after 25 years, so the active police workforce is less senior than the active school workforce: median police service years are lower in all 21 counties. Both groups are therefore re-weighted onto one reference distribution of service years (statewide-tpaf-service-years), using the bands under 5 years, 5 to 10 years, 10 to 15 years, 15 to 20 years, 20 to 25 years, 25 years or more. A band contributes only when both groups have at least 20 people in it, and the adjusted figure is withheld entirely unless the contributing bands cover at least 60% of the reference. Because police are the less senior group, this adjustment usually widens the gap rather than closing it.
  • Suppression. A county or region with fewer than 30 people on one side publishes no figure for that side and no ratio. A single department needs at least 10 officers, a lower floor because a department median is a plain description of that department rather than a comparison carrying a rank.
  • Regions. North, Central and South follow the state planning-region convention. The line between them is a convention, not a finding in the data, and where Ocean County belongs is genuinely disputed. County figures are shown underneath every regional figure so the grouping never hides anything.
  • What a ratio is not. Municipal police payrolls and school payrolls draw on different tax levies and different state aid formulas. The comparison describes what two workforces are paid in the same place. It does not trace a dollar from one budget to another and cannot be read as doing so.
School-staff source file, publisher, snapshot date, and checksum
FileSnapshot (as of)RetrievedSnapshot (SHA-256, first 12)
YourMoney Active Pension Members (TPAF subset, names removed)2026-03-312026-07-0414ad7d87a6e6

Columns kept in the committed school-staff subset: _SRC_ROW, EMPLOYER_NAME, LOCATION_CODE, LOCATION_NAME, SERVICE_YEARS_QTY, SERVICE_MONTHS_QTY, CURRENT_EMPLOYER_SALARY_AMT, ALL_EMPLOYERS_SALARY_AMT, MEMBERSHIP_TIER. The police side of the comparison reads the same PFRS subset listed in the table above.

FBI staffing data (LEE)

Some department pages show a staffing section sourced from the FBI's Law Enforcement Employees (LEE) census, a separate federal dataset from the New Jersey Attorney General records this site otherwise runs on. It is the one genuinely independent staffing denominator this site has, and the only source behind any per-capita figure here.

  • What it counts.Full-time sworn officers and full-time civilian employees, each split by sex, as reported by the agency as of October 31 each year (per the FBI's Police Employee technical specification). Part-time staff, special officers, and crossing guards are excluded by the FBI's own definition; the sworn head of the department is included.
  • Reporting is voluntary and uneven. Not every NJ agency reports every year. A missing year renders as a gap in the trend line, never as zero. A reported zero (rare, but real on some administrative rows) and a non-report are different things, and this site never conflates them.
  • Only confident matches are shown.Each FBI record is keyed by its own agency identifier (ORI). ORIs join to this site's canonical departments through one committed, hand-reviewed agency-to-ORI crosswalk (see the matching section above): each entry links one ORI to one department, scoped by year where a department's history spans a rename or a municipal consolidation, and identifiers that deliberately do not join carry a written reason. Anywhere the match is ambiguous (two real municipalities sharing a name, a county-level total that could mean more than one thing), the figure is withheld rather than guessed. A department with no confident match shows an explicit "staffing data not available," never a blank that could be mistaken for zero.
  • County corrections and sheriff's offices are not covered. The FBI census has no per-facility or per-office breakdown for New Jersey county corrections or sheriffs: only a single statewide Department of Corrections figure exists in it. Every county corrections and sheriff's office profile on this site will show staffing as not available; that is expected, not an error or an omission.
  • Per-capita is municipal-only. Officers-per-1,000-residents is shown only for municipal police departments with a real reported population figure, and is computed by this site directly from the raw counts rather than trusting a precomputed source field.
  • This is not the same "officers" as the AG's IA data.The Attorney General's IA Agency Totals file has its own "Number of Officers" field, but per the AG's own published notes, it is a unique count of officers named in that year's internal affairs investigations, not a staffing figure. The two numbers answer different questions and are never blended into one another on this site. Where a department page shows both an IA-based rate and an FBI-staffing-based rate, they are labeled separately and are not meant to be added, averaged, or reconciled against each other.
  • Rates are approximate context.Any figure built from FBI staffing combines two different reporting regimes with different time bases (an October snapshot vs. a full-year AG count) and is shown only when the staffing year is recent enough to be a reasonable stand-in for the rate's own year. A higher rate is not automatically worse: it can reflect more reported misconduct, or simply a larger, more active department.
  • What this data does not resolve. This site ran a deliberate, adversarial review of where the FBI and AG datasets disagree (agency coverage, reporting years, and the definitional mismatch above) before publishing any of it. Every material limitation that review found is reflected in the caveats above.
FBI LEE source file, publisher, coverage, and snapshot checksum
FileCoverageRetrievedSnapshot (SHA-256, first 12)
FBI Law Enforcement Employees (LEE), New Jersey subset1960-20252026-07-04e1dd1ed5135c

Publisher: Federal Bureau of Investigation. This is the committed New Jersey subset the build reads; the national file (all US agencies, 1960-2025) is not redistributed. The build verifies the subset's checksum before generating any page.

Fatal Encounters (deaths during police encounters)

The fatal encounters section is built from the Fatal Encounters dataset, an independent, crowdsourced journalism project (fatalencounters.org). It is not a government source. It is the only third-party dataset on this site, and every page built from it labels that provenance distinctly from the Attorney General and federal data.

  • What a record is, and is not. Fatal Encounters documents deaths that occurred during police encounters of any kind. The New Jersey subset covers 2000 through 2021: 549 records. About 24 percent involve vehicle pursuits; 66 records are ones the project itself codes as suicides; others are medical emergencies, drownings, and overdoses that happened while police were present or responding. This is not a list of police killings, and a record here is never a finding of fault or misconduct by any officer or agency.
  • The dataset is frozen. The project suspended collection in December 2021. The absence of records after 2021 means the dataset ended, not that deaths ended. This site does not extend or update it.
  • Fetch and cache.The data is fetched programmatically from the project's public Google Sheet (pnpm fe:fetch). The New Jersey subset is committed to this repository with per-row provenance (each record carries its source row), and its checksum is pinned in the source registry. Builds are deterministic: every page renders from the committed, verified snapshot, never from a live fetch.
  • How records are attributed to departments.The dataset names agencies as free text. Those strings are resolved to this site's canonical agencies through a crosswalk with confidence tiers, and only high-confidence matches attribute an encounter to a department page. Ambiguous matches and out-of-county municipal matches are never auto-trusted: the source strings include out-of-state name twins, so a same-name municipality in the wrong county attributes only after a researched confirmation citing incident-specific sources (see the matching section above). Records with no confident match still get their own pages, unattributed. 525 of the 549 New Jersey records are attributed.
  • Fields the site displays but never computes from.The dataset's own column titles say it plainly: "Dispositions/Exclusions INTERNAL USE, NOT FOR ANALYSIS" and "Intended use of force (Developing)." Record pages display these values inside a clearly caveated block, because hiding them would be its own distortion, but the site never computes anything from them: no metric, no filter, no ranking, no index. A build gate enforces this.
  • Race is shown as reported only.The project publishes statistical race imputations with probabilities for records where race was not reported. Those imputations are excluded from every page on this site and carried only in the machine-readable mirror (/data/fe.json). The reasoning: imputation is a defensible technique in aggregate analysis, but it cannot support asserting an individual person's race on a page about their death.
  • Also excluded from pages:source image URLs and the project's unfinished "Temporary" columns.
  • Known quirks in the source data. The project states that vehicle-pursuit deaths are undercounted. Race reporting is spotty before 2013. Two records carry county values that are not New Jersey counties; they render as recorded, because correcting a source value would break the as-reported rule.
  • Corrections and removal. The corrections process covers these pages, and it is extended for family members of the deceased, who can request correction or removal of a record page.
Fatal Encounters source file, publisher, coverage, and snapshot checksum
FileCoverageCollection endedRetrievedSnapshot (SHA-256, first 12)
Fatal Encounters, New Jersey subset2000-20212021-122026-07-10c8fb22714b23

Publisher: Fatal Encounters (fatalencounters.org), an independent journalism project, not a government agency (https://fatalencounters.org/). This is the committed New Jersey subset the build reads; the national file is not redistributed. The build verifies the subset's checksum before generating any page.

County maps and boundaries

The county maps draw outlines published by the New Jersey Office of GIS. They are a cartographic source and carry no claim about any agency: they supply the shapes, and the 2020 Census population that the per-resident rates divide by. Every measure drawn on them comes from the same Attorney General records as the tables. The maps live on the county maps page, one static page per measure.

  • The outlines are not legal boundaries.The source says so itself: the layer "is not a survey document and must not be used as such," and its polygons "do not represent legal boundaries." They are also generalized for display. The full-detail source carries about 201,000 points; the maps here draw about 3,000, which at the size they render is finer than a screen can resolve but is not a survey line.
  • Rates come first, counts second. A map shaded by raw investigation totals is a picture of where people live. Essex reports 2,953 investigations and Salem 66, and that gap mostly tracks population. Raw counts are still available, on their own pages, labeled as counts.
  • Per-resident rates mix vintages. The population is from the 2020 Census. The internal affairs figures are more recent. A rate that divides one by the other is still the most comparable measure available across 21 counties of very different size, but the two numbers were not counted in the same year.
  • Nothing here divides by department staffing, because that number does not exist in this data.The Attorney General's officer column counts distinct officers named in internal affairs investigations, not officers employed. It totals 8,532 statewide, against a real New Jersey sworn strength several times that. So no measure on these maps is called a rate per officer without saying which officers it means.
  • Shading is relative, and the boundaries are printed. Counties are sorted by rank into equal-sized groups rather than shaded on a straight scale from lowest to highest, because one outlier otherwise flattens the other twenty into two indistinguishable shades. The value at each group boundary is printed above the legend so any shade can be read back to a number. It is a description of how counties compare to each other, not a grade.
  • State agencies are not on the map. The State Police, the Department of Corrections, Transit Police, and other state-level agencies operate across county lines, and the Attorney General reports them outside the county system. They appear in no county on any of these maps, and every map says so. They are in the rankings.
  • The maps work without JavaScript. Every map is drawn on the server and shipped as part of the page, with a hidden table listing every county and its value for screen readers and for anything that cannot render an image. On the county map pages, a pan-and-zoom layer loads over the top once you scroll to it; if it fails or you have scripts disabled, the drawn map is what remains, and it is complete. No map on this site requests anything from a third party.

DoD 1033 program transfers (LESO)

Military-equipment sections are built from the Defense Logistics Agency's "LESO Public Information" quarterly file, the federal accounting of property transferred to law enforcement under the 1033 program. This site reads the NEW JERSEY sheet: 2026-06-30 snapshot, 1,946 line items. This is federal data, a different provenance from both the Attorney General records and the third-party Fatal Encounters dataset, and it is labeled as such wherever it appears. Receiving equipment through the program is not misconduct. Statewide totals, per-county rollups, and top categories are on the 1033 program overview.

  • Transfers, not inventory.The file records line-item transfers over time, not what an agency holds today. This site says an agency "received" or "acquired" an item, never that it "has" it. DEMIL code A means non-controlled property the agency may dispose of after one year; codes C, D, F, and Q mean controlled property. The file is a quarterly accounting snapshot, not a complete historical log: by the program's own publication history, records before FY2017 are incomplete.
  • What the dollar figures mean.Acquisition value is the original cost to the Department of Defense per unit of issue, not current or market value. The site computes each line's value as quantity times that per-unit cost; that multiplication is this site's assumption, stated here.
  • Quantities aggregate only within a unit of issue. The file counts in units like Each, Kit, and Box. Adding a kit to an each produces a meaningless number, so this site never publishes a cross-unit item count. Dollar values are summable, and totals are stated in dollars.
  • Fetch and cache.The quarterly workbook is fetched programmatically (pnpm leso:fetch), the New Jersey sheet is committed as a subset with its checksum pinned in the source registry, and builds render deterministically from that verified snapshot. The refresh runbook is quarterly, matching the file's publication schedule.
  • How recipients are matched to departments.Recipient names in the file are ALL-CAPS free text with no county column. They are resolved deterministically, including parsing embedded county tags ("WASHINGTON TWP PD GLOUCESTER CO"). Only high-confidence matches power department pages: 179 of 185 recipient names. The remaining names are shared by two or more real municipalities and no public evidence singles out the recipient, so they are withheld by design (see the matching section above); their transfers still count in statewide totals rather than being dropped silently.

Tactical or mundane: the equipment classification

The first four digits of an item's National Stock Number are its Federal Supply Class (FSC). Every FSC present in the New Jersey data is explicitly curated in this site's configuration as tactical or mundane, and every tactical assignment carries a written rationale. The table below renders directly from that configuration, so this documentation cannot drift from the computation. Two judgment calls to note: military trucks and Humvees (FSC 2320) are classed tactical but displayed as their own category, distinct from weapons and armored vehicles; ambulances and utility vehicles (2310), gas masks (4240), radios, computers, and clothing are mundane. A two-digit fallback exists only as a tripwire: if a future quarterly refresh introduces an FSC that has not been curated, the build fails rather than bucketing it silently.

Tactical Federal Supply Classes, rendered from the classification config
FSCLabelDisplay groupRationale
1005Guns, through 30mmWeaponsFirearms and their major components (rifles, magazines). The core controlled-weapons class of the 1033 program.
1095Miscellaneous weaponsWeaponsWeapons FSG; NJ lines are non-lethal firing devices, still weapons under DoD classification.
1240Optical sighting and ranging equipmentWeapon optics and sightsWeapon sights (reflex, holographic) and fire-control optics: direct weapons accessories.
1367Tactical sets, kits, and outfitsWeaponsDoD tactical equipment sets; NJ lines are non-lethal capability sets (munitions-adjacent).
1385Surface use explosive ordnance disposal toolsEOD robots and bomb-disposal equipmentEOD robots (PackBot etc.). Bomb-squad equipment is a public-safety function, but these are military unmanned systems and are classed with them; the category label keeps them visibly distinct from weapons.
1520Aircraft, rotary wingAircraft and dronesObservation helicopters.
1550Unmanned aircraftAircraft and dronesUnmanned aircraft systems (drones).
1990Miscellaneous vesselsAircraft and dronesNJ line is an unmanned watercraft: classed with unmanned systems.
2320Trucks and truck tractors, wheeledMilitary trucksMilitary utility/cargo trucks incl. Humvees. Widely used for storm response, but they are the program's signature vehicle transfers; kept as their own visible category, distinct from weapons and armored vehicles (Phase 0 decision).
2355Combat, assault, and tactical vehicles, wheeledArmored vehicles (MRAPs)Mine-resistant ambush-protected vehicles: the signature militarization item of the 1033 program.
2360Unmanned ground vehiclesEOD robots and bomb-disposal equipmentRemotely operated ground robots (largely EOD/inspection platforms).
2540Vehicular furniture and fixturesVehicle armorNJ line is a ballistic blanket: ballistic protection, classed with armor.
2541Weapons systems specific vehicular accessoriesVehicle armorTransparent vehicular armor (ballistic windows).
5850Visible and invisible light communication equipmentEOD robots and bomb-disposal equipmentFSC is a comms class, but every NJ line under it is an EOD search kit; classed by what the items are, with the FSC label preserved.
5855Night vision equipment, emitted and reflected radiationNight vision and thermal imagingImage intensifiers and IR illuminators, largely weapon-mounted: the classic controlled night-vision class.
6350Miscellaneous alarm, signal, and security detection systemsNight vision and thermal imagingMobile anti-intrusion sensors and surveillance systems: military perimeter-surveillance equipment.
6635Physical properties testing and inspection equipmentNight vision and thermal imagingFSC is a test-equipment class, but every NJ line under it is an infrared/thermal camera; classed with night vision.
6650Optical instrumentsWeapon optics and sightsSpotting scopes, telescopes, binoculars: observation optics that pair with the weapons classes. Includes generic binoculars; kept tactical for consistency and visibility.
6720Cameras, still pictureNight vision and thermal imagingNJ lines are military reconnaissance camera systems, classed with surveillance equipment (one taillight-camera assembly rides along).
8465Individual equipmentBody armor and shieldsNJ lines are body shields; classed with personal armor.
8470Armor, personalBody armor and shieldsBallistic vests, helmets, blankets, and personal protective shields.

The Militarization Index

Some department pages carry a Militarization Index, a labeled analysis layer. Its definition renders from the same configuration the engine runs on: Original acquisition value of tactical 1033 equipment received (per the published tactical/mundane classification), per sworn officer, as a percentile among same-size agencies.

The denominator is the latest FBI LEE sworn-officer figure, high-confidence match only (see the staffing section above). The percentile uses the same size bands and percentile math as report cards, with a floor of 8 peers; peer groups include agencies that received nothing, counted at zero, so the curve is not a recipients-only ranking.

  • It is labeled analysis, not a verdict. A high percentile is a position among peers, not a finding about a department.
  • Higher is not automatically worse. A bomb-disposal robot and a rifle carry the same kind of dollar value; the tactical list above shows exactly what counts.
  • It measures participation intensity, not a current arsenal. The numerator is cumulative transfers over the covered window; the denominator is current staffing. Equipment returned or disposed of since transfer still counts in the numerator.
  • It is computed only where a staffing denominator exists. Departments without a confident FBI staffing match show an explicit insufficient-data state, never a substitute denominator.
  • It never feeds report-card grades. The index stays on its own labeled surface.
  • Fatal Encounters data is never an input to this or any other index on this site. A composite that blends a crowdsourced deaths dataset with a federal equipment ledger would be statistically invalid, and a build gate enforces the separation.

A note on reading these datasets together. Where an agency page shows discipline records, fatal encounters, and 1033 transfers side by side, that is context, not causation. The site draws no causal link between them on any factual surface, and no composite score combines them.

DoD 1033/LESO source file, publisher, coverage, and snapshot checksum
FileCoverageAs ofRetrievedSnapshot (SHA-256, first 12)
DoD 1033 Program transfers (LESO Public Information), New Jersey sheet1993-20262026-06-302026-07-100bd20d7f46f9

Publisher: Defense Logistics Agency (U.S. Department of Defense) (LESO Public Information). This is the committed New Jersey sheet the build reads; the all-states workbook is not redistributed. The build verifies the subset's checksum before generating any page.

Public records requests (OPRAmachine)

Department pages carry a records-request section drawn from OPRAmachine, an independent third-party site where members of the public file Open Public Records Act requests in the open and the responses are published. It is not a government source and it is not this site.

A request is not a finding.Every entry records what somebody asked an agency for. It is evidence of public interest, never evidence that an agency did anything. Request titles are written by the person filing, so they can contain allegations or charged framing; they are quoted as the requester's words, behind a neutral disclosure, and never presented as fact.

A status is not an adjudication, and it is not the agency's word. The status on each request is set by the requester when they classify the response they got back, so "successful" means the requester said they got what they asked for. No court and no agency assigned it.

Which body a department is matched to.Most New Jersey police departments have no separate listing on OPRAmachine: records requests for them run through the municipality or its clerk. Where that is the case the municipal custodian is linked instead, and the page says so plainly, because the counts then cover the whole municipality and not just its police department. Departments are matched to bodies by county and municipality name using the same deterministic rules the site's other crosswalks use. Ambiguous matches (a borough and a township of the same name, for instance) are never guessed: they go to a review queue and the section simply does not appear until a human or a cited verification decision settles it.

Which requests count.Most New Jersey police departments have no listing of their own, so their records run through a municipal custodian that also fields requests about building permits, property records, and code enforcement. Showing that whole log on a police department's page would be wrong, so where a department is matched to a municipal custodian, only requests whose subject line indicates they concern the police department are counted or shown. That sorting is this site's reading of the request titles, not a fact from the source.

It is deliberately cautious, and that has a cost worth stating plainly: a request that genuinely concerns the police but carries a vague subject line, and plenty read only "OPRA Request", is not counted. The figure is a floor. Where a department has its own listing on OPRAmachine, no such sorting is applied: everything sent to a police department is about the police department.

What it covers. Only requests already publicly visible on OPRAmachine are carried. Most OPRA requests in New Jersey are filed directly with agencies and never appear on the platform at all, so these counts are a floor and not a total. Request volume is not a measure of misconduct.

It is frozen in time, and that matters.Unlike the Attorney General releases, which are published files this site re-ingests, the OPRAmachine figures come from a hand-taken extract of that platform's database, snapshotted on 12 July 2026. Nothing refreshes them. OPRAmachine kept accepting requests the day after, so these counts began going out of date immediately and will keep doing so until the snapshot is retaken. Every figure here is a lower bound. For what is actually current, follow the link to the body on OPRAmachine itself.

Regulations and civil service jurisdiction

The Title 4A glossary, the discipline explainer, and the X-ray annotations that appear inside officer records all draw on one primary source: the text of N.J.A.C. 4A:2 Subchapter 2, Major Discipline, current through New Jersey Register, Vol. 58 No. 12, June 15, 2026, retrieved 2026-07-04. That file is committed to this repository, checksummed, and verified at build.

Each glossary entry pairs a plain-language summary, labeled as this site's explanatory paraphrase, with key points quoted from the regulation. A build gate confirms that every quoted point is a verbatim substring of the source text and that the summary passed the humanizer style rules, so the rule's own words are never mixed with the paraphrase.

The X-ray annotations fire only on confident matches: an explicit N.J.A.C. 4A:2-2.x citation, or one of the canonical general-cause phrases whose meaning is unambiguous. Free-form, agency-specific, or non-4A charge language is left un-annotated rather than guessed. Matches are precomputed at build from the same glossary they link to, so an annotation can never point at a section the glossary does not define.

The civil service jurisdiction flag on each department matches the agency's parent municipality or county against the New Jersey Civil Service Commission roster (Appendix A), as of 2026-07-04. Matching is keyed on county, so a municipality name that repeats across counties can only match the county whose roster lists it. Municipal police departments match a municipality; county agencies match the county. An agency that does not resolve cleanly is marked "not verified" rather than asserted either way. The flag reflects the roster as of its date and is context, not legal advice. The full roster of local civil service jurisdictions is browsable on NJCSNavigator's jurisdiction directory.

Corrections

If a page here misstates what the official record says, that is a bug in this site and it will be fixed against the source file. The corrections page explains the process, including what to do when the dispute is with the underlying government record itself.