ITBI São Paulo — dataset e análise

Transações imobiliárias com recolhimento de ITBI na cidade de São Paulo, 2019–2026, extraídas das planilhas oficiais da Secretaria Municipal da Fazenda, limpas, agregadas em negócios e geocodificadas.

Gerado em 2026-11-10 · valores reais deflacionados pelo IPCA, base 202609 · 2026 é um ano parcial (a fonte cobre apenas os primeiros meses), então comparações que terminam em 2026 comparam um ano incompleto com anos completos

1 352 376
linhas DTI
1 linha = 1 declaração paga
1 285 819
negócios
44 475 agregados de 2+ linhas
723 554
vendas de mercado
compra e venda, 100%, com VVR
-5.4%
R$/m² real 2019→2026
nominal +38.0%
97.8%
linhas geocodificadas
confiança alta ou média

O preço real por m² caiu, mesmo com o preço nominal subindo.

A mediana nominal de R$/m² de apartamentos em condomínio subiu ao longo de 2019–2026, mas a inflação acumulada no período foi maior. Em reais constantes o apartamento mediano de São Paulo está mais barato hoje do que em 2019. Qualquer leitura da série nominal isolada inverte essa conclusão.

Preço por m² — apartamentos em condomínio

Série is_clean_price: compra e venda de 100% do imóvel, com valor venal de referência, dentro dos limites absolutos e sem outliers contra o próprio mercado local. Uso IPTU 20, área construída acima de 20 m². É a mesma definição usada pelo explorador e pela CLI.

R$ 3 538R$ 4 154R$ 4 769R$ 5 385R$ 6 00020192020202120222023202420252026Real (2026 R$) · 2019: R$ 5 680Real (2026 R$) · 2020: R$ 5 649Real (2026 R$) · 2021: R$ 5 546Real (2026 R$) · 2022: R$ 5 231Real (2026 R$) · 2023: R$ 5 324Real (2026 R$) · 2024: R$ 5 428Real (2026 R$) · 2025: R$ 5 460Real (2026 R$) · 2026: R$ 5 374Real (2026 R$)Nominal · 2019: R$ 3 846Nominal · 2020: R$ 3 962Nominal · 2021: R$ 4 194Nominal · 2022: R$ 4 330Nominal · 2023: R$ 4 611Nominal · 2024: R$ 4 907Nominal · 2025: R$ 5 179Nominal · 2026: R$ 5 306Nominal
Mediana de R$/m², nominal e deflacionada pelo IPCA.
AnoNegóciosNominal R$/m²Real R$/m² (202609)
201940 190R$ 3 846R$ 5 680
202041 528R$ 3 962R$ 5 649
202159 665R$ 4 194R$ 5 546
202246 394R$ 4 330R$ 5 231
202345 894R$ 4 611R$ 5 324
202455 178R$ 4 907R$ 5 428
202557 454R$ 5 179R$ 5 460
202644 041R$ 5 306R$ 5 374

Volume transacionado

0 bi30 bi60 bi90 bi120 bi20192020202120222023202420252026Volume (R$ bi, real) · 2019: 73 biVolume (R$ bi, real) · 2020: 80 biVolume (R$ bi, real) · 2021: 105 biVolume (R$ bi, real) · 2022: 77 biVolume (R$ bi, real) · 2023: 77 biVolume (R$ bi, real) · 2024: 90 biVolume (R$ bi, real) · 2025: 93 biVolume (R$ bi, real) · 2026: 67 biVolume (R$ bi, real)
Soma dos valores de transação de vendas de mercado, em reais constantes. 2026 é um ano parcial — a fonte publicada cobre apenas os primeiros meses, então a queda no último ponto é de cobertura, não de mercado.
AnoNegócios de mercadoVolume real (R$ bi)
201973 39973.4
202075 52280.5
2021104 816105.0
202283 26976.9
202380 92076.8
202494 79289.9
202598 18693.0
202672 22467.2

Preço por distrito

Apartamentos, negócios a partir de 2025, distritos com pelo menos 40 negócios (91 distritos qualificados).

Jardim PaulistaJardim Paulista: R$ 9 337R$ 9 337MoemaMoema: R$ 9 156R$ 9 156Itaim BibiItaim Bibi: R$ 9 044R$ 9 044PinheirosPinheiros: R$ 8 703R$ 8 703Alto De PinheirosAlto De Pinheiros: R$ 7 715R$ 7 715Vila MarianaVila Mariana: R$ 7 501R$ 7 501ConsolacaoConsolacao: R$ 7 457R$ 7 457PerdizesPerdizes: R$ 7 120R$ 7 120Campo BeloCampo Belo: R$ 7 071R$ 7 071Vila LeopoldinaVila Leopoldina: R$ 6 896R$ 6 896Santo AmaroSanto Amaro: R$ 6 877R$ 6 877Barra FundaBarra Funda: R$ 6 712R$ 6 712Bela VistaBela Vista: R$ 6 604R$ 6 604LapaLapa: R$ 6 347R$ 6 347RepublicaRepublica: R$ 6 044R$ 6 044
15 distritos mais caros por mediana de R$/m² real.
Ver os 25 primeiros em tabela
DistritoNegóciosR$/m² real
Jardim Paulista3 270R$ 9 337
Moema3 242R$ 9 156
Itaim Bibi4 802R$ 9 044
Pinheiros2 553R$ 8 703
Alto De Pinheiros594R$ 7 715
Vila Mariana4 461R$ 7 501
Consolacao1 988R$ 7 457
Perdizes3 264R$ 7 120
Campo Belo2 031R$ 7 071
Vila Leopoldina938R$ 6 896
Santo Amaro2 632R$ 6 877
Barra Funda1 244R$ 6 712
Bela Vista1 785R$ 6 604
Lapa2 053R$ 6 347
Republica2 625R$ 6 044
Saude3 095R$ 5 853
Ipiranga1 905R$ 5 776
Santa Cecilia2 643R$ 5 659
Tatuape2 384R$ 5 506
Liberdade1 450R$ 5 374
Mooca1 664R$ 5 323
Cursino1 242R$ 5 282
Belem980R$ 5 183
Grajau93R$ 5 180
Morumbi746R$ 5 178

Ágio sobre o valor venal de referência

Razão entre o valor declarado e o valor venal de referência da Prefeitura. Serve como termômetro de mercado e também de pressão por subdeclaração.

AnoValor declarado / valor venal de referência
20191.13×
20201.20×
20211.31×
20221.19×
20231.20×
20241.23×
20251.24×
20261.22×

Financiamento

Ano% financiadoLTV mediano
201928.4%69.3%
202032.9%72.7%
202136.6%72.6%
202232.8%72.2%
202331.9%71.6%
202434.8%71.3%
202529.2%68.4%
202636.6%72.2%

Agregação de transações — o que foi feito e o quanto importa

A fonte não tem identificador de negócio: cada linha é uma DTI de um único SQL. Um apartamento vendido com sua vaga são duas linhas sem nenhum vínculo explícito. A agregação é inferida em tiers, e cada negócio carrega o tier que o produziu.

O efeito sobre os negócios afetados

Nos 34 358 negócios efetivamente agregados (tiers A e B, residenciais), a mediana de R$/m² passa de R$ 5 527 sem agregação para R$ 6 404 com agregação — uma diferença de +15.9%. Somar a vaga ao valor sem somá-la à área é o que corrige o número.

O efeito sobre o agregado

No total da cidade o deslocamento é pequeno, porque só uma fração dos negócios é agregada. Isso é um resultado, não uma decepção: para estatística agregada a agregação quase não muda nada; para o preço de um imóvel específico muda muito. A política agressiva é mostrada apenas para quantificar o erro que ela cometeria.

PolíticaNegóciosAgregadosMaior grupoR$/m² medianovs. sem agregação
no_merge444 54101R$ 4 667+0.00%
A428 72911 66841R$ 4 709+0.90%
A+B428 25412 01941R$ 4 710+0.92%
A+B+C426 94512 527100R$ 4 710+0.92%
aggressive301 63653 245542R$ 4 750+1.78%

Precisão medida em amostra rotulada

Amostra estratificada de grupos reais, rotulada manualmente a partir de complemento, uso, valores, áreas e proximidade de matrícula. A matrícula é um sinal independente: o algoritmo de agregação nunca a consulta.

GrupoRotuladosMesma transaçãoNãoIncertoPrecisão
A141400100%
B9901100%
C6602100%
REFUSED:launch_guard_multi_main60600% recusa indevida

Amostra pequena e rotulada por uma única pessoa — trate como indicativo, não como medida definitiva. A planilha completa de rotulagem está em validation/labeling_sheet.csv para ampliar a amostra.

Corroboração independente pela matrícula

Matrículas das unidades de um mesmo prédio são abertas em bloco, e as unidades transferidas na mesma escritura ficam próximas nesse bloco. O algoritmo de agregação nunca consulta a matrícula, então ela é uma evidência independente. Comparamos pares principal+acessório que foram agregados contra pares principal+acessório do mesmo prédio que não foram.

ParesNDistância mediana de matrículap90Até 50
Agregados pelo matcher (tiers A e B)53 357595464.4%
Mesmo prédio, não agregados (nulo)200 0001 17148 1199.7%

Pares agregados ficam 234× mais próximos no registro do que pares não agregados no mesmo prédio (mediana 5 contra 1 171). Se a agregação fosse arbitrária as duas distribuições coincidiriam.

Distribuição por tier

TierNegóciosR$/m² real mediano
SINGLE1 241 344R$ 5 034
A41 089R$ 6 430
C2 136R$ 2 184
B1 250R$ 6 181

Geocodificação

Cada SQL é resolvido para uma coordenada pela camada de lotes do GeoSampa, em ordem decrescente de confiança. Unidades de condomínio não têm polígono próprio — o prédio aparece como lote 0000 com código de condomínio — então elas são resolvidas por endereço dentro do próprio setor/quadra.

RegraSQLs%
condo_address542 66670.5%
sql_exact185 89424.1%
street_interpolated11 5631.5%
condo_address_key10 8861.4%
street_nearest_number8 1571.1%
street_in_block2 8600.4%
condo_address_iptu2 5710.3%
setor_street_nearest2 1860.3%
block_centroid1 7420.2%
street_nearest_key5490.1%
address_city3280.0%
sql_no_dv2960.0%
street_in_block_key490.0%
none430.0%
street_near_block60.0%

Validação independente

A área do lote registrada pelo GeoSampa é comparada com a área do lote registrada na própria planilha do ITBI, e SQLs resolvíveis por duas regras diferentes são comparados por distância.

área do lote: {"n_compared": 185893, "pct_lot_area_within_2pct": 99.69, "median_abs_area_diff_m2": 0.0}
concordância entre regras: {"n_compared": 170183, "median_distance_m": 0.0, "p90_distance_m": 0.0, "pct_within_100m": 99.96}

Qualidade dos dados

Nada é descartado silenciosamente: linhas problemáticas são mantidas e sinalizadas, e a contagem de cada flag é recalculada a cada execução.

Flag de qualidadeLinhas% do total
area_construida_zero198 68714.69%
numero_placeholder140 60210.40%
vvr_proporcional_zero39 9672.96%
valor_transacao_nominal20 1681.49%
identity_base_calculo_violated1 3210.10%
proporcao_out_of_range1860.01%
area_construida_building_level1330.01%
valor_transacao_non_positive180.00%
data_transacao_missing130.00%
identity_vvr_proporcional_violated130.00%
cells_beyond_schema:AC70.00%
ano_construcao_implausible50.00%
cep_outside_sao_paulo30.00%
header_text_in_cell:complemento30.00%
acc_recovered_from_column_ac20.00%
header_text_in_cell:sql10.00%
sql_missing10.00%

Verificações automáticas — 31 ok · 2 avisos · 0 falhas

VerificaçãoStatusValorDescrição
row_countOK1352376curated transaction rows
row_uid_uniqueOK1352376row_uid must uniquely identify a curated row
parse_reconcilesOK1352376every sheet's rows accounted for as header/blank/data
clean_row_conservationOK1352376no row silently lost between parse and curated table
sql_lengthOK0every SQL is exactly 11 digits after zero-padding
sql_presentWARN1rows with no cadastral number (source contamination)
setor_092_absentOK0the data dictionary states setor 092 does not exist
base_calculo_identityOK1321base_calculo = max(valor, vvr_proporcional), excluding excess-tax naturezas
no_future_datesOK0transaction dates in the future
guia_not_long_before_transactionOK4guia paid more than a month before the deed date
guia_lag_boundedOK5946guia paid more than two years after the deed date
guia_months_completeOK1each source year should carry 12 guia months (current year excepted)
old_months_unchangedOK0guia months already published keep their rows and value within 1% (a republished workbook should only add months)
apartment_price_per_m2_plausibleOK4286.0median R$/m2 for condominium apartments across 2019-2026
price_series_no_implausible_dropOK0nominal median R$/m2 should not fall more than 10% year on year
deal_row_conservationOK1347324every canonical transaction row belongs to exactly one deal
launch_guard_holdsOK0no deal may contain two or more main units
no_row_in_two_dealsOK0a transaction row may not appear in more than one deal
deal_values_non_negativeOK0deal totals >= 0
partial_accessory_keeps_market_saleOK0market flat sales dropped only because a garage share was bought with them
enriched_matches_dealsOK1285819the enriched table has exactly one row per deal
enriched_deal_id_uniqueOK0the geocode join must not multiply rows
every_market_deal_judgedWARN6227no market sale escapes the outlier test for want of a peer group
outlier_share_reasonableOK3.059share of market sales flagged as price outliers
clean_series_within_boundsOK0the clean price series respects its own absolute bounds
coords_inside_sao_pauloOK0every geocoded point falls inside the municipal bounding box
geocode_assigned_precisionOK99.35share of SQLs whose ASSIGNED precision estimate is <= 100 m (a label from the rule that resolved them, not a measurement)
geocode_coverageOK99.9944share of distinct SQLs resolved to a coordinate
predio_condominioOK0vendas num pedaço de condomínio que não foram para o prédio principal (deve ser 0)
predio_condominio_ouroOK8casos conferidos à mão de prédio = condomínio
predio_fantasma_residuoOK1137endereços que parecem pedaço de outro número sem prova de condomínio no IPTU (só medida)
h9_faixa_cOK12068vendas residenciais de mercado com price_flag faixa_c (H9; esperado 1–3%)
h9_sem_venalOK3833vendas residenciais de mercado sem venal aceitas pela quadra (H9; esperado 0,3–1,5%)

Ressalvas

A fonte identifica a transação pela guia paga, não pela escritura: a aba mensal da planilha é o mês de pagamento, e a data de transação pode ser bem anterior. Todas as séries aqui usam a data de transação.

Valores são declarados pelo contribuinte. Subdeclaração existe e o ágio sobre o valor venal de referência é um indicador indireto dela.

Unidades de lançamento ainda não individualizadas aparecem com uso “terreno” e, às vezes, com a área construída do prédio inteiro; essas linhas são sinalizadas e excluídas das estatísticas de preço.

A área construída é a do cadastro do IPTU. Em condomínio ela é a fração ideal aplicada à área construída total do empreendimento — o rateio das áreas comuns vem incluído — e por isso é maior que a área privativa dos anúncios: na R. Canário 130, 675–789 m² no cadastro contra 406–463 m² anunciados, um fator de ~1,6. O R$/m² daqui sai menor que o R$/m² “privativo” dos portais; a comparação entre imóveis dentro da base permanece consistente.

Nomes de compradores e vendedores não são divulgados, o que torna impossível provar que duas linhas pertencem ao mesmo negócio. Daí a estrutura em tiers.