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 from QuintoAndar's listings (including ImovelWeb).

Usage

iqaiw

Format

A data frame with 1,660 observations across 6 cities and multiple time periods:

date

Date of the observation (first day of month)

name_muni

Name of the municipality. One of: Belo Horizonte, Brasília, Curitiba, Porto Alegre, Rio de Janeiro, 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

Formally, the index is a hedonic double imputed index, controlling for quality changes using a flexible GAM specification with location variables. In this sense, the IQAIW is more theoretically sound than median stratified indices like FipeZap or the former IQA. The mixture of listings and contracts, however, lacks theoretical support and seems to be mainly driven by branding purposes.

The ImovelWeb brand was purchased by QuintoAndar in 2021-22 and the IQAIW symbolizes the merging of both brands. In other words, the original IQA could've been improved simply by adopting a hedonic methodology, without the need to mix data sources.

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: Rental Price Index",
    x = "Date",
    y = "Index (base = 100)"
  ) +
  theme_benvi()