Local Area Unemployment Statistics - LA
Data - BLS
Info
Data on employment
| source | dataset | Title | .html | .rData |
|---|---|---|---|---|
| bls | jt | NA | NA | NA |
| bls | la | NA | NA | NA |
| bls | ln | NA | NA | NA |
| eurostat | nama_10_a10_e | Employment by A*10 industry breakdowns | 2026-08-01 | 2026-07-31 |
| eurostat | nama_10_a64_e | National accounts employment data by industry (up to NACE A*64) | 2026-08-01 | 2026-07-31 |
| eurostat | namq_10_a10_e | Employment A*10 industry breakdowns | 2026-08-01 | 2026-07-31 |
| eurostat | une_rt_m | Unemployment by sex and age – monthly data | 2026-08-01 | 2026-07-31 |
| oecd | ALFS_EMP | Employment by activities and status (ALFS) | 2026-08-02 | 2025-05-24 |
| oecd | EPL_T | Strictness of employment protection – temporary contracts | 2026-08-02 | 2023-12-10 |
| oecd | LFS_SEXAGE_I_R | LFS by sex and age - indicators | 2026-08-02 | 2024-04-15 |
| oecd | STLABOUR | Short-Term Labour Market Statistics | 2026-08-02 | 2025-01-17 |
LAST_DOWNLOAD
| LAST_DOWNLOAD |
|---|
| NA |
LAST_COMPILE
| LAST_COMPILE |
|---|
| 2026-08-02 |
Last
| date | Nobs |
|---|---|
| 2022-08-01 | 310 |
la.area
All
Code
la.area |>
select(2, 3) |>
print_table_conditional()State
Code
la.area |>
filter(area_type_code == "A") |>
select(2, 3) |>
print_table_conditional()Metropolitan areas
Code
la.area |>
filter(area_type_code == "B") |>
select(2, 3) |>
print_table_conditional()Metropolitan divisions
Code
la.area |>
filter(area_type_code == "C") |>
select(2, 3) |>
print_table_conditional()Micropolitan areas
Code
la.area |>
filter(area_type_code == "D") |>
select(2, 3) |>
print_table_conditional()Combined areas
Code
la.area |>
filter(area_type_code == "E") |>
select(2, 3) |>
print_table_conditional()Counties and equivalents
Code
la.area |>
filter(area_type_code == "F") |>
select(2, 3) |>
print_table_conditional()Cities and towns above 25,000 population
Code
la.area |>
filter(area_type_code == "G") |>
select(2, 3) |>
print_table_conditional()Cities and towns below 25,000 population in New England
Code
la.area |>
filter(area_type_code == "H") |>
select(2, 3) |>
print_table_conditional()Parts of cities that cross county boundaries
Code
la.area |>
filter(area_type_code == "I") |>
select(2, 3) |>
print_table_conditional()Multi-entity small labor market areas
Code
la.area |>
filter(area_type_code == "J") |>
select(2, 3) |>
print_table_conditional()Intrastate parts of interstate areas
Code
la.area |>
filter(area_type_code == "K") |>
select(2, 3) |>
print_table_conditional()Balance of state areas
Code
la.area |>
filter(area_type_code == "L") |>
select(2, 3) |>
print_table_conditional()| area_code | area_text |
|---|---|
| BS0600000000000 | Balance of California, state less Los Angeles-Long Beach-Glendale MD |
| BS1200000000000 | Balance of Florida, state less Miami-Miami Beach-Kendall MD |
| BS1700000000000 | Balance of Illinois, state less Chicago-Naperville-Arlington Heights MD |
| BS2600000000000 | Balance of Michigan, state less Detroit-Warren-Dearborn MSA |
| BS3600000000000 | Balance of New York, state less New York city |
| BS3900000000000 | Balance of Ohio, state less Cleveland-Elyria MSA |
| BS5300000000000 | Balance of Washington, state less Seattle-Bellevue-Everett MD |
Census regions
Code
la.area |>
filter(area_type_code == "M") |>
select(2, 3) |>
print_table_conditional()| area_code | area_text |
|---|---|
| RD9100000000000 | Northeast region |
| RD9200000000000 | Midwest region |
| RD9300000000000 | South region |
| RD9400000000000 | West region |
Census divisions
Code
la.area |>
filter(area_type_code == "N") |>
select(2, 3) |>
print_table_conditional()| area_code | area_text |
|---|---|
| RD8100000000000 | New England division |
| RD8200000000000 | Middle Atlantic division |
| RD8300000000000 | East North Central division |
| RD8400000000000 | West North Central division |
| RD8500000000000 | South Atlantic division |
| RD8600000000000 | East South Central division |
| RD8700000000000 | West South Central division |
| RD8800000000000 | Mountain division |
| RD8900000000000 | Pacific division |
la.area_type
Code
la.area_type |>
print_table_conditional()| area_type_code | areatype_text |
|---|---|
| A | Statewide |
| B | Metropolitan areas |
| C | Metropolitan divisions |
| D | Micropolitan areas |
| E | Combined areas |
| F | Counties and equivalents |
| G | Cities and towns above 25,000 population |
| H | Cities and towns below 25,000 population in New England |
| I | Parts of cities that cross county boundaries |
| J | Multi-entity small labor market areas |
| K | Intrastate parts of interstate areas |
| L | Balance of state areas |
| M | Census regions |
| N | Census divisions |
la.state_region_division
Code
la.state_region_division |>
print_table_conditional()la.measure
Code
la.measure |>
print_table_conditional()| measure_code | measure_text |
|---|---|
| 3 | unemployment rate |
| 4 | unemployment |
| 5 | employment |
| 6 | labor force |
| 7 | employment-population ratio |
| 8 | labor force participation rate |
| 9 | civilian noninstitutional population |
la.seasonal
Code
la.seasonal |>
print_table_conditional()| seasonal_code | seasonal_text |
|---|---|
| S | Seasonally Adjusted |
| U | Not Seasonally Adjusted |
Longest Series
Code
la.series |>
arrange(begin_year) |>
head(100) |>
select(series_id, series_title, begin_year, end_year) |>
print_table_conditional()State
Arkansas, California, Nevada
Code
la.data.3.AllStatesS |>
left_join(la.series, by = "series_id") |>
left_join(la.area, by = c("area_code", "area_type_code")) |>
filter(measure_code == 3,
area_type_code == "A",
area_text %in% c("California", "Arkansas", "Nevada")) |>
month_to_date() |>
#filter(date <= as.Date("2020-01-01")) %>%
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = value / 100, color = area_text)) +
theme(legend.position = c(0.10, 0.85),
legend.title = element_blank()) +
scale_x_date(breaks = as.Date(paste0(seq(1970, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
labels = scales::percent_format(accuracy = 1))
Metropolitan
Abilene, Akron
Code
la.data.60.Metro |>
left_join(la.series, by = "series_id") |>
left_join(la.measure, by = "measure_code") |>
select(-area_type_code) |>
left_join(la.area, by = "area_code") |>
left_join(la.area_type, by = "area_type_code") |>
filter(measure_text == "unemployment rate",
area_type_code == "B",
area_text %in% c("Abilene, TX Metropolitan Statistical Area",
"Akron, OH Metropolitan Statistical Area")) |>
month_to_date() |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = as.numeric(value) / 100, color = area_text)) +
theme(legend.position = c(0.30, 0.85),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
labels = scales::percent_format(accuracy = 1)) +
scale_x_date(breaks = as.Date(paste0(seq(1970, 2100, 5), "-01-01")),
labels = date_format("%Y"))
Combined
Los Angeles
Code
la.data.63.Combined |>
left_join(la.series, by = "series_id") |>
left_join(la.measure, by = "measure_code") |>
select(-area_type_code) |>
left_join(la.area, by = "area_code") |>
left_join(la.area_type, by = "area_type_code") |>
filter(measure_text == "unemployment rate",
area_type_code == "E",
grepl("Los Angeles", area_text) |
grepl("New York", area_text) |
grepl("Chicago", area_text)) |>
month_to_date() |>
#filter(date <= as.Date("2020-01-01")) %>%
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = as.numeric(value) / 100, color = area_text)) +
theme(legend.position = c(0.30, 0.85),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
labels = scales::percent_format(accuracy = 1)) +
scale_x_date(breaks = as.Date(paste0(seq(1970, 2100, 5), "-01-01")),
labels = date_format("%Y"))
Cross-Section
U.S. MSAs
99-06
(ref:us-msas-phillips-99-06) U.S. MSAs Phillips curve (99-06)
Code
data2_MSA <- la.data.60.Metro |>
left_join(la.series, by = "series_id") |>
left_join(la.measure, by = "measure_code") |>
select(-area_type_code) |>
left_join(la.area, by = "area_code") |>
left_join(la.area_type, by = "area_type_code") |>
filter(measure_text == "unemployment rate",
area_type_code == "B") |>
mutate(fips = area_code |> substr(5, 9) |> as.numeric(),
value = as.numeric(value),
month = period |> substr(2, 3),
date = paste0(year, "-", month, "-01") |> as.Date()) |>
arrange(fips, date) |>
filter(date %in% as.Date(paste0(c(1999, 2006), "-01-01"))) |>
group_by(fips) |>
mutate(unr_d1 = 0.01*(value - lag(value, 1))) |>
filter(!is.na(unr_d1)) |>
select(fips, unr_d1) |>
left_join(freddie_CBSA |>
filter(date %in% as.Date(paste0(c(1999, 2006), "-01-01")),
variable == "HOUSE_freddie_S") |>
select(date, fips = cbsa_code, cbsa_name, value) |>
group_by(fips) |>
arrange(date) |>
mutate(HP_d1ln = log(value) - lag(log(value), 1)) |>
filter(!is.na(HP_d1ln)) |>
select(fips, cbsa_name, HP_d1ln),
by = "fips") |>
na.omit()
data2_MSA |>
ggplot() + geom_point(aes(unr_d1, HP_d1ln)) + theme_minimal() +
xlab(expression(Delta~"Unemployment Rate 99-06")) +
ylab(expression(Delta~"House Prices 99-06")) +
scale_x_continuous(breaks = 0.01*seq(-20, 20, 2),
labels = scales::percent_format(accuracy = 1)) +
scale_y_continuous(breaks = 0.01*seq(-100, 150, 10),
labels = scales::percent_format(accuracy = 1)) +
geom_text_repel(aes(x = unr_d1, y = HP_d1ln, label = cbsa_name),
data = data2_MSA |> filter(HP_d1ln<=0.1 | unr_d1 >0.04 | unr_d1 <= -0.06)) +
stat_smooth(aes(unr_d1, HP_d1ln), linetype = 2, method = "lm", color = viridis(3)[2])