Immigration enforcement is one of the most debated topics in American politics — but the public conversation rarely engages with the underlying data. This app makes it easy to explore two key datasets and draw your own conclusions:
- ICE Detentions — sourced from the Transactional Records Access Clearinghouse (TRAC), this dataset provides periodic snapshots of the detainee population held in ICE facilities, broken down by arresting agency and criminal status. The app fetches the latest data from TRAC on load.
- Border Patrol Encounters — combines a historic dataset from the Office of Homeland Security Statistics (OHSS) covering October 1999 through November 2024 with monthly updates from Customs and Border Protection (CBP) covering December 2024 onward. Note: the CBP portion requires a manual update step and currently reflects data through August 2025.
Unlike my other projects, this app draws on federal enforcement data rather than Census data — which required different data wrangling: scraping, Excel workbooks, and fiscal year conversions.
Try the app here and explore the code here. This project was featured in Alberto Cairo’s Open Visualization Academy interview series.
Related Blog Posts
- Visualizing Border Patrol Encounters Under the Second Trump Administration — updates the app with data from the current administration; the seven lowest monthly encounter values in the 25-year dataset all occur after January 2025
- Visualizing 25 Years of Border Patrol Data with Python — explores long-term Border Patrol encounter trends, explains the fiscal year conversion challenge, and shows how encounter numbers appear to shift with presidential administrations
- A Python App for Analyzing Immigration Enforcement Data — introduces the app and walks through two of the most striking findings: the 57% increase in ICE detentions in the first six months of the Trump administration, and the sharp decline in the share of detainees with criminal convictions