LODES (LEHD Origin-Destination Employment Statistics) is a collection of population mobility data organized and grouped by U.S. State, and is a part of the LEHD (Longitudinal Employer-Household Data) program. The datasets are collected through LEHD Census data, which is generated by combining previously collected survey and administrative data from participating states on jobs, businesses, and workers. The LODES ADRIO only utilizes the LODES8 version, which is described in further detail below.
Data Collection
LODES data is collected and mapped at the smallest geographic unit that the Census Bureau collects: blocks. This data is collected annually and updated regularly through new versions of LODES. The most recent version, LODES8, spans from 2002-2021 inclusively and maps all blocks with 2020 Census delineations, including blocks that were originally defined in past Census delineations, such as from the 2010 Census. LODES8 is the only version of LODES that epymorph uses currently.
Of the three files available in LODES (RAC, WAC, and OD) the data extraction logic in this ADRIO relies on the Origin-Destination files to map worker flows between home and workplace locations through matrices. The Origin-Destination files provide the number of individuals who live in a specific home GEOID and commute to a corresponding work GEOID.
Geographic Coverage
LODES covers 51 states in the U.S., including defining Washington D.C. as its own state, and territorial partners such as Puerto Rico and the Virgin Islands. However, in LODES8, Puerto Rico is the only territorial partner that is covered. Similarly, certain states do not have files in specific years that LODES provides. Some of the reasons can include a lack of availability of data for a state or a location not being in regular production for LODES.
The current list of exceptions includes:
2002: Arkansas, Arizona, DC, Massachusetts, Mississippi, New Hampshire
2003: Arizona, DC, Massachusetts, Mississippi
2004-2009: DC, Massachusetts
2010: Massachusetts
2017-2018: Alaska
2019-2021: Alaska, Arkansas, Mississippi
Queries to the ADRIO spanning or including any of these locations for these time periods will not succeed, raising an error detailing which state and year are causing the issue. ### Attributes
Within each given LODES file, the total number of commuters is broken up to represent their age, monthly income, and industry of work. Each of these attributes are categorized into three distinctions, to cover as many worker descriptions as possible. The specifications on how to use these calls and their numerical/categorical ranges are described further below.
Additional Resources
For more detailed information: - Visit the LEHD Data Page on the Census Bureau’s website concerning the LODES files. - Refer to the documentation for the most recent version, LODES8.1.
LODES ADRIO
The Commuters query shows the total number of workers moving from a home GEOID to a work GEOID as a matrix. The matrix is read so that the rows represent the home GEOID and the columns are the work location GEOID.
import numpy as npfrom epymorph.geography.us_census import StateScopefrom epymorph.kit import*from epymorph.adrio import acs5, lodesfrom epymorph.data.ipm.no import No as NoIpmfrom epymorph.data.mm.no import No as NoMmstate_scope = StateScope.in_states(["AZ", "CO", "NV", "NM"], 2020)commuters_adrio = lodes.Commuters()rume = SingleStrataRUME.build( ipm=NoIpm(), mm=NoMm(), init=init.NoInfection(), scope=state_scope, time_frame=TimeFrame.year(2015), params={"population": acs5.Population(),"commuters": commuters_adrio, },)rume.estimate_data()
ADRIO data usage estimation:
- epymorph.adrio.acs5.Population (no estimate available)
- epymorph.adrio.lodes.Commuters will download 32.8 MB of new data
In total we will:
- Download 32.8 MB, taking 32 seconds (assuming 1.0 MB/s)
- Write 32.8 MB to disk cache (you have 17.9 GB free space)
with sim_messaging(live=False): commuters = commuters_adrio.with_context( scope=rume.scope, time_frame=rume.time_frame, ).evaluate()
The Commuters class outputs the total number of workers commuting, but LODES provides three categories for attributes specifying the type of workers: Age, Monthly Income, and Industry Sectors. Within each category, there are three ranges within them, and the sum of the ranges equals the total number of workers. All of these categories and the total commuters are displayed as NxN matrices of integers.
Age
‘29 and Under’
Commuters that are ages 29 and under.
‘’30_54’
Commuters that are between the ages of 30 and 54.
‘55 and Over’
Commuters that are ages 55 and over.
Monthly Income
‘$1250 and Under’
Commuters that earn $1250 and under per month.
‘$1251_$3333’
Commuters that earn between $1251 and $3333 per month.
‘$3333 and Over’
Commuters that earn over $3333 per month.
Industry Sector
‘Goods Producing’
Commuters that work in Goods Producing industry sectors.
‘Trade Transport Utility’
Commuters that work in Trade, Transportation, and Utility industry sectors.
‘Other’
Commuters that work under all other service industry sectors other than the above claimed industries.
Job Type
Along with the above categories, LODES provides files detailing different job types and the total number of jobs under that type. However, unlike the attributes, these matrices do not sum to be the total number of workers.
‘All Jobs’
All jobs regardless of job type. Allows for multiple jobs per person and is the default when calling the above attributes.
‘Primary Jobs’
Primary jobs, which a primary job is the highest paying job for an individual worker for the year. Limits to one job per worker.
‘All Private Jobs’
All private jobs, which are privately owned businesses and organizations excluding federal government jobs.
‘Private Primary Jobs’
Primary jobs within the private sector.
‘All Federal Jobs’
All jobs within the federal government sector.
’Federal Primary Jobs
Jobs under the federal government sector that are defined as primary jobs.
Job type is an additional variable that can be combined with the previously explained attributes. For example, a user may retrieve a matrix of commuters work for the Goods Producing industry sector for only Primary jobs. This variable is not required for all calls and the default value will be ‘All Jobs’.
Age Range Attribute Example
Below is an example of calling the three different age ranges provided by LODES in a geo spec. The example here loads four counties into the matrices rather than the four states that was used previously.
ADRIO data usage estimation:
- epymorph.adrio.acs5.Population (no estimate available)
- epymorph.adrio.lodes.CommutersByAge will be pulled from cache
- epymorph.adrio.lodes.CommutersByAge will be pulled from cache
- epymorph.adrio.lodes.CommutersByAge will be pulled from cache
In total we will:
- Download no additional data
- Write no new data to disk cache
print(f"Commuters ages 29 and under:\n{commuters_29_under}\n")print(f"Commuters between ages 30 and 54:\n{commuters_30_54}\n")print(f"Commuters ages 55 and over:\n{commuters_55_over}\n")