# Schema Reference

Detailed column descriptions for all four Census LEHD LODES data tables. Column descriptions are sourced from dbt `schema.yml` and pushed to Snowflake as native column comments via `persist_docs`.

## OD (Origin-Destination)

Block-to-block commute flows. Each row represents a unique home-block to work-block pair for a given year and part (main/aux).

**Primary Key:** `w_geocode` + `h_geocode` + `year` + `part`\
**Row Count:** 2.6 billion\
**Join to XWALK:** `w_geocode = tabblk2020` (workplace) or `h_geocode = tabblk2020` (residence)

| Column           | Type      | Description                                                                                                       |
| ---------------- | --------- | ----------------------------------------------------------------------------------------------------------------- |
| `w_geocode`      | VARCHAR   | Workplace Census Block Code (2020, 15-digit FIPS)                                                                 |
| `h_geocode`      | VARCHAR   | Residence Census Block Code (2020, 15-digit FIPS)                                                                 |
| `year`           | NUMBER    | Reference year for the employment data (2002-2023)                                                                |
| `part`           | VARCHAR   | File part: 'main' (both residence and workplace in same state) or 'aux' (workplace in state, residence elsewhere) |
| `S000`           | NUMBER    | Total number of jobs in this commute flow                                                                         |
| `SA01`           | NUMBER    | Number of jobs for workers age 29 or younger                                                                      |
| `SA02`           | NUMBER    | Number of jobs for workers age 30 to 54                                                                           |
| `SA03`           | NUMBER    | Number of jobs for workers age 55 or older                                                                        |
| `SE01`           | NUMBER    | Number of jobs with earnings $1,250/month or less                                                                 |
| `SE02`           | NUMBER    | Number of jobs with earnings $1,251 to $3,333/month                                                               |
| `SE03`           | NUMBER    | Number of jobs with earnings greater than $3,333/month                                                            |
| `SI01`           | NUMBER    | Number of jobs in Goods Producing industry sectors (NAICS 11-33)                                                  |
| `SI02`           | NUMBER    | Number of jobs in Trade, Transportation, and Utilities (NAICS 42-49)                                              |
| `SI03`           | NUMBER    | Number of jobs in All Other Services (NAICS 51-92)                                                                |
| `state_fips`     | VARCHAR   | State FIPS code derived from workplace block (first 2 digits of w\_geocode)                                       |
| `feed_id`        | VARCHAR   | FK to FEEDS — identifies which dataset this row belongs to                                                        |
| `feeds_files_id` | VARCHAR   | FK to FEEDS\_FILES — identifies which batch loaded this data                                                      |
| `created_at`     | TIMESTAMP | When the source data was loaded into the warehouse                                                                |
| `updated_at`     | TIMESTAMP | When dbt last rebuilt this table                                                                                  |

### OD Column Groups

| Group        | Columns          | What They Measure                        |
| ------------ | ---------------- | ---------------------------------------- |
| **Age**      | SA01, SA02, SA03 | Workers by age bracket (≤29, 30-54, 55+) |
| **Earnings** | SE01, SE02, SE03 | Workers by monthly earnings bracket      |
| **Industry** | SI01, SI02, SI03 | Workers by broad NAICS industry sector   |

***

## RAC (Residence Area Characteristics)

Jobs by where workers live. Each row is a Census block where workers reside, with 42 demographic breakdown columns covering age, earnings, industry, race, ethnicity, education, and sex.

**Primary Key:** `h_geocode` + `year`\
**Row Count:** 119 million\
**Join to XWALK:** `h_geocode = tabblk2020`

