LODES, or the LEHD Origin-Destination Employment Statistics, is a collection of workplace mobility data produced by the US Census Bureau. It is part of the Longitudinal Employer-Household Data (LEHD) program. The data are compiled from various census and survey data and administrative records. Participation by US states in providing data is voluntary, so data may not be available in all states and years encompassed by the product. 1
LODES provides counts of unemployment insurance covered wage and salary jobs, as reported by state labor market information offices and by OPM (for 2010 onwards). The state data, covering employers in the private sector and state and local government, account for approximately 95 percent of wage and salary jobs.
epymorph’s LODES ADRIO supports LODES version 8.1 (since epymorph v1.0.0) which includes data from 2002 through 2021 but enumerates this data using 2020 Census geographic delineations only. We load data from the LODES Origin-Destination files, which (generally speaking) lists the number of workers for every residence location and every workplace location. This provides an approximate picture of the flow of commuters around the nation, although there are numerous caveats worth understanding in the LODES documentation.
The total number of commuters is also available subdivided by characteristics including worker age, monthly income, and industry of work.
Geographic Coverage
LODES 8 includes data from 50 US states and the District of Columbia. The geographic granularity is Census Block Groups, and the LODES ADRIO will aggregate up to coarser granularities as requested.
Not all states provided data for all years. Notable exceptions include:
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
If your geo scope or time frame includes any of these locations and times, an error will be raised detailing the issues.
Additional Resources
For direct access to the LEHD data, see the LEHD Data Page.
There are four LODES ADRIOs which provide different categorical breakdowns: total, by age, by earnings, and by industry. Additionally, every ADRIO can filter to include only a specific job type.
Commuters broken down by broad employment industry.
Usage Notes
When using epymorph’s LODES ADRIOs, it’s critical to understand that your geo scope MUST use a vintage 2020 US Census delineation. For the data year, on the other hand, you can either specify this directly when constructing the ADRIO or else we use the start of your time frame as a default.
So to load 2015 counts of commuters between Arizona, Colorado, Nevada, and New Mexico, I could evaluate the ADRIO with this context:
In this result, each row represents a residence location (in canonical geo scope order) and each column represents a workplace location (also in canonical order.)
If you would prefer to use a geo scope which is not equivalent to 2020’s geography (for example, if you are modeling at the Census Tract granularity, but there have been tracts added or removed between then and 2020), you may simply have to use a different data source. Adapting geography across years is (currently) beyond the scope of epymorph.
Even if your scopes are equivalent, however, differences between the handling of geo scope year and time frame year can cause other issues. If you are using ADRIOs which prefer to use the geo scope vintage year to determine which data to load (like the ACS5 ADRIOs do) you can wind up with a mix of data from different time periods. In this situation, instead of passing the LODES ADRIO to the RUME as a parameter value, you may wish to evaluate the ADRIO separately, save the result (a numpy array) to a variable, and pass this to your RUME. This approach effectively allows you to provide different contexts to different ADRIOs, giving you more control.
Examples
Every LODES ADRIO can be optionally filtered by job type. Available job types are:
“All Jobs”: all jobs regardless of job type. May allow for multiple jobs per person. This is the default when unspecified.
“Primary Jobs”: the highest paying (primary) job for an individual worker for the year. Implies there can be only 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”: primary jobs within the federal government sector.
Commuters
(API) Here we use the jobs type filter to fetch only private primary jobs.