General market trend before 2020

House Price Index for the United States (USSTHPI)

symbol <-fredr_series_observations(series_id = "USSTHPI", 
      observation_start = as.Date("2000-01-01"))
      
indicator <-as.data.frame(symbol)[,c(1,3)]

tail(indicator) %>% kable() %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
   column_spec(2, T, color = "red" ) 
date value
76 2018-10-01 428.5
77 2019-01-01 433.3
78 2019-04-01 441.3
79 2019-07-01 446.8
80 2019-10-01 451.0
81 2020-01-01 454.9
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% ggplot() + 
  geom_line(mapping = aes(x=date,y=value),color="red",size=1)  +
     labs(title = "House Price Index", 
          subtitle = str_glue("From {min(indicator$date)} through {max(indicator$date)}"),
       x="Time", y="Index 1980=100",
       caption = "Data source: FRED Federal Reserve.   Illustration by @JoeLongSanDiego")+
    theme_economist()

General market trend before 2020

Homeownership Rate for the United States (USHOWN)

symbol <-fredr_series_observations(series_id = "USHOWN", 
      observation_start = as.Date("2010-01-01"))
      
indicator <-as.data.frame(symbol)[,c(1,3)]

tail(indicator) %>% kable() %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
   column_spec(2, T, color = "red" ) 
date value
5 2014-01-01 64.5
6 2015-01-01 63.7
7 2016-01-01 63.4
8 2017-01-01 63.9
9 2018-01-01 64.4
10 2019-01-01 64.6
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% ggplot() + 
  geom_line(mapping = aes(x=date,y=value),color="red",size=1)  +
     labs(title = "Homeownership Rate", 
          subtitle = str_glue("From {min(indicator$date)} through {max(indicator$date)}"),
       x="Time", y="Percent ",
       caption = "Data source: FRED Federal Reserve.   Illustration by @JoeLongSanDiego")+
    theme_economist()

Median Sales Price of Existing Homes (HOSMEDUSM052N)

symbol <-fredr_series_observations(series_id = "HOSMEDUSM052N", 
      observation_start = as.Date("2019-01-01"))
      
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% kable() %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
   column_spec(2, T, color = "red" ) 
date value
2019-05-01 NA
2019-06-01 285400
2019-07-01 280400
2019-08-01 278800
2019-09-01 271500
2019-10-01 271100
2019-11-01 271300
2019-12-01 274500
2020-01-01 266200
2020-02-01 270400
2020-03-01 280700
2020-04-01 286700
2020-05-01 283600
2020-06-01 295300
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% ggplot() + 
  geom_line(mapping = aes(x=date,y=value),color="red",size=1)  +
     labs(title = "Median Sales Price of Existing Homes", 
          subtitle = str_glue("From {min(indicator$date)} through {max(indicator$date)}"),
       x="Monthly", y="Dollars",
       caption = "Data source: FRED Federal Reserve.   Illustration by @JoeLongSanDiego")+
    theme_economist()
## Warning: Removed 1 row(s) containing missing values (geom_path).

Existing Single-Family Home Sales (EXSFHSUSM495N)

symbol <-fredr_series_observations(series_id = "EXSFHSUSM495N", 
      observation_start = as.Date("2019-01-01"))
      
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% kable() %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
   column_spec(2, T, color = "red" ) 
date value
2019-05-01 NA
2019-06-01 473000
2019-07-01 482000
2019-08-01 475000
2019-09-01 401000
2019-10-01 412000
2019-11-01 364000
2019-12-01 386000
2020-01-01 285000
2020-02-01 299000
2020-03-01 372000
2020-04-01 338000
2020-05-01 340000
2020-06-01 463000
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% ggplot() + 
  geom_line(mapping = aes(x=date,y=value),color="red",size=1)  +
     labs(title = "Existing Single-Family Home Sales", 
          subtitle = str_glue("From {min(indicator$date)} through {max(indicator$date)}"),
       x="Monthly", y="Thousands",
       caption = "Data source: FRED Federal Reserve.   Illustration by @JoeLongSanDiego")+
    theme_economist()
## Warning: Removed 1 row(s) containing missing values (geom_path).

Housing Inventory Estimate:

Vacant Housing Units for the United States (EVACANTUSQ176N)

symbol <-fredr_series_observations(series_id = "EVACANTUSQ176N", 
      observation_start = as.Date("2019-01-01"))
      
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% kable() %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
   column_spec(2, T, color = "red" ) 
date value
2019-01-01 16826
2019-04-01 17044
2019-07-01 17051
2019-10-01 16123
2020-01-01 15975
2020-04-01 13877
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% ggplot() + 
  geom_line(mapping = aes(x=date,y=value),color="red",size=1)  +
     labs(title = "Vacant Housing Units (Estimate of Housing Inventory)", 
          subtitle = str_glue("From {min(indicator$date)} through {max(indicator$date)}"),
       x="Quarterly", y="Thousands",
       caption = "Data source: FRED Federal Reserve.   Illustration by @JoeLongSanDiego")+
    theme_economist()

Housing Inventory: Active Listing Count in the United States (ACTLISCOUUS)

symbol <-fredr_series_observations(series_id = "ACTLISCOUUS", 
      observation_start = as.Date("2019-01-01"))
      
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% kable() %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
   column_spec(2, T, color = "red" ) 
date value
2019-01-01 1206431
2019-02-01 1200121
2019-03-01 1211907
2019-04-01 1231819
2019-05-01 1279367
2019-06-01 1325305
2019-07-01 1349468
2019-08-01 1355241
2019-09-01 1357620
2019-10-01 1319570
2019-11-01 1251758
2019-12-01 1134513
2020-01-01 1042037
2020-02-01 1016679
2020-03-01 1024667
2020-04-01 1043205
2020-05-01 1024721
2020-06-01 961837
2020-07-01 908983
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% ggplot() + 
  geom_line(mapping = aes(x=date,y=value),color="red",size=1)  +
     labs(title = "  Active Listing Count ", 
          subtitle = str_glue("From {min(indicator$date)} through {max(indicator$date)}"),
       x="Monthly", y="Level",
       caption = "Data source: FRED Federal Reserve.   Illustration by @JoeLongSanDiego")+
    theme_economist()

New Private Housing Units Authorized by Building Permits (PERMITNSA)

symbol <-fredr_series_observations(series_id = "PERMITNSA", 
      observation_start = as.Date("2019-01-01"))
      
indicator <-as.data.frame(symbol)[,c(1,3)]

tail(indicator) %>% kable() %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
   column_spec(2, T, color = "red" ) 
date value
14 2020-02-01 100.2
15 2020-03-01 115.9
16 2020-04-01 96.0
17 2020-05-01 104.4
18 2020-06-01 124.0
19 2020-07-01 136.4
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% ggplot() + 
  geom_line(mapping = aes(x=date,y=value),color="red",size=1)  +
     labs(title = "New Housing Construction Permit", 
          subtitle = str_glue("From {min(indicator$date)} through {max(indicator$date)}"),
       x="Time", y="Thousands",
       caption = "Data source: FRED Federal Reserve.   Illustration by @JoeLongSanDiego")+
    theme_economist()

Housing Starts: Total: New Privately Owned Housing Units Started (HOUSTNSA)

symbol <-fredr_series_observations(series_id = "HOUSTNSA", 
      observation_start = as.Date("2019-01-01"))
      
indicator <-as.data.frame(symbol)[,c(1,3)]

tail(indicator) %>% kable() %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
   column_spec(2, T, color = "red" ) 
date value
14 2020-02-01 111.6
15 2020-03-01 104.5
16 2020-04-01 84.9
17 2020-05-01 95.1
18 2020-06-01 114.6
19 2020-07-01 139.4
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% ggplot() + 
  geom_line(mapping = aes(x=date,y=value),color="red",size=1)  +
     labs(title = "Housing Construction Starts", 
          subtitle = str_glue("From {min(indicator$date)} through {max(indicator$date)}"),
       x="Time", y="Thousands",
       caption = "Data source: FRED Federal Reserve.   Illustration by @JoeLongSanDiego")+
    theme_economist()

New Privately-Owned Housing Units Under Construction: Total (UNDCONTNSA)

symbol <-fredr_series_observations(series_id = "UNDCONTNSA", 
      observation_start = as.Date("2019-01-01"))
      
indicator <-as.data.frame(symbol)[,c(1,3)]

tail(indicator) %>% kable() %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
   column_spec(2, T, color = "red" ) 
date value
14 2020-02-01 1198
15 2020-03-01 1200
16 2020-04-01 1189
17 2020-05-01 1183
18 2020-06-01 1178
19 2020-07-01 1202
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% ggplot() + 
  geom_line(mapping = aes(x=date,y=value),color="red",size=1)  +
     labs(title = "Housing Units Under Construction", 
          subtitle = str_glue("From {min(indicator$date)} through {max(indicator$date)}"),
       x="Time", y="Thousands",
       caption = "Data source: FRED Federal Reserve.   Illustration by @JoeLongSanDiego")+
    theme_economist()

New Privately-Owned Housing Units Completed: Total (COMPUTNSA)

symbol <-fredr_series_observations(series_id = "COMPUTNSA", 
      observation_start = as.Date("2019-01-01"))
      
indicator <-as.data.frame(symbol)[,c(1,3)]

tail(indicator) %>% kable() %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
   column_spec(2, T, color = "red" ) 
date value
14 2020-02-01 90.8
15 2020-03-01 101.7
16 2020-04-01 94.6
17 2020-05-01 98.5
18 2020-06-01 109.8
19 2020-07-01 110.9
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% ggplot() + 
  geom_line(mapping = aes(x=date,y=value),color="red",size=1)  +
     labs(title = "Housing Units Completed", 
          subtitle = str_glue("From {min(indicator$date)} through {max(indicator$date)}"),
       x="Time", y="Thousands",
       caption = "Data source: FRED Federal Reserve.   Illustration by @JoeLongSanDiego")+
    theme_economist()

Median Sales Price for New Houses Sold in the United States (MSPNHSUS)

symbol <-fredr_series_observations(series_id = "MSPNHSUS", 
      observation_start = as.Date("2019-01-01"))
      
indicator <-as.data.frame(symbol)[,c(1,3)]

tail(indicator) %>% kable() %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
   column_spec(2, T, color = "red" ) 
date value
13 2020-01-01 328900
14 2020-02-01 331800
15 2020-03-01 328200
16 2020-04-01 307100
17 2020-05-01 310200
18 2020-06-01 329200
indicator <-as.data.frame(symbol)[,c(1,3)]

indicator %>% ggplot() + 
  geom_line(mapping = aes(x=date,y=value),color="red",size=1)  +
     labs(title = " Median Sales Price for New Houses", 
          subtitle = str_glue("From {min(indicator$date)} through {max(indicator$date)}"),
       x="Time", y=" Dollars",
       caption = "Data source: FRED Federal Reserve.   Illustration by @JoeLongSanDiego\nCaution: Each median sales price reflected different mix of housing products")+
    theme_economist()