Portfolio choice with housing (model 35): down payment, mortgage repayment, home equity, and housing value dynamics

Dear Robert,

I am finally working on model 35, which is part of my research. However, I am having some coding issues. From what I understand, housing models can be categorized into at least three groups:

  1. All households start as renters and become homeowners at an age that is endogenously determined by the model (e.g., Fratantoni [2001] {Homeownership, committed expenditure risk, and the stockholding puzzle | Oxford Economic Papers | Oxford Academic}). Once they become homeowners, they cannot change the quantity of housing.

  2. All households start as renters in the first period (which may represent 5-10 years for computational reasons). In the second period, they become homeowners. In the third and subsequent periods, homeowners may purchase a new house or remain in their current one, and this pattern repeats (e.g., Cocco [2005] {Portfolio Choice in the Presence of Housing | The Review of Financial Studies | Oxford Academic}).

  3. All households start as renters in the first period (which may represent 5-10 years for computational reasons). In the second period, some renters endogenously become homeowners while others remain renters. In the third period, renters may stay renters or become homeowners, while homeowners may stay in their current house, buy a new house, or go back to renting, and so on (e.g., Hu [2005] {https://www.sciencedirect.com/science/article/abs/pii/S0094119005000148}).

Models in the first group are suitable for analysing the effects of housing consumption and mortgage debt. Models in the other groups are valuable for assessing the riskiness of housing, as they include housing trading. The riskiness can be measured through house price variability and background risk (positive correlation between house prices and income or stock returns). I think model 35 belongs to the second group but could be simplified to fit the first group. It would be great if the VFI toolkit could support all these types of housing models. However, I am writing to you about a different issue. Sorry for the lengthy introduction.

I am trying to adapt model 35 into a group 1 model with a more detailed focus on mortgage debt and home equity. Here is what I am aiming for:

A house is valued at 10 times the yearly income. Households finance the house with a down payment and a 20-year mortgage. In the year of purchase, the household pays the down payment (20% of the house value) and 1/20th of the mortgage (80% of the house value). Consequently, home equity starts at 20% of the house value and gradually increases to 100% over the next 20 years. The outstanding debt starts at 100% of the house value and decreases to 0% over 20 years. The housing value equals the market value, which may be affected by house price risk and background risk. Once households own their house, they do not sell it.

{I have reduced the number of housing grids from six to two, where 0 represents renting and 1 represents homeowning. The model successfully defines the age of homeownership endogenously, which is fine. However, with the grids set as (0:1), the housing value can only be zero or one. This is problematic because home equity should start with the down payment and then gradually increase to the full value. I am able to modify the budget constraints in the return function to include the down payment, mortgage payments, and maintenance costs based on housing status. However, I am unable to program mortgage debt repayment to stop after 20 years. I am also struggling to program the dynamics of home equity, mortgage debt, and housing value.}

Robert, is it possible to create a subtype of model 35, similar to models in group 1, that focuses on fundamental housing aspects like down payments, mortgage repayment, home equity, and housing value? Could you please provide me with some advice? Thank you very much!

Type 1: “All households start as renters and become homeowners at an age that is endogenously determined by the model (e.g., Fratantoni [2001]). Once they become homeowners, they cannot change the quantity of housing.”

I have not looked at Fratantoni 2001 yet (can you please include a link to the doi?). If you want to let them buy a house, but then never adjust, you can set it up as housing being binary [0,1], and then use the return function to give F=-Inf is they ever try to sell the house. Sounds like you already figured this out.

From the sounds of things though you want/need to keep track of the number of years since they bought the house. There would be two options, either have an endogenous state variable that counts years since they bought the house (so [0,1,…,19,20,21] as 21 grid points, then just use the return fn so that once they buy house (0 to 1), they are forced to increase the number by 1 every period until they reach 21 (which is 20 years after the bought house and so they can just stay in this), you could then make repayments/etc based on this state which counts years since they bought house. Alternatively, if you are happy to, e.g., require that everyone buy a house in first 10 periods of model (or never buy), you could use an endogenous state variable [0,1,…,9,10], which is 0 before a house and then records the model period they buy in (e.g 0 to 6 if buy house in period 6), and then you can easily calculate how many years they have had the house based on the current period and the period they purchased.

Do you also need different values of the house? Or just the endogenous year of buying the house? [Sounds like the answer is no, just one value of the house, namely 10x earnings]

PS. The toolkit does not currently have a way to exploit the fact that ‘years since purchased house’ is really just kind of residual to the model. So it will be solving a substantially harder question than necessary but should probably still run.

2 Likes

PPS. Actually, the age of house could probably be done quite nicely as a semi-exogenous state. But unfortunately I don’t think those work with riskyasset (is not currently coded to handle that combo)

Thank you for your quick response. It’s quite late here, so I will respond tomorrow.

Sure, I added links in the previous post. Although the Fratantoni [2001] model isn’t exactly what I’m aiming for, it’s a good starting point for more detailed housing models.

Yes, I tried a binary housing grid [0,1], and it works to some extent. Homeownership is defined endogenously, which is good, and it lasts indefinitely, which is also fine. However, I can’t set it so that households repay the mortgage only for 20 years and then are mortgage-free afterward. I tried modifying conditions in the return function, where if h′−h ≠ 0, the mortgage should be 1 for age i to i+20 but it didn’t work.

I could solve this by setting housing as an exogenous investment in a model without housing (e.g., model 31) because then it’s possible to specify the age at which households purchase a house and the periods when they will repay the debt. However, I need homeownership to be defined endogenously, as in model 35.

Using an endogenous state variable that counts the years since households bought a house ([0,1,…,19,20,21] as 21 grid points) seems like a solution. However, I need households to exit this interval after 20 years. I understand your suggestion conceptually but am unsure how to implement it. Could you please help me with integrating this idea into model 35?

Yes, I’d like the value of the house to change over the 20 years following purchase. In the first year of homeownership, the down payment should increase the housing value as a one-time boost (20% of the house value, approximately 2 years of income), while mortgage repayments should increase the housing value annually over the next 20 years (each year by 1/20 of 80% of the house value). At the same time, the down payment should reduce savings once, and the mortgage should reduce income annually for the next 20 years. (Other factors, like rent, maintenance costs, transaction costs, etc., can be added easily.)

I think adding this mechanism would enhance the current model 35 since down payment, mortgage repayment, home equity, and housing value dynamics are fundamental in housing models.

2 Likes

My thought was that 21 (or 22) would just be absorbing and represented “own a house with no mortgage”

I interpret this as that the gross value of the house is constant, and you are only talking about the net-of-mortgage value increasing (so we can model this as a constant house value, together with a decresing mortgage, and the net of these is increasing).

I will likely have time next week to set up a modified version of life-cycle model 35 that does this.

2 Likes

This is great! Thank you! Please let me know if you need someone to test the model, provide data regarding parameters, etc.

Yes, I was thinking that house value is constant in the fundamental setting we’re discussing. (Of course, if house value were to depend on market housing prices, then two additional important concepts could be introduced. First, variability in housing prices may increase the riskiness of housing, thereby decreasing households’ share of stocks. Second, if house prices are positively correlated with income, stock returns, or other household wealth sources, this could further amplify the riskiness of housing as an asset. Naturally, if households did not trade in housing, this concept would be less relevant. However, in reality, households may consider replacing an old house with a new one, so it is not unimportant. I’m just thinking aloud here; I’m also not sure how difficult this would be to implement.)

1 Like

I’ve realised that this really should use a semi-exogenous state, rather than a second endogenous state. Currently this is not possible (semi-exo with a riskyasset), but I will code it. However I won’t be coding it until January as I don’t have time until then.

All of which is to say I will do this properly, but not until January. Apologies for the delay but I think it will be worth doing properly as it will be both faster and use less memory.

2 Likes

Thank you, Robert. I hope the time until January passes quickly. :slight_smile:

2 Likes