UK Housing Market Regional 2

This simulation model captures UK housing market dynamics and is based on the Bank of England working paper entitled "Macroprudential policy in an agent-based model of the UK housing market"
forked from @hash/uk-housing

UK Housing Model

This UK housing model is the base layer of a work-in-progress UK Economic Simulation being developed within HASH. Our hope is that transparent, open-source models will one day form the backbone of policy discussions worldwide, and that unobvious, emergent impacts of policy can be captured and safely determined inside of simulated environments before they are experienced in the real-world. Ultimately, we are interested in accelerating progress, and our mission is to reduce information failure in all its various forms.


Model description

Our agent based simulation of the UK Housing market is inspired by a similar model from the Bank of England.

The model consists of five different types of agents:

  1. Households: sub-classified into buy-to-let investors, owner-occupiers, renters and those in social housing.
  2. The Bank: provides mortgages to house buyers subject to lending criteria set by the central bank.
  3. Auctioneers: match bids to inventory on the sale & rental markets. There is an auctioneer for both the sales and rental markets.
  4. The Builder: adds new houses to the market.
  5. The Statistics Office: gathers sales and rental data, and makes data available to households to inform their housing decisions.

Over the duration of one month, agents interact with each other according to the following rules:

  1. Households collect employment income, pay rent (if applicable), pay their mortgages and spend on non-housing consumption. Those in social housing do not pay any rent.
  2. Renters and those in social housing decide if they wish to continue renting, or purchase a new house. Renters will only make this decision after their rental contract has ended.
  3. Owner-occupiers will decide if they want to purchase a different home.
  4. Investors decide if they wish to sell or continue renting their existing houses, and if they wish to purchase another house.
  5. Households which intend to purchase a house apply to the bank for mortgage pre-approval. The principal the bank can provide is subject to the income & wealth of the applicant.
  6. Prospective home buyers and sellers send their bids and houses, respectively, to the sales auctioneer. The bids and asking prices are informed by past simulation sales data gathered by the statistics office. Owners of houses which have remained unsold may decide to reduce the asking price.
  7. The sales auctioneer matches bids to asking prices according to a Vickrey auction. After the auction ends, the buyer transfers the sale price to the previous owner, and updates their household status.
  8. A similar process holds for the rental auction, except the maximum bid of the renter is set at a fraction of their monthly income.
  9. The age of all households, based on the household reference person (HRP), increments by one month. A household has a certain probability of mortality depending on its age. When a household dies, its assets are transferred to another randomly chosen household.

Initialising the simulation

The simulation is initialised by calibrating the properties of household agents to real-world data of the UK housing market.

  1. All houses are assigned to a quality band. Quality bands are calculated based on paid price data collected by the UK land registry in 2018 & 2019 [1].
  2. Household reference person ages are drawn from a distribution to match data collected by the ONS [2].
  3. The type of each household — owner occupied, renter or social — is generated according to data provided by [3] and [4].
  4. Each household is assigned to an income percentile, with their income and wealth given household age generated according to empirical research conducted by INET [5].
  5. 8% of households in the top 50-th income percentile are set as investors. These thresholds are based on research from the Bank of England [6].
  6. The rental price of a house is based on the rental yield figures [7] and the median sale price in the quality band associated with the house.
  7. New households are born, and others die. When a household dies, their assets are transferred to another randomly chosen agent.

Plots and analysis

The Analysis tab shows a number of plots demonstrating various simulation metrics over time. These visualizations are intended to provide a quick overview of the simulation dynamics. As development continues, we plan to add more types of visualizations and analyses including parameter sensitivity experiment. Furthermore, once the model is extended to include a spatial component, we plan to provide a geographic view of the model.

The logical period of the model, one month, requires 18 simulation ticks to complete. As a result, the plots update at certain places in that 18-step interval as the various monthly actions complete, and will have a step-like appearance. A description of these plots is below:

The first two plots provide information about property sales in the model. They plot the Number of Sales successfully completed during that month, and the Average Sale Price. Increasing simulation parameters related to mortgage constraints — loan to income ratio and loan to value ratio — can cause prices to rise and the number of bids to increase.

The next two plots show the difference between buyers and sellers in both the rental and housing markets. One trend line represents the number of properties listed in inventory by the auction agents, and the other represents the number of bids that were sent to the auctioneers.

The final two plots show the number of Renters in the model, and the Average Rent they are paying.

Simulation parameters

The simulation has a number of parameters which can be changed to affect the behaviour of agents. The default values for these parameters are set in globals.json.

Note: we reccommend initialising the model with at most 1000 households on non-cloud simulation runs.

  • household_birth_rate: the rate at which new households are born.
  • num_households: the initial number of households.
  • house_to_household_ratio: the proportion of houses to households. This controls the supply of new houses added to the market by the builder.
  • p_investor: the proportion of households in the top 50-th percentile of the income distribution which are set to investors. Households in the bottom 50-th percentile of income never become investor.
  • max_ltv_ratio: the maximum loan to house value ratio the banks is permitted to provide mortgage applicants.
  • max_lti_ratio: the maximum loan to yearly income ratio the bank is permitted to provide mortgage applicants.
  • mortgage_term_years: the number of years over which a mortgage is repaid.
  • mortgage_annual_interest: the (fixed) yearly interest rate on a mortgage.

Current limitations

Our base model aims to reach feature parity with that of the Bank of England paper. The development process is still ongoing, and this current version is a preview release of the model. There are several features from the original model which are still in-progress, namely:

  • Death and inheritance.
  • Restrictions on the bank's lending ratios imposed by the central bank.
  • Household income tax.

This model is currently under active development and tests remain incomplete. Verification and validation work is also pending.

In its current form the model suffers from not being terribly visual. Spatialization work, and the addition of more interesting charts/graphs will alleviate this concern and the README will be updated in due course.

We advise against running more than 1,000 agents simultaneously locally within hCore. Larger-scale simulations and parallelized experiments should be run atop hCloud. Please contact HASH for more information, or view the docs.

Future extensions

  • Spatialization of the model
  • Addition of a heterogenous banking sector
  • Improved consideration of the impact of consumer expectations within the model
  • Development of behaviors supporting policy exploration around:
    1. property purchase and sale taxes (e.g. stamp duty);
    2. ultralocal zoning and Ostromian planning permission; and
    3. regional "leveling up".