The Longitudinal Tract Web Map (LTWM) is an interactive web map that lets users explore neighborhood change from 1970 to 2020 by clicking on areas to visualize historical trends and patterns. The LTWM is a full-stack project that I built to simplify neighborhood change analysis by eliminating the need to download and process data, allowing anyone—from researchers to the public—to instantly access, visualize, and interact with historical trends through an intuitive point-and-click interface. The LTWM uses MapBox tilesets to display the map, PostGIS for data storage and API access, Heroku to host the interactive web interface, and High Charts to visualize the trends.
The Longitudinal Tract Web Map (LTWM) draws on data from the Longitudinal Tract Database (LTDB), developed by Dr. John R. Logan, Dr. Zengwang Xu, and Dr. Brian Stults, which harmonized U.S. Decennial Census data from 1970 to 2020 to consistent 2010 census tract boundaries. The LTWM uses 1970–2000 data from the LTDB and employs IPUMS NHGIS crosswalks to align this data, along with 2010 Census data, to 2020 census tract boundaries, while incorporating 2020 Decennial Census data in its original form.
This web map helps you answer the question: "How have the demographics of my neighborhood changed since 1970?"
The inspiration for the LTWM is the Neighborhood Change Web Map (NCWM), a product that I created and manage as part of my day job as a Social Science Analyst for the Department of Housing and Urban Development. You can read more about the NCWM on the Inspiration Tab.
Select one or more census tracts then click Get Data. The graph below the map will populate with trends about the selected neighborhoods. You can then use the dropdown above the graph to view different trends about the selected neighborhoods.
The purpose of the map in the the Longitudinal Tract Web Map is to use it as a query selection tool. A user selects one or more census tracts to retrieve demographic information about that small area between 1970 and 2020. That information is then displayed on the graph below. To help guide web map users selection of census tracts, stylizing the census tracts functionality has been added.
The population of the United States grew from about 203 million in 1970 to more than 331 million in 2020, an increase of about 63%. This overlay shows how each census tract’s population changed during that time, from areas that lost more than half their population to those that grew more than fivefold.
This overlay identifies neighborhoods that experienced continuous population loss starting in 1970. The longer the decline continued into subsequent decades, the darker the color. Neighborhoods that didn’t meet the criteria or lacked 1970 data are shown in lighter or gray tones.
This overlay shows neighborhoods that non-Hispanic white residents left between 1980 to 2010. The definition was adopted from Kye and Halpern-Manners (2022), though modified to analyze all census tracts instead of a subset. White flight is measured using absolute loss, relative loss, magnitude of absolute loss, and magnitude of relative loss. This method accounts for scales, avoids false positives (e.g., relative loss without absolute loss), and requires loss to be substantial.
Note: The 1970 Census included other groups as white that self-identify different in later censuses, most notably Hispanic. This overlay was calculated from 1980 because many census tracts had an immediate decrease in the number of white residents from 1970 to 1980, though a similar number of Hispanic residents were present in 1980.
Between 1970 and 2020, the U.S. population grew by 63%, from 203 million to over 331 million. During that time, the number of people aged 60 or older nearly tripled to more than 76 million, rising from 13% to 23% of the total population. This overlay visualizes census tracts where older people are located. Residents aged 60 or older form a majority in just 3.3% of census tracts though the strength of that majority differs across places.
This overlay shows areas with high (0.8 or above) and low (0.2 or below) racial/ethnicity diversity using Simpson's Index.
Most Americans live in homes that they or their families own, but this pattern varies significantly by neighborhood. This overlay shows the dominant form of housing tenure in each census tract as of the 2020 Census. Areas are classified based on whether a majority or supermajority of households are owners or renters. It also highlights tracts with limited housing stock or few occupied units, which may reflect non-residential zones, new developments, or seasonal/vacation areas.
This overlay shows neighborhoods with high levels of residential vacancy.
Note: Many of the areas identified as areas with higher residential vacancy rates are vacation areas with seasonal housing.
The Longitudinal Tract Web Map (LTWM) is an interactive tool designed to enhance the Longitudinal Tract Database (LTDB). It provides researchers and policymakers with an easy-to-use platform for analyzing neighborhood changes over time.
I began working on this web map in March 2025. Prior to developing this tool, I had little previous web
development experience - when I had last seriously used JavaScript, let
and const
did not yet exist; it was all var
. I knew I'd need to implement project management, divide the project into
chunks, and work on what I could when I could in order to complete this project. Full transparency: I used Generative AI to help create the HTML, implement CSS, and develop many of the JavaScript functions in this web page. Generative AI supported development, though I designed the structure, wrote the logic, and ensured everything worked properly.
At the start of this project, I defined success as creating a web page with an interactive map. The goal was for users to click on a census tract and instantly see a graph illustrating demographic changes in population and housing characteristics from 1970 to 2020.
The first step of this project was to define the project scope and research tools that could help me deploy this web page. There are many tools to build a webpage. I chose to host my project on Heroku because it was simple to configure, provided me a backend to use node.js and express.js, and gave me quick access to PostgreSQL and the PostGIS extension. I choose to deploy the map using MapBox because I could affordably host the vector tileset which was a challenge with a national census tract dataset.
The second step of this project was to compile and organize the LTDB into a dataset that I could host online then query. The LTDB is a census tract (neighborhood-level) harmonized dataset of decennial census data between 1970 and 2010. The harmonization is important because not only do census tract boundaries change over time, the United States did not have full coverage of census tracts until 2000. Although the LTDB was available in 2010 census tracts, I was building this web page in early 2025. I decided to use the IPUMS-NHGIS Geographic Crosswalks to bring forward the LTDB into 2020 census tracts. There are some risks here such as loss of data accuracy, however, I felt the tradeoff was worth it because I could later link to more recent data and after the 2030 decennial census then be more likely to crosswalk that data to 2020 census tract boundaries so there is a bit of future-proofing. I used Python to reshape the data, add additional fields, perform checks on the data, and use the IPUMS-NHGIS Crosswalk Files to bring forward the data.
Once I was satisfied with the dataset that I wanted to implement, I decided to wireframe this web page. I chose to keep it simple in order to focus on the stories that the data tell. The initial front tab of the web page is simple, just enough information to get started plus the web map to query data, and the chart to display the fetched data. Additional information is kept on separate tabs to only be shown if someone chooses to look.
Choosing Heroku to host my website allowed me access to PostgreSQL including the PostGIS extension. I was able to easily upload the manipulated LTDB to PostGIS then use pgAdmin to view and manage the tables.
After setting up the PostGIS database and web page, I ran a basic query to test retrieving data based on inputted GEOIDs. I then verified that the High Charts API could successfully generate the expected graphs from the returned data. This testing step ensured basic functionality before adding the complexity of querying through the web map. Once I confirmed that data could be queried and graphed properly, I moved on to implementing a click event on the web map that builds a list of GEOIDs to query the LTDB. Since most users don't know their census tract GEOID, allowing them to simply click on a location made the interface much more user-friendly.
I initially attempted to use existing census tract vector tile datasets to display the web map. While it was possible to use existing resources, it frequently caused "flickering" on the map. I spent too much time attempting this method to stylize the census tracts. Once I learned how to use Tippecanoe to create my own vector tileset, it was quick to upload to MapBox then deploy.
Managing multiple styles can be challenging, particularly for stylizing the map and cyan as a highlight color for selected census tracts. Using MapBox's feature state functionality allowed me to overcome this challenge by setting an additional variable for whether a census tract has been clicked or not then if not use the stylization.
Currently, I am still putting the finishing details on the web page. While I hope to be largely done soon, I expect that this will require continuous updates.
I plan to solicit feedback from a variety of people. If you have questions, comments, concerns, or just want to state something - please reach out to me!
In addition to the challenges listed above, here are some ideas that I have for future development:
The inspiration for the Longitudinal Tract Web Map (LTWM) is the Neighborhood Change Web Map (NCWM), a project that I manage as a Social Science Analyst at HUD. The purpose of the NCWM is to reimagine the many large, administrative datasets available into a point-and-click tool to enhance the accessibility of the underlying datasets, and generate insights and analysis far faster than the previous methods of compiling and analyzing the data. I regularly meet with researchers, practitioners, and others on how to incorporate the NCWM into their products and workflows.
You can read more about the NCWM here:
I am the subject matter expert for the HUD-USPS Address Data and its derivitative data products including the HUD-USPS ZIP Code Crosswalk Files and the HUD-USPS Census Tract Crosswalk Files. The HUD-USPS ZIP Crosswalk Files are used to reaggregate data from and to ZIP codes, especially in public health research.
Since 2005, HUD has collected national snapshots of address counts. HUD began publishing these in the lead up to the 2008 Great Recession and have been widely used in housing vacancy research. I have published research on improving vacancy rate estimation in rural areas and the impact of highly-destructive wildfires. These data remain understudied and there is still more that they can be used to understand such as small-area housing growth, and development into areas of high natural hazard risk. I hope to keep expanding the use of these data for researchers and practitioners.
Kye, Samuel H. and Andrew Halpern-Manners. 2022. "Detecting 'White Flight' in the Contemporary United States: A Multicomponent Approach." Sociological Methods & Research 5(1): 3-33. DOI: 10.1177/0049124119882454
Logan, John R., Zengwang Xu, and Brian J. Stults. 2014. "Interpolating US Decennial Census Tract Data from as Early as 1970 to 2010: A Longitudinal Tract Database." The Professional Geographer 66(3): 412–420. DOI: 10.1080/00330124.2014.905156.
Logan, John R., Brian J. Stults, and Zengwang Xu. 2016. "Validating Population Estimates for Harmonized Census Tract Data, 2000–2010." Annals of the American Association of Geographers. DOI:10.1080/24694452.2016.1187060.
Logan, John R., Wenquan Zhang, Brian J. Stults, and Todd Gardner. 2021. “Improving Estimates of Neighborhood Change with Constant Tract Boundaries.” Applied Geography 132:1-11. DOI: 10.1016/j.apgeog.2021.102476 .
Mason, Steven, Jonathan Schroeder, David Van Riper, Katherine Knowles, Tracy Kugler, Finn Roberts, and Steven Ruggles. IPUMS National Historical Geographic Information System: Version 19.0 Geographic Crosswalks. Minneapolis, MN: IPUMS. 2024. http://doi.org/10.18128/D050.V19.0.