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
| Source | Coverage | Update cadence | Caveats |
|---|---|---|---|
| OATH Trials Division | Last 5 years, capped at 20,000 cases | Nightly via Socrata API | Trials 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 Hearings | Last 180 days, capped at 10,000 records | Nightly via Socrata API | The 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 Complaints | Last 2 years, capped at 15,000 complaints | Nightly via Socrata API | One row per complaint (allegations are rolled up). Officer names not included; use the full Open Data dataset for that. |
| CCRB Penalty Recommendations | All available, capped at 20,000 | Nightly via Socrata API | Officer-level discipline recommendations and board dispositions. Joins to CCRB complaints by complaint ID. Officers are identified by tax ID, not name. |
| COIB | PDFs linked from the enforcement-dispositions and advisory-opinions pages | Nightly HTML scrape + PDF text extraction | COIB consolidates dispositions into annual summary PDFs, so per-case granularity is limited. Advisory opinions are individual files. |
| DOI Reports | Reports from the current public-reports listing | Nightly HTML scrape + PDF text | Older DOI reports are not yet covered. Date inferred from filename when present. |
| NYC Comptroller | Most recent reports listing on comptroller.nyc.gov | Nightly HTML scrape + PDF text from each report page | Historical archive not yet covered. Dates parsed from listing text. |
| Public Advocate | Reports listed at advocate.nyc.gov/reports | Nightly HTML scrape | No archive page; we get whatever the office links from the main reports page. |
| Commission on Human Rights | All published decisions, 2015–present (40 cases) | Nightly HTML scrape + PDF text | Decisions 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 Review | All currently linked PDFs (38 reviews) | Nightly HTML scrape + PDF text | The 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 Decisions | All currently linked PDFs (15 decisions) | Nightly HTML scrape + PDF text | Department of Consumer and Worker Protection adjudications on licenses, deceptive trade practices and worker protection cases. |
| PERB Labor Decisions | All 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 notices | Nightly via Socrata | The 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 Violations | Last 90 days, capped at 15,000 | Nightly via Socrata | Housing 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 Notices | All currently linked PDFs (74 notices) | Nightly HTML scrape + PDF text | Department of Health official notices: Board of Health orders, Commissioner's orders, COVID closure authorizations, public-health advisories and notices of proposed rules. |
| Claims Against NYC | Last 5 years, capped at 25,000 claims | Nightly via Socrata | The 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 Legislation | All bills and local laws (11,622) | Nightly via Socrata | Every 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 Tracker | All projects (1,955) | Nightly via Socrata | Every 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 Complaints | Last 5 years, capped at 20,000 | Nightly via Socrata | Public 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 Complaints | Last 5 years, capped at 25,000 | Nightly via Socrata | Complaints 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
- NYPD Trial Decisions Library (pre-2021) — at nypdonline.org. Pre-2021 NYPD trials lived under the Deputy Commissioner of Trials and aren't on Open Data; the portal is JS-rendered and requires headless browser scraping. (Post-2021 NYPD discipline now flows through OATH Trials Division and is indexed above.)
- City Council hearing transcripts and testimony — the City Clerk paywalls these; we plan to index what citymeetings.nyc has.
- Court dockets (Housing Court, eCourts WebCivil/WebCriminal) — out of scope. CourtListener-style coverage of NY state courts is a much larger project.
- Landmarks Preservation Commission, Loft Board, BSA, ECB violations — partly covered by New York Law School's CityAdmin Online. We may add direct scrapers for the ones their index misses.
- NYC Rules (
rules.cityofnewyork.us) — proposed and adopted agency rules. Sitemap lists 621 rules; on the v1.3 list (Cloudflare protection requires extra handling). - NY State Comptroller audits of NYC agencies — sitemap-driven enumeration; on the v1.3 list.
- City Council Legistar — meeting agendas, items and transcripts. Has a public web API (citymeetings.nyc covers some, with AI segmentation).
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.