the holy quest for the holy home
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

7.1 KiB

Avaliação do banco de dados

Data da avaliação: 21 de julho de 2026

Banco: dfimoveis_data/dfimoveis.sqlite3

Modo: mode=ro, PRAGMA query_only = ON SHA-256 do arquivo principal: bfbbdd09e88f76afd917ebd981b848b9321aeb5fc0602f712645d33e1a5ea76c

1. Pergunta

O snapshot atualizado sustenta a revisão dos rankings e já permite conclusões de histórico, disponibilidade e liquidez?

Resposta curta: sustenta a revisão operacional dos rankings, mas ainda não sustenta inferência de liquidez ou preço de transação. O banco contém quatro dias efetivos de observação entre 13 e 21/07/2026, e a maior parte dos novos snapshots é causada por campos textuais contaminados, não por mudança imobiliária real.

2. Integridade e esquema

  • tamanho do arquivo principal: 9.478.144 bytes;
  • PRAGMA quick_check: ok;
  • PRAGMA foreign_key_check: nenhuma violação;
  • codificação: UTF-8;
  • journal_mode: WAL;
  • 2.314 páginas de 4.096 bytes;
  • cinco tabelas da aplicação e sqlite_sequence;
  • quatro autoíndices; nenhuma view ou trigger;
  • esquema físico sem mudança material em relação a docs/ACTUAL_SCHEMA.md.

O banco foi consultado em transação somente leitura. Não foi usado immutable=1, pois este é o arquivo atualizado pelo scraper.

3. Universo e cobertura

Unidade Total
Execuções registradas 20
Execuções ok 12
Execuções failed 8
Anúncios acumulados 161
Observações históricas 562
Vínculos anúncio–busca 161
Fotos registradas 7.363
Hashes de foto distintos 3.455
Anúncios inativos 20

Cobertura técnica: 13–21/07/2026. Há observações de anúncios em quatro datas, janela insuficiente para sazonalidade ou liquidez.

Região Acumulados Ativos Inativos
Jardins Mangueiral 94 78 16
Cruzeiro Novo 67 63 4

A execução 20, em 21/07, processou oito páginas, encontrou 141 URLs, concluiu 141 detalhes sem falha, baixou 572 fotos novas, reutilizou 4.404 e marcou 20 anúncios como inativos. Ausência da busca não comprova venda.

4. O que os dados representam

  • listings: identidade de anúncio e estado corrente;
  • listing_history: estados distintos por content_hash, não cada observação;
  • listing_searches: vínculo entre anúncio e busca;
  • photos: mídia associada ao anúncio, sem vínculo a um snapshot específico;
  • crawl_runs: execução técnica sem chave direta para os anúncios observados;
  • imóvel físico provável: não existe como entidade persistida e depende de deduplicação derivada.

Há 21 anúncios com um snapshot, 6 com dois, 7 com três e 127 com quatro. Essa distribuição não deve ser interpretada como número de mudanças reais.

5. Auditoria das mudanças históricas

Foram comparadas as transições consecutivas de data_json:

Campo alterado Transições
content_hash 401
creci 398
advertiser_code 66
neighborhood 25
description 11
price_brl 3
address 3

Em 305 transições, somente creci e o hash mudaram. Isso indica instabilidade do parser ou conteúdo variável da página. Não há base para tratar 401 transições como mudanças de mercado.

Mudanças reais de preço identificadas:

  • 1173275: R$ 550.000 para R$ 549.000 em 21/07;
  • 1348535: R$ 950.000 para R$ 880.000 em 20/07, mantido em 21/07;
  • 1372539: R$ 572.500 para R$ 569.000 em 17/07, mantido depois.

Esses valores são preços anunciados, não negociados.

6. Qualidade dos campos

Nos 161 anúncios:

  • preço, área e quartos estão preenchidos em todos;
  • cidade, UF, latitude e longitude estão ausentes em todos;
  • 150 endereços têm mais de 300 caracteres;
  • 159 bairros têm mais de 100 caracteres;
  • permanece um preço de R$ 570 milhões (1351663);
  • permanece uma área de 0,11 m² (1370918);
  • nenhum registro de foto está sem hash ou caminho local no snapshot atual.
  • a triagem perceptual com Pillow 12.3.0 foi reexecutada nos dois recortes; recuperou os grupos já documentados e não identificou nova duplicação suficientemente sustentada entre os 30 finalistas.

O preenchimento não garante validade. Localização e anunciante continuam contaminados. Área não distingue privativa, útil, construída, total, terreno ou ampliação.

7. Disponibilidade e quarentena visual

Vinte anúncios estão inativos no banco, mas retirada não prova venda. Além disso, dez anúncios ainda ativos exibem indicação explícita na primeira foto:

  • Cruzeiro: 1263868;
  • Mangueiral: 1301400, 1346017, 1346231, 1349519, 1351729, 1352943, 1356197, 1362968 e 1366801.

Esses registros ficam em quarentena histórica como “vendido visualmente indicado”. O selo é evidência operacional, não prova registral.

8. Atualização dos rankings

O Mangueiral não recebeu anúncio novo em 21/07. 1356197, antes em 9º, passou a exibir VENDIDO na primeira foto. Depois do feedback pessoal, o funil foi refeito sobre os 78 ativos; 1377683, 1371718 e 1140317 entraram no Top 5 por aderência inferida. A auditoria integral também identificou 1301400 com selo de vendido na primeira foto e 1369473 como solicitação de compra, não oferta.

O Cruzeiro recebeu:

  • 1381514: SHCES 301, R$ 690 mil, 4º andar, reforma aparente forte, sem confirmação de elevador ou vaga e com divergência entre 63 e 93 m²;
  • 1400223: SHCES 609 D, R$ 495 mil, 2º andar, boa luz e necessidade de reforma ampla.

Os dois entraram no Top 15 condicionado. 1375199 saiu por inatividade; 1370891 passou para “quase entrou” pela nova evidência, não por piora comprovada.

9. Limitações

  • um único portal e duas buscas;
  • janela histórica curta;
  • 20 inativos sem causa confirmada;
  • snapshots inflados por campos textuais instáveis;
  • ausência de entidade de imóvel físico;
  • localização estruturada não confiável;
  • área semanticamente inconsistente;
  • fotos podem conter material genérico e republicações;
  • planta original, sistemas, ruído e documentação exigem validação externa.

Não calcular preço por m² amplo, liquidez ou tendência com este snapshot.

10. Reprodução

Consultas essenciais, sempre em leitura:

PRAGMA query_only = ON;
PRAGMA quick_check;
PRAGMA foreign_key_check;

SELECT type, name, tbl_name, sql
FROM sqlite_master
ORDER BY type, name
LIMIT 50;

SELECT COUNT(*) FROM listings;
SELECT COUNT(*) FROM listing_history;
SELECT COUNT(*) FROM listing_searches;
SELECT COUNT(*) FROM photos;
SELECT COUNT(*) FROM crawl_runs;

SELECT s.search_url,
       COUNT(*) AS accumulated,
       SUM(l.inactive_at IS NULL) AS active,
       SUM(l.inactive_at IS NOT NULL) AS inactive
FROM listing_searches AS s
JOIN listings AS l USING (listing_id)
GROUP BY s.search_url
LIMIT 10;

11. Implicação prática

O snapshot melhora a triagem operacional, sobretudo ao revelar inativos e dois apartamentos novos. Ele ainda não justifica pressa nem conclusões de mercado. O ganho imediato vem de manter quarentenas visuais, corrigir a geração excessiva de snapshots e validar documentalmente os candidatos antes de visita ou negociação.