| Column           | Type      | Description                                                                 |
| ---------------- | --------- | --------------------------------------------------------------------------- |
| `h_geocode`      | VARCHAR   | Residence Census Block Code (2020, 15-digit FIPS)                           |
| `year`           | NUMBER    | Reference year for the employment data (2002-2023)                          |
| `C000`           | NUMBER    | Total number of jobs for workers residing in this block                     |
| `CA01`           | NUMBER    | Workers age 29 or younger                                                   |
| `CA02`           | NUMBER    | Workers age 30 to 54                                                        |
| `CA03`           | NUMBER    | Workers age 55 or older                                                     |
| `CE01`           | NUMBER    | Workers earning $1,250/month or less                                        |
| `CE02`           | NUMBER    | Workers earning $1,251 to $3,333/month                                      |
| `CE03`           | NUMBER    | Workers earning greater than $3,333/month                                   |
| `CNS01`          | NUMBER    | Workers in Agriculture, Forestry, Fishing and Hunting (NAICS 11)            |
| `CNS02`          | NUMBER    | Workers in Mining, Quarrying, and Oil and Gas Extraction (NAICS 21)         |
| `CNS03`          | NUMBER    | Workers in Utilities (NAICS 22)                                             |
| `CNS04`          | NUMBER    | Workers in Construction (NAICS 23)                                          |
| `CNS05`          | NUMBER    | Workers in Manufacturing (NAICS 31-33)                                      |
| `CNS06`          | NUMBER    | Workers in Wholesale Trade (NAICS 42)                                       |
| `CNS07`          | NUMBER    | Workers in Retail Trade (NAICS 44-45)                                       |
| `CNS08`          | NUMBER    | Workers in Transportation and Warehousing (NAICS 48-49)                     |
| `CNS09`          | NUMBER    | Workers in Information (NAICS 51)                                           |
| `CNS10`          | NUMBER    | Workers in Finance and Insurance (NAICS 52)                                 |
| `CNS11`          | NUMBER    | Workers in Real Estate and Rental and Leasing (NAICS 53)                    |
| `CNS12`          | NUMBER    | Workers in Professional, Scientific, and Technical Services (NAICS 54)      |
| `CNS13`          | NUMBER    | Workers in Management of Companies and Enterprises (NAICS 55)               |
| `CNS14`          | NUMBER    | Workers in Administrative and Support and Waste Management (NAICS 56)       |
| `CNS15`          | NUMBER    | Workers in Educational Services (NAICS 61)                                  |
| `CNS16`          | NUMBER    | Workers in Health Care and Social Assistance (NAICS 62)                     |
| `CNS17`          | NUMBER    | Workers in Arts, Entertainment, and Recreation (NAICS 71)                   |
| `CNS18`          | NUMBER    | Workers in Accommodation and Food Services (NAICS 72)                       |
| `CNS19`          | NUMBER    | Workers in Other Services except Public Administration (NAICS 81)           |
| `CNS20`          | NUMBER    | Workers in Public Administration (NAICS 92)                                 |
| `CR01`           | NUMBER    | Workers identifying as White, Alone                                         |
| `CR02`           | NUMBER    | Workers identifying as Black or African American, Alone                     |
| `CR03`           | NUMBER    | Workers identifying as American Indian or Alaska Native, Alone              |
| `CR04`           | NUMBER    | Workers identifying as Asian, Alone                                         |
| `CR05`           | NUMBER    | Workers identifying as Native Hawaiian or Other Pacific Islander, Alone     |
| `CR07`           | NUMBER    | Workers identifying as Two or More Race Groups                              |
| `CT01`           | NUMBER    | Workers who are Not Hispanic or Latino                                      |
| `CT02`           | NUMBER    | Workers who are Hispanic or Latino                                          |
| `CD01`           | NUMBER    | Workers with Less than High School education                                |
| `CD02`           | NUMBER    | Workers with High School or Equivalent, No College                          |
| `CD03`           | NUMBER    | Workers with Some College or Associate Degree                               |
| `CD04`           | NUMBER    | Workers with Bachelor's Degree or Advanced Degree                           |
| `CS01`           | NUMBER    | Workers who are Male                                                        |
| `CS02`           | NUMBER    | Workers who are Female                                                      |
| `state_fips`     | VARCHAR   | State FIPS code derived from residence block (first 2 digits of h\_geocode) |
| `feed_id`        | VARCHAR   | FK to FEEDS — identifies which dataset this row belongs to                  |
| `feeds_files_id` | VARCHAR   | FK to FEEDS\_FILES — identifies which batch loaded this data                |
| `created_at`     | TIMESTAMP | When the source data was loaded into the warehouse                          |
| `updated_at`     | TIMESTAMP | When dbt last rebuilt this table                                            |

### RAC Column Groups

| Group         | Columns         | What They Measure                            |
| ------------- | --------------- | -------------------------------------------- |
| **Total**     | C000            | Total jobs at residence block                |
| **Age**       | CA01-CA03       | Workers by age bracket (≤29, 30-54, 55+)     |
| **Earnings**  | CE01-CE03       | Workers by monthly earnings bracket          |
| **Industry**  | CNS01-CNS20     | Workers by 2-digit NAICS sector (20 sectors) |
| **Race**      | CR01-CR05, CR07 | Workers by race category (6 categories)      |
| **Ethnicity** | CT01-CT02       | Workers by Hispanic/Latino status            |
| **Education** | CD01-CD04       | Workers by educational attainment            |
| **Sex**       | CS01-CS02       | Workers by sex                               |

***

## WAC (Workplace Area Characteristics)

Jobs by where people work. Identical demographic columns to RAC plus firm age (CFA) and firm size (CFS) columns not available in RAC.

**Primary Key:** `w_geocode` + `year`\
**Row Count:** 48.5 million\
**Join to XWALK:** `w_geocode = tabblk2020`

| Column           | Type      | Description                                                                 |
| ---------------- | --------- | --------------------------------------------------------------------------- |
| `w_geocode`      | VARCHAR   | Workplace Census Block Code (2020, 15-digit FIPS)                           |
| `year`           | NUMBER    | Reference year for the employment data (2002-2023)                          |
| `C000`           | NUMBER    | Total number of jobs at this workplace block                                |
| `CA01`           | NUMBER    | Workers age 29 or younger                                                   |
| `CA02`           | NUMBER    | Workers age 30 to 54                                                        |
| `CA03`           | NUMBER    | Workers age 55 or older                                                     |
| `CE01`           | NUMBER    | Workers earning $1,250/month or less                                        |
| `CE02`           | NUMBER    | Workers earning $1,251 to $3,333/month                                      |
| `CE03`           | NUMBER    | Workers earning greater than $3,333/month                                   |
| `CNS01`          | NUMBER    | Jobs in Agriculture, Forestry, Fishing and Hunting (NAICS 11)               |
| `CNS02`          | NUMBER    | Jobs in Mining, Quarrying, and Oil and Gas Extraction (NAICS 21)            |
| `CNS03`          | NUMBER    | Jobs in Utilities (NAICS 22)                                                |
| `CNS04`          | NUMBER    | Jobs in Construction (NAICS 23)                                             |
| `CNS05`          | NUMBER    | Jobs in Manufacturing (NAICS 31-33)                                         |
| `CNS06`          | NUMBER    | Jobs in Wholesale Trade (NAICS 42)                                          |
| `CNS07`          | NUMBER    | Jobs in Retail Trade (NAICS 44-45)                                          |
| `CNS08`          | NUMBER    | Jobs in Transportation and Warehousing (NAICS 48-49)                        |
| `CNS09`          | NUMBER    | Jobs in Information (NAICS 51)                                              |
| `CNS10`          | NUMBER    | Jobs in Finance and Insurance (NAICS 52)                                    |
| `CNS11`          | NUMBER    | Jobs in Real Estate and Rental and Leasing (NAICS 53)                       |
| `CNS12`          | NUMBER    | Jobs in Professional, Scientific, and Technical Services (NAICS 54)         |
| `CNS13`          | NUMBER    | Jobs in Management of Companies and Enterprises (NAICS 55)                  |
| `CNS14`          | NUMBER    | Jobs in Administrative and Support and Waste Management (NAICS 56)          |
| `CNS15`          | NUMBER    | Jobs in Educational Services (NAICS 61)                                     |
| `CNS16`          | NUMBER    | Jobs in Health Care and Social Assistance (NAICS 62)                        |
| `CNS17`          | NUMBER    | Jobs in Arts, Entertainment, and Recreation (NAICS 71)                      |
| `CNS18`          | NUMBER    | Jobs in Accommodation and Food Services (NAICS 72)                          |
| `CNS19`          | NUMBER    | Jobs in Other Services except Public Administration (NAICS 81)              |
| `CNS20`          | NUMBER    | Jobs in Public Administration (NAICS 92)                                    |
| `CR01`           | NUMBER    | Workers who are White, Alone                                                |
| `CR02`           | NUMBER    | Workers who are Black or African American, Alone                            |
| `CR03`           | NUMBER    | Workers who are American Indian or Alaska Native, Alone                     |
| `CR04`           | NUMBER    | Workers who are Asian, Alone                                                |
| `CR05`           | NUMBER    | Workers who are Native Hawaiian or Other Pacific Islander, Alone            |
| `CR07`           | NUMBER    | Workers who are Two or More Race Groups                                     |
| `CT01`           | NUMBER    | Workers who are Not Hispanic or Latino                                      |
| `CT02`           | NUMBER    | Workers who are Hispanic or Latino                                          |
| `CD01`           | NUMBER    | Workers with Less than High School education                                |
| `CD02`           | NUMBER    | Workers with High School or Equivalent, No College                          |
| `CD03`           | NUMBER    | Workers with Some College or Associate Degree                               |
| `CD04`           | NUMBER    | Workers with Bachelor's Degree or Advanced Degree                           |
| `CS01`           | NUMBER    | Workers who are Male                                                        |
| `CS02`           | NUMBER    | Workers who are Female                                                      |
| `CFA01`          | NUMBER    | Jobs at firms age 0-1 years                                                 |
| `CFA02`          | NUMBER    | Jobs at firms age 2-3 years                                                 |
| `CFA03`          | NUMBER    | Jobs at firms age 4-5 years                                                 |
| `CFA04`          | NUMBER    | Jobs at firms age 6-10 years                                                |
| `CFA05`          | NUMBER    | Jobs at firms age 11 or more years                                          |
| `CFS01`          | NUMBER    | Jobs at firms with 0-19 employees                                           |
| `CFS02`          | NUMBER    | Jobs at firms with 20-49 employees                                          |
| `CFS03`          | NUMBER    | Jobs at firms with 50-249 employees                                         |
| `CFS04`          | NUMBER    | Jobs at firms with 250-499 employees                                        |
| `CFS05`          | NUMBER    | Jobs at firms with 500+ employees                                           |
| `state_fips`     | VARCHAR   | State FIPS code derived from workplace block (first 2 digits of w\_geocode) |
| `feed_id`        | VARCHAR   | FK to FEEDS — identifies which dataset this row belongs to                  |
| `feeds_files_id` | VARCHAR   | FK to FEEDS\_FILES — identifies which batch loaded this data                |
| `created_at`     | TIMESTAMP | When the source data was loaded into the warehouse                          |
| `updated_at`     | TIMESTAMP | When dbt last rebuilt this table                                            |

### WAC Column Groups

| Group         | Columns         | What They Measure                         |
| ------------- | --------------- | ----------------------------------------- |
| **Total**     | C000            | Total jobs at workplace block             |
| **Age**       | CA01-CA03       | Workers by age bracket (≤29, 30-54, 55+)  |
| **Earnings**  | CE01-CE03       | Workers by monthly earnings bracket       |
| **Industry**  | CNS01-CNS20     | Jobs by 2-digit NAICS sector (20 sectors) |
| **Race**      | CR01-CR05, CR07 | Workers by race category (6 categories)   |
| **Ethnicity** | CT01-CT02       | Workers by Hispanic/Latino status         |
| **Education** | CD01-CD04       | Workers by educational attainment         |
| **Sex**       | CS01-CS02       | Workers by sex                            |
| **Firm Age**  | CFA01-CFA05     | Jobs by firm age (WAC only)               |
| **Firm Size** | CFS01-CFS05     | Jobs by firm employee count (WAC only)    |

### WAC vs RAC: What's Different?

WAC includes 10 additional columns not found in RAC:

| WAC-Only Columns | Description                                                           |
| ---------------- | --------------------------------------------------------------------- |
| CFA01-CFA05      | Firm age distribution (0-1, 2-3, 4-5, 6-10, 11+ years)                |
| CFS01-CFS05      | Firm size distribution (0-19, 20-49, 50-249, 250-499, 500+ employees) |

WAC also uses **noise infusion** (not synthetic data), making it reliable at lower block-level counts (10+ jobs) compared to OD and RAC which use synthetic data generation.

***

## XWALK (Geographic Crosswalk)

Reference table mapping every 2020 Census block to higher geographies. This is the aggregation enabler — JOIN OD/RAC/WAC to XWALK to roll up block-level data to any geographic level.

**Primary Key:** `tabblk2020`\
**Row Count:** 8.2 million\
**Always fully available** — no trial limit (essential for any analysis)

| Column           | Type      | Description                                                    |
| ---------------- | --------- | -------------------------------------------------------------- |
| `tabblk2020`     | VARCHAR   | 2020 Census Tabulation Block Code (15-digit FIPS, primary key) |
| `st`             | VARCHAR   | FIPS State Code (2-digit)                                      |
| `stname`         | VARCHAR   | State Name                                                     |
| `cty`            | VARCHAR   | FIPS County Code (5-digit: state + county)                     |
| `ctyname`        | VARCHAR   | County Name                                                    |
| `trct`           | VARCHAR   | Census Tract Code (11-digit)                                   |
| `trctname`       | VARCHAR   | Census Tract Name                                              |
| `bgrp`           | VARCHAR   | Block Group Code (12-digit)                                    |
| `bgrpname`       | VARCHAR   | Block Group Name                                               |
| `cbsa`           | VARCHAR   | Core Based Statistical Area (Metropolitan/Micropolitan) Code   |
| `cbsaname`       | VARCHAR   | CBSA Name                                                      |
| `zcta`           | VARCHAR   | ZIP Code Tabulation Area (5-digit)                             |
| `zctaname`       | VARCHAR   | ZCTA Name                                                      |
| `stplc`          | VARCHAR   | State + Place FIPS Code (7-digit)                              |
| `stplcname`      | VARCHAR   | Census Place Name (city/town)                                  |
| `ctycsub`        | VARCHAR   | County Subdivision FIPS Code                                   |
| `ctycsubname`    | VARCHAR   | County Subdivision Name                                        |
| `stcd119`        | VARCHAR   | Congressional District Code (119th Congress)                   |
| `stcd119name`    | VARCHAR   | Congressional District Name (119th Congress)                   |
| `stsldl`         | VARCHAR   | State Legislative District (Lower Chamber) Code                |
| `stsldlname`     | VARCHAR   | State Legislative District (Lower Chamber) Name                |
| `stsldu`         | VARCHAR   | State Legislative District (Upper Chamber) Code                |
| `stslduname`     | VARCHAR   | State Legislative District (Upper Chamber) Name                |
| `stusps`         | VARCHAR   | State USPS abbreviation (e.g., CA, NY)                         |
| `stschool`       | VARCHAR   | School District Code                                           |
| `stschoolname`   | VARCHAR   | School District Name                                           |
| `stsecon`        | VARCHAR   | State Economic Area Code                                       |
| `stseconname`    | VARCHAR   | State Economic Area Name                                       |
| `trib`           | VARCHAR   | Tribal Area Code                                               |
| `tribname`       | VARCHAR   | Tribal Area Name                                               |
| `tsub`           | VARCHAR   | Tribal Subdivision Code                                        |
| `tsubname`       | VARCHAR   | Tribal Subdivision Name                                        |
| `stanrc`         | VARCHAR   | Alaska Native Regional Corporation Code                        |
| `stanrcname`     | VARCHAR   | Alaska Native Regional Corporation Name                        |
| `mil`            | VARCHAR   | Military Installation Code                                     |
| `milname`        | VARCHAR   | Military Installation Name                                     |
| `stwib`          | VARCHAR   | Workforce Innovation Board Area Code                           |
| `stwibname`      | VARCHAR   | Workforce Innovation Board Area Name                           |
| `blklatdd`       | FLOAT     | Block internal point latitude (decimal degrees, WGS84)         |
| `blklondd`       | FLOAT     | Block internal point longitude (decimal degrees, WGS84)        |
| `createdate`     | VARCHAR   | Date the crosswalk record was created by Census                |
| `feed_id`        | VARCHAR   | FK to FEEDS — identifies which dataset this row belongs to     |
| `feeds_files_id` | VARCHAR   | FK to FEEDS\_FILES — identifies which batch loaded this data   |
| `created_at`     | TIMESTAMP | When the source data was loaded into the warehouse             |
| `updated_at`     | TIMESTAMP | When dbt last rebuilt this table                               |

### XWALK Geography Levels

| Level                  | Code Column            | Name Column    | Digit Count | Example                        |
| ---------------------- | ---------------------- | -------------- | ----------- | ------------------------------ |
| State                  | `st`                   | `stname`       | 2           | 06 = California                |
| County                 | `cty`                  | `ctyname`      | 5           | 06037 = Los Angeles County     |
| Tract                  | `trct`                 | `trctname`     | 11          | 06037264000                    |
| Block Group            | `bgrp`                 | `bgrpname`     | 12          | 060372640001                   |
| Block                  | `tabblk2020`           | —              | 15          | 060372640001001                |
| Metro (CBSA)           | `cbsa`                 | `cbsaname`     | 5           | 31080 = Los Angeles-Long Beach |
| ZCTA                   | `zcta`                 | `zctaname`     | 5           | 90210                          |
| Place                  | `stplc`                | `stplcname`    | 7           | 0644000 = Los Angeles city     |
| Congressional District | `stcd119`              | `stcd119name`  | 4           | 0634 = CA-34                   |
| School District        | `stschool`             | `stschoolname` | varies      | School district boundaries     |
| Workforce Board        | `stwib`                | `stwibname`    | varies      | Workforce Innovation areas     |
| Tribal Area            | `trib`                 | `tribname`     | varies      | Tribal statistical areas       |
| Military Installation  | `mil`                  | `milname`      | varies      | Military base boundaries       |
| Coordinates            | `blklatdd`, `blklondd` | —              | decimal     | 34.0522, -118.2437             |
