Inspiration

2,192 New Yorkers died from drug overdose in 2024. 73% involved fentanyl. The Bronx has the highest overdose death rate in the city at 78 per 100,000 — and it's also one of the boroughs losing pharmacies the fastest. We realized no one was connecting these two crises: pharmacy closures and overdose deaths are happening in the same zip codes, but the public health response is reactive. By the time a neighborhood is officially a "pharmacy desert," people have already lost access to naloxone and buprenorphine. We built Pulse to detect the collapse before it happens and dispatch help while there's still time.

What it does

Pulse is a predictive intelligence platform that fuses three data signals — LinkUp real-time pharmacy job postings, NYC 311 service complaints, and CMS pharmacy reimbursement rates — into a causal risk model that flags neighborhoods at imminent risk of becoming pharmacy deserts. When a zip code crosses the critical threshold, Pulse auto-generates a target dossier (substance profile, demographic vulnerability, nearest remaining pharmacy) and schedules mobile treatment units carrying naloxone, buprenorphine induction kits, and fentanyl/xylazine test strips to deploy on a 4-week rolling calendar, prioritized by risk score.

How we built it

Frontend built with React, Vite, and Tailwind CSS. The dashboard features an interactive NYC zip code map color-coded by risk level, a causal inference engine panel showing weighted factor scores, and an automated dispatch scheduler. The risk model uses a multiple linear regression approach: Risk = (nb_labor x DeltaJobs) + (nb_geo x TransitFriction) + (nb_health x OverdoseRate) - (nb_alt x AlternativeAccess). Mock datasets were generated to simulate LinkUp pharmacy job posting decline, NYC DOHMH overdose surveillance data, Census ACS demographics, and CMS reimbursement shortfalls. The causal model weights labor signals at 20%, overdose data at 30%, geospatial transit at 10%, car ownership at 8%, senior population at 8%, median household income at 12%, and alternative pharmacy access as a negative factor. The UI was designed with a dark command-center aesthetic using Lucide React for iconography.

Challenges we ran into

Defining causality between pharmacy closures and overdose outcomes required careful thought — correlation is everywhere in this data, but building a defensible causal model meant isolating the leading indicators (LinkUp job postings) from lagging ones (confirmed closures). Weighting the risk formula was another challenge: how much should labor signal decay matter relative to transit friction or income? We iterated on the weights through scenario testing against known NYC hotspots. On the frontend, rendering a responsive map with real-time risk overlays and a dispatch calendar in a single-page app under hackathon time pressure pushed our React architecture.

Accomplishments that we're proud of

We built a fully functional causal inference engine that produces zip-code-level risk scores from four independent data streams. The dashboard doesn't just visualize — it prescribes. It tells you which neighborhoods need help, what substances are driving the crisis there, what resources to send, and when to send them. We're also proud of identifying LinkUp job posting data as a genuine leading indicator for pharmacy closures — this is a novel application of labor market intelligence to public health that we haven't seen elsewhere.

What we learned

The pharmacy closure crisis and the overdose crisis are deeply intertwined but treated as separate problems by separate agencies. LinkUp data provides a 3-6 month early warning window that no public health system currently uses. NYC 311 data, typically used for noise complaints and potholes, contains real signal about neighborhood-level infrastructure decay that correlates with retail pharmacy flight. And the pharmacy reimbursement system — where pharmacies lose money on every Medicaid prescription they fill — is a structural driver of closures in exactly the communities that need pharmacies most.

What's next for Pulse

Connect to live LinkUp API and NYC Open Data feeds to replace mock data with real-time signals. Integrate NPPES NPI deactivation files to validate predictions against confirmed pharmacy closures. Expand the model to other U.S. cities — LinkUp, 311, and CMS data are available nationally. Partner with NYC Health + Hospitals (whose SHOW vans already operate this model manually) to pilot Pulse as a dispatch optimization layer. Explore integration with the city's opioid settlement fund allocation process to direct the $550 million coming to NYC by 2041 toward the neighborhoods Pulse identifies as highest risk.

Built With

Share this project:

Updates