The Rest of the Record

Methodology and known gaps

← back to search

What this is

The Rest of the Record is a searchable microscope on the records New York City and New York State agencies generate that rarely make the news: adjudicative decisions, audits, complaints, penalty recommendations, oversight reports and other public records that aren't already aggregated elsewhere. We pull from each source on a nightly schedule, normalize records into a single schema and ship a static full-text index that runs entirely in your browser.

We don't host the original documents — every record links back to the official source.

Sources currently indexed

SourceCoverageUpdate cadenceCaveats
OATH Trials DivisionLast 5 years, capped at 20,000 casesNightly via Socrata APITrials Division produces written decisions and agency-head determinations. Includes NYPD disciplinary trials post-2021 (after the 2021 reforms shifted them from the Deputy Commissioner of Trials to OATH), as well as Loft Board, TLC, DCWP and other agency adjudications.
OATH HearingsLast 180 days, capped at 10,000 recordsNightly via Socrata APIThe Hearings Division is OATH's summons court — high volume, mostly civil violations issued by city agencies. Source dataset has typos; we filter rows with decision dates outside 2000–2030 and skip purely procedural outcomes (adjournments, scheduling).
CCRB ComplaintsLast 2 years, capped at 15,000 complaintsNightly via Socrata APIOne row per complaint (allegations are rolled up). Officer names not included; use the full Open Data dataset for that.
CCRB Penalty RecommendationsAll available, capped at 20,000Nightly via Socrata APIOfficer-level discipline recommendations and board dispositions. Joins to CCRB complaints by complaint ID. Officers are identified by tax ID, not name.
COIBPDFs linked from the enforcement-dispositions and advisory-opinions pagesNightly HTML scrape + PDF text extractionCOIB consolidates dispositions into annual summary PDFs, so per-case granularity is limited. Advisory opinions are individual files.
DOI ReportsReports from the current public-reports listingNightly HTML scrape + PDF textOlder DOI reports are not yet covered. Date inferred from filename when present.
NYC ComptrollerMost recent reports listing on comptroller.nyc.govNightly HTML scrape + PDF text from each report pageHistorical archive not yet covered. Dates parsed from listing text.
Public AdvocateReports listed at advocate.nyc.gov/reportsNightly HTML scrapeNo archive page; we get whatever the office links from the main reports page.
Commission on Human RightsAll published decisions, 2015–present (40 cases)Nightly HTML scrape + PDF textDecisions are organized by year on separate decisions-and-orders-YYYY.page pages. PDFs have an embedded text layer (no OCR needed). Date is parsed from the document body when present; otherwise we fall back to the year-of-folder.
TLC Chairperson ReviewAll currently linked PDFs (38 reviews)Nightly HTML scrape + PDF textThe Chairperson's review of OATH-TLC adjudications affecting taxi/FHV drivers and bases. Listed at /site/tlc/about/chairperson-review-oath.page.
DCWP Final Agency DecisionsAll currently linked PDFs (15 decisions)Nightly HTML scrape + PDF textDepartment of Consumer and Worker Protection adjudications on licenses, deceptive trade practices and worker protection cases.
PERB Labor DecisionsAll decisions (635 cases, 1974–present)Nightly via Socrata (data.ny.gov)NY State Public Employment Relations Board resolves labor disputes for public employees, including NYC public-sector unions. Each record links to the full decision in Cornell ILR's eCommons archive.
City Record Online (CROL)Last 365 days, capped at 15,000 substantive noticesNightly via SocrataThe official daily journal of NYC government. We skip the high-volume "Changes in Personnel" section (poll-worker hires/fires) and index Procurement, Public Hearings and Meetings, Contract Award Hearings, Agency Rules, Special Materials, Property Disposition, Public Comment on Contract Awards and Court Notices. The full source dataset has 1.08 million records.
HPD Class C ViolationsLast 90 days, capped at 15,000Nightly via SocrataHousing Maintenance Code violations classified as immediately hazardous (lead, no heat, no hot water, vermin, broken boilers, etc.). The full violations dataset has 10.9 million records since 1996; we surface the most recent serious ones, linked to HPD's per-building portal so you can pull the rest of the building's history.
DOH Official NoticesAll currently linked PDFs (74 notices)Nightly HTML scrape + PDF textDepartment of Health official notices: Board of Health orders, Commissioner's orders, COVID closure authorizations, public-health advisories and notices of proposed rules.
Claims Against NYCLast 5 years, capped at 25,000 claimsNightly via SocrataThe city's lawsuit ledger: every claim filed against NYC — slip-and-fall, civil rights, medical malpractice, false arrest, vehicle damage — with disposition, action taken and any settlement amount paid out. Source dataset has 256,923 records since 2007.
City Council LegislationAll bills and local laws (11,622)Nightly via SocrataEvery bill introduced in the City Council with title, summary, status, primary sponsor, committee, intro date and law number if enacted. Each links to the Legistar detail page for the full bill text and history.
Rezoning TrackerAll projects (1,955)Nightly via SocrataEvery rezoning project tracked by City Planning, with the project narrative and source-document statement. Captures the policy domain, lead agency, commitment stage and status.
DOHMH Indoor Environmental ComplaintsLast 5 years, capped at 20,000Nightly via SocrataPublic complaints to the Department of Health about indoor air quality, asbestos, mold, lead and other environmental hazards inside buildings. Source dataset has 108,134 records.
DCWP Consumer ComplaintsLast 5 years, capped at 25,000Nightly via SocrataComplaints filed against named NYC businesses with the Department of Consumer and Worker Protection. Includes business name, complaint code and result. Source dataset has 66,802 records.

What's not (yet) indexed

How matching works

The browser-side index is built with MiniSearch. Searches run AND across terms, with prefix matching and light fuzzy matching. Title, agency and respondent fields are boosted over body text. We don't yet support phrase queries with quotes — that's planned.

Data integrity

We don't modify or interpret the source records. Outcomes, penalties and dates come straight from the upstream source — including their typos and inconsistencies. If a record looks wrong, follow the link and check the original. If the original is wrong, that's worth flagging to the agency that published it.

If you spot a bug in our scraping or normalization, please file an issue at github.com/joshgreenman1973/nyc-decisions.

Scrape ethics

All sources are public. We use a descriptive User-Agent string with contact info, cap concurrency at one request at a time and prefer Socrata APIs over HTML scraping where available. We cache PDF downloads locally so we don't re-fetch unchanged documents.