How Rising Interest Rates Constrict Home Affordability

With inflation continuing to run hot across many sectors of the economy, the Federal Reserve has begun to raise interest rates, and seems set to raise them another 50-75 basis points in the coming days.

The purpose of these rate hikes is to kickstart the cooling process within the economy by constricting capital expenditure, which slows associated business and consumer spending, which then (hopefully) begins to restore price stability - all without (the Fed hopes) impacting the labor market too much. It’s a super delicate needle to thread, and it will be fascinating to see whether or not this approach ends up being an effective one, or if it becomes increasingly clear that the Fed’s response to inflation has been too little, too late.

Mortgage Rates

The practical way in which interest rates set by the Fed end up impacting everyday consumers is through the mortgage market. Data from the St. Louis Fed shows the average rate for a new 30 year fixed rate mortgage to be 5.3% as of July 7, 2022, as opposed to 2.9% last July - a shocking climb.

30 Year Fixed Rate Mortgage Interest Rates

Modeling Home Affordability and Mortgage Rates

Since purchasing a home is usually the largest financial commitment that most American families will make, I wanted to take some time to illustrate the adverse impact that increased mortgage rates will have on the homebuying process. Broadly speaking, we’re all familiar with the concept that “when it costs more to borrow, you can afford to purchase less”. However, I felt that I didn’t really have a handle on the question: “when rates go up X%, I can buy $Y less house, given the same monthly mortgage payment”.

With that question in mind, I did some quick modeling to show us a full matrix of answers, with rates varying from 2% to 8%, and monthly mortgage payment varying from $250 to $5,000.

rates_seq <- seq(0.02, 0.08, 0.005)
monthly_payment_seq <- seq(250, 5000, 250)
# make a matrix of rates x monthly combinations
rate_monthly_payment_combinations <- expand.grid(rates_seq, monthly_payment_seq)

I was able to do this super quickly thanks to an amazing formula which computes monthly mortgage payments as a function of principal, rates, and term:

M = P * (r (1+r)^n) / ((1+r)^n - 1)

Which I then distilled into the following functions (for ease of use):

calc_principal_possible <- function(m, r, n) {
  r = r / 12
  numerator = r * (1+r)^n
  denominator = (1 + r)^n - 1
  return((m * denominator) / numerator)
}

Since people typically purchase a home with some amount down, I created a small function to back into the total house affordable, which should be viewed as the sum of the principal and down payment.

calc_total_purchase_possible <- function(m, r, n, pct_down) {
  p <- calc_principal_possible(m, r, n)
  return (p / (1 - pct_down))
}

Once the groundwork was laid, all I really needed to do was iterate over my matrix and compute the “total house affordable” figure for every combination of rates and monthly mortgage payments! As you read over the table, I encourage you to keep the questions below in your mind and consider them (and their interplay) as you scan:

  • for a given monthly payment (ie. $1,500), how much house can one afford to finance in a 3/4/5/6% mortgage rate environment?
  • for a given mortgage rate (ie. 4%), how much house can one afford to finance with a $1/2/3/4,000 monthly mortgage payment?

Note that the graphic assumes a 30 year fixed loan and 20% down, something that I realize is less and less the default option for homebuying, but hopefully an illustrative enough example!

Mortgage Affordability as a Function of Interest Rates