UK Housing Model

One of the great strengths of multi-agent simulations is that they can capture a high degree of heterogeneity (diversity). Different agents in a simulation can have different properties and attributes, producing radically different macro-level phenomena.

An example of this is the housing market — when you’re searching for a new home, different types of homes will appeal to different buyers. Some might prefer large houses with great big grecian columns displayed in the front, others want small houses with ornate fireplaces. Unlike other markets where the goods are largely uniform, housing features more diversity. If we ignore the heterogeneity, we would miss the complexity necessary to actually understand and predict housing market trends.

With that in mind, we used HASH to build an agent-based simulation of the UK housing market, expanding upon a model originally developed by researchers at the Bank of England. The simulation aims to help understand how economic policies and regulations, such as interest rates and loan-to-value ratios, affect the price and supply of housing in the UK. Our simulation is available for free on HASH where you’re able to run the simulation in-browser, or fork a version with your own modifications.


Our model closely resembles the model outlined by the Bank of England in their  working paper entitled “Macroprudential policy in an agent-based model of the UK housing market”. We extended this model to simulate the housing market at the regional level, compared to the UK as a whole. The relative ease of adding this extra source of heterogeneity is a testament to the power of agent-based simulation and the actor model of programming underpinning HASH.

Within each region (London, South-West England etc.) the simulation consists of five different types of agents:

  1. Households: families, couples and other household units which earn income, consume goods, make mortgage repayments or pay rent and adjust their housing preferences over time.
  2. A Bank which provides mortgages to households subject to regulations set by the government.
  3. Auctioneers, one each for sales and rentals, that create a market and match the bids from households to inventory.
  4. A Builder which adds new houses to the market to maintain a certain ratio of houses to households.
  5. And a Statistics Office which gathers sales and rental data, and makes aggregate statistics available to households to inform their housing decisions.

Households are further broken into four categories:

  1. Social households live in government-subsidised housing and do not pay rent.
  2. Renters live in privately held housing and pay rent each month.
  3. Owner-occupiers live in housing which they themselves own. If their home is mortgaged, these households make a monthly payment to the bank for the specified term.
  4. Investors own houses which are leased to other households. They collect rent on these houses each month. Most investors additionally own their own home, and like owner-occupiers make any necessary mortgage payments on their properties. 

All households also collect non-housing income from employment or social security, consume non-household goods, and pay taxes. We used real-world data sourced from the Office of National Statistics to calibrate the model’s initial conditions — household income, household types, household ages, number of investors, property values and rental prices — in each region. You can find a detailed description of these sources in the simulation’s README.

Each month, corresponding to 18 steps in the simulation, the sales auctioneer accepts housing listings to sell on behalf of households or the builder, and bids from households to purchase these properties. The auctioneer matches bids according to a sealed-bid Vickrey auction. Owners whose properties remain unsold will reduce their asking price in subsequent auctions. The rental auction takes place on a similar basis.

Market Dynamics

The price and supply of housing has a complex relationship with many variables. Slight adjustments to lending regulations or shocks to household income can have wide-ranging effects on the supply and price of housing. In economic models such effects may be categorized as endogenous or exogenous. An endogenous variable, such as the ratio of renters to owner-occupiers, is determined through the interactions between agents in the model. In contrast, an exogenous variable is something which may change the model dynamics from the outside. In the context of our housing model, these exogenous variables correspond to levers which policymakers may adjust to help understand how future legislative measures may affect the dynamics of a housing market.

A full list of exogenous variables which users may adjust can be found in the project’s README, including variables representing mortgage interest rates, loan-to-value and loan-to-income regulations and variables which control the rate at which new housing is constructed. Simulation users are free to change these variables and observe how the behavior of the market changes.

Price of homes in the market

While our model contains many sources of heterogeneity, and includes detailed agent behavior to model household decisions such as whether a renting household should attempt to purchase a house and how much the household is willing to pay. Agents in a HASH simulation make decisions using behaviors — composable pieces of logic which control various attributes of an agent. 

Our housing model contains over 40 behaviors which control individual aspects of each agent such as paying rent, deciding when to buy a house and approving the mortgage principal. Behaviors can be easily modified or replaced, and if desired, may be published on HASH for other simulations to use privately within your organization, or with all HASH users. The HASH community has made many great behavior libraries available for process modelling, networks, auctions, system dynamics, and many more to help you get a model up and running quickly.


While our model incorporates many forces affecting the dynamics of a housing market, it could be extended to provide an even richer description. For example, one could extend the model to investigate how a sudden shock to household income would affect the supply of housing, or to understand how tax incentives may increase the number of first-time buyers, or how increasing the supply of housing would affect overall property prices.

If these ideas sound interesting, or if you want to learn more about simulation modeling, please create an account on HASH or say hello on our Slack channel.