Database
Where Need Meets Nothing: finding Florida's aid deserts with Snowflake
Saifullah Dev.to (EN Zone)
1 views
This is a submission for Weekend Challenge: Generosity Edition
What I Built
Generosity has a targeting problem. Money follows attention, attention follows disasters, and disasters get covered where the cameras already are. The places that quietly need the most are often the places nobody is looking.
So I went looking for them. Two Florida counties:
County
FEMA disasters (10yr)
Poverty rate
Doctors per 10k
Alachua
21
21.2%
351.0
Glades
14
17.2%
20.7
Alachua has more disasters and more poverty than Glades. It also has 17 times the doctor density. Alachua contains Gainesville and a teaching hospital. Glades contains the western shore of Lake Okeechobee and not much else.
That gap is invisible in any single dataset. FEMA knows where the storms landed. The Census knows who is poor. The national provider registry knows where the doctors are. Nobody joins them — so nobody can point at a map and say there, send help there.
Aid Desert Finder joins those three datasets into one county-level view and ranks all 67 Florida counties by how badly need outruns resources. It answers the question a donor actually has: not "where is it bad," but "where is it bad and nobody is already there."
The answer for Florida: 9 counties, about 258,000 people, averaging 22 disaster declarations in ten years, one in five residents below the poverty line, and roughly half the state's median doctor density.
Demo
Live map → https://aid-desert-finder.vercel.app
The panhandle and the rural interior light up. The coasts and the university towns do not.
Hovering a county — on the map or in the table — dims the rest of the state and pulls up its numbers. The toggle asks the same 67 counties four different questions.
Code
Saifullahakjsnd
/
where-need-meets-nothing
Aid Desert Finder - joins FEMA disasters, Census poverty, and NPPES provider data in Snowflake to rank Florida counties where high need meets thin resources
Where Need Meets Nothing — Aid Desert Finder
Live map → https://aid-desert-finder.vercel.app
Finds the Florida counties where disaster exposure and poverty are high and healthcare
resources are thinnest — the places most likely to be overlooked by donors, because attention
follows cameras rather than need.
Built for the DEV Weekend Challenge: Generosity Edition. Category: Best Use of Snowflake.
County
FEMA disasters (10yr)
Poverty
Doctors per 10k
Alachua
21
21.2%
351.0
Glades
14
17.2%
20.7
Alachua has more disasters and more poverty than Glades, and 17× the doctor density. That gap
is invisible in any one dataset. This joins three of them.
What it does
Ranks all 67 Florida counties on a composite need score — 35% disaster frequency, 35% poverty
rate, 30% scarcity of doctors per capita, each as a percentile rank across the state. The result
is an interactive choropleth plus a natural-language query box.
Headline finding: 9…
View on GitHub
Everything is there: the SQL that builds the joined view, the Cortex Analyst semantic model, the Streamlit in Snowflake app, and the generator for the standalone page.
How I Built It
Three federal datasets, zero ETL
The whole thing runs on the Snowflake Public Data (Free) Marketplace share. No pipelines, no downloads, no CSVs — three federal datasets already sitting there as queryable views:
FEMA_DISASTER_DECLARATION_AREAS_INDEX — which counties each declared disaster touched
AMERICAN_COMMUNITY_SURVEY_TIMESERIES — ACS poverty and population estimates
NPPES_PROVIDER_ADDRESSES — every registered healthcare practitioner's practice location
What makes the join tractable is that all three share one GEO_ID spine (Data Commons style — Florida is geoId/12, Alachua County is geoId/12001). No FIPS wrangling, no ZIP-to-county crosswalk scraped off a university website. The join is GEO_ID = GEO_ID.
Even the map geometry is in there. GEOGRAPHY_CHARACTERISTICS carries coordinates_geojson rows — real county polygons — so the choropleth uses zero external geodata. ST_SIMPLIFY at a 300m tolerance takes 4.5MB of boundaries down to 190KB with no visible difference at state zoom.
Asking it in English
Cortex Analyst handles the plain-English layer over a deliberately tiny semantic model — one view, six measures. The interesting part is what it does unprompted:
Asked "Which counties had disasters but fewest doctors?", it chose providers_per_10k over the raw headcount on its own — because the semantic model's description of that field says it's the right one for per-capita questions. Nothing in the question mentioned per-capita anything.
It generalises past its verified queries too: "more than 1 in 5 people in poverty" became poverty_rate_pct > 20, and "show me counties where fewer than 60 doctors per 10k" composed correctly with it. The whole semantic model is 108 lines of YAML.
Three traps that produced convincing wrong answers
The first working version gave numbers that looked entirely plausible and were wrong. Each of these only surfaced by checking output against reality rather than trusting it:
1. Doctors counted twice. The provider registry stores three address rows per practitioner — Mailing, Primary Practice, Secondary Practice. Counting all of them credits a doctor to both the county they live in and the county they work in. Gadsden County fell from 542 doctors to 436 once filtered to primary practice.
2. Two counties that structurally could not have doctors. Union County reported zero practitioners. Not "few" — zero, in a county of 15,700 people. Union has no ZIP children in the geography hierarchy, so a ZIP-based rollup can never assign it anyone. It ranked as a perfect aid desert because it was invisible. All 67 counties do have city children, so the fix was a city-level fallback. Union actually has 70.
3. A view built on temp tables. My first draft assembled the join in TEMPORARY tables and created a view over them. That compiles fine and breaks the moment the session ends.
The check that caught the rest: county populations sum to 22.4M against Florida's actual ~22.6M. Had that been off by millions, something in the join was silently dropping rows.
Scoring, and one map bug
The composite is a percentile rank across the 67 counties — 35% disaster frequency, 35% poverty rate, 30% scarcity of doctors per capita. Percentile ranks rather than divide-by-max, because Miami-Dade has 85,714 doctors and against that maximum every rural county rounds to zero.
The same skew bit the map. My first choropleth used equal-interval colour bins, and since Alachua sits at 351 doctors per 10k against a median of 118, nearly every county collapsed into the same two shades. Quantile bins fixed it — each of the seven steps now holds roughly a seventh of the counties, and the distribution is actually readable.
Honest limits
It's one state. The geography lookup resolves Florida by name, so another state is a one-line change — but the score is percentile-ranked within the state, so cross-state comparison needs a different normalisation.
"Doctor" is doing a lot of work. The registry counts every individual practitioner — nurses, therapists, chiropractors. Filtering by taxonomy to primary-care physicians would sharpen this a lot.
Practice location isn't service area. A county with no doctors next door to a hospital is less isolated than one 60 miles from anything. Drive-time isochrones would capture that; county lines don't.
Disaster counts aren't severity. A 22-declaration county might have had 22 minor events. FEMA's public-assistance dollars are in the same share and would weight this properly.
Prize Categories
Best Use of Snowflake. Three federal datasets joined through the free public data share with no ETL, Cortex Analyst for the natural-language layer, Streamlit in Snowflake for the in-platform app, and the county boundary geometry pulled from the same share so the map needs no external geodata.
Credits: the Cortex Analyst REST call pattern (send_snow_api_request) is adapted from Snowflake's own Cortex Analyst quickstart. Everything else was written for this challenge, in the challenge window. Built with Claude Code as a pair — it caught trap #2 by questioning a result that looked wrong instead of accepting it. Every figure in this post is a live query result.
Read original: https://dev.to/saif-uk/where-need-meets-nothing-finding-floridas-aid-deserts-with-snowflake-44p2
← Previous
I checked dozens of UK local business websites by hand. Here's what actually breaks, and the tool I built to do it for me
Next →
‘Comet Has Been Gutted’: A Week of Paid AI Features Quietly Disappearing
Related
From a Chocolate Wrapper to Concurrent InnoDB Page Splits
Database
2
Reddit r/programming
Open-source tool: Practical experience in converting large quantities of SQL code syntax : 'PIVOT' function rewrite (Case 1)
Database
3
Dev.to (EN Zone)
pg_anon caught 1 of my 8 PII columns. My schema isn't in English.
Database
4
DEV Community
AI-Assisted Database Development: Real Stats, Tools, and Tactics 2026
Database
2
DEV Community
Comments0
No comments yet — be the first