Skip to contents

The IQAIW (Índice QuintoAndar ImovelWeb) is a rental index for major Brazilian cities. The index is based on both new rental contracts (managed by QuintoAndar) and online listings published by QuintoAndar and ImovelWeb.

Usage

iqaiw

Format

A data frame with 1,660 observations across six cities and multiple periods.

date

Date of the observation (first day of month)

name_muni

Name of the municipality. Values include Belo Horizonte, Brasília, Curitiba, Porto Alegre, Rio de Janeiro, and São Paulo

rooms

Number of rooms in the property, or "Total" for city-level aggregate

index

Rental price index, normalized to 100 at first observation per city

chg

Monthly percent variation of the index (decimal form)

acum12m

12-month accumulated variation of the index (decimal form)

price_m2

Estimated rental price per square meter (R$/m²)

Details

The IQAIW was developed in 2023 and replaced the former IQA index. Given the change in methodology and data sources, the IQAIW is not directly comparable to the IQA index.

Methodology

The index uses double imputation with a hedonic model. A generalized additive model (GAM) controls for property characteristics and location. The sample combines new rental contracts with online listings, so the index does not measure either source in isolation.

Examples


# To visualize the dataset
head(iqaiw)
#> # A tibble: 6 × 7
#>   date       name_muni      rooms index      chg acum12m price_m2
#>   <date>     <chr>          <chr> <dbl>    <dbl>   <dbl>    <dbl>
#> 1 2019-05-01 Belo Horizonte Total  100  NA            NA     19.2
#> 2 2019-10-01 Belo Horizonte Total  100.  0.00351      NA     19.2
#> 3 2019-11-01 Belo Horizonte Total  100.  0.00282      NA     19.2
#> 4 2019-12-01 Belo Horizonte Total  101.  0.00145      NA     19.3
#> 5 2020-01-01 Belo Horizonte Total  101.  0.00730      NA     19.4
#> 6 2020-02-01 Belo Horizonte Total  103.  0.0128       NA     19.7
str(iqaiw)
#> tibble [1,660 × 7] (S3: tbl_df/tbl/data.frame)
#>  $ date     : Date[1:1660], format: "2019-05-01" "2019-10-01" ...
#>  $ name_muni: chr [1:1660] "Belo Horizonte" "Belo Horizonte" "Belo Horizonte" "Belo Horizonte" ...
#>  $ rooms    : chr [1:1660] "Total" "Total" "Total" "Total" ...
#>  $ index    : num [1:1660] 100 100 100 101 101 ...
#>  $ chg      : num [1:1660] NA 0.00351 0.00282 0.00145 0.0073 ...
#>  $ acum12m  : num [1:1660] NA NA NA NA NA ...
#>  $ price_m2 : num [1:1660] 19.2 19.2 19.2 19.3 19.4 ...

# Plot index over time for all cities
library(ggplot2)

iqaiw_rooms <- subset(iqaiw, rooms != "Total" & !is.na(acum12m))

ggplot(iqaiw_rooms, aes(x = date, y = acum12m, color = rooms)) +
  geom_line(lwd = 0.5) +
  geom_hline(yintercept = 0) +
  scale_color_benvi_d(pal_name = "qual_6", name = "Rooms") +
  facet_wrap(vars(name_muni), ncol = 3, scales = "free") +
  labs(
    title = "IQAIW: 12-month rental price change",
    x = "Date",
    y = "12-month change (decimal)"
  ) +
  theme_benvi(base_family = "sans")