Inspiration

NYC and data! What more does anyone need?!

What it doesWhat we found:

We built a Service Gap Index for 155 NYC ZIP codes from 50,954 rodent complaints (311, Jan 2025–Sep 2026), 158,083 restaurant violations covering 26,114 restaurants, and ACS population by ZIP. Our central finding is that "time to close" is not "time to respond": 44% of all rodent complaints were closed within 60 seconds of filing, by the system, with no inspection — 60.6% of complaints every month until April 20, 2026, when the practice stopped. A naive analysis shows response time getting 50x worse in 2026; the truth is the city started showing up. The “service gap” index averages three percentile ranks per ZIP: the share of complaints closed with no visit (before April 20), the median days to close once every complaint was worked (April 20–July 31), and the share of restaurants cited for rats or mice — an inspector-verified signal that does not depend on who calls 311. The biggest gaps are in Southeast Queens (Hollis, St. Albans, Ozone Park, Queens Village), where up to 92% of complaints were closed with no visit and half of restaurants have rodent citations; the smallest are in Manhattan. The index is negatively correlated with complaint volume (−0.42), and per-capita calling has no relationship to inspector-found rodents (−0.04): the neighborhoods that call the most are the ones already being served, and 42 "quiet" ZIPs have high rodent evidence but rarely call.

What was excluded (or not excluded) :

We excluded conditions-only reports, harborage-only violations, non-NYC ZIPs, and 72 ZIPs with too little data to rank. (See Additional note #1 for more details/reasons on exclusions) We did not remove the single East Harlem building that filed 1,227 complaints (82% of ZIP 10035); we expose it instead, which is why nothing in our dashboard ranks by raw counts. The biggest limitation is that "no visit" is inferred from closure timing, because the 311 export we were given has no resolution text; we cannot rule out that some 60-second closures were legitimate duplicates, and we cannot see what the city told the caller.

Detailed breakdown:

  • "Condition Attracting Rodents" from sightings (a garbage report, not a rodent),
  • harborage code 08A from rodent violations, one non-NYC complaint ZIP,
  • 1,567 violation rows with missing or non-NYC ZIPs,
  • ZIPs with under 1,000 residents from per-capita rates, to avoid reporting zip code with small population. Example: The clearest case is with ZIP 10152 (a single office building on Park Avenue) has a population of 7, with a margin of error of ±12 — the estimate is literally "somewhere between 0 and 19 people." It had 1 rodent complaint. Per 10,000 residents that's 1,428, versus a citywide figure of about 50. It would be the "worst" ZIP in the city on a per-capita chart, from one complaint about one building where nobody really lives. and 72 ZIPs with too little data to rank (including JFK and LaGuardia, which the dashboard labels rather than scores).

How we built it

We leveraged Claude to support data analysis, and creating iniital DDL/DML statements (creating Databrick notebook assets as a result). We split up Databricks dashboards development and supporting Notebook generation (such as key findings during a data analysis), and submission of project.

Challenges we ran into

  1. Neither of us had ever used Databricks before, and had limited experience building data solutions from the ground->up.
  2. Familiarizing with Databricks UI to explore the data involved a learning curve, that resulted in our taking a few extra hours to get familiar with the underlying data.

Accomplishments that we're proud of

Leveraging AI tools external internal (Databricks Genie) to build a functioning dashboard, together as a team.

What we learned / Closing sentence

"If I worked for the city, I would send inspectors to the 42 quiet ZIPs in Southeast Queens first and stop using complaint volume to decide where they go, because our data shows the neighborhoods that call 311 the most are the ones already being served, while the ones with the most inspector-verified rodent evidence were closed out in 60 seconds without a visit."

What's next for Databricks Hackathon 2026

We intend on versioning all of our changes in our Git repositories, and building on our knowledge gained this weekend with subsequent Databricks courses (and/or certifications).

Dashboard Name (NYC Service Gap Dashboard) and URL:

https://bit.ly/4h1M6eB

Full link: https://dbc-c873bb97-db88.cloud.databricks.com/dashboardsv3/01f1b45a177217f993a686b781c1635c/published?o=7474648185884804&f_city_overview%7Eavg_index_bar=%257B%2522columns%2522%253A%255B%2522color%2522%252C%2522x%2522%252C%2522y%2522%255D%252C%2522rows%2522%253A%255B%255B%2522Staten%2520Island%2522%252C%2522Staten%2520Island%2522%252C%252261.40909090909091%2522%255D%255D%257D&f_551a3b70%7Ezip_filter.s=10001

Public google doc with links & screenshots: https://docs.google.com/document/d/1rbxZgway4IQjjY0f4MHdRTJ9qEIRetAg/edit?usp=sharing&ouid=109031729375683920877&rtpof=true&sd=true

Built With

  • claude
  • databricks
  • notebooks
  • sql
Share this project:

Updates

Submission history