[001] How We Get This Data
Every record is traceable to an official source.
No single national source publishes anti-Jewish hate crime data through the current date. The FBI's federal record is complete but annual; city police feeds are current but local; verified news-derived trackers are national but not police-confirmed. So this console assembles all three: the complete federal baseline for history, official police feeds where cities publish them, and a human-verified national news layer for everywhere else — synced daily, audited on every run, deduplicated by construction.
Official records and human-verified reports via documented APIs only. No scraping, no social media, no unverified submissions. Every record is labeled by source.
[002] Active Sources
One federal baseline. Live city layers on top.
01FBI Crime Data Explorer
National baseline- Coverage
- All 50 states, 1991–2024
- Updates
- Annual release (~Sept–Oct), revisions possible
- Method
- Full master-file download (~266k rows scanned per sync)
02NYPD Hate Crimes (NYC Open Data)
Live city layer- Coverage
- New York City, 2025–present
- Updates
- Quarterly publication
- Method
- Official Socrata API, exhaustively paged
03Austin PD Hate Crimes (Austin Open Data)
Live city layer- Coverage
- Austin TX, 2025–present
- Updates
- Ongoing (verified current within weeks)
- Method
- Official Socrata API, exhaustively paged
04Bloomington PD Hate Crimes (B-Clear portal)
Live city layer- Coverage
- Bloomington IN, 2025–present
- Updates
- Daily portal updates
- Method
- Official Socrata API, exhaustively paged
05trackantisemitism.org (TAS)
National news-derived layer- Coverage
- 47 states + DC, 2025–present (NY/TX/IN excluded — police feeds own them)
- Updates
- Daily updates
- Method
- Documented public API (/api/v1/incidents), exhaustively paged. Verified-status records only; locations resolved from text first, API coordinates second; placeholder coordinates rejected; never guessed
The federal baseline is the FBI's complete hate-crime master file — every incident reported to the FBI since records began in 1991, filtered to anti-Jewish bias motivation (~34,500 incidents). City layers add only years the FBI has not yet published, so the two can never overlap.
[003] The Pipeline
Synced daily at 09:00 UTC. All or nothing.
Step 1
Download the entire federal record
Every sync re-downloads the FBI’s full master file — not an incremental update. All of history is re-validated on every run, so a missed day can never become a gap in the data.
Step 2
Filter and classify
Rows are filtered to anti-Jewish bias motivation. Offense text is classified into incident type and severity by a single shared classifier used identically across the sync and the app.
Step 3
Geocode against the Census Gazetteer
The FBI file has no coordinates. Each incident is matched city-to-place against the U.S. Census Gazetteer (place → county → state fallback), with precision recorded per record. 99%+ resolve to place level.
Step 4
Pull live feeds
NYPD, Austin PD, and Bloomington PD official APIs, plus the trackantisemitism.org national API, are paged exhaustively until provably drained — only for years after the FBI baseline. TAS rows must be verified-status with a resolvable US location: state parsed from location text first, API coordinates matched to the nearest Census place second; known placeholder coordinates are rejected, and unresolvable rows are dropped rather than guessed.
Step 5
Audit, then swap atomically
Completeness and dedup audits run on the assembled dataset (details below). Only if every check passes does a single database transaction replace the old data. Any failure at any step keeps the previous dataset untouched.
[004] Deduplication
No incident can be counted twice.
Duplicates are prevented by construction, then audited anyway — on every single sync:
Temporal partition
City feeds are only ingested for years strictly after the FBI’s latest release. The same incident can never exist in both the federal record and a live layer — the sync aborts if a single live row violates this.
Disjoint jurisdictions
Each police feed is a separate department — NYPD cannot report an Austin incident. The news-derived TAS layer is excluded from every state a police feed owns (NY, TX, IN), so the same real-world incident can never enter through both a police report and a news report.
Namespaced identifiers
Every record’s ID is mapped into a numeric range reserved for its source. The database primary key rejects any collision as a hard failure.
Exhaustive paging with seen-sets
Within each feed, every page of results is tracked against already-seen IDs, so API pagination quirks cannot introduce repeats.
The same audit also proves completeness: every year from 1991 through the latest release must be present in the federal file (a single missing year aborts the sync), the dataset can never shrink unexpectedly, and the newest file can never be older than what we already hold.
[005] Evaluated & Excluded
What we tested and chose not to ingest.
Every candidate source below was probed directly — not dismissed on assumption. Each is excluded for a specific, verifiable reason, and each gets re-evaluated as access changes.
ADL HEAT Map
No public API. The map is an embedded third-party visualization and ADL’s terms prohibit scraping. We will integrate the day they offer programmatic access.
Hillel International campus tracker
Publishes topline counts only (e.g. 1,662 campus incidents through May 2026) — no incident-level records, dates, or locations exist to map or deduplicate. Cited as context below; not ingestible as data.
GDELT global news index
Indexes news articles, not incidents. One incident generates dozens of articles; many articles describe no mappable incident. Guaranteed duplicates and false positives.
LAPD open data
Has a hate-crime flag but no bias-motivation field — anti-Jewish incidents cannot be isolated from other bias categories.
Chicago & Washington DC open data
Neither city publishes bias-motivation data in any machine-readable dataset.
CAM Antisemitism Research Center
Publishes aggregate reports and dashboards, not an incident-level feed or API. Nothing to ingest record-by-record.
CyberWell
Tracks online antisemitic content (social media posts), not physical incidents — out of scope for an incident map.
ACLED
Political-violence event data with no antisemitism category; isolating anti-Jewish incidents requires free-text keyword matching, which fails our precision standard. Access also requires a license key.
[006] Honest Limitations
What this data is — and is not.
- The historical record (1991–2024) contains only incidents reported to law enforcement. The FBI itself documents significant underreporting — true totals are higher than any official record shows.
- Current-year records come from two kinds of sources, labeled per record: official police feeds (New York, Austin, Bloomington) and human-verified news reports via trackantisemitism.org for the other 47 states + DC. News-derived records are journalist-reported, not police-confirmed.
- News-derived records without a resolvable US location are dropped rather than guessed — current-year totals are therefore a verified floor, not a ceiling.
- Live feeds lag their source by their publication cadence — quarterly for NYPD, weeks for Austin, days for Bloomington and trackantisemitism.org. “Through present” means through each feed’s latest publication, refreshed every 24 hours.
- Map coordinates are city/place centroids from the Census Gazetteer, not exact addresses. Geocoding precision is recorded on every record.
- Campus-specific trackers like Hillel’s (1,662 incidents through May 2026) report aggregate counts without incident-level detail, so campus incidents appear here only when also reported to police.
[007] Common Questions
Frequently asked questions.
- What is the Hate Index (Hatedex)?
- Hate Index is a free, public intelligence console that maps and analyzes antisemitic incidents across the United States. It combines 35 years of FBI Crime Data Explorer records (1991–2024) with live official police feeds and verified national incident tracking, synced daily, deduplicated, and plotted on an interactive map with statistics and a searchable records table.
- Where does Hate Index get its data?
- Four kinds of sources: the FBI Crime Data Explorer (hate crime records from 1991–2024), live official city police open-data feeds (including NYPD, Austin PD, and Bloomington PD), and Track Antisemitism (verified, news-sourced national incidents). Every incident links to its source. The full pipeline is documented on the How We Get This Data page.
- How often is the Hate Index updated?
- The dataset syncs daily. Live police feeds and verified national incident sources are re-pulled, deduplicated against existing records, and published automatically.
- Is the Hate Index data complete?
- No dataset of antisemitic incidents is complete — the FBI itself documents heavy underreporting, and most cities publish no bias-crime data at all. Hate Index is a verified floor, not a ceiling: it shows 100% of what its official sources publish in machine-readable form, with every record traceable to its source.
- Who built the Hate Index?
- Hate Index was built by Oze Botach, Founder & CEO of the software engineering firm ENDUURE and CTO of Botach. He is Jewish, and built the console to track data about his own community properly.
- What is ENDUURE?
- ENDUURE is a software engineering firm founded by Oze Botach that builds production software — platforms, infrastructure, and internal tools. ENDUURE engineered every layer of the Hate Index console.
- Is Hate Index free to use?
- Yes. Hate Index is free and public. No account, no paywall. The methodology, data sources, and limitations are fully documented in the open.
- Which city had the most antisemitic incidents?
- On the live map, New York City consistently records the highest count of any U.S. city, reflecting both its large Jewish population and the NYPD’s unusually complete public hate-crime reporting. Use the map’s search and per-capita modes to compare cities and states.