9 pontos por seogi1004 3 시간 전 | 5 comentários | Compartilhar no WhatsApp

Olá. Sou engenheiro e estou desenvolvendo o Apartment Insights (APT Insights), um serviço de análise do mercado de apartamentos na Coreia e simulação de preços.

Como por muito tempo trabalhei principalmente com desenvolvimento frontend e visualização de dados, infraestrutura de backend, filas assíncronas, estatística e modelos de previsão de séries temporais eram áreas bastante novas para mim. Eu não imaginava que acabaria construindo por conta própria até um modelo de previsão de preços, mas, colaborando ativamente com agentes de IA, consegui superar limitações técnicas e concluir, em cerca de 100 dias, um desenvolvimento solo conduzido 100% por agentes de IA.

Comecei a estudar o mercado de apartamentos para preparar um lar onde meu filho pudesse crescer e se estabelecer. No início, era um projeto pessoal de brinquedo para simular os preços futuros dos condomínios candidatos para moradia própria. Depois, com a incorporação de variáveis macroeconômicas, modelagem estatística e evolução da stack de infraestrutura serverless, ele se expandiu para um serviço que cobre condomínios de todo o país. Recentemente, além da Web/PWA, lancei também apps nativos oficiais na iOS App Store e na Google Play Store, que compartilho gratuitamente e sem anúncios.


1. Limites de overfitting da resposta única (Point Forecast) e definição do problema

Os métodos tradicionais de estimativa de preço de mercado e previsão pontual única (Point Forecast) tendem a sofrer overfitting à pergunta: “quanto exatamente este apartamento valerá daqui a 24 meses?”. Isso porque o mercado imobiliário é fortemente influenciado por variáveis macroeconômicas como juros, câmbio, endividamento das famílias e políticas públicas.

Por isso, concluí que seria mais prático calcular um intervalo central de 50% (P25 ~ P75) por meio de uma simulação probabilística baseada em cenários, em vez de apresentar um único número como resposta correta.


2. Modelagem estatística e estrutura de simulação

Para resolver isso, projetei o motor de previsão em três grandes eixos.

  1. 16 fatores ativos macro, estruturais e regionais: combinei estatísticas oficiais do ECOS do Banco da Coreia (juros, câmbio, endividamento das famílias, custos de construção) com indicadores qualitativos e regionais (políticas, sentimento, localização etc.), além de restaurar snapshots de dados de momentos passados para garantir consistência entre períodos.
  2. Correção de resíduos com VECM (Modelo Vetorial de Correção de Erros): a correção é realizada de acordo com o momento da mudança e o ambiente de mercado, aplicando uma camada de ajuste de momentum dos resíduos do Modelo Vetorial de Correção de Erros (VECM), que preserva relações de equilíbrio de longo prazo.
  3. Simulação de Monte Carlo e interpolação da trajetória de previsão pontual: os cenários de preços futuros para 24 meses são calculados como um intervalo probabilístico P25 ~ P75 por meio de interpolação da trajetória de previsão pontual e simulação de Monte Carlo.

3. Desempenho quantitativo do modelo e backtest OOS transparente

Para avaliar a capacidade de generalização e a confiabilidade do modelo, realizo periodicamente backtests Forward OOS de validação fora da amostra para 12 meses à frente em condomínios de coortes representativas de avaliação e em amostras de validação de generalização.

  • MAPE de preço em amostra retida 12 meses Forward OOS: 6,32% (com base na coorte oficial de avaliação)
  • R^2 ajustado em amostra retida: 0,610 (com base na validação por backtest da coorte)
  • Gate de qualidade da validação: totalmente aprovado
  • Validação OOS diária de 5 condomínios aleatórios e destaque principal: na página do white paper técnico, divulgo de forma transparente os resultados do backtest 12 meses Forward OOS de 5 condomínios sorteados diariamente; entre eles, o condomínio com a mediana da taxa de erro é destacado automaticamente na tela principal como o apartamento validado do dia.
  • Prevenção de viés amostral: também faço tracking separado de condomínios de amostras de generalização que não fazem parte da coorte de avaliação, verificando continuamente a capacidade de generalização para condomínios de todo o país sem viés nos dados de treinamento.

4. Lançamento oficial na App Store/Google Play e construção multiplataforma

Em um único ambiente de monorepo (pnpm workspace + Turborepo), garanti acessibilidade em diferentes dispositivos e lancei oficialmente na Web, PWA, iOS App Store e Android Google Play Store.

  • Pipeline único para Web / PWA / Native WebView: usando a infraestrutura Next.js (Vercel) como servidor principal, expandi para ambientes de apps nativos iOS/Android por meio de empacotamento com Capacitor e integração com plugins nativos.
  • Login social e solução para problemas de navegador in-app: em logins com Kakao, Apple e Google, implementei verificação de OIDC Nonce e um fluxo de handoff de credenciais entre SDK nativo ↔ servidor, resolvendo problemas de bloqueio em navegadores in-app. (Aplicação de fallback para e-mail virtual quando o usuário não consente com o e-mail do Kakao)
  • Toolchain de sincronização automática de assets: a partir de uma única fonte SVG, gera automaticamente splash screens de PWA (40 resoluções), launcher/splash do Android e assets de ícone de app para iOS.
  • Pipeline de push redundante: quando há mudança nas previsões de condomínios favoritados, separa Web Push e push nativo do sistema operacional (FCM/APNs) em dois níveis de importância (Strong/Normal) e envia em lote por um pipeline assíncrono com Cloudflare Queue / QStash.

5. Infraestrutura e troubleshooting/lições do desenvolvimento conduzido por IA

Desenvolvi de forma autônoma usando uma arquitetura híbrida serverless (Next.js + Neon Postgres + Cloudflare Workers + Hono + Cloudflare Queue / Upstash Redis), minimizando custos fixos mensais.

  • Garantia de consistência entre treinamento e serving: identifiquei um desalinhamento entre treinamento e serving (Train/Serve Skew), no qual o gate de recência variava devido à diferença em dias entre a data-base da janela amostral no backtest/treinamento e a data de transação mais recente no serving. Corrigi isso separando a data-base da janela amostral e alinhando parâmetros de reprodução histórica (as-of), alcançando consistência completa entre serving e backtest.
  • Catálogo com construção tardia sob demanda: em vez de coletar previamente todos os apartamentos do país e desperdiçar custos, integrei um pipeline que constrói de forma assíncrona e tardia apenas o catálogo da região (cidade/condado/distrito) acessada pelo usuário e as transações reais dos condomínios favoritados.
  • Acúmulo automático de amostras com violação de qualidade: criei um pipeline de autodiagnóstico que acumula, em um armazenamento append-only, as amostras anômalas que falham no gate de erro em batches de validação aleatória, usando-as como amostras prioritárias de melhoria antes de tunar o modelo.
  • Superação do limite de memória do Upstash Redis: quando o limite de memória foi atingido durante o backfill de grandes volumes de dados por causa dos dados JSON originais, o agente separou diretamente a arquitetura para consultas dinâmicas em tempo real (live fetch), evitando vazamento de custos de infraestrutura.
  • Correção do teto do peso de políticas públicas: em condomínios de determinadas faixas de preço, corrigi o problema em que o peso de políticas de crédito subia de forma anormal, injetando uma fórmula de calibração com limite superior.

Se você tiver feedback ou perguntas sobre modelagem de séries temporais imobiliárias, simulações VECM/Monte Carlo ou infraestrutura híbrida serverless/Capacitor, ficarei feliz em conversar nos comentários.

5 comentários

 
beoks 2 시간 전

O link do white paper técnico está retornando erro 404!
https://edge.apt-insights.com/v1/public/whitepaper

 
seogi1004 2 시간 전

Obrigado pela dica. Corrigimos!!

 
baeba 12 분 전

Testei inserindo o apartamento antigo onde meus pais moram...
Só aparece 33 pyeong, mas esse condomínio antigo tem unidades de 33 e 26 pyeong.
Ele originalmente só oferece suporte a 33 pyeong?

 
seogi1004 3 분 전

Sim! O modelo foi construído com base no tamanho padrão mais comum.
No entanto, no caso de apartamentos que não têm esse tamanho padrão, ele foi implementado para fazer a previsão usando vários tamanhos de amostra.

 
seogi1004 1 시간 전

Esqueci de incluir no texto a função de compartilhamento de apartamentos haha. Vou deixar aqui, como teste, um link compartilhado do Helio City, um grande condomínio famoso.
(Veja os resultados de previsão apenas como referência; para detalhes da modelagem, consulte o white paper!)
Ele abre direto, sem login, então fique à vontade para clicar e dar uma olhada na UI dos gráficos.
https://app.apt-insights.com/s/apt/9NPumhVmCv