General market trend before 2020
House Price Index for the United States (USSTHPI)
- Index 1980:Q1=100,Not Seasonally Adjusted
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
|
77
|
2019-01-01
|
431.1
|
78
|
2019-04-01
|
438.8
|
79
|
2019-07-01
|
444.4
|
80
|
2019-10-01
|
448.8
|
81
|
2020-01-01
|
453.3
|
82
|
2020-04-01
|
456.6
|
indicator <-as.data.frame(symbol)[,c(1,3)]
indicator %>% ggplot() +
geom_rect(aes(xmin= dmy('01-01-2020'), xmax=dmy('01-10-2020'), ymin = -Inf, ymax = Inf),
fill = "white", alpha = 0.02)+
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_rect(aes(xmin= dmy('01-01-2020'), xmax=dmy('01-10-2020'), ymin = -Inf, ymax = Inf),
fill = "white", alpha = 0.02)+
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()

2020 general trends
2020 general trends
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-07-01
|
NA
|
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
|
460000
|
2020-07-01
|
538000
|
2020-08-01
|
502000
|
indicator <-as.data.frame(symbol)[,c(1,3)]
indicator %>% ggplot() +
geom_rect(aes(xmin= dmy('01-01-2020'), xmax=dmy('01-10-2020'), ymin = -Inf, ymax = Inf),
fill = "white", alpha = 0.02)+
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_rect(aes(xmin= dmy('01-01-2020'), xmax=dmy('01-10-2020'), ymin = -Inf, ymax = Inf),
fill = "white", alpha = 0.02)+
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
|
2020-08-01
|
862124
|
2020-09-01
|
828576
|
indicator <-as.data.frame(symbol)[,c(1,3)]
indicator %>% ggplot() +
geom_rect(aes(xmin= dmy('01-01-2020'), xmax=dmy('01-10-2020'), ymin = -Inf, ymax = Inf),
fill = "white", alpha = 0.02)+
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
|
16
|
2020-04-01
|
96.0
|
17
|
2020-05-01
|
104.4
|
18
|
2020-06-01
|
124.0
|
19
|
2020-07-01
|
135.4
|
20
|
2020-08-01
|
126.2
|
21
|
2020-09-01
|
134.2
|
indicator <-as.data.frame(symbol)[,c(1,3)]
indicator %>% ggplot() +
geom_rect(aes(xmin= dmy('01-01-2020'), xmax=dmy('01-10-2020'), ymin = -Inf, ymax = Inf),
fill = "white", alpha = 0.02)+
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
|
16
|
2020-04-01
|
84.9
|
17
|
2020-05-01
|
95.1
|
18
|
2020-06-01
|
118.8
|
19
|
2020-07-01
|
138.7
|
20
|
2020-08-01
|
124.5
|
21
|
2020-09-01
|
125.0
|
indicator <-as.data.frame(symbol)[,c(1,3)]
indicator %>% ggplot() +
geom_rect(aes(xmin= dmy('01-01-2020'), xmax=dmy('01-10-2020'), ymin = -Inf, ymax = Inf),
fill = "white", alpha = 0.02)+
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
|
16
|
2020-04-01
|
1189
|
17
|
2020-05-01
|
1183
|
18
|
2020-06-01
|
1193
|
19
|
2020-07-01
|
1216
|
20
|
2020-08-01
|
1226
|
21
|
2020-09-01
|
1231
|
indicator <-as.data.frame(symbol)[,c(1,3)]
indicator %>% ggplot() +
geom_rect(aes(xmin= dmy('01-01-2020'), xmax=dmy('01-10-2020'), ymin = -Inf, ymax = Inf),
fill = "white", alpha = 0.02)+
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
|
16
|
2020-04-01
|
94.6
|
17
|
2020-05-01
|
98.5
|
18
|
2020-06-01
|
110.7
|
19
|
2020-07-01
|
117.1
|
20
|
2020-08-01
|
112.0
|
21
|
2020-09-01
|
121.1
|
indicator <-as.data.frame(symbol)[,c(1,3)]
indicator %>% ggplot() +
geom_rect(aes(xmin= dmy('01-01-2020'), xmax=dmy('01-10-2020'), ymin = -Inf, ymax = Inf),
fill = "white", alpha = 0.02)+
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()
