Rutherford County Rent Analysis:

This table shows you the difference in rent between a four-bedroom and studio rental homes by ZIP code, in descending order. The data come from the U.S. Department of Housing and Urban Development’s Small-Area Fair Market Rent program. Each estimate reflects the 40th percentile of all rents, including utilities, in a ZIP code for a standard-quality, recently rented home of the indicated size.

In some Rutherford County ZIP codes, a four-bedroom rental home is considerably more expensive than a single-room studio. In others, though, a four-bedroom and a single-room studio rental home are much closer in price.

Rutherford Rent Analysis
ZIP Studio BR1 BR2 BR3 BR4 Spread
37037 1900 1990 2180 2790 3400 1500
37086 1730 1820 1990 2540 3100 1370
37153 1670 1750 1920 2450 2990 1320
37128 1570 1640 1800 2300 2800 1230
37129 1570 1640 1800 2300 2800 1230
37167 1430 1500 1640 2100 2560 1130
37127 1360 1420 1560 1990 2430 1070
37085 1320 1380 1520 1940 2360 1040
37130 1280 1340 1470 1880 2290 1010
37132 1280 1340 1470 1880 2290 1010
37118 1150 1170 1320 1660 2020 870
37149 1150 1180 1320 1660 2020 870

Code:

# ----------------------------------------------------------
# Install & load required packages
# ----------------------------------------------------------

if (!require("tidyverse"))
  install.packages("tidyverse")
if (!require("gt"))
  install.packages("gt")

library(tidyverse)
library(readxl)
library(gt)

# ----------------------------------------------------------
# Download HUD SAFMR Excel file
# ----------------------------------------------------------

download.file(
  "https://www.huduser.gov/portal/datasets/fmr/fmr2026/fy2026_safmrs.xlsx",
  "rent.xlsx",
  mode = "wb"
)

# ----------------------------------------------------------
# Read Excel data
# ----------------------------------------------------------

FMR <- read_xlsx(path = "rent.xlsx", .name_repair = "universal")

# ----------------------------------------------------------
# Rutherford County ZIP Codes
# ----------------------------------------------------------

ZIPList <- c(
  "37127", "37128", "37129", "37130", "37132",
  "37085", "37118", "37149", "37037", "37153",
  "37167", "37086"
)

# ----------------------------------------------------------
# Filter, select columns, and rename
# ----------------------------------------------------------

FMR_RuCo <- FMR %>%
  filter(ZIP.Code %in% ZIPList) %>%
  select(
    ZIP.Code,
    SAFMR.0BR,
    SAFMR.1BR,
    SAFMR.2BR,
    SAFMR.3BR,
    SAFMR.4BR
  ) %>%
  distinct()

colnames(FMR_RuCo) <- c("ZIP", "Studio", "BR1", "BR2", "BR3", "BR4")

# ----------------------------------------------------------
# Add your code to this section
# ----------------------------------------------------------

FMR_RuCo <- FMR_RuCo %>% 
  mutate(Spread = BR4 - Studio) %>% 
  arrange(desc(Spread))

# ----------------------------------------------------------
# Displaying the table, with the new columns
# ----------------------------------------------------------

FMR_RuCo_table <- gt(FMR_RuCo) %>%
  tab_header(title = "Rutherford Rent Analysis") %>%
  cols_align(align = "left")

FMR_RuCo_table