PyData Global 2025

Animating Equity: Python Dashboards for Small-Town Housing and Displacement Risk
2025-12-11 , Analytics, Visualization & Decision Science

This talk demonstrates how open-source Python tools like censusdis, pandas, and folium can be combined to create an interactive, time-enabled dashboard for visualizing economic vulnerability, housing affordability, and displacement risk in small communities. Using Oxford, NC as a case study, the talk showcases a multi-year, multi-indicator mapping project designed to support equitable local planning.


How do you turn raw census tables into something a small town can actually use to guide housing policy? In this talk, I walk through the design and development of an animated spatial dashboard built entirely with Python, designed to help local residents and planners in Oxford, North Carolina understand where their most vulnerable neighbors live — and how that vulnerability is changing over time.

Oxford is a rural town facing new development pressure, including non-contiguous annexation and suburban for-sale housing growth. While these changes promise tax base expansion, they also risk pushing out low-income renters, especially in historically underserved neighborhoods. My dashboard uses ACS 5-Year estimates and USDA Food Access data to visualize key indicators like rent burden, SNAP share, senior population, and a normalized displacement risk index — all animated from 2017 to 2023 using Leaflet.TimeDimension inside folium.

The talk is both a case study in data storytelling for place-based equity and a practical demo of working with geospatial census data in Python — no proprietary software or expensive tools required.

Outline (with time estimates)

0–5 min — Context: Why Oxford, NC? The risks of unchecked suburban growth for small cities

5–10 min — Data: ACS, USDA, and parcel-level value data via censusdis and publicly-available shapefiles

10–20 min — Dashboard architecture: Python data pipeline, Folium with TimeSliderChoropleth, adding map interactivity, overlays, and popups

20–25 min — Use case: Displacement risk and the intersection of rent burden, food access, and annexation

25–30 min — Q&A, tips for adapting the method to other communities

Audience

This talk is intended for:

Data analysts, GIS specialists, and Python developers interested in civic tech or applied geospatial analysis

Planners, advocates, and public servants exploring how open data and open tools can improve policy transparency

Anyone working with small-area census data, especially at the block group or tract level

Attendees should have a basic familiarity with Python and data visualization libraries (pandas, folium, etc.), but no prior experience with geospatial programming is required.

Takeaways

Attendees will learn:

How to download and preprocess ACS data at the block group level using Python

How to build time-animated choropleth maps using folium + Leaflet.TimeDimension

How normalized composite indicators like a displacement risk index can help surface hidden patterns in small towns

How interactive mapping can drive better community conversations around housing, equity, and development


Prior Knowledge Expected:

No

I'm a hobbyist Python user and data analyst, with a passion for making meaningful visualizations that illustrate the story behind the data. I've been coding to solve my own problems and curiousities for almost five years now, and this is my first application to present a project at a conference.