Most students pay rent, or soon will. So of all the data I could use during the introductory weeks of this course, I think rent data has the best chance of keeping everyone interested.
We all have perceptions and opinions about rent. Some may be right. Others may be wrong. Media professionals don’t guess. They determine, based on reliable evidence.
The U.S. Department of Housing and Urban Development releases 40th percentile rent estimates each year for selected ZIP code in the U.S., mostly ZIP codes in urban areas. The “40th percentile rent” is the rent that is higher than 40 percent of rents for the area’s standard-quality, market-rate units occupied by recent movers. The estimates for 2026 just came out in October. See:
HUD uses these estimates to decide how much money to give people with incomes low enough to qualify for federal housing vouchers. But they’re also good for examining rent patterns across ZIP codes in a given area.
With a few lines of R code, you can download all of that fair market rent data from across the U.S., filter it for the ZIP codes here in Rutherford County, and show the results in an easy-to-read table like this one:
| Rutherford FMR, by size and ZIP | |||||
| ZIP | Studio | BR1 | BR2 | BR3 | BR4 |
|---|---|---|---|---|---|
| 37037 | 1900 | 1990 | 2180 | 2790 | 3400 |
| 37085 | 1320 | 1380 | 1520 | 1940 | 2360 |
| 37086 | 1730 | 1820 | 1990 | 2540 | 3100 |
| 37118 | 1150 | 1170 | 1320 | 1660 | 2020 |
| 37127 | 1360 | 1420 | 1560 | 1990 | 2430 |
| 37128 | 1570 | 1640 | 1800 | 2300 | 2800 |
| 37129 | 1570 | 1640 | 1800 | 2300 | 2800 |
| 37130 | 1280 | 1340 | 1470 | 1880 | 2290 |
| 37132 | 1280 | 1340 | 1470 | 1880 | 2290 |
| 37149 | 1150 | 1180 | 1320 | 1660 | 2020 |
| 37153 | 1670 | 1750 | 1920 | 2450 | 2990 |
| 37167 | 1430 | 1500 | 1640 | 2100 | 2560 |
Here’s the R code that grabbed and filtered the data, then made and displayed the table:
# Installing and loading required packages
if (!require("tidyverse"))
install.packages("tidyverse")
if (!require("openxlsx"))
install.packages("openxlsx")
if (!require("gtExtras"))
install.packages("gtExtras")
library(tidyverse)
library(openxlsx)
library(gtExtras)
# Reading data from:
# https://www.huduser.gov/portal/datasets/fmr/smallarea/index.html#year2024
FMR <- read.xlsx("https://www.huduser.gov/portal/datasets/fmr/fmr2026/fy2026_safmrs.xlsx",sheet=1)
# Making a list of Rutherford County ZIP codes
ZIPList <- c(
"37127",
"37128",
"37129",
"37130",
"37132",
"37085",
"37118",
"37149",
"37037",
"37153",
"37167",
"37086"
)
# Filtering for Rutherford ZIP codes and
# selecting columns of interest
FMR_RuCo <- FMR %>%
filter(ZIP.Code %in% ZIPList) %>%
select(ZIP.Code,
SAFMR.0BR,
SAFMR.1BR,
SAFMR.2BR,
SAFMR.3BR,
SAFMR.4BR) %>%
distinct()
# Renaming the columns
colnames(FMR_RuCo) <- c("ZIP",
"Studio",
"BR1",
"BR2",
"BR3",
"BR4")
# Showing the data as a table
FMR_RuCo_table <- gt(FMR_RuCo) %>%
tab_header("Rutherford FMR, by size and ZIP") %>%
cols_align(align = "left") %>%
gt_theme_538
FMR_RuCo_table
I’m guessing that wasn’t helpful. If you’re new to coding, or even to R code in particular, the script probably looks like gobbledygook.
But try this:
Log into your favorite AI assistant (like ChatGPT, Google Gemini, or Microsoft Copilot), type something like, “What does this R code do?”, copy and paste the code into the chat window, and submit the prompt.
You should get a reasonably clear explanation of how the code works. If there’s something you want to understand more clearly, just ask the assistant to explain in more detail.
Next, ask your AI assistant to modify the code so that the code will get and display ZIP codes for some other city of interest to you.
For example, I grew up in Huntington, W.Va. So, I might submit a prompt like, “Modify the script to retrieve and display ZIP codes in Huntington, W.Va.”
Assuming your assitant was able to figure it out, you’ll get a new version of the script that will do exactly what you asked.
Running that script (something you’ll know how to do by the end of this week) will get R to do what you want it to do, even if you don’t know a single thing about writing R code.
Of course, I want you to learn at least a little bit about coding in R. Enough, at least, to know what to ask for and evaluate the quality and accuracy of what you get. The thing I want you to see, though, is that the R learning curve isn’t nearly as steep as you might imagine.
For now, let’s simply look at some of the other things R can do with the rent data.
The table’s great. It’s accurate, reliable data. That’s progress. But media professionals don’t just share reliable information. They share truthful, insightful stories. That’s what audiences pay for.
This chart focuses on a pattern in the data. That pattern tells a truthful, insightful story. You tell me - what’s the story, here? If you were writing a news story about what the chart shows, how would your story begin?
But where are all of these ZIP codes? A map can help tell the story, especially if it’s interactive.
Can you find MTSU?
What ZIP codes surround MTSU’s campus?
What are rents like in those ZIP codes?
How would your news story begin now?
The cheapest ZIP codes aren’t necessarily the best, though. Some ZIP codes have very few rentals available. Others have lots to pick from. Here’s the map again, but with some key information added from the U.S. Census Bureau’s American Community Survey. The new information tells you how many rental units are available in each ZIP code. The new information lets you tell the story more thoroughly.
Which ZIP codes would you say offer the best combination of price and selection?
How would your news story’s beginning change in light of this new information?
Remember how the graphic showed a pattern in the table? You can do the same thing with a map. In this map, each ZIP code is shaded according to its three-bedroom rent estimate. Now, map viewers can quickly determine where the cheapest rents are, then get details on rents for all unit sizes and the number of units available.
So, rent is expensive here. How do you figure we compare to ZIP codes throughout the Nashville area, though? Let’s zero in on three-bedroom rents. Again, we’re telling a better, more thorough story. Check out the map below, then think about questions like:
How do rents here compare with rents elsewhere in the Nashville area?
What areas in Nashville are we most like, in terms of rent costs? Why do you figure that is?
Where in the Nashville area is rent the most expensive? Any ideas about why it costs so much to live there?
What other patterns do you see on the map or in the data?
What would your story’s beginning say now?
It takes a lot of time to gather data with as much breadth and depth as Small-Area Fair Market Rent. As a result, Fair Market Rent estimates don’t always reflect what rental conditions are right now.
If you can do without some of the breadth and depth, you can grab
data from Zillow.com’s housing data page and get monthly rent
estimates for as recent as the most-recently-completed month. The
trade-off is that you can get data only for ZIP codes that include a lot
of rental units. Happily for us, though, the data include the ZIP codes
that surround MTSU’s campus: 37130 (which includes campus), as well as
37127 (south of campus, across South Rutherford Boulevard), 37128
(southeast of campus, toward the Blackman area), and 37129 (due east of
campus, and northward along Memorial Boulevard.)
Below is a plot of Zillow’s monthly typical rent estimates for those
four ZIP codes over the past 36 months, ending with this past December.
My take is that rents in MTSU’s immediate ZIP code tend to be lower than
rents in the other ZIP codes. However, rents in MTSU’s ZIP code seem to
be rising faster than rents in the other ZIP codes, which seem to be
holding steadier.
This page is coming to you from my account on RPubs.com, a place where you can publish and share R projects (like this one) for free. Early in the course, you will learn how to set up your own RPubs.com account and publish your work to it. In fact, that’s how you will turn in your class assignments. You will simply put your work on RPubs, then send me the URL.
I hope you know at least a few things about local and Nashville-area rents that you didn’t know before. And I hope you see that those things would be valuable to someone looking for a place to rent near campus. Most of all, I hope you see that you can make a whole career out of using data skills - like the ones you’re about to learn in this class - to extract valuable insights from raw data, as we have done here.