Vizpromax
A decade of NYPD complaint data retold as an interactive visual narrative — queried live from the city's API rather than shipped as a frozen CSV.
D3.jsNext.jsTypeScriptGeoJSONVercel
7M+
Records analyzed
8
Visualizations
77
Precincts
What I built
Turned 7+ million NYPD complaint records (2015–2024, five boroughs, 77 precincts) into a guided visual story a non-expert can follow, built in a team of two for NYU's information-visualization course and deployed on Vercel.
Queried NYC Open Data live at runtime instead of bundling a static dataset: SoQL pushes aggregation to the server, years fetch in parallel, and a 20,000-record stratified sample keeps the dashboard responsive.
Designed eight interactive D3 visualizations — including a Sankey laid out by hand without d3-sankey and a precinct-level GeoJSON choropleth — inside an Observable notebook embedded in a Next.js app.