Local Area Unemployment Statistics - LA

Data - BLS

Info

source dataset .html .RData
bls la 2024-06-19 NA

Data on employment

source dataset .html .RData
bls jt 2024-11-12 NA
bls la 2024-06-19 NA
bls ln 2024-11-12 NA
eurostat nama_10_a10_e 2024-11-08 2024-11-09
eurostat nama_10_a64_e 2024-11-05 2024-10-08
eurostat namq_10_a10_e 2024-11-05 2024-10-08
eurostat une_rt_m 2024-11-05 2024-10-24
oecd ALFS_EMP 2024-04-16 2024-05-12
oecd EPL_T 2024-11-12 2023-12-10
oecd LFS_SEXAGE_I_R 2024-09-15 2024-04-15
oecd STLABOUR 2024-09-15 2024-06-30

LAST_DOWNLOAD

LAST_DOWNLOAD
2022-09-25

LAST_COMPILE

LAST_COMPILE
2024-11-12

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])

(ref:us-msas-phillips-99-06)