{
 "$schema": "https://estimei.com.br/calculadoras.schema.json",
 "nome": "Estimei — catálogo de calculadoras",
 "versaoSite": "2.7.91",
 "versaoMetodologia": "v1.5",
 "auditoria": {
  "ultimaAuditoria": "2026-10-05",
  "status": "sucesso",
  "assercoes": 597,
  "cenarios": 71,
  "falhas": 0,
  "detalhes": "https://estimei.com.br/qualidade/"
 },
 "mcp": {
  "servidor": "https://mcp.estimei.com.br/mcp",
  "documentacao": "https://estimei.com.br/developers/"
 },
 "aviso": "Estimativa educativa — não substitui profissional habilitado. https://estimei.com.br/termos",
 "totalCalculadoras": 46,
 "calculadoras": [
  {
   "id": "orcamento-pessoal",
   "nome": "Orçamento Pessoal",
   "hub": "financas",
   "url": "https://estimei.com.br/calculadoras/orcamento-pessoal/",
   "descricao": "Organize suas finanças e descubra para onde vai seu dinheiro.",
   "perguntaQueResponde": "Para onde está indo meu salário e quanto sobra de verdade no fim do mês?",
   "entradas": {
    "type": "object",
    "properties": {
     "rendaPrincipal": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Salário/renda líquida principal, em R$.",
      "x-campoSite": "orcRendaPrincipal"
     },
     "rendaExtra": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Renda extra mensal, em R$. Padrão 0.",
      "x-campoSite": "orcRendaExtra"
     },
     "moradia": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Gasto com moradia (aluguel/financiamento/condomínio), em R$. Padrão 0.",
      "x-campoSite": "orcMoradia"
     },
     "contas": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Contas (água, luz, internet, telefone), em R$. Padrão 0.",
      "x-campoSite": "orcContas"
     },
     "alimentacao": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Alimentação, em R$. Padrão 0.",
      "x-campoSite": "orcAlimentacao"
     },
     "transporte": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Transporte, em R$. Padrão 0.",
      "x-campoSite": "orcTransporte"
     },
     "saude": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Saúde, em R$. Padrão 0.",
      "x-campoSite": "orcSaude"
     },
     "educacao": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Educação, em R$. Padrão 0.",
      "x-campoSite": "orcEducacao"
     },
     "lazer": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Lazer, em R$. Padrão 0.",
      "x-campoSite": "orcLazer"
     },
     "dividas": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Parcelas de dívidas, em R$. Padrão 0.",
      "x-campoSite": "orcDividas"
     },
     "outros": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Outros gastos, em R$. Padrão 0.",
      "x-campoSite": "orcOutros"
     }
    },
    "required": [
     "rendaPrincipal"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "rendaTotal": {
      "type": "number",
      "description": "Renda mensal, em R$."
     },
     "despesasTotal": {
      "type": "number",
      "description": "Despesas mensais, em R$."
     },
     "saldo": {
      "type": "number",
      "description": "Renda − despesas, por mês, em R$."
     },
     "pctGasto": {
      "type": "number",
      "description": "Despesas sobre a renda, em %."
     },
     "taxaPoupanca": {
      "type": "number",
      "description": "Saldo sobre a renda, em %."
     },
     "moradia": {
      "type": "number",
      "description": "Gasto mensal com moradia, em R$."
     },
     "moradiaPct": {
      "type": "number",
      "description": "Moradia sobre a renda, em %."
     },
     "moradiaAcimaDoRecomendado": {
      "type": "boolean",
      "description": "true se a moradia passa de 30% da renda."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "rendaTotal",
     "despesasTotal",
     "saldo",
     "pctGasto",
     "taxaPoupanca",
     "moradia",
     "moradiaPct",
     "moradiaAcimaDoRecomendado",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Renda total = renda principal + rendas extras",
    "Despesas = soma das 9 categorias",
    "Saldo do mês = renda total − despesas",
    "Taxa de Poupança = saldo ÷ renda total × 100",
    "Peso da moradia = gasto com moradia ÷ renda total × 100",
    "A Taxa de Poupança é classificada em quatro faixas: 20% ou mais é excelente (o nível do método 50-30-20); de 10% a 20%, bom; de 0% a 10%, apertado; e abaixo de zero, orçamento no vermelho — você gasta mais do que ganha. Exemplo (o cenário verificado pela suíte de testes): renda de R$ 8.000 + R$ 1.000 de extras soma R$ 9.000; com R$ 6.100 de despesas, sobram R$ 2.900 — uma Taxa de Poupança de 32,2%. A moradia de R$ 2.500 pesa 27,8% da renda."
   ],
   "fontes": [
    {
     "nome": "Método 50-30-20 (Elizabeth Warren e Amelia Warren Tyagi, All Your Worth, 2005)",
     "detalhe": "referência das faixas da Taxa de Poupança (20% ou mais = nível recomendado)"
    }
   ],
   "limitacoes": [
    "Análise de perfil de investidor e tolerância a riscos (<em>suitability</em>)",
    "Planejamento tributário individualizado com contador especializado",
    "Consultoria formal de investimentos emitida por profissional credenciado (CVM / Anbima)"
   ],
   "exemploAuditado": {
    "cenario": "renda 8.000 + 1.000 extra, despesas somando 6.100",
    "entradasSite": {
     "orcRendaPrincipal": 8000,
     "orcRendaExtra": 1000,
     "orcMoradia": 2500,
     "orcContas": 600,
     "orcAlimentacao": 1200,
     "orcTransporte": 500,
     "orcSaude": 400,
     "orcEducacao": 300,
     "orcLazer": 400,
     "orcDividas": 200,
     "orcOutros": 0
    },
    "entradasMCP": {
     "rendaPrincipal": 8000,
     "rendaExtra": 1000,
     "moradia": 2500,
     "contas": 600,
     "alimentacao": 1200,
     "transporte": 500,
     "saude": 400,
     "educacao": 300,
     "lazer": 400,
     "dividas": 200,
     "outros": 0
    },
    "esperado": {
     "rendaTotal": 9000,
     "despesasTotal": 6100,
     "saldo": 2900,
     "pctGasto": 67.8,
     "taxaPoupanca": 32.2,
     "moradiaPct": 27.8
    },
    "tolerancia": 0.01,
    "verificacao": "Somatório direto das 9 categorias. Regra dos 30% de moradia (Banco Central / planejamento financeiro) testada no limite: 2.500/9.000 = 27,8%, logo abaixo do teto — o cenário verifica que o alerta NÃO dispara indevidamente. Taxa de poupança 32,2% complementa pctGasto 67,8% (soma 100%)."
   },
   "mcp": {
    "ferramenta": "calcular_orcamento_pessoal"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/orcamento-pessoal/?orcRendaPrincipal={rendaPrincipal}&orcRendaExtra={rendaExtra}&orcMoradia={moradia}&orcContas={contas}&orcAlimentacao={alimentacao}&orcTransporte={transporte}&orcSaude={saude}&orcEducacao={educacao}&orcLazer={lazer}&orcDividas={dividas}&orcOutros={outros}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "juros-compostos",
   "nome": "Juros Compostos",
   "hub": "financas",
   "url": "https://estimei.com.br/calculadoras/juros-compostos/",
   "descricao": "Veja o poder do tempo e dos aportes mensais nos seus investimentos.",
   "perguntaQueResponde": "Quanto meu dinheiro vai render se eu investir um valor inicial mais um aporte mensal por vários anos?",
   "entradas": {
    "type": "object",
    "properties": {
     "aporteInicial": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Valor investido de uma vez no início, em R$. Padrão 0.",
      "x-campoSite": "jurosAporteInicial"
     },
     "aporteMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Valor investido todo mês, em R$. Padrão 0.",
      "x-campoSite": "jurosMensal"
     },
     "taxaMensalPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de juros MENSAL em % (ex.: 0.8 para 0,8% ao mês).",
      "x-campoSite": "jurosTaxa"
     },
     "tempoAnos": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Prazo do investimento, em anos.",
      "x-campoSite": "jurosTempoAnos"
     }
    },
    "required": [
     "taxaMensalPct",
     "tempoAnos"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "aporteInicial": {
      "type": "number",
      "description": "Aporte inicial, em R$."
     },
     "aporteMensal": {
      "type": "number",
      "description": "Aporte mensal, em R$."
     },
     "taxaMensalPct": {
      "type": "number",
      "description": "Taxa de juros ao mês, em %."
     },
     "taxaAnual": {
      "type": "number",
      "description": "Taxa equivalente ao ano, em %."
     },
     "tempoAnos": {
      "type": "number",
      "description": "Prazo, em anos."
     },
     "meses": {
      "type": "number",
      "description": "Prazo, em meses."
     },
     "montante": {
      "type": "number",
      "description": "Montante final, em R$."
     },
     "totalAportado": {
      "type": "number",
      "description": "Soma dos aportes, em R$."
     },
     "jurosAcumul": {
      "type": "number",
      "description": "Juros acumulados (montante − aportes), em R$."
     },
     "multiplicador": {
      "type": "number",
      "description": "Montante ÷ total aportado (vezes)."
     },
     "rentabilidadeTotalPct": {
      "type": "number",
      "description": "Juros sobre o total aportado, no período inteiro, em %."
     },
     "avaliacao": {
      "type": "string",
      "description": "Leitura qualitativa do resultado."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "aporteInicial",
     "aporteMensal",
     "taxaMensalPct",
     "taxaAnual",
     "tempoAnos",
     "meses",
     "montante",
     "totalAportado",
     "jurosAcumul",
     "multiplicador",
     "rentabilidadeTotalPct",
     "avaliacao",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Sem aportes mensais, vale a fórmula clássica M = C × (1 + i)n: o capital C, a taxa mensal i e o número de meses n. Com aportes, a calculadora soma mês a mês — cada aporte entra no fim do mês e passa a render a partir do mês seguinte:",
    "Saldo do mês = saldo anterior × (1 + i) + aporte mensal",
    "Total aportado = aporte inicial + aporte mensal × n",
    "Juros acumulados = montante final − total aportado",
    "Isso equivale à forma fechada M = C × (1 + i)n + A × [(1 + i)n − 1] ÷ i. A taxa anual equivalente mostrada no resultado usa a conversão composta, (1 + i)12 − 1 — por isso 0,8% ao mês viram cerca de 10,03% ao ano, e não 9,6%. Exemplo (o cenário verificado pela suíte de testes): R$ 1.000 iniciais mais R$ 200 por mês, a 0,8% ao mês por 10 anos, somam R$ 25.000 aportados e chegam a R$ 42.645,23 — R$ 17.645,23 de juros, 70,6% sobre o que foi aportado."
   ],
   "fontes": [
    {
     "nome": "Matemática financeira — capitalização composta, M = C × (1 + i)^n",
     "detalhe": "fórmula do montante com aportes mensais"
    },
    {
     "nome": "Banco Central do Brasil — séries do SGS, atualização contínua",
     "detalhe": "taxas de poupança, CDI e Selic usadas na comparação"
    }
   ],
   "limitacoes": [
    "Análise de perfil de investidor e tolerância a riscos (<em>suitability</em>)",
    "Planejamento tributário individualizado com contador especializado",
    "Consultoria formal de investimentos emitida por profissional credenciado (CVM / Anbima)"
   ],
   "exemploAuditado": {
    "cenario": "aporte inicial + mensal, 10 anos",
    "entradasSite": {
     "jurosAporteInicial": 1000,
     "jurosMensal": 200,
     "jurosTaxa": 0.8,
     "jurosTempoAnos": 10
    },
    "entradasMCP": {
     "aporteInicial": 1000,
     "aporteMensal": 200,
     "taxaMensalPct": 0.8,
     "tempoAnos": 10
    },
    "esperado": {
     "totalAportado": 25000,
     "jurosAcumul": 17645.23,
     "montante": 42645.23,
     "rentabilidadeTotalPct": 70.6,
     "multiplicador": 1.71
    },
    "tolerancia": 0.05,
    "verificacao": "Fórmula fechada FV = 1000×1,008^120 + 200×[(1,008^120−1)/0,008] ≈ 42.645,76; o loop mensal com arredondamento a 2 casas converge para 42.645,23. Confirmado no navegador em 25/07/2026. CORREÇÃO 25/07 (achado do runner): os nomes de campo anteriores (montanteFinal/jurosAcumulados) NÃO existem na ponte __pilarJurosCompostos — os corretos são montante/jurosAcumul. Erro do dado-ouro, não do código."
   },
   "mcp": {
    "ferramenta": "calcular_juros_compostos"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/juros-compostos/?jurosAporteInicial={aporteInicial}&jurosMensal={aporteMensal}&jurosTaxa={taxaMensalPct}&jurosTempoAnos={tempoAnos}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "inflacao",
   "nome": "Inflação",
   "hub": "financas",
   "url": "https://estimei.com.br/calculadoras/inflacao/",
   "descricao": "Calcule a perda de poder de compra ao longo do tempo.",
   "perguntaQueResponde": "Quanto do meu dinheiro vai perder poder de compra se eu deixá-lo parado em vez de investir?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorPresente": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor atual, em R$.",
      "x-campoSite": "inflacaoValorPresente"
     },
     "taxaAnualPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de inflação ANUAL esperada, em %.",
      "x-campoSite": "inflacaoTaxa"
     },
     "tempoAnos": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Prazo, em anos.",
      "x-campoSite": "inflacaoTempoAnos"
     }
    },
    "required": [
     "valorPresente",
     "taxaAnualPct",
     "tempoAnos"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorPresente": {
      "type": "number",
      "description": "Valor de hoje, em R$."
     },
     "taxaAnualPct": {
      "type": "number",
      "description": "Inflação ao ano, em %."
     },
     "tempoAnos": {
      "type": "number",
      "description": "Prazo, em anos."
     },
     "valorFuturo": {
      "type": "number",
      "description": "Poder de compra do valor no fim do prazo, em reais de hoje, em R$."
     },
     "perda": {
      "type": "number",
      "description": "Poder de compra perdido, em R$."
     },
     "pctPerda": {
      "type": "number",
      "description": "Perda sobre o valor de hoje, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorPresente",
     "taxaAnualPct",
     "tempoAnos",
     "valorFuturo",
     "perda",
     "pctPerda",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Poder de compra futuro = valor atual ÷ (1 + inflação)anos",
    "Perda = valor atual − poder de compra futuro",
    "Perda em % = perda ÷ valor atual × 100",
    "A inflação é composta, como os juros: cada ano incide sobre preços que já subiram no ano anterior. Exemplo (o cenário verificado pela suíte de testes): a 4,5% ao ano, em 10 anos os preços sobem cerca de 55% (1,04510 ≈ 1,553), e R$ 10.000 parados passam a comprar o que R$ 6.439,28 compram hoje — uma perda de R$ 3.560,72, ou 35,61% do poder de compra. A calculadora classifica a perda em quatro faixas: abaixo de 15%, de 15% a 35%, de 35% a 55% e acima de 55%.",
    "Referência: o IPCA, calculado pelo IBGE, é o índice usado pelo Banco Central no regime de metas de inflação e a principal referência de inflação ao consumidor no Brasil."
   ],
   "fontes": [
    {
     "nome": "IPCA / IBGE — índice oficial de inflação ao consumidor, com divulgação mensal",
     "detalhe": "referência da taxa de inflação; índice do regime de metas do Banco Central"
    },
    {
     "nome": "Equação de Fisher",
     "detalhe": "taxa real = (1 + taxa nominal) ÷ (1 + inflação) − 1"
    }
   ],
   "limitacoes": [
    "Análise de perfil de investidor e tolerância a riscos (<em>suitability</em>)",
    "Planejamento tributário individualizado com contador especializado",
    "Consultoria formal de investimentos emitida por profissional credenciado (CVM / Anbima)"
   ],
   "exemploAuditado": {
    "cenario": "R$ 10.000 corroídos por 4,5% a.a. em 10 anos",
    "entradasSite": {
     "inflacaoValorPresente": 10000,
     "inflacaoTaxa": 4.5,
     "inflacaoTempoAnos": 10
    },
    "entradasMCP": {
     "valorPresente": 10000,
     "taxaAnualPct": 4.5,
     "tempoAnos": 10
    },
    "esperado": {
     "valorFuturo": 6439.28,
     "perda": 3560.72,
     "pctPerda": 35.61
    },
    "tolerancia": 0.01,
    "verificacao": "Poder de compra = VP / (1+i)^n = 10.000/1,045^10 = 6.439,28. Perda de 35,61% do poder de compra."
   },
   "mcp": {
    "ferramenta": "calcular_inflacao"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/inflacao/?inflacaoValorPresente={valorPresente}&inflacaoTaxa={taxaAnualPct}&inflacaoTempoAnos={tempoAnos}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "metas",
   "nome": "Simulador de Metas",
   "hub": "financas",
   "url": "https://estimei.com.br/calculadoras/metas/",
   "descricao": "Calcule quanto investir por mês para alcançar seus objetivos.",
   "perguntaQueResponde": "Quanto preciso investir por mês para juntar o valor da minha meta no prazo que eu quero?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorMeta": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor da meta, em R$.",
      "x-campoSite": "metaValorMeta"
     },
     "valorAtual": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Valor já investido/disponível, em R$. Padrão 0.",
      "x-campoSite": "metaValorAtual"
     },
     "aporteMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Aporte mensal planejado, em R$. Padrão 0.",
      "x-campoSite": "metaAporteMensal"
     },
     "taxaAnualPct": {
      "type": "number",
      "minimum": 0,
      "description": "Taxa de retorno ANUAL esperada, em %.",
      "x-campoSite": "metaTaxaAnual"
     },
     "tempoAnos": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Prazo, em anos.",
      "x-campoSite": "metaTempoAnos"
     }
    },
    "required": [
     "valorMeta",
     "taxaAnualPct",
     "tempoAnos"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorMeta": {
      "type": "number",
      "description": "Meta, em R$."
     },
     "valorAtual": {
      "type": "number",
      "description": "Valor já guardado, em R$."
     },
     "aporteMensal": {
      "type": "number",
      "description": "Aporte mensal informado, em R$."
     },
     "taxaAnualPct": {
      "type": "number",
      "description": "Rendimento ao ano, em %."
     },
     "tempoAnos": {
      "type": "number",
      "description": "Prazo, em anos."
     },
     "montante": {
      "type": "number",
      "description": "Montante no fim do prazo com o aporte informado, em R$."
     },
     "aporteNecessario": {
      "type": "number",
      "description": "Aporte mensal necessário para atingir a meta, em R$."
     },
     "totalAportado": {
      "type": "number",
      "description": "Soma dos aportes com o aporte informado, em R$."
     },
     "jurosAcumul": {
      "type": "number",
      "description": "Juros acumulados com o aporte informado, em R$."
     },
     "atingeMeta": {
      "type": "boolean",
      "description": "true se o aporte informado atinge a meta."
     },
     "pctMetaAtingida": {
      "type": "number",
      "description": "Montante sobre a meta, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorMeta",
     "valorAtual",
     "aporteMensal",
     "taxaAnualPct",
     "tempoAnos",
     "montante",
     "aporteNecessario",
     "totalAportado",
     "jurosAcumul",
     "atingeMeta",
     "pctMetaAtingida",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Taxa mensal equivalente: i = (1 + taxa anual)1/12 − 1",
    "Projeção: saldo = saldo anterior × (1 + i) + aporte, a partir do valor que você já tem",
    "Aporte necessário = [meta − valor atual × (1 + i)n] × i ÷ [(1 + i)n − 1]",
    "A última fórmula vem do valor futuro de uma série de pagamentos: desconta da meta o quanto o valor que você já tem vai crescer sozinho e divide o restante pelo fator de acumulação dos aportes. Com taxa zero, vira simplesmente (meta − valor atual) ÷ número de meses. Exemplo (o cenário verificado pela suíte de testes): para juntar R$ 100 mil em 5 anos, partindo de R$ 15 mil, a 12% ao ano, são necessários R$ 915,64 por mês — com R$ 800, a meta não é atingida."
   ],
   "fontes": [
    {
     "nome": "Matemática financeira — valor futuro de uma série de pagamentos",
     "detalhe": "fórmula do aporte mensal necessário"
    },
    {
     "nome": "Banco Central do Brasil — séries do SGS, atualização contínua",
     "detalhe": "referências de poupança, CDB e Tesouro usadas na comparação"
    }
   ],
   "limitacoes": [
    "Análise de perfil de investidor e tolerância a riscos (<em>suitability</em>)",
    "Planejamento tributário individualizado com contador especializado",
    "Consultoria formal de investimentos emitida por profissional credenciado (CVM / Anbima)"
   ],
   "exemploAuditado": {
    "cenario": "meta de R$ 100 mil em 5 anos com R$ 15 mil de partida e aporte de R$ 800",
    "entradasSite": {
     "metaValorMeta": 100000,
     "metaValorAtual": 15000,
     "metaAporteMensal": 800,
     "metaTaxaAnual": 12,
     "metaTempoAnos": 5
    },
    "entradasMCP": {
     "valorMeta": 100000,
     "valorAtual": 15000,
     "aporteMensal": 800,
     "taxaAnualPct": 12,
     "tempoAnos": 5
    },
    "esperado": {
     "aporteNecessario": 915.64,
     "atingeMeta": false
    },
    "tolerancia": 0.01,
    "verificacao": "DESBLOQUEADO PELO FIX 2.1. O aporte planejado (800) NÃO atinge a meta — montante projetado 90.708,89 contra os 100.000 desejados — e a calculadora responde com o aporte necessário: 915,64/mês. Cenário escolhido de propósito no caso NEGATIVO: trava o sinal de atingeMeta, que invertido daria conselho financeiro errado."
   },
   "mcp": {
    "ferramenta": "calcular_meta_financeira"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/metas/?metaValorMeta={valorMeta}&metaValorAtual={valorAtual}&metaAporteMensal={aporteMensal}&metaTaxaAnual={taxaAnualPct}&metaTempoAnos={tempoAnos}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "analise-compra",
   "nome": "Análise de Compra",
   "hub": "financas",
   "url": "https://estimei.com.br/calculadoras/analise-compra/",
   "descricao": "Vale a pena o desconto à vista? Compare com o rendimento do investimento.",
   "perguntaQueResponde": "Vale mais a pena pagar à vista com desconto ou parcelar e investir o dinheiro que sobraria?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorTotal": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da compra (sem desconto), em R$.",
      "x-campoSite": "valorTotal"
     },
     "descontoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Desconto à vista oferecido, em %. Padrão 0.",
      "x-campoSite": "valorDesconto"
     },
     "parcelas": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Número de parcelas sem juros.",
      "x-campoSite": "parcelas"
     },
     "taxaMensalPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de investimento MENSAL disponível pro valor não gasto, em %.",
      "x-campoSite": "taxaInvestimento"
     }
    },
    "required": [
     "valorTotal",
     "parcelas",
     "taxaMensalPct"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorTotal": {
      "type": "number",
      "description": "Preço a prazo, em R$."
     },
     "descontoPct": {
      "type": "number",
      "description": "Desconto à vista, em %."
     },
     "descontoValor": {
      "type": "number",
      "description": "Desconto à vista, em R$."
     },
     "valorAVista": {
      "type": "number",
      "description": "Preço à vista, em R$."
     },
     "valorParcela": {
      "type": "number",
      "description": "Parcela, em R$."
     },
     "rendimentoSeParcela": {
      "type": "number",
      "description": "Quanto o dinheiro renderia aplicado enquanto se pagam as parcelas, em R$."
     },
     "descontoInvestido": {
      "type": "number",
      "description": "Desconto à vista aplicado pelo mesmo prazo, em R$."
     },
     "pctGanhoParcelar": {
      "type": "number",
      "description": "Rendimento de parcelar sobre o preço à vista, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorTotal",
     "descontoPct",
     "descontoValor",
     "valorAVista",
     "valorParcela",
     "rendimentoSeParcela",
     "descontoInvestido",
     "pctGanhoParcelar",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Valor à vista = valor total × (1 − desconto)",
    "Parcela = valor total ÷ número de parcelas",
    "Simulação mês a mês: o valor à vista fica aplicado; a cada mês ele rende a taxa informada e paga uma parcela — saldo = saldo anterior × (1 + taxa) − parcela",
    "Se, depois da última parcela, ainda sobra saldo, parcelar e investir rendeu mais que o desconto; se o saldo fica negativo, pagar à vista vence. Exemplo (o cenário verificado pela suíte de testes): R$ 12.000 com 10% de desconto saem por R$ 10.800 à vista, ou 12 × R$ 1.000. Aplicando os R$ 10.800 a 1% ao mês e pagando as parcelas, faltariam R$ 512,79 no fim — o desconto à vista vence. A calculadora também mostra, como referência, quanto o valor do desconto (R$ 1.200) renderia no mesmo prazo, e classifica a taxa informada frente à poupança e ao CDI do Banco Central."
   ],
   "fontes": [
    {
     "nome": "Lei 13.455/2017",
     "detalhe": "autoriza preço diferente conforme o prazo ou o meio de pagamento, com o desconto informado de forma visível"
    },
    {
     "nome": "Banco Central do Brasil — séries do SGS (CDI e poupança), atualização contínua",
     "detalhe": "referências para classificar a taxa de rendimento informada"
    }
   ],
   "limitacoes": [
    "Análise de perfil de investidor e tolerância a riscos (<em>suitability</em>)",
    "Planejamento tributário individualizado com contador especializado",
    "Consultoria formal de investimentos emitida por profissional credenciado (CVM / Anbima)"
   ],
   "exemploAuditado": {
    "cenario": "R$ 12.000: 10% de desconto à vista vs 12× sem juros investindo a 1%/mês",
    "entradasSite": {
     "valorTotal": 12000,
     "valorDesconto": 10,
     "parcelas": 12,
     "taxaInvestimento": 1
    },
    "entradasMCP": {
     "valorTotal": 12000,
     "descontoPct": 10,
     "parcelas": 12,
     "taxaMensalPct": 1
    },
    "esperado": {
     "descontoValor": 1200,
     "valorAVista": 10800,
     "valorParcela": 1000,
     "rendimentoSeParcela": -512.79,
     "descontoInvestido": 1352.19,
     "pctGanhoParcelar": -4.75
    },
    "tolerancia": 0.01,
    "verificacao": "Simulação mês a mês replicada: parte-se do valor à vista (10.800) investido a 1%/mês, pagando 12 parcelas de 1.000 — sobra NEGATIVA de −512,79, ou seja, à vista com 10% de desconto ganha de 12× sem juros a 1%/mês. Métrica secundária (só o desconto investido, 1.352,19) confirma a leitura. Caso deliberadamente negativo para travar o sinal do resultado — um bug de sinal aqui inverteria a recomendação de compra."
   },
   "mcp": {
    "ferramenta": "calcular_analise_compra"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/analise-compra/?valorTotal={valorTotal}&valorDesconto={descontoPct}&parcelas={parcelas}&taxaInvestimento={taxaMensalPct}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "liberdade-financeira",
   "nome": "Liberdade Financeira",
   "hub": "financas",
   "url": "https://estimei.com.br/calculadoras/liberdade-financeira/",
   "descricao": "Descubra quanto você precisa acumular para viver de renda.",
   "perguntaQueResponde": "Quanto patrimônio eu preciso acumular para viver de renda sem precisar trabalhar?",
   "entradas": {
    "type": "object",
    "properties": {
     "gastoMensal": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Gasto mensal desejado na aposentadoria, em R$.",
      "x-campoSite": "liberdadeGastoMensal"
     },
     "taxaRealAnualPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Retorno REAL (acima da inflação) esperado da carteira, ANUAL, em %.",
      "x-campoSite": "liberdadeTaxaAnual"
     }
    },
    "required": [
     "gastoMensal",
     "taxaRealAnualPct"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "gastoMensal": {
      "type": "number",
      "description": "Gasto mensal, em R$."
     },
     "taxaRealAnualPct": {
      "type": "number",
      "description": "Rendimento real (acima da inflação) ao ano, em %."
     },
     "gastoAnual": {
      "type": "number",
      "description": "Gasto anual, em R$."
     },
     "patrimonioNecessario": {
      "type": "number",
      "description": "Patrimônio cujo rendimento real cobre o gasto anual, em R$."
     },
     "patrimonioTrinity": {
      "type": "number",
      "description": "Patrimônio pela regra dos 4% (estudo Trinity), em R$."
     },
     "multiploGastoAnual": {
      "type": "number",
      "description": "Patrimônio necessário ÷ gasto anual (vezes)."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "gastoMensal",
     "taxaRealAnualPct",
     "gastoAnual",
     "patrimonioNecessario",
     "patrimonioTrinity",
     "multiploGastoAnual",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Gasto anual = gasto mensal × 12",
    "Patrimônio necessário = gasto anual ÷ taxa real anual — uma perpetuidade: a renda real cobre o gasto sem nunca consumir o principal",
    "Referência da regra dos 4% = gasto anual ÷ 0,04, ou 25 × o gasto anual",
    "Tempo até lá: saldo = saldo anterior × (1 + i) + aporte, mês a mês, com a taxa mensal equivalente, para aportes de R$ 2 mil a R$ 20 mil (até 50 anos)",
    "Exemplo (o cenário verificado pela suíte de testes): gastar R$ 8.000 por mês são R$ 96.000 por ano; a 4% reais, o patrimônio necessário é R$ 2,4 milhões — exatamente 25 vezes o gasto anual, o mesmo número da regra dos 4%."
   ],
   "fontes": [
    {
     "nome": "Cooley, Hubbard e Walz — Trinity Study (Trinity University, 1998)",
     "detalhe": "regra dos 4% de retirada segura: patrimônio ≈ 25 × gasto anual"
    },
    {
     "nome": "Equação de Fisher",
     "detalhe": "retorno real = (1 + taxa nominal) ÷ (1 + inflação) − 1"
    },
    {
     "nome": "Banco Central do Brasil — séries do SGS, atualização contínua (Selic Meta) e IPCA / IBGE",
     "detalhe": "retorno real de mercado usado como referência"
    }
   ],
   "limitacoes": [
    "Análise de perfil de investidor e tolerância a riscos (<em>suitability</em>)",
    "Planejamento tributário individualizado com contador especializado",
    "Consultoria formal de investimentos emitida por profissional credenciado (CVM / Anbima)"
   ],
   "exemploAuditado": {
    "cenario": "gasto de R$ 8.000/mês a 4% reais ao ano",
    "entradasSite": {
     "liberdadeGastoMensal": 8000,
     "liberdadeTaxaAnual": 4
    },
    "entradasMCP": {
     "gastoMensal": 8000,
     "taxaRealAnualPct": 4
    },
    "esperado": {
     "patrimonioNecessario": 2400000,
     "patrimonioTrinity": 2400000,
     "multiploGastoAnual": 25
    },
    "tolerancia": 0.01,
    "verificacao": "DESBLOQUEADO PELO FIX 2.1. Perpetuidade: 8.000 × 12 = 96.000 anual ÷ 4% = 2.400.000. Múltiplo 25× confirma a regra dos 4% (Trinity Study) — a 4% reais os dois métodos convergem por construção, o que serve de autoverificação da fórmula."
   },
   "mcp": {
    "ferramenta": "calcular_liberdade_financeira"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/liberdade-financeira/?liberdadeGastoMensal={gastoMensal}&liberdadeTaxaAnual={taxaRealAnualPct}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "metodo-50-30-20",
   "nome": "Método 50-30-20",
   "hub": "financas",
   "url": "https://estimei.com.br/calculadoras/metodo-50-30-20/",
   "descricao": "Distribua seu salário entre necessidades, desejos e investimentos.",
   "perguntaQueResponde": "Como devo dividir meu salário entre necessidades, desejos e investimentos?",
   "entradas": {
    "type": "object",
    "properties": {
     "rendaMensal": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Renda mensal líquida, em R$.",
      "x-campoSite": "metodoRendaMensal"
     }
    },
    "required": [
     "rendaMensal"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "renda": {
      "type": "number",
      "description": "Renda mensal líquida, em R$."
     },
     "necessidades": {
      "type": "number",
      "description": "50% para necessidades, em R$."
     },
     "desejos": {
      "type": "number",
      "description": "30% para desejos, em R$."
     },
     "poupanca": {
      "type": "number",
      "description": "20% para poupança e investimento, em R$."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "renda",
     "necessidades",
     "desejos",
     "poupanca",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Necessidades = renda × 0,50",
    "Desejos = renda × 0,30",
    "Poupança = renda × 0,20 — vira um aporte mensal fixo",
    "Para projetar os 20% em 1, 5 e 10 anos, a taxa anual é convertida na taxa mensal equivalente, i = (1 + taxa anual)1/12 − 1, e o saldo evolui mês a mês: saldo = saldo anterior × (1 + i) + aporte. A comparação usa a rentabilidade acumulada da poupança e o CDI, a partir das séries do Banco Central (SGS), com a data de referência mostrada no resultado. Exemplo (o cenário verificado pela suíte de testes): uma renda de R$ 5.000 vira R$ 2.500 para necessidades, R$ 1.500 para desejos e um aporte de R$ 1.000 por mês."
   ],
   "fontes": [
    {
     "nome": "Método 50-30-20 (Elizabeth Warren e Amelia Warren Tyagi, All Your Worth, 2005)",
     "detalhe": "origem da divisão 50% necessidades, 30% desejos e 20% poupança"
    },
    {
     "nome": "Banco Central do Brasil — séries do SGS (CDI e poupança), atualização contínua",
     "detalhe": "taxas usadas na projeção dos 20% investidos"
    }
   ],
   "limitacoes": [
    "Análise de perfil de investidor e tolerância a riscos (<em>suitability</em>)",
    "Planejamento tributário individualizado com contador especializado",
    "Consultoria formal de investimentos emitida por profissional credenciado (CVM / Anbima)"
   ],
   "exemploAuditado": {
    "cenario": "renda de R$ 5.000",
    "entradasSite": {
     "metodoRendaMensal": 5000
    },
    "entradasMCP": {
     "rendaMensal": 5000
    },
    "esperado": {
     "renda": 5000,
     "necessidades": 2500,
     "desejos": 1500,
     "poupanca": 1000
    },
    "tolerancia": 0,
    "verificacao": "Aritmética direta 50/30/20 — determinística. CORREÇÃO 25/07 (achado do runner): o harness legado usava o id 'renda', que não existe; o campo real é 'metodoRendaMensal'. O teste legado nunca preencheu nada — passava porque só verificava se o texto continha '2.500'."
   },
   "mcp": {
    "ferramenta": "calcular_metodo_50_30_20"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/metodo-50-30-20/?metodoRendaMensal={rendaMensal}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "calculo-atraso",
   "nome": "Cálculo de Atraso",
   "hub": "financas",
   "url": "https://estimei.com.br/calculadoras/calculo-atraso/",
   "descricao": "Calcule o total de um débito com multa, juros e correção monetária.",
   "perguntaQueResponde": "Quanto vou pagar no total se atrasar essa dívida por alguns dias, somando multa, juros e correção?",
   "entradas": {
    "type": "object",
    "properties": {
     "valor": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor original da dívida, em R$.",
      "x-campoSite": "valor"
     },
     "multaPct": {
      "type": "number",
      "minimum": 0,
      "description": "Multa por atraso, em % (teto de 2% pro CDC Art. 52 em relação de consumo).",
      "x-campoSite": "multa"
     },
     "jurosDiarioPct": {
      "type": "number",
      "minimum": 0,
      "description": "Juros de mora, em % AO DIA.",
      "x-campoSite": "juros"
     },
     "dias": {
      "type": "number",
      "minimum": 0,
      "description": "Dias de atraso.",
      "x-campoSite": "dias"
     },
     "correcaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Correção monetária acumulada no período, em %. Padrão 0.",
      "x-campoSite": "correcao"
     }
    },
    "required": [
     "valor",
     "multaPct",
     "jurosDiarioPct",
     "dias"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valor": {
      "type": "number",
      "description": "Valor original, em R$."
     },
     "valorCorrigido": {
      "type": "number",
      "description": "Valor com a correção monetária, em R$."
     },
     "valorCorrecao": {
      "type": "number",
      "description": "Correção monetária, em R$."
     },
     "valorMulta": {
      "type": "number",
      "description": "Multa, em R$."
     },
     "valorJuros": {
      "type": "number",
      "description": "Juros de mora, em R$."
     },
     "total": {
      "type": "number",
      "description": "Total a pagar, em R$."
     },
     "acrescimoPct": {
      "type": "number",
      "description": "Acréscimo sobre o valor original, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valor",
     "valorCorrigido",
     "valorCorrecao",
     "valorMulta",
     "valorJuros",
     "total",
     "acrescimoPct",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "A ordem importa: primeiro a correção monetária atualiza o valor original, e a multa e os juros incidem sobre esse valor já corrigido.",
    "Valor corrigido = valor original × (1 + correção)",
    "Multa = valor corrigido × percentual da multa",
    "Juros = valor corrigido × juros ao dia × dias de atraso",
    "Total a pagar = valor corrigido + multa + juros",
    "Os juros são simples: crescem em linha reta, dia a dia, sem juros sobre juros — o mesmo regime que a Res. CMN 5.171/2024 determina para a taxa legal. Exemplo (o cenário verificado pela suíte de testes do Estimei): uma conta de R$ 1.000 com 60 dias de atraso, correção de 1,5%, multa de 2% e juros de 0,033% ao dia vira R$ 1.015,00 corrigidos, mais R$ 20,30 de multa e R$ 20,10 de juros — R$ 1.055,40 no total, 5,54% a mais que o original."
   ],
   "fontes": [
    {
     "nome": "Código Civil, Art. 406, com a redação da Lei 14.905/2024",
     "detalhe": "taxa legal = Selic − IPCA quando o contrato não fixa os juros"
    },
    {
     "nome": "Resolução CMN 5.171/2024",
     "detalhe": "metodologia da taxa legal: apuração mensal, juros simples e taxa zero se negativa"
    },
    {
     "nome": "STJ, Tema 1.368",
     "detalhe": "Selic como taxa dos juros de mora das dívidas civis no período anterior à Lei 14.905/2024"
    },
    {
     "nome": "Código de Defesa do Consumidor, Art. 52, § 1º",
     "detalhe": "multa de mora de no máximo 2% nas relações de consumo"
    }
   ],
   "limitacoes": [
    "Análise de perfil de investidor e tolerância a riscos (<em>suitability</em>)",
    "Planejamento tributário individualizado com contador especializado",
    "Consultoria formal de investimentos emitida por profissional credenciado (CVM / Anbima)"
   ],
   "exemploAuditado": {
    "cenario": "dívida de R$ 1.000 com 60 dias de atraso — multa 2%, juros 0,033%/dia, correção 1,5%",
    "entradasSite": {
     "valor": 1000,
     "multa": 2,
     "juros": 0.033,
     "dias": 60,
     "correcao": 1.5
    },
    "entradasMCP": {
     "valor": 1000,
     "multaPct": 2,
     "jurosDiarioPct": 0.033,
     "dias": 60,
     "correcaoPct": 1.5
    },
    "esperado": {
     "valorCorrigido": 1015,
     "valorCorrecao": 15,
     "valorMulta": 20.3,
     "valorJuros": 20.1,
     "total": 1055.4,
     "acrescimoPct": 5.54
    },
    "tolerancia": 0.01,
    "verificacao": "Ordem de incidência verificada: correção monetária PRIMEIRO, depois multa e juros sobre o valor JÁ CORRIGIDO (1.015,00) — não sobre o original. Multa 2% respeita o teto do CDC Art. 52 para relação de consumo. Derivação manual confere com o código."
   },
   "mcp": {
    "ferramenta": "calcular_atraso"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/calculo-atraso/?valor={valor}&multa={multaPct}&juros={jurosDiarioPct}&dias={dias}&correcao={correcaoPct}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "financiamento-imovel",
   "nome": "Financiamento (Price)",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/financiamento-imovel/",
   "descricao": "Simule parcelas e custo total do financiamento imobiliário.",
   "perguntaQueResponde": "Qual vai ser a parcela e o custo total se eu financiar este imóvel pela tabela Price?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do imóvel, em R$.",
      "x-campoSite": "finanValorImovel"
     },
     "entrada": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Valor de entrada, em R$. Padrão 0.",
      "x-campoSite": "finanEntrada"
     },
     "taxaAnual": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de juros ANUAL em % (ex.: 10.26).",
      "x-campoSite": "finanTaxaAnual"
     },
     "prazoAnos": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Prazo do financiamento, em anos.",
      "x-campoSite": "finanPrazoAnos"
     },
     "renda": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Renda mensal do comprador, em R$ (pra checar o limite de 30%).",
      "x-campoSite": "finanRenda"
     },
     "idade": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Idade do comprador, em anos. Padrão 0 (não checa idade+prazo≤80).",
      "x-campoSite": "finanIdade"
     }
    },
    "required": [
     "valorImovel",
     "taxaAnual",
     "prazoAnos",
     "renda"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "description": "Valor do imóvel, em R$."
     },
     "entrada": {
      "type": "number",
      "description": "Entrada, em R$."
     },
     "pctEntrada": {
      "type": "number",
      "description": "Entrada sobre o valor do imóvel, em %."
     },
     "saldo": {
      "type": "number",
      "description": "Valor financiado, em R$."
     },
     "taxaAnual": {
      "type": "number",
      "description": "Taxa de juros ao ano, em %."
     },
     "prazoAnos": {
      "type": "number",
      "description": "Prazo, em anos."
     },
     "prazoMeses": {
      "type": "number",
      "description": "Prazo, em meses."
     },
     "sistema": {
      "type": "string",
      "description": "Sistema de amortização: Price ou SAC."
     },
     "parcela": {
      "type": "number",
      "description": "Parcela mensal (a primeira, no SAC), em R$."
     },
     "totalPago": {
      "type": "number",
      "description": "Soma das parcelas, em R$."
     },
     "totalJuros": {
      "type": "number",
      "description": "Juros pagos no contrato, em R$."
     },
     "renda": {
      "type": "number",
      "description": "Renda mensal informada, em R$."
     },
     "limite30": {
      "type": "number",
      "description": "30% da renda — teto de comprometimento usado pelos bancos, em R$."
     },
     "pctRenda": {
      "type": "number",
      "description": "Parcela sobre a renda, em %."
     },
     "aprovado": {
      "type": "boolean",
      "description": "true se a parcela cabe em 30% da renda."
     },
     "rendaMin": {
      "type": "number",
      "description": "Renda mínima para a parcela caber em 30%, em R$."
     },
     "idade": {
      "type": "number",
      "description": "Idade informada, em anos (0 se não informada)."
     },
     "avisos": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "description": "Alertas sobre prazo máximo por idade e entrada abaixo de 20%."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorImovel",
     "entrada",
     "pctEntrada",
     "saldo",
     "taxaAnual",
     "prazoAnos",
     "prazoMeses",
     "sistema",
     "parcela",
     "totalPago",
     "totalJuros",
     "renda",
     "limite30",
     "pctRenda",
     "aprovado",
     "rendaMin",
     "idade",
     "avisos",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Valor financiado = valor do imóvel − entrada",
    "Taxa mensal = (1 + taxa anual)1/12 − 1",
    "Parcela (Price) = financiado × i ÷ (1 − (1 + i)−n), com n = prazo em meses; total pago = parcela × n",
    "Limite da renda = 30% da renda bruta; renda mínima = parcela ÷ 0,30",
    "Exemplo (o cenário verificado pela suíte de testes): imóvel de R$ 400 mil com 20% de entrada, 10,26% ao ano em 30 anos. Financiando R$ 320 mil, a parcela é de R$ 2.762,69 e o total pago chega a R$ 994.568,40. Com renda de R$ 9 mil, a parcela ocupa 30,7% — pede renda mínima de R$ 9.208,97."
   ],
   "fontes": [
    {
     "nome": "Resolução CMN 4.676/2018",
     "detalhe": "condições dos financiamentos do SFH e do SBPE"
    },
    {
     "nome": "Resolução CMN 5.255/2025",
     "detalhe": "teto de R$ 2,25 milhões de avaliação do imóvel no SFH"
    },
    {
     "nome": "Resolução CMN 3.517/2007",
     "detalhe": "Custo Efetivo Total (CET) informado pelo banco antes da contratação"
    },
    {
     "nome": "Lei 9.514/1997, Art. 5º, IV",
     "detalhe": "seguro de morte e invalidez (MIP) obrigatório; o DFI (danos físicos ao imóvel) é exigido pelos bancos, com livre escolha da seguradora (STJ Tema 972)"
    },
    {
     "nome": "STJ, Tema 972",
     "detalhe": "livre escolha da seguradora, sem venda casada"
    }
   ],
   "limitacoes": [
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "R$ 400 mil, entrada 20%, 10,26% a.a. (Caixa SFH), 30 anos, renda 9 mil",
    "entradasSite": {
     "finanValorImovel": 400000,
     "finanEntrada": 80000,
     "finanTaxaAnual": 10.26,
     "finanPrazoAnos": 30,
     "finanRenda": 9000,
     "finanIdade": 35
    },
    "entradasMCP": {
     "valorImovel": 400000,
     "entrada": 80000,
     "taxaAnual": 10.26,
     "prazoAnos": 30,
     "renda": 9000,
     "idade": 35
    },
    "esperado": {
     "pctEntrada": 20,
     "saldo": 320000,
     "parcela": 2762.69,
     "totalPago": 994568.4,
     "totalJuros": 674568.4,
     "limite30": 2700,
     "pctRenda": 30.7,
     "rendaMin": 9208.97
    },
    "tolerancia": 0.01,
    "verificacao": "Price puro derivado à mão: taxa mensal EFETIVA (1,1026)^(1/12)−1 = 0,817247%/mês → PMT 2.762,69. Regra dos 30% (prática consolidada das políticas de crédito bancário e do SFH) corretamente sinalizada: parcela = 30,7% da renda, acima do limite de R$ 2.700; renda mínima exigida 9.208,97. Python = navegador, 25/07/2026."
   },
   "mcp": {
    "ferramenta": "calcular_financiamento_imovel"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/financiamento-imovel/?finanValorImovel={valorImovel}&finanEntrada={entrada}&finanTaxaAnual={taxaAnual}&finanPrazoAnos={prazoAnos}&finanRenda={renda}&finanIdade={idade}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "sac-vs-price",
   "nome": "SAC vs Price",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/sac-vs-price/",
   "descricao": "Compare os dois sistemas de amortização e economize.",
   "perguntaQueResponde": "Qual sistema de amortização vai me fazer pagar menos juros no total e qual parcela cabe no meu orçamento mensal?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do imóvel, em R$.",
      "x-campoSite": "compValorImovel"
     },
     "entrada": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Valor de entrada, em R$. Padrão 0.",
      "x-campoSite": "compEntrada"
     },
     "taxaAnual": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de juros ANUAL em % (ex.: 10.26).",
      "x-campoSite": "compTaxaAnual"
     },
     "prazoAnos": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Prazo do financiamento, em anos.",
      "x-campoSite": "compPrazoAnos"
     }
    },
    "required": [
     "valorImovel",
     "taxaAnual",
     "prazoAnos"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "description": "Valor do imóvel, em R$."
     },
     "entrada": {
      "type": "number",
      "description": "Entrada, em R$."
     },
     "saldo": {
      "type": "number",
      "description": "Valor financiado, em R$."
     },
     "taxaAnual": {
      "type": "number",
      "description": "Taxa de juros ao ano, em %."
     },
     "prazoAnos": {
      "type": "number",
      "description": "Prazo, em anos."
     },
     "prazoMeses": {
      "type": "number",
      "description": "Prazo, em meses."
     },
     "parcelaPrice": {
      "type": "number",
      "description": "Parcela mensal fixa na Price, em R$."
     },
     "totalPrice": {
      "type": "number",
      "description": "Soma das parcelas na Price, em R$."
     },
     "jurosPrice": {
      "type": "number",
      "description": "Juros pagos na Price, em R$."
     },
     "amortizacao": {
      "type": "number",
      "description": "Amortização mensal constante no SAC, em R$."
     },
     "primeiraParcelaSAC": {
      "type": "number",
      "description": "Primeira parcela no SAC (a maior), em R$."
     },
     "ultimaParcelaSAC": {
      "type": "number",
      "description": "Última parcela no SAC (a menor), em R$."
     },
     "totalSAC": {
      "type": "number",
      "description": "Soma das parcelas no SAC, em R$."
     },
     "jurosSAC": {
      "type": "number",
      "description": "Juros pagos no SAC, em R$."
     },
     "economiaSAC": {
      "type": "number",
      "description": "Total Price − total SAC, em R$."
     },
     "pctEconomia": {
      "type": "number",
      "description": "Economia do SAC sobre o total da Price, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorImovel",
     "entrada",
     "saldo",
     "taxaAnual",
     "prazoAnos",
     "prazoMeses",
     "parcelaPrice",
     "totalPrice",
     "jurosPrice",
     "amortizacao",
     "primeiraParcelaSAC",
     "ultimaParcelaSAC",
     "totalSAC",
     "jurosSAC",
     "economiaSAC",
     "pctEconomia",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Taxa mensal = (1 + taxa anual)1/12 − 1",
    "Price: parcela fixa = saldo × i ÷ (1 − (1 + i)−n); total = parcela × n",
    "SAC: amortização = saldo ÷ n; cada parcela = amortização + juros sobre o saldo do mês; a primeira é a maior e a última, a menor",
    "Economia do SAC = total do Price − total do SAC",
    "Exemplo (o cenário verificado pela suíte de testes): R$ 320 mil a 10,26% ao ano em 30 anos. No Price, 360 parcelas de R$ 2.762,69 e R$ 674.568,40 de juros. No SAC, a primeira parcela é R$ 3.504,08, a última R$ 896,15, e os juros caem para R$ 472.041,45 — R$ 202.526,95 a menos."
   ],
   "fontes": [
    {
     "nome": "Resolução CMN 4.676/2018",
     "detalhe": "condições dos financiamentos do SFH e do SBPE"
    },
    {
     "nome": "Resolução CMN 3.517/2007",
     "detalhe": "Custo Efetivo Total (CET) informado pelo banco antes da contratação"
    },
    {
     "nome": "Lei 9.514/1997, Art. 5º, IV",
     "detalhe": "seguro de morte e invalidez (MIP) obrigatório em qualquer sistema de amortização; o DFI é exigido pelos bancos"
    }
   ],
   "limitacoes": [
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "mesmo financiamento — SAC vs Price em 360 meses",
    "entradasSite": {
     "compValorImovel": 400000,
     "compEntrada": 80000,
     "compTaxaAnual": 10.26,
     "compPrazoAnos": 30
    },
    "entradasMCP": {
     "valorImovel": 400000,
     "entrada": 80000,
     "taxaAnual": 10.26,
     "prazoAnos": 30
    },
    "esperado": {
     "saldo": 320000,
     "parcelaPrice": 2762.69,
     "totalPrice": 994568.4,
     "jurosPrice": 674568.4,
     "primeiraParcelaSAC": 3504.08,
     "ultimaParcelaSAC": 896.15,
     "totalSAC": 792041.45,
     "jurosSAC": 472041.45,
     "economiaSAC": 202526.95,
     "pctEconomia": 20.4
    },
    "tolerancia": 0.01,
    "verificacao": "Cronograma SAC de 360 meses replicado iteração a iteração (amortização arredondada 888,89 antes do loop, conforme o código): primeira 3.504,08 → última 896,15; total 792.041,45. Consistência cruzada verificada: parcelaPrice, totalPrice e jurosPrice são IDÊNTICOS aos de financiamento-imovel no mesmo cenário — duas calculadoras independentes concordando. Economia SAC 202.526,95 (20,4%) respeita a propriedade matemática totalSAC ≤ totalPrice. Python = navegador, 25/07/2026."
   },
   "mcp": {
    "ferramenta": "calcular_sac_vs_price"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/sac-vs-price/?compValorImovel={valorImovel}&compEntrada={entrada}&compTaxaAnual={taxaAnual}&compPrazoAnos={prazoAnos}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "aluguel-vs-compra",
   "nome": "Aluguel vs Compra",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/aluguel-vs-compra/",
   "descricao": "Compare o custo real de alugar ou comprar um imóvel.",
   "perguntaQueResponde": "Compensa mais financeiramente financiar um imóvel ou morar de aluguel e investir a diferença?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do imóvel à vista, em R$.",
      "x-campoSite": "alqValorImovel"
     },
     "aluguel": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Aluguel mensal equivalente, em R$.",
      "x-campoSite": "alqValorAluguel"
     },
     "taxaAnualPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de investimento ANUAL em % (o que renderia o dinheiro não gasto na compra).",
      "x-campoSite": "alqTaxaInvestimento"
     },
     "prazoAnos": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Horizonte da comparação, em anos.",
      "x-campoSite": "alqPrazoAnos"
     },
     "valorizacaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Valorização ANUAL esperada do imóvel, em %. Padrão 0.",
      "x-campoSite": "alqValorizacao"
     },
     "custosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custos de aquisição (ITBI, escritura, registro), em % do valor do imóvel. Padrão 0.",
      "x-campoSite": "alqCustosCompra"
     },
     "condominio": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Condomínio mensal, em R$. Padrão 0.",
      "x-campoSite": "alqCondominio"
     },
     "iptu": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "IPTU mensal, em R$. Padrão 0.",
      "x-campoSite": "alqIPTU"
     },
     "manutencao": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Manutenção mensal do imóvel próprio, em R$. Padrão 0.",
      "x-campoSite": "alqManutencao"
     },
     "reajustePct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Reajuste ANUAL do aluguel, em %. Padrão 0.",
      "x-campoSite": "alqReajuste"
     }
    },
    "required": [
     "valorImovel",
     "aluguel",
     "taxaAnualPct",
     "prazoAnos"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "description": "Valor do imóvel, em R$."
     },
     "aluguel": {
      "type": "number",
      "description": "Aluguel mensal inicial, em R$."
     },
     "valorizacaoPct": {
      "type": "number",
      "description": "Valorização do imóvel ao ano, em %."
     },
     "prazoAnos": {
      "type": "number",
      "description": "Horizonte da comparação, em anos."
     },
     "custosPct": {
      "type": "number",
      "description": "Custos de aquisição sobre o valor do imóvel, em %."
     },
     "condominio": {
      "type": "number",
      "description": "Condomínio mensal, em R$."
     },
     "iptu": {
      "type": "number",
      "description": "IPTU mensal, em R$."
     },
     "manutencao": {
      "type": "number",
      "description": "Manutenção mensal de quem compra, em R$."
     },
     "reajustePct": {
      "type": "number",
      "description": "Reajuste do aluguel ao ano, em %."
     },
     "indiceReajuste": {
      "type": "string",
      "description": "Índice de reajuste informado (só rótulo; a conta usa reajustePct)."
     },
     "taxaAnualPct": {
      "type": "number",
      "description": "Rendimento anual do dinheiro investido por quem aluga, em %."
     },
     "custosAquisicao": {
      "type": "number",
      "description": "Custos de aquisição, em R$."
     },
     "capitalCompra": {
      "type": "number",
      "description": "Capital usado na compra (imóvel + custos), em R$."
     },
     "custosComunsMes": {
      "type": "number",
      "description": "Custos mensais comuns às duas opções, em R$."
     },
     "custoComprarMes": {
      "type": "number",
      "description": "Custo mensal extra de quem compra, em R$."
     },
     "custoAlugarMes": {
      "type": "number",
      "description": "Custo mensal de quem aluga (aluguel inicial), em R$."
     },
     "valorFuturo": {
      "type": "number",
      "description": "Valor do imóvel no fim do horizonte, em R$."
     },
     "totalCustosCompra": {
      "type": "number",
      "description": "Custos de quem compra no horizonte, em R$."
     },
     "patrimonioCompra": {
      "type": "number",
      "description": "Patrimônio de quem compra no fim do horizonte, em R$."
     },
     "saldoInvestido": {
      "type": "number",
      "description": "Patrimônio de quem aluga e investe a diferença, no fim do horizonte, em R$."
     },
     "totalCustosAluguel": {
      "type": "number",
      "description": "Aluguéis pagos no horizonte, em R$."
     },
     "aluguelFinal": {
      "type": "number",
      "description": "Aluguel mensal no fim do horizonte, em R$."
     },
     "ratioAnual": {
      "type": "number",
      "description": "Valor do imóvel ÷ aluguel anual (anos de aluguel que pagam o imóvel)."
     },
     "yieldBruto": {
      "type": "number",
      "description": "Aluguel anual sobre o valor do imóvel, ao ano, em %."
     },
     "comprarMelhor": {
      "type": "boolean",
      "description": "true se comprar deixa mais patrimônio no fim do horizonte."
     },
     "diferenca": {
      "type": "number",
      "description": "Diferença absoluta de patrimônio entre as duas opções, em R$."
     },
     "equilibrioAnos": {
      "type": [
       "number",
       "null"
      ],
      "description": "Primeiro ano (até 35) em que o imóvel, descontados os custos de quem compra, vale mais que o saldo investido de quem aluga (null se não acontece)."
     },
     "breakEvenAnos": {
      "type": [
       "number",
       "null"
      ],
      "description": "Primeiro ano em que os patrimônios das duas opções ficam a menos de 1% um do outro (null se não ficam)."
     },
     "breakEvenPatrimonio": {
      "type": "number",
      "description": "Patrimônio no ano de equilíbrio (0 se não há), em R$."
     },
     "categoriaRecomendacao": {
      "type": "string",
      "enum": [
       "comprar",
       "alugar",
       "equilibrio"
      ],
      "description": "Recomendação: comprar, alugar ou equilibrio."
     },
     "comprarMelhorNaoDuvida": {
      "type": "boolean",
      "description": "true se o patrimônio de quem compra supera o de quem aluga com folga de mais de 20%."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorImovel",
     "aluguel",
     "valorizacaoPct",
     "prazoAnos",
     "custosPct",
     "condominio",
     "iptu",
     "manutencao",
     "reajustePct",
     "indiceReajuste",
     "taxaAnualPct",
     "custosAquisicao",
     "capitalCompra",
     "custosComunsMes",
     "custoComprarMes",
     "custoAlugarMes",
     "valorFuturo",
     "totalCustosCompra",
     "patrimonioCompra",
     "saldoInvestido",
     "totalCustosAluguel",
     "aluguelFinal",
     "ratioAnual",
     "yieldBruto",
     "comprarMelhor",
     "diferenca",
     "equilibrioAnos",
     "breakEvenAnos",
     "breakEvenPatrimonio",
     "categoriaRecomendacao",
     "comprarMelhorNaoDuvida",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Comprar: capital = imóvel + custos de compra; patrimônio no fim = imóvel valorizado − (custos de compra + condomínio, IPTU e manutenção × meses)",
    "Alugar e investir: o mesmo capital rende a taxa mensal equivalente; todo mês saem aluguel, condomínio e IPTU, e o aluguel sobe pelo índice a cada 12 meses",
    "Resultado = patrimônio de quem comprou comparado ao saldo investido de quem alugou",
    "Relação preço/aluguel = valor do imóvel ÷ aluguel anual",
    "Exemplo (o cenário verificado pela suíte de testes): imóvel de R$ 500 mil ou aluguel de R$ 2.500, em 10 anos, com 4% de valorização e 14,4% de rendimento. Comprando, o patrimônio chega a R$ 583.122,14; alugando e investindo os R$ 525 mil, o saldo chega a R$ 1.070.849,39. A taxa do investimento é bruta — sem o IR da aplicação, que reduz essa vantagem."
   ],
   "fontes": [
    {
     "nome": "Lei 8.245/1991 (Lei do Inquilinato), Arts. 22 e 23",
     "detalhe": "obrigações do locador (manutenção estrutural; IPTU, salvo contrato em contrário — Art. 22, VIII) e do inquilino (pequenos reparos)"
    },
    {
     "nome": "Constituição Federal, Art. 156",
     "detalhe": "ITBI na compra, de competência municipal"
    },
    {
     "nome": "Lei 6.015/1973",
     "detalhe": "escritura e registro do imóvel comprado"
    },
    {
     "nome": "IPCA / IBGE — índice oficial de inflação, com divulgação mensal",
     "detalhe": "referência de reajuste do aluguel"
    }
   ],
   "limitacoes": [
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "Imóvel de R$ 500 mil vs aluguel de R$ 2.500, 10 anos, CDI 14,4% a.a. informado pelo usuário",
    "entradasSite": {
     "alqValorImovel": 500000,
     "alqValorAluguel": 2500,
     "alqValorizacao": 4,
     "alqPrazoAnos": 10,
     "alqCondominio": 600,
     "alqIPTU": 200,
     "alqCustosCompra": 5,
     "alqManutencao": 300,
     "alqIndiceReajuste": "ipca",
     "alqReajuste": 4.72,
     "alqTaxaInvestimento": 14.4
    },
    "entradasMCP": {
     "valorImovel": 500000,
     "aluguel": 2500,
     "valorizacaoPct": 4,
     "prazoAnos": 10,
     "condominio": 600,
     "iptu": 200,
     "custosPct": 5,
     "manutencao": 300,
     "reajustePct": 4.72,
     "taxaAnualPct": 14.4
    },
    "esperado": {
     "custosAquisicao": 25000,
     "capitalCompra": 525000,
     "custosComunsMes": 800,
     "custoComprarMes": 1100,
     "custoAlugarMes": 3300,
     "valorFuturo": 740122.14,
     "totalCustosCompra": 157000,
     "patrimonioCompra": 583122.14,
     "saldoInvestido": 1070849.39,
     "totalCustosAluguel": 468441.6,
     "aluguelFinal": 3786.22,
     "ratioAnual": 16.7,
     "yieldBruto": 6,
     "diferenca": 487727.25,
     "comprarMelhor": false,
     "comprarMelhorNaoDuvida": false,
     "categoriaRecomendacao": "equilibrio",
     "indiceReajuste": "ipca",
     "taxaAnualPct": 14.4,
     "reajustePct": 4.72
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual, operação a operação (aluguel-vs-compra.js:59-101). Custos de aquisição = 500.000 × 5% = 25.000 → capital imobilizado 525.000. Custos comuns = round(600+200, 0 casas) = 800; comprar = round(800+300,0) = 1.100/mês; alugar = round(2500+800,0) = 3.300/mês. COMPRAR: valor futuro = 500.000 × 1,04^10 = 740.122,14; custos totais = 25.000 + 1.100×120 = 157.000; patrimônio = 583.122,14. ALUGAR+INVESTIR: taxa mensal equivalente = 1,144^(1/12)−1; loop de 120 meses com reajuste do aluguel a cada 12 meses (i>0 && i%12===0), saída = aluguel corrente + 800 → saldo 1.070.849,39 e aluguel final 2.500×1,0472^9 = 3.786,22 (9 reajustes em 120 meses, não 10 — o mês 0 não reajusta). Diferença = 487.727,25 a favor de alugar. Ratio preço/aluguel = 500.000/30.000 = 16,67 → round(...,1) = 16,7 (zona de equilíbrio); yield bruto = 6,00% a.a. — bate com a referência do próprio código (SP ≈ 0,5%/mês ⇒ ratio ~16,7x). NÃO asseveramos equilibrioAnos nem breakEvenAnos: com estes parâmetros ambos são null e o runner trata null como 'ausente na ponte' (runner.html:129). Cenário é independente de Benchmarks: bm só alimenta texto de dicas, nenhum número."
   },
   "mcp": {
    "ferramenta": "calcular_aluguel_vs_compra"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/aluguel-vs-compra/?alqValorImovel={valorImovel}&alqValorAluguel={aluguel}&alqTaxaInvestimento={taxaAnualPct}&alqPrazoAnos={prazoAnos}&alqValorizacao={valorizacaoPct}&alqCustosCompra={custosPct}&alqCondominio={condominio}&alqIPTU={iptu}&alqManutencao={manutencao}&alqReajuste={reajustePct}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "rendimento-aluguel",
   "nome": "Rendimento de Aluguel",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/rendimento-aluguel/",
   "descricao": "Calcule a rentabilidade real do seu investimento imobiliário.",
   "perguntaQueResponde": "Qual é o retorno real (yield líquido) que esse imóvel alugado vai me dar depois de todas as despesas?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do imóvel, em R$.",
      "x-campoSite": "aluguelValorImovel"
     },
     "aluguelMes": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Aluguel bruto recebido por mês, em R$.",
      "x-campoSite": "aluguelMensal"
     },
     "valorizPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Valorização ANUAL esperada do imóvel, em %. Padrão 0.",
      "x-campoSite": "aluguelValorizacao"
     },
     "vacanciaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Taxa de vacância esperada, em % da renda bruta anual. Padrão 0.",
      "x-campoSite": "aluguelVacancia"
     },
     "admPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Taxa de administração imobiliária, em % da receita efetiva. Padrão 0.",
      "x-campoSite": "aluguelAdministracao"
     },
     "manutPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Manutenção anual, em % do valor do imóvel. Padrão 0.",
      "x-campoSite": "aluguelManutencao"
     },
     "iptuAnual": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "IPTU anual, em R$. Padrão 0.",
      "x-campoSite": "aluguelIPTU"
     },
     "seguroAnual": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Seguro anual, em R$. Padrão 0.",
      "x-campoSite": "aluguelSeguro"
     }
    },
    "required": [
     "valorImovel",
     "aluguelMes"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "description": "Valor do imóvel, em R$."
     },
     "aluguelMes": {
      "type": "number",
      "description": "Aluguel mensal, em R$."
     },
     "valorizPct": {
      "type": "number",
      "description": "Valorização do imóvel ao ano, em %."
     },
     "vacanciaPct": {
      "type": "number",
      "description": "Vacância sobre a renda anual, em %."
     },
     "admPct": {
      "type": "number",
      "description": "Taxa de administração sobre a renda, em %."
     },
     "manutPct": {
      "type": "number",
      "description": "Manutenção sobre a renda, em %."
     },
     "iptuAnual": {
      "type": "number",
      "description": "IPTU anual, em R$."
     },
     "seguroAnual": {
      "type": "number",
      "description": "Seguro anual, em R$."
     },
     "rendaBruta": {
      "type": "number",
      "description": "Aluguel de 12 meses, em R$."
     },
     "perdaVacancia": {
      "type": "number",
      "description": "Renda perdida com vacância, no ano, em R$."
     },
     "receitaEfetiva": {
      "type": "number",
      "description": "Renda bruta − vacância, no ano, em R$."
     },
     "irMensal": {
      "type": "number",
      "description": "IR mensal sobre o aluguel (tabela da pessoa física), em R$."
     },
     "irValor": {
      "type": "number",
      "description": "IR sobre o aluguel, no ano, em R$."
     },
     "irPctEfetivo": {
      "type": "number",
      "description": "IR anual sobre a receita efetiva, em %."
     },
     "custoAdm": {
      "type": "number",
      "description": "Administração, no ano, em R$."
     },
     "custoManut": {
      "type": "number",
      "description": "Manutenção, no ano, em R$."
     },
     "totalDespesas": {
      "type": "number",
      "description": "Despesas do ano (administração, manutenção, IPTU, seguro e IR), em R$."
     },
     "rendaLiquida": {
      "type": "number",
      "description": "Renda líquida do ano, em R$."
     },
     "fluxoMensal": {
      "type": "number",
      "description": "Renda líquida por mês, em R$."
     },
     "yieldBruto": {
      "type": "number",
      "description": "Aluguel anual sobre o valor do imóvel, ao ano, em %."
     },
     "yieldLiquido": {
      "type": "number",
      "description": "Renda líquida sobre o valor do imóvel, ao ano, em %."
     },
     "capRate": {
      "type": "number",
      "description": "Cap rate, ao ano, em %."
     },
     "ganhoValorizacao": {
      "type": "number",
      "description": "Valorização do imóvel em um ano, em R$."
     },
     "retornoTotal": {
      "type": "number",
      "description": "Yield líquido + valorização, ao ano, em %."
     },
     "paybackYears": {
      "type": [
       "number",
       "null"
      ],
      "description": "Tempo para a renda líquida pagar o imóvel (null se o yield líquido é ≤ 0), em anos."
     },
     "avaliacao": {
      "type": "string",
      "description": "Leitura qualitativa do yield comparado à média nacional."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorImovel",
     "aluguelMes",
     "valorizPct",
     "vacanciaPct",
     "admPct",
     "manutPct",
     "iptuAnual",
     "seguroAnual",
     "rendaBruta",
     "perdaVacancia",
     "receitaEfetiva",
     "irMensal",
     "irValor",
     "irPctEfetivo",
     "custoAdm",
     "custoManut",
     "totalDespesas",
     "rendaLiquida",
     "fluxoMensal",
     "yieldBruto",
     "yieldLiquido",
     "capRate",
     "ganhoValorizacao",
     "retornoTotal",
     "paybackYears",
     "avaliacao",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Receita efetiva = aluguel × 12 − vacância",
    "Despesas = administração (sobre a receita) + manutenção (sobre o valor do imóvel) + IPTU + seguro + IR do aluguel pela tabela progressiva",
    "Renda líquida = receita efetiva − despesas; fluxo mensal = renda líquida ÷ 12",
    "Yield bruto = aluguel anual ÷ valor; yield líquido = renda líquida ÷ valor; retorno total = yield líquido + valorização",
    "Exemplo (o cenário verificado pela suíte de testes): imóvel de R$ 500 mil alugado por R$ 2.500, com 8% de vacância e 10% de administração. A renda líquida é de R$ 17.840 por ano (R$ 1.486,67 por mês): yield bruto de 6% e líquido de 3,57%; com 4% de valorização, retorno total de 7,57%."
   ],
   "fontes": [
    {
     "nome": "Lei 8.245/1991 (Lei do Inquilinato), Art. 22, VIII",
     "detalhe": "IPTU é do proprietário, salvo repasse expresso no contrato"
    },
    {
     "nome": "Constituição Federal, Art. 156",
     "detalhe": "IPTU, de competência municipal"
    },
    {
     "nome": "Lei 15.191/2025",
     "detalhe": "tabela progressiva mensal do IRPF aplicada ao aluguel recebido"
    },
    {
     "nome": "Lei 15.270/2025",
     "detalhe": "redução do IRPF (isenção até R$ 5 mil mensais) a partir de 2026"
    },
    {
     "nome": "Índice FipeZAP — Locação e Venda Residencial, informes mensais",
     "detalhe": "yield médio e valorização de referência"
    }
   ],
   "limitacoes": [
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "imóvel 500k alugado por 2.500 — vacância, adm, manutenção, IPTU e seguro",
    "entradasSite": {
     "aluguelValorImovel": 500000,
     "aluguelMensal": 2500,
     "aluguelValorizacao": 4,
     "aluguelVacancia": 8,
     "aluguelAdministracao": 10,
     "aluguelManutencao": 0.8,
     "aluguelIPTU": 2400,
     "aluguelSeguro": 600
    },
    "entradasMCP": {
     "valorImovel": 500000,
     "aluguelMes": 2500,
     "valorizPct": 4,
     "vacanciaPct": 8,
     "admPct": 10,
     "manutPct": 0.8,
     "iptuAnual": 2400,
     "seguroAnual": 600
    },
    "esperado": {
     "rendaBruta": 30000,
     "perdaVacancia": 2400,
     "receitaEfetiva": 27600,
     "irValor": 0,
     "custoAdm": 2760,
     "custoManut": 4000,
     "totalDespesas": 9760,
     "rendaLiquida": 17840,
     "fluxoMensal": 1486.67,
     "yieldBruto": 6,
     "yieldLiquido": 3.57,
     "capRate": 4.12,
     "ganhoValorizacao": 20000,
     "retornoTotal": 7.57
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual: vacância sobre a renda bruta; adm sobre a receita efetiva; manutenção sobre o valor do imóvel. IR = 0 porque aluguel de 2.500/mês fica abaixo do piso de isenção de R$ 5.000 (Lei 15.270/2025) — mesmo com IR bruto positivo na tabela progressiva. Diferença yield bruto 6,00% vs líquido 3,57% mostra o peso real dos custos (41% da renda)."
   },
   "mcp": {
    "ferramenta": "calcular_rendimento_aluguel"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/rendimento-aluguel/?aluguelValorImovel={valorImovel}&aluguelMensal={aluguelMes}&aluguelValorizacao={valorizPct}&aluguelVacancia={vacanciaPct}&aluguelAdministracao={admPct}&aluguelManutencao={manutPct}&aluguelIPTU={iptuAnual}&aluguelSeguro={seguroAnual}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "viabilidade-investimento",
   "nome": "Viabilidade de Investimento",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/viabilidade-investimento/",
   "descricao": "Análise completa de ROI, Cap Rate e fluxo de caixa imobiliário.",
   "perguntaQueResponde": "Vale a pena comprar este imóvel para alugar, considerando ROI, Cap Rate e fluxo de caixa mensal?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do imóvel, em R$.",
      "x-campoSite": "viabValorImovel"
     },
     "entrada": {
      "type": "number",
      "minimum": 0,
      "description": "Capital próprio investido, em R$. Se 0/omitido, assume o valor cheio do imóvel (sem alavancagem).",
      "x-campoSite": "viabEntrada"
     },
     "aluguelMensal": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Aluguel mensal esperado, em R$.",
      "x-campoSite": "viabAluguelMensal"
     },
     "custoOportunidadePct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de referência (ex.: CDI) ANUAL em %, pra comparar o ROI total.",
      "x-campoSite": "viabCustoOportunidade"
     },
     "valorizacaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Valorização ANUAL esperada do imóvel, em %. Padrão 0.",
      "x-campoSite": "viabValorizacao"
     },
     "vacanciaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Taxa de vacância esperada, em %. Padrão 0.",
      "x-campoSite": "viabVacancia"
     },
     "administracaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Taxa de administração, em % da receita efetiva. Padrão 0.",
      "x-campoSite": "viabAdministracao"
     },
     "manutencaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Manutenção anual, em % do valor do imóvel. Padrão 0.",
      "x-campoSite": "viabManutencao"
     },
     "iptuAnual": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "IPTU anual, em R$. Padrão 0.",
      "x-campoSite": "viabIPTU"
     }
    },
    "required": [
     "valorImovel",
     "aluguelMensal",
     "custoOportunidadePct"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "description": "Valor do imóvel, em R$."
     },
     "entrada": {
      "type": "number",
      "description": "Capital próprio investido, em R$."
     },
     "aluguelMensal": {
      "type": "number",
      "description": "Aluguel mensal, em R$."
     },
     "valorizacaoPct": {
      "type": "number",
      "description": "Valorização do imóvel ao ano, em %."
     },
     "vacanciaPct": {
      "type": "number",
      "description": "Vacância sobre a renda anual, em %."
     },
     "administracaoPct": {
      "type": "number",
      "description": "Taxa de administração sobre a renda, em %."
     },
     "manutencaoPct": {
      "type": "number",
      "description": "Manutenção sobre a renda, em %."
     },
     "iptuAnual": {
      "type": "number",
      "description": "IPTU anual, em R$."
     },
     "custoOportunidadePct": {
      "type": "number",
      "description": "Taxa de referência (ex.: CDI) ao ano, em %."
     },
     "rendaBruta": {
      "type": "number",
      "description": "Aluguel de 12 meses, em R$."
     },
     "perdaVacancia": {
      "type": "number",
      "description": "Renda perdida com vacância, no ano, em R$."
     },
     "receitaEfetiva": {
      "type": "number",
      "description": "Renda bruta − vacância, no ano, em R$."
     },
     "custoAdm": {
      "type": "number",
      "description": "Administração, no ano, em R$."
     },
     "custoManut": {
      "type": "number",
      "description": "Manutenção, no ano, em R$."
     },
     "totalDespesas": {
      "type": "number",
      "description": "Despesas do ano, em R$."
     },
     "rendaLiquida": {
      "type": "number",
      "description": "Renda líquida do ano, em R$."
     },
     "fluxoMensal": {
      "type": "number",
      "description": "Renda líquida por mês, em R$."
     },
     "yieldBruto": {
      "type": "number",
      "description": "Aluguel anual sobre o valor do imóvel, ao ano, em %."
     },
     "capRate": {
      "type": "number",
      "description": "Cap rate, ao ano, em %."
     },
     "yieldLiquido": {
      "type": "number",
      "description": "Renda líquida sobre o valor do imóvel, ao ano, em %."
     },
     "cashOnCash": {
      "type": "number",
      "description": "Renda líquida sobre o capital próprio, ao ano, em %."
     },
     "ganhoValor": {
      "type": "number",
      "description": "Valorização do imóvel em um ano, em R$."
     },
     "roiTotal": {
      "type": "number",
      "description": "Yield líquido + valorização, ao ano, em %."
     },
     "payback": {
      "type": [
       "number",
       "null"
      ],
      "description": "Tempo para a renda líquida pagar o imóvel (null se o yield líquido é ≤ 0), em anos."
     },
     "ratio": {
      "type": "number",
      "description": "Valor do imóvel ÷ aluguel anual (anos de aluguel que pagam o imóvel)."
     },
     "superaCDI": {
      "type": "boolean",
      "description": "true se o retorno total supera a taxa de referência."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorImovel",
     "entrada",
     "aluguelMensal",
     "valorizacaoPct",
     "vacanciaPct",
     "administracaoPct",
     "manutencaoPct",
     "iptuAnual",
     "custoOportunidadePct",
     "rendaBruta",
     "perdaVacancia",
     "receitaEfetiva",
     "custoAdm",
     "custoManut",
     "totalDespesas",
     "rendaLiquida",
     "fluxoMensal",
     "yieldBruto",
     "capRate",
     "yieldLiquido",
     "cashOnCash",
     "ganhoValor",
     "roiTotal",
     "payback",
     "ratio",
     "superaCDI",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Receita efetiva = aluguel × 12 − vacância; despesas = administração + manutenção + IPTU",
    "Renda líquida = receita efetiva − despesas",
    "Yield líquido = renda líquida ÷ valor do imóvel; cash-on-cash = renda líquida ÷ capital da entrada",
    "Retorno total = yield líquido + valorização; payback = 100 ÷ yield líquido, em anos",
    "Custo de oportunidade: o capital da entrada rendendo CDI, poupança e Tesouro",
    "Exemplo (o cenário verificado pela suíte de testes): imóvel de R$ 400 mil com R$ 100 mil de entrada, alugado por R$ 2.200. A renda líquida é R$ 16.859,20 por ano: yield líquido de 4,21% e cash-on-cash de 16,86%. O cash-on-cash não desconta a parcela de um eventual financiamento do saldo — se houver, subtraia-a da renda."
   ],
   "fontes": [
    {
     "nome": "Lei 8.245/1991 (Lei do Inquilinato), Art. 22, VIII",
     "detalhe": "IPTU é do proprietário, salvo repasse expresso no contrato"
    },
    {
     "nome": "Constituição Federal, Art. 156",
     "detalhe": "IPTU, de competência municipal"
    },
    {
     "nome": "Índice FipeZAP — Locação e Venda Residencial, informes mensais",
     "detalhe": "yield médio e valorização de referência"
    },
    {
     "nome": "Pesquisa de Locação do Secovi-SP",
     "detalhe": "referência de vacância"
    }
   ],
   "limitacoes": [
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "compra para alugar — 400k com entrada de 100k, aluguel 2.200",
    "entradasSite": {
     "viabValorImovel": 400000,
     "viabEntrada": 100000,
     "viabAluguelMensal": 2200,
     "viabValorizacao": 4,
     "viabVacancia": 8,
     "viabAdministracao": 10,
     "viabManutencao": 0.8,
     "viabIPTU": 1800,
     "viabCustoOportunidade": 14.15
    },
    "entradasMCP": {
     "valorImovel": 400000,
     "entrada": 100000,
     "aluguelMensal": 2200,
     "valorizacaoPct": 4,
     "vacanciaPct": 8,
     "administracaoPct": 10,
     "manutencaoPct": 0.8,
     "iptuAnual": 1800,
     "custoOportunidadePct": 14.15
    },
    "esperado": {
     "rendaBruta": 26400,
     "receitaEfetiva": 24288,
     "totalDespesas": 7428.8,
     "rendaLiquida": 16859.2,
     "fluxoMensal": 1404.93,
     "yieldBruto": 6.6,
     "capRate": 4.82,
     "yieldLiquido": 4.21,
     "cashOnCash": 16.86,
     "ganhoValor": 16000,
     "roiTotal": 8.21,
     "payback": 23.8,
     "ratio": 15.2
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual. Testa a distinção entre yield sobre o VALOR DO IMÓVEL (4,21%) e cash-on-cash sobre o CAPITAL PRÓPRIO (16,86%) — o efeito da alavancagem. Payback 23,8 anos = 100/yield líquido; ratio preço/aluguel anual 15,2. Cenário sem IR de aluguel nesta calculadora (escopo declarado no código)."
   },
   "mcp": {
    "ferramenta": "calcular_viabilidade_investimento"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/viabilidade-investimento/?viabValorImovel={valorImovel}&viabEntrada={entrada}&viabAluguelMensal={aluguelMensal}&viabCustoOportunidade={custoOportunidadePct}&viabValorizacao={valorizacaoPct}&viabVacancia={vacanciaPct}&viabAdministracao={administracaoPct}&viabManutencao={manutencaoPct}&viabIPTU={iptuAnual}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "comissao-imobiliaria",
   "nome": "Comissão Imobiliária",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/comissao-imobiliaria/",
   "descricao": "Calcule comissões para compradores, vendedores e imobiliárias.",
   "perguntaQueResponde": "Quanto vou pagar (ou receber) de comissão na venda deste imóvel?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorVenda": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de venda do imóvel, em R$.",
      "x-campoSite": "comissaoValorImovel"
     },
     "taxaPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de comissão, em % (ex.: 6 para 6%, faixa de referência CRECI 6-8% urbano).",
      "x-campoSite": "comissaoTaxa"
     },
     "modelo": {
      "type": "string",
      "enum": [
       "exclusividade",
       "parceria",
       "personalizado"
      ],
      "default": "exclusividade",
      "description": "Modelo de divisão. \"personalizado\" usa pctVendedor/pctComprador. Padrão \"exclusividade\" (100% vendedor).",
      "x-campoSite": "comissaoModelo"
     },
     "pctVendedor": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "% da comissão paga pelo vendedor, só usado com modelo \"personalizado\".",
      "x-campoSite": "comissaoPctVendedor"
     },
     "pctComprador": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "% da comissão paga pelo comprador, só usado com modelo \"personalizado\".",
      "x-campoSite": "comissaoPctComprador"
     }
    },
    "required": [
     "valorVenda",
     "taxaPct"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorVenda": {
      "type": "number",
      "description": "Valor da venda, em R$."
     },
     "taxaPct": {
      "type": "number",
      "description": "Comissão sobre o valor da venda, em %."
     },
     "modelo": {
      "type": "string",
      "description": "Modelo de contratação informado."
     },
     "comissaoTotal": {
      "type": "number",
      "description": "Comissão total, em R$."
     },
     "comissaoVendedor": {
      "type": "number",
      "description": "Parte paga pelo vendedor, em R$."
     },
     "comissaoComprador": {
      "type": "number",
      "description": "Parte paga pelo comprador, em R$."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorVenda",
     "taxaPct",
     "modelo",
     "comissaoTotal",
     "comissaoVendedor",
     "comissaoComprador",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Comissão = valor da venda × percentual, dividida entre vendedor e comprador conforme o modelo",
    "Ganho de capital do vendedor = venda − custo de aquisição − comissão paga por ele; IR = ganho × alíquota (15% até R$ 5 milhões)",
    "Líquido do vendedor = venda − comissão − IR",
    "Custos do comprador = ITBI + escritura + registro, sobre o valor da venda, mais a parte da comissão que lhe couber",
    "Exemplo (o cenário verificado pela suíte de testes): venda de R$ 500 mil com 6% de comissão, paga pelo vendedor — R$ 30 mil. Com custo de aquisição de R$ 380 mil, o ganho é de R$ 90 mil e o IR de R$ 13.500, e o vendedor recebe R$ 456.500. O comprador soma R$ 15 mil de ITBI, R$ 5 mil de escritura e R$ 4 mil de registro."
   ],
   "fontes": [
    {
     "nome": "Código Civil, Arts. 722 a 729",
     "detalhe": "contrato de corretagem — Art. 724 (valor livremente negociável) e Art. 726 (exclusividade)"
    },
    {
     "nome": "Lei 6.530/1978",
     "detalhe": "exercício da profissão de corretor e registro no CRECI"
    },
    {
     "nome": "Tabela referencial de honorários do CRECI-SP (28ª Reunião Plenária, 30/11/2002)",
     "detalhe": "faixas de referência: 6% a 8% urbanos, 6% a 10% rurais"
    },
    {
     "nome": "Decreto 21.981/1932, Art. 24",
     "detalhe": "comissão de 5% do leiloeiro, paga pelo arrematante"
    },
    {
     "nome": "IN SRF 84/2001, Art. 19, § 3º",
     "detalhe": "corretagem paga pelo vendedor deduzida do valor de alienação no ganho de capital"
    },
    {
     "nome": "Lei 9.250/1995, Art. 23",
     "detalhe": "isenção do ganho de capital no único imóvel de até R$ 440 mil"
    },
    {
     "nome": "Lei 11.196/2005, Art. 39",
     "detalhe": "isenção do ganho de capital com reaplicação em imóvel residencial em 180 dias"
    }
   ],
   "limitacoes": [
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "venda R$ 500.000 a 6% — urbano, vendedor paga 100% (componente criado no fix 2.1)",
    "entradasSite": {
     "comissaoValorImovel": 500000,
     "comissaoTaxa": 6,
     "comissaoTipo": "urbano",
     "comissaoModelo": "exclusividade",
     "comissaoCustoAquisicao": 380000,
     "comissaoIRVendedor": 15,
     "comissaoITBI": 3,
     "comissaoEscritura": 1,
     "comissaoRegistro": 0.8
    },
    "entradasMCP": {
     "valorVenda": 500000,
     "taxaPct": 6,
     "modelo": "exclusividade"
    },
    "esperado": {
     "comissaoTotal": 30000
    },
    "tolerancia": 0,
    "verificacao": "DESBLOQUEADO PELO FIX 2.1 em 25/07/2026: a calculadora tinha motor JS completo mas NENHUM formulário HTML — nunca renderizou. Componente criado com os IDs conferidos um a um contra o JS.\n500.000 × 6% = 30.000,00 — exatamente o valor que o harness legado alegava validar numa calculadora que não abria. Agora o número é produzido de verdade pela calculadora rodando.\nBase legal: CC Arts. 722-729; faixa de referência da tabela da 28ª Plenária do CRECI-SP (6% a 8% urbano)."
   },
   "mcp": {
    "ferramenta": "calcular_comissao_imobiliaria"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/comissao-imobiliaria/?comissaoValorImovel={valorVenda}&comissaoTaxa={taxaPct}&comissaoModelo={modelo}&comissaoPctVendedor={pctVendedor}&comissaoPctComprador={pctComprador}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "custo-efetivo-financiamento",
   "nome": "Custo Efetivo de Financiamento",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/custo-efetivo-financiamento/",
   "descricao": "Descubra o custo real do financiamento com todas as taxas.",
   "perguntaQueResponde": "Qual é o custo real do meu financiamento somando juros, seguros e taxas administrativas, não só a taxa anunciada?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do imóvel, em R$.",
      "x-campoSite": "custoValorImovel"
     },
     "entrada": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Valor de entrada, em R$. Padrão 0.",
      "x-campoSite": "custoEntrada"
     },
     "taxaJuros": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de juros ANUAL do financiamento, em %.",
      "x-campoSite": "custoTaxaJuros"
     },
     "prazoAnos": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Prazo do financiamento, em anos.",
      "x-campoSite": "custoPrazo"
     },
     "mipPctMes": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "MIP (seguro de vida do financiamento), em % MENSAL sobre o saldo devedor. Consultar a tabela do banco pela idade do comprador.",
      "x-campoSite": "custoMIP"
     },
     "idade": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Idade do comprador, em anos. Padrão 0.",
      "x-campoSite": "custoIdade"
     },
     "dfiPctAno": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "DFI (seguro do imóvel), em % ANUAL sobre o valor do imóvel. Padrão 0.",
      "x-campoSite": "custoDFI"
     },
     "tagValor": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Taxa de Abertura de Crédito, valor fixo em R$ cobrado no ato. Padrão 0.",
      "x-campoSite": "custoTAG"
     },
     "admMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Taxa de administração mensal do banco, em R$. Padrão 0.",
      "x-campoSite": "custoAdmMensal"
     },
     "iofFixoPct": {
      "type": "number",
      "minimum": 0,
      "description": "Alíquota FIXA do IOF, em %. Deixe 0/omitido pra crédito habitacional (isento, Decreto 6.306/07).",
      "x-campoSite": "custoIOF"
     },
     "trPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "TR ou outro índice de correção, em % ao ano. Padrão 0.",
      "x-campoSite": "custoTR"
     }
    },
    "required": [
     "valorImovel",
     "taxaJuros",
     "prazoAnos",
     "mipPctMes"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "description": "Valor do imóvel, em R$."
     },
     "entrada": {
      "type": "number",
      "description": "Entrada, em R$."
     },
     "taxaJuros": {
      "type": "number",
      "description": "Taxa de juros nominal ao ano, em %."
     },
     "prazoAnos": {
      "type": "number",
      "description": "Prazo, em anos."
     },
     "prazoMeses": {
      "type": "number",
      "description": "Prazo, em meses."
     },
     "idade": {
      "type": "number",
      "description": "Idade informada, em anos (0 se não informada)."
     },
     "mipPctMes": {
      "type": "number",
      "description": "Seguro MIP sobre o saldo, ao mês, em %."
     },
     "dfiPctAno": {
      "type": "number",
      "description": "Seguro DFI sobre o valor do imóvel, ao ano, em %."
     },
     "tagValor": {
      "type": "number",
      "description": "Tarifa de avaliação de garantia, em R$."
     },
     "admMensal": {
      "type": "number",
      "description": "Taxa de administração mensal, em R$."
     },
     "iofFixoPct": {
      "type": "number",
      "description": "IOF fixo sobre o valor financiado, em %."
     },
     "trPct": {
      "type": "number",
      "description": "TR ao ano, em %."
     },
     "diasContrato": {
      "type": "number",
      "description": "Duração do contrato, em dias."
     },
     "diasIOF": {
      "type": "number",
      "description": "Dias considerados no IOF diário (limitado a 365)."
     },
     "iofDiarioPctTotal": {
      "type": "number",
      "description": "IOF diário acumulado sobre o valor financiado, em %."
     },
     "iofPctTotal": {
      "type": "number",
      "description": "IOF total (fixo + diário) sobre o valor financiado, em %."
     },
     "saldo": {
      "type": "number",
      "description": "Valor financiado, em R$."
     },
     "parcela": {
      "type": "number",
      "description": "Parcela mensal sem encargos, em R$."
     },
     "totalJuros": {
      "type": "number",
      "description": "Juros pagos no contrato, em R$."
     },
     "mipMensal": {
      "type": "number",
      "description": "Seguro MIP no 1º mês, em R$."
     },
     "mipMedioMensal": {
      "type": "number",
      "description": "Seguro MIP médio por mês, em R$."
     },
     "totalMIP": {
      "type": "number",
      "description": "Seguro MIP no contrato, em R$."
     },
     "dfiMensal": {
      "type": "number",
      "description": "Seguro DFI por mês, em R$."
     },
     "totalDFI": {
      "type": "number",
      "description": "Seguro DFI no contrato, em R$."
     },
     "iofValor": {
      "type": "number",
      "description": "IOF, em R$."
     },
     "totalAdm": {
      "type": "number",
      "description": "Taxas de administração no contrato, em R$."
     },
     "correcaoTR": {
      "type": "number",
      "description": "Correção pela TR no contrato, em R$."
     },
     "parcelaCET": {
      "type": "number",
      "description": "Parcela média com todos os encargos, em R$."
     },
     "totalPago": {
      "type": "number",
      "description": "Total pago com todos os encargos, em R$."
     },
     "encargosExtra": {
      "type": "number",
      "description": "Encargos além dos juros, em R$."
     },
     "cetAnual": {
      "type": "number",
      "description": "Custo Efetivo Total ao ano, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorImovel",
     "entrada",
     "taxaJuros",
     "prazoAnos",
     "prazoMeses",
     "idade",
     "mipPctMes",
     "dfiPctAno",
     "tagValor",
     "admMensal",
     "iofFixoPct",
     "trPct",
     "diasContrato",
     "diasIOF",
     "iofDiarioPctTotal",
     "iofPctTotal",
     "saldo",
     "parcela",
     "totalJuros",
     "mipMensal",
     "mipMedioMensal",
     "totalMIP",
     "dfiMensal",
     "totalDFI",
     "iofValor",
     "totalAdm",
     "correcaoTR",
     "parcelaCET",
     "totalPago",
     "encargosExtra",
     "cetAnual",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Parcela Price do saldo financiado, com a taxa mensal equivalente",
    "MIP = percentual mensal sobre o saldo devedor, que cai mês a mês; DFI = percentual anual sobre o valor do imóvel ÷ 12",
    "Encargos = MIP + DFI + taxa de administração mensal + IOF (só se informado; crédito do SFH é isento) + tarifas",
    "Parcela com encargos = parcela + MIP médio + DFI + administração",
    "CET = taxa que iguala as parcelas com encargos ao valor líquido recebido, anualizada: (1 + CET mensal)12 − 1",
    "Exemplo (o cenário verificado pela suíte de testes): R$ 320 mil a 10,26% ao ano em 30 anos. A parcela pura é R$ 2.762,69; somando MIP médio, DFI de R$ 10 e R$ 25 de administração, a parcela real vai a R$ 2.912,33. O seguro MIP soma R$ 41.270,70 no contrato."
   ],
   "fontes": [
    {
     "nome": "Resolução CMN 3.517/2007",
     "detalhe": "Custo Efetivo Total (CET) informado pelo banco antes da contratação"
    },
    {
     "nome": "Lei 9.514/1997, Art. 5º, IV",
     "detalhe": "seguro de morte e invalidez (MIP) obrigatório; o DFI (danos físicos ao imóvel) é exigido pelos bancos, com livre escolha da seguradora (STJ Tema 972)"
    },
    {
     "nome": "STJ, Tema 972",
     "detalhe": "livre escolha da seguradora do MIP/DFI, sem venda casada"
    },
    {
     "nome": "Decreto 6.306/2007, Art. 9º, I",
     "detalhe": "isenção de IOF no crédito habitacional — por isso o IOF só entra na conta se você informar uma alíquota"
    }
   ],
   "limitacoes": [
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "CET de financiamento SFH — IOF e MIP corrigidos (fixes 1.5 e 1.6)",
    "entradasSite": {
     "custoValorImovel": 400000,
     "custoEntrada": 80000,
     "custoTaxaJuros": 10.26,
     "custoPrazo": 30,
     "custoIdade": 35,
     "custoMIP": 0.05,
     "custoDFI": 0.03,
     "custoTAG": 0,
     "custoAdmMensal": 25,
     "custoIOF": 0,
     "custoTR": 0
    },
    "entradasMCP": {
     "valorImovel": 400000,
     "entrada": 80000,
     "taxaJuros": 10.26,
     "prazoAnos": 30,
     "idade": 35,
     "mipPctMes": 0.05,
     "dfiPctAno": 0.03,
     "tagValor": 0,
     "admMensal": 25,
     "iofFixoPct": 0,
     "trPct": 0
    },
    "esperado": {
     "saldo": 320000,
     "parcela": 2762.69,
     "totalJuros": 674568.4,
     "mipMensal": 160,
     "totalMIP": 41270.7,
     "dfiMensal": 10,
     "totalDFI": 3600,
     "iofPctTotal": 0,
     "iofValor": 0,
     "totalAdm": 9000,
     "parcelaCET": 2912.33,
     "mipMedioMensal": 114.64
    },
    "tolerancia": 0.01,
    "verificacao": "FIXES 1.5 e 1.6 APLICADOS em 25/07/2026 — receipts medidos pelo runner:\n  [1.5] iofPctTotal 2,993 → 0 · iofValor 9.577,60 → 0,00 (habitacional isento, campo em branco = 0)\n  [1.6] totalMIP 57.600,00 → 41.270,70 (−16.329,30) · parcelaCET 2.957,69 → 2.912,33\nMIP agora percorre a amortização Price mês a mês sobre o saldo DECRESCENTE (Lei 9.514/97 Art. 5º IV): primeira parcela 160,00 (inalterada, é o mês de saldo cheio), média 114,64. O CET, que é resolvido como pagamento nivelado, passa a usar a média — o equivalente nivelado correto de um custo decrescente.\nDerivação independente em Python replicando o loop do código: totalMIP 41.270,70 e parcelaCET 2.912,33 — match exato.\nBase Price (2.762,69 / 674.568,40) permanece idêntica a financiamento-imovel e sac-vs-price."
   },
   "mcp": {
    "ferramenta": "calcular_custo_efetivo_financiamento"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/custo-efetivo-financiamento/?custoValorImovel={valorImovel}&custoEntrada={entrada}&custoTaxaJuros={taxaJuros}&custoPrazo={prazoAnos}&custoMIP={mipPctMes}&custoIdade={idade}&custoDFI={dfiPctAno}&custoTAG={tagValor}&custoAdmMensal={admMensal}&custoIOF={iofFixoPct}&custoTR={trPct}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "portabilidade-financiamento",
   "nome": "Portabilidade de Financiamento",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/portabilidade-financiamento/",
   "descricao": "Descubra se vale transferir seu financiamento para outro banco.",
   "perguntaQueResponde": "Vale a pena portar meu financiamento para outro banco com taxa menor, descontando os custos da portabilidade?",
   "entradas": {
    "type": "object",
    "properties": {
     "saldoDevedor": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Saldo devedor atual, em R$.",
      "x-campoSite": "portSaldoDevedor"
     },
     "taxaAtual": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de juros ANUAL atual, em %.",
      "x-campoSite": "portTaxaAtual"
     },
     "prazoRestanteAnos": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Prazo restante do financiamento atual, em ANOS.",
      "x-campoSite": "portPrazoRestante"
     },
     "parcelaAtualMIP": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Parte da parcela atual referente ao MIP, em R$. Padrão 0.",
      "x-campoSite": "portParcelaAtualMIP"
     },
     "novaTaxa": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Nova taxa de juros ANUAL oferecida, em % (precisa ser menor que a atual).",
      "x-campoSite": "portNovaTaxa"
     },
     "novoPrazoAnos": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Novo prazo, em anos. Padrão: mesmo prazo restante atual.",
      "x-campoSite": "portNovoPrazo"
     },
     "novoMIP": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "MIP na nova instituição, em R$/mês. Padrão 0.",
      "x-campoSite": "portNovoMIP"
     },
     "custoAvaliacao": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custo da avaliação do imóvel pro novo banco, em R$. Padrão 0.",
      "x-campoSite": "portCustoAvaliacao"
     },
     "custoCartorio": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custo de cartório da portabilidade, em R$. Padrão 0.",
      "x-campoSite": "portCustoCartorio"
     }
    },
    "required": [
     "saldoDevedor",
     "taxaAtual",
     "prazoRestanteAnos",
     "novaTaxa"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "saldoDevedor": {
      "type": "number",
      "description": "Saldo devedor atual, em R$."
     },
     "taxaAtual": {
      "type": "number",
      "description": "Taxa atual ao ano, em %."
     },
     "prazoRestanteAnos": {
      "type": "number",
      "description": "Prazo restante no contrato atual, em anos."
     },
     "parcelaAtualMIP": {
      "type": "number",
      "description": "Seguros mensais do contrato atual, em R$."
     },
     "novaTaxa": {
      "type": "number",
      "description": "Taxa do novo banco ao ano, em %."
     },
     "novoPrazoAnos": {
      "type": "number",
      "description": "Prazo no novo banco, em anos."
     },
     "novoMIP": {
      "type": "number",
      "description": "Seguros mensais no novo banco, em R$."
     },
     "custoAvaliacao": {
      "type": "number",
      "description": "Custo de avaliação do imóvel, em R$."
     },
     "custoCartorio": {
      "type": "number",
      "description": "Custo de cartório, em R$."
     },
     "parcelaAtualBase": {
      "type": "number",
      "description": "Parcela atual sem seguros, em R$."
     },
     "parcelaNovaBase": {
      "type": "number",
      "description": "Parcela nova sem seguros, em R$."
     },
     "parcelaAtualTotal": {
      "type": "number",
      "description": "Parcela atual com seguros, em R$."
     },
     "parcelaNovaTotal": {
      "type": "number",
      "description": "Parcela nova com seguros, em R$."
     },
     "totalAtual": {
      "type": "number",
      "description": "Total a pagar se ficar no contrato atual, em R$."
     },
     "totalNovo": {
      "type": "number",
      "description": "Total a pagar com a portabilidade, em R$."
     },
     "custoTotal": {
      "type": "number",
      "description": "Custos da portabilidade (avaliação + cartório), em R$."
     },
     "economiaBruta": {
      "type": "number",
      "description": "Total atual − total novo, em R$."
     },
     "economiaLiq": {
      "type": "number",
      "description": "Economia bruta − custos da portabilidade, em R$."
     },
     "economiaParc": {
      "type": "number",
      "description": "Redução da parcela mensal, em R$."
     },
     "paybackMeses": {
      "type": [
       "number",
       "null"
      ],
      "description": "Tempo para a economia mensal pagar os custos (null se a parcela não cai), em meses."
     },
     "cetAtualAnual": {
      "type": "number",
      "description": "Custo efetivo do contrato atual, ao ano, em %."
     },
     "cetNovoAnual": {
      "type": "number",
      "description": "Custo efetivo do novo contrato, ao ano, em %."
     },
     "valeAPena": {
      "type": "boolean",
      "description": "true se a economia líquida é positiva."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "saldoDevedor",
     "taxaAtual",
     "prazoRestanteAnos",
     "parcelaAtualMIP",
     "novaTaxa",
     "novoPrazoAnos",
     "novoMIP",
     "custoAvaliacao",
     "custoCartorio",
     "parcelaAtualBase",
     "parcelaNovaBase",
     "parcelaAtualTotal",
     "parcelaNovaTotal",
     "totalAtual",
     "totalNovo",
     "custoTotal",
     "economiaBruta",
     "economiaLiq",
     "economiaParc",
     "paybackMeses",
     "cetAtualAnual",
     "cetNovoAnual",
     "valeAPena",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Taxa mensal = (1 + taxa anual)1/12 − 1, para a taxa atual e para a nova",
    "Parcelas = Price do saldo devedor no prazo restante, mais o seguro MIP de cada banco",
    "Economia bruta = total a pagar hoje − total no novo banco",
    "Economia líquida = economia bruta − custos da troca (avaliação e cartório)",
    "Exemplo (o cenário verificado pela suíte de testes): saldo de R$ 300 mil em 20 anos, de 11,5% para 9,8% ao ano. A parcela cai de R$ 3.173,30 para R$ 2.844,01 — R$ 329,29 por mês — e, descontados R$ 5 mil de custos, a economia líquida no contrato é de R$ 74.029,60."
   ],
   "fontes": [
    {
     "nome": "Resolução CMN 5.057/2022",
     "detalhe": "portabilidade de crédito: sem tarifa, troca eletrônica de informações entre os bancos e prazo que não aumenta sem o seu consentimento"
    },
    {
     "nome": "STJ, Tema 972",
     "detalhe": "livre escolha da seguradora do MIP/DFI no novo contrato"
    },
    {
     "nome": "Lei 6.015/1973",
     "detalhe": "averbação da nova alienação fiduciária na matrícula (custo de cartório)"
    }
   ],
   "limitacoes": [
    "A conta supõe que as duas taxas ficam constantes até o fim e não inclui a TR nem tarifas mensais diferentes entre os bancos. Compare sempre o CET das duas propostas e confira se o novo banco mantém o seguro e as condições de amortização que você usa hoje. Peça ao banco atual a proposta de contraoferta: muitas vezes ele reduz a taxa para não perder o contrato, e a troca nem precisa acontecer — a economia vira desconto sem custo de cartório.",
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "portabilidade 11,5% → 9,8%, saldo 300k, 20 ANOS restantes",
    "entradasSite": {
     "portSaldoDevedor": 300000,
     "portTaxaAtual": 11.5,
     "portPrazoRestante": 20,
     "portParcelaAtualMIP": 90,
     "portNovaTaxa": 9.8,
     "portNovoPrazo": 20,
     "portNovoMIP": 70,
     "portCustoAvaliacao": 3000,
     "portCustoCartorio": 2000
    },
    "entradasMCP": {
     "saldoDevedor": 300000,
     "taxaAtual": 11.5,
     "prazoRestanteAnos": 20,
     "parcelaAtualMIP": 90,
     "novaTaxa": 9.8,
     "novoPrazoAnos": 20,
     "novoMIP": 70,
     "custoAvaliacao": 3000,
     "custoCartorio": 2000
    },
    "esperado": {
     "parcelaAtualBase": 3083.3,
     "parcelaNovaBase": 2774.01,
     "parcelaAtualTotal": 3173.3,
     "parcelaNovaTotal": 2844.01,
     "totalAtual": 761592,
     "totalNovo": 682562.4,
     "custoTotal": 5000,
     "economiaBruta": 79029.6,
     "economiaLiq": 74029.6,
     "economiaParc": 329.29,
     "cetAtualAnual": 11.5,
     "cetNovoAnual": 9.8
    },
    "tolerancia": 0.01,
    "verificacao": "Duas séries Price de 240 meses derivadas à mão + MIP somado à parcela. ARMADILHA ANOS×MESES (achado do runner, 25/07): o campo portPrazoRestante é em ANOS (o código faz prazoAtual*12). A primeira versão deste cenário passou 240 achando que eram meses → o runner acusou totais de R$ 8,1 milhões (240 anos). É exatamente o mesmo erro que o harness legado cometia em custo-efetivo (P0.2). Regra para novos cenários: confirmar a unidade no <label> do HTML, nunca supor. Consistência extra: o CET anual reconstruído da taxa mensal devolve 11,50 / 9,80 exatos."
   },
   "mcp": {
    "ferramenta": "calcular_portabilidade_financiamento"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/portabilidade-financiamento/?portSaldoDevedor={saldoDevedor}&portTaxaAtual={taxaAtual}&portPrazoRestante={prazoRestanteAnos}&portParcelaAtualMIP={parcelaAtualMIP}&portNovaTaxa={novaTaxa}&portNovoPrazo={novoPrazoAnos}&portNovoMIP={novoMIP}&portCustoAvaliacao={custoAvaliacao}&portCustoCartorio={custoCartorio}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "amortizacao-extraordinaria",
   "nome": "Amortização Extraordinária",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/amortizacao-extraordinaria/",
   "descricao": "Reduzir prazo ou reduzir parcela? Compare as 2 opções ao usar um aporte extra para abater o financiamento.",
   "perguntaQueResponde": "Vale mais a pena usar meu dinheiro para reduzir o prazo do financiamento ou para diminuir o valor da prestação mensal?",
   "entradas": {
    "type": "object",
    "properties": {
     "sistema": {
      "type": "string",
      "enum": [
       "SAC",
       "PRICE"
      ],
      "default": "SAC",
      "description": "Sistema de amortização do contrato. Padrão \"SAC\".",
      "x-campoSite": "aextSistema"
     },
     "saldoDevedor": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Saldo devedor atual, em R$.",
      "x-campoSite": "aextSaldoDevedor"
     },
     "prazoRestante": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 600,
      "description": "Prazo restante do contrato, em MESES (até 600).",
      "x-campoSite": "aextPrazoRestante"
     },
     "taxaAnual": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de juros ANUAL do contrato, em % (ex.: 10 para 10% a.a.).",
      "x-campoSite": "aextTaxaAnual"
     },
     "modalidade": {
      "type": "string",
      "enum": [
       "unico",
       "recorrente"
      ],
      "default": "unico",
      "description": "\"unico\" = aporte de uma vez; \"recorrente\" = o mesmo valor todo mês. Padrão \"unico\".",
      "x-campoSite": "aextModalidade"
     },
     "valorAporte": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do aporte, em R$ (único: menor que o saldo; recorrente: por mês, menor que metade do saldo).",
      "x-campoSite": "aextValorAporte"
     }
    },
    "required": [
     "saldoDevedor",
     "prazoRestante",
     "taxaAnual",
     "valorAporte"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "sistema": {
      "type": "string",
      "description": "Sistema de amortização: SAC ou PRICE."
     },
     "saldoDevedor": {
      "type": "number",
      "description": "Saldo devedor atual, em R$."
     },
     "prazoRestante": {
      "type": "number",
      "description": "Prazo restante, em meses."
     },
     "taxaAnual": {
      "type": "number",
      "description": "Taxa de juros ao ano, em %."
     },
     "modalidade": {
      "type": "string",
      "description": "Aporte único ou recorrente."
     },
     "valorAporte": {
      "type": "number",
      "description": "Valor do aporte, em R$."
     },
     "primeiraParcelaOriginal": {
      "type": "number",
      "description": "Próxima parcela sem amortizar, em R$."
     },
     "jurosOriginal": {
      "type": "number",
      "description": "Juros até o fim sem amortizar, em R$."
     },
     "totalPagoOriginal": {
      "type": "number",
      "description": "Total a pagar sem amortizar, em R$."
     },
     "novoPrazo1": {
      "type": "number",
      "description": "Opção 1 (reduzir prazo): novo prazo, em meses."
     },
     "mesesEliminados1": {
      "type": "number",
      "description": "Opção 1: parcelas eliminadas, em meses."
     },
     "juros1": {
      "type": "number",
      "description": "Opção 1: juros até o fim, em R$."
     },
     "economiaJuros1": {
      "type": "number",
      "description": "Opção 1: juros economizados, em R$."
     },
     "totalPagoFinal1": {
      "type": "number",
      "description": "Opção 1: total a pagar, em R$."
     },
     "novaParcela2": {
      "type": "number",
      "description": "Opção 2 (reduzir parcela): nova parcela, em R$."
     },
     "reducaoMensal2": {
      "type": "number",
      "description": "Opção 2: redução da parcela, em R$."
     },
     "juros2": {
      "type": "number",
      "description": "Opção 2: juros até o fim, em R$."
     },
     "economiaJuros2": {
      "type": "number",
      "description": "Opção 2: juros economizados, em R$."
     },
     "opcaoVantajosa": {
      "type": "string",
      "description": "Opção que economiza mais juros: prazo ou parcela."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "sistema",
     "saldoDevedor",
     "prazoRestante",
     "taxaAnual",
     "modalidade",
     "valorAporte",
     "primeiraParcelaOriginal",
     "jurosOriginal",
     "totalPagoOriginal",
     "novoPrazo1",
     "mesesEliminados1",
     "juros1",
     "economiaJuros1",
     "totalPagoFinal1",
     "novaParcela2",
     "reducaoMensal2",
     "juros2",
     "economiaJuros2",
     "opcaoVantajosa",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Taxa mensal = (1 + taxa anual)1/12 − 1",
    "Cenário original: parcelas e juros do saldo no prazo restante, pelo SAC ou Price",
    "Reduzir prazo: o aporte abate o saldo e as parcelas continuam iguais até quitar — conta-se quantos meses somem e quanto juro deixa de ser pago",
    "Reduzir parcela: o saldo após o aporte é recalculado no mesmo prazo, com parcela menor",
    "Aporte mensal: no reduzir parcela, entra pelo valor presente dos aportes",
    "Exemplo (o cenário verificado pela suíte de testes): saldo de R$ 200 mil, 240 meses, SAC a 10% ao ano, aporte único de R$ 20 mil. Reduzindo o prazo, somem 23 meses e a economia de juros é de R$ 36.441,96; reduzindo a parcela, ela cai R$ 242,81 e a economia fica em R$ 19.218,44."
   ],
   "fontes": [
    {
     "nome": "Resolução CMN 3.516/2007",
     "detalhe": "veda a cobrança de tarifa na liquidação antecipada, total ou parcial, do financiamento"
    },
    {
     "nome": "Código de Defesa do Consumidor, Art. 52, § 2º",
     "detalhe": "liquidação antecipada com redução proporcional dos juros e demais acréscimos"
    }
   ],
   "limitacoes": [
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "Saldo R$200 mil, 240 meses restantes, SAC 10% a.a., aporte único de R$20 mil",
    "entradasSite": {
     "aextSistema": "SAC",
     "aextSaldoDevedor": 200000,
     "aextPrazoRestante": 240,
     "aextTaxaAnual": 10,
     "aextModalidade": "unico",
     "aextValorAporte": 20000
    },
    "entradasMCP": {
     "sistema": "SAC",
     "saldoDevedor": 200000,
     "prazoRestante": 240,
     "taxaAnual": 10,
     "modalidade": "unico",
     "valorAporte": 20000
    },
    "esperado": {
     "primeiraParcelaOriginal": 2428.16,
     "jurosOriginal": 192177.55,
     "totalPagoOriginal": 392177.55,
     "novoPrazo1": 217,
     "mesesEliminados1": 23,
     "juros1": 155735.59,
     "economiaJuros1": 36441.96,
     "totalPagoFinal1": 355735.59,
     "novaParcela2": 2185.35,
     "reducaoMensal2": 242.81,
     "juros2": 172959.11,
     "economiaJuros2": 19218.44
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação independente em Python (SAC: amortização constante = saldo/prazo, arredondada a 2 casas ANTES do loop de juros mês a mês, mesmo padrão de comparativo-sac-price.js) reexecutada em Node isolado com a mesma _calcularAmortizacaoExtraordinaria() do módulo real, batendo exatamente. Cenário 1 (Reduzir Prazo): abate os R$20k do saldo de uma vez e mantém a amortização SAC original (R$833,33) fixa — o contrato termina em 217 meses (não 216: a amortização arredondada a 2 casas é ligeiramente menor que o valor exato de 833,333..., então demora 1 mês a mais para zerar — efeito real de arredondamento bancário, não erro). Cenário 2 (Reduzir Parcela): reamortiza o saldo líquido do aporte (R$180k) sobre os mesmos 240 meses, nova amortização R$750,00/mês. economiaJuros1 (R$36.441,96) > economiaJuros2 (R$19.218,44) confirma a propriedade financeira de que reduzir prazo sempre economiza mais que reduzir parcela para o mesmo aporte."
   },
   "mcp": {
    "ferramenta": "calcular_amortizacao_extraordinaria"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/amortizacao-extraordinaria/?aextSistema={sistema}&aextSaldoDevedor={saldoDevedor}&aextPrazoRestante={prazoRestante}&aextTaxaAnual={taxaAnual}&aextModalidade={modalidade}&aextValorAporte={valorAporte}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "desconto-primeiro-imovel-sfh",
   "nome": "Desconto no 1º Imóvel (SFH)",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/desconto-primeiro-imovel-sfh/",
   "descricao": "Primeiro imóvel financiado pelo SFH? Veja se você tem direito a 50% de desconto nas custas de cartório.",
   "perguntaQueResponde": "Tenho direito ao desconto de 50% nas custas cartorárias na compra do meu primeiro imóvel financiado pelo SFH?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de avaliação do imóvel, em R$.",
      "x-campoSite": "dsfhValorImovel"
     },
     "uf": {
      "type": "string",
      "enum": [
       "AC",
       "AL",
       "AP",
       "AM",
       "BA",
       "CE",
       "DF",
       "ES",
       "GO",
       "MA",
       "MT",
       "MS",
       "MG",
       "PA",
       "PB",
       "PR",
       "PE",
       "PI",
       "RJ",
       "RN",
       "RS",
       "RO",
       "RR",
       "SC",
       "SP",
       "SE",
       "TO"
      ],
      "default": "SP",
      "description": "Sigla do estado do cartório. Padrão \"SP\".",
      "x-campoSite": "dsfhUf"
     },
     "primeiraAquisicao": {
      "type": "string",
      "enum": [
       "sim",
       "nao"
      ],
      "description": "\"sim\" se é a 1ª aquisição residencial financiada pelo SFH (ter outro imóvel comprado de outra forma não impede).",
      "x-campoSite": "dsfhPrimeiraAquisicao"
     },
     "financiadoSFH": {
      "type": "string",
      "enum": [
       "sim",
       "nao"
      ],
      "description": "\"sim\" se o imóvel é financiado pelo Sistema Financeiro de Habitação.",
      "x-campoSite": "dsfhFinanciadoSFH"
     },
     "destinacaoResidencial": {
      "type": "string",
      "enum": [
       "sim",
       "nao"
      ],
      "description": "\"sim\" se a destinação é exclusivamente residencial.",
      "x-campoSite": "dsfhDestinacaoResidencial"
     }
    },
    "required": [
     "valorImovel",
     "primeiraAquisicao",
     "financiadoSFH",
     "destinacaoResidencial"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorImovel": {
      "type": "number",
      "description": "Valor do imóvel, em R$."
     },
     "uf": {
      "type": "string",
      "description": "Sigla do estado."
     },
     "ufNome": {
      "type": "string",
      "description": "Nome do estado."
     },
     "aliquotaRegistro": {
      "type": "number",
      "description": "Alíquota de registro da UF sobre o valor do imóvel, em %."
     },
     "custaPorAto": {
      "type": "number",
      "description": "Custas de um ato de registro, em R$."
     },
     "custaTotalSemDesconto": {
      "type": "number",
      "description": "Custas dos 2 atos sem o desconto, em R$."
     },
     "custaTotalComDesconto": {
      "type": "number",
      "description": "Custas dos 2 atos com o desconto de 50%, em R$."
     },
     "economia": {
      "type": "number",
      "description": "Economia com o desconto, em R$."
     },
     "elegivel": {
      "type": "boolean",
      "description": "true se cumpre os requisitos do desconto."
     },
     "motivoBloqueio": {
      "type": [
       "string",
       "null"
      ],
      "description": "Por que não é elegível (null se elegível)."
     },
     "gravidade": {
      "anyOf": [
       {
        "type": "string",
        "enum": [
         "vermelho",
         "amarelo"
        ]
       },
       {
        "type": "null"
       }
      ],
      "description": "Gravidade do bloqueio (null se elegível)."
     },
     "dentroDoTeto": {
      "type": "boolean",
      "description": "true se o valor está dentro do teto do SFH."
     },
     "tetoSFH": {
      "type": "number",
      "description": "Teto do SFH, em R$."
     },
     "primeiraAquisicao": {
      "type": "string",
      "description": "Resposta informada: é a primeira aquisição?"
     },
     "financiadoSFH": {
      "type": "string",
      "description": "Resposta informada: financiado pelo SFH?"
     },
     "destinacaoResidencial": {
      "type": "string",
      "description": "Resposta informada: destinação residencial?"
     },
     "observacao": {
      "type": "string",
      "description": "Ressalva sobre a estimativa das custas."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorImovel",
     "uf",
     "ufNome",
     "aliquotaRegistro",
     "custaPorAto",
     "custaTotalSemDesconto",
     "custaTotalComDesconto",
     "economia",
     "elegivel",
     "motivoBloqueio",
     "gravidade",
     "dentroDoTeto",
     "tetoSFH",
     "primeiraAquisicao",
     "financiadoSFH",
     "destinacaoResidencial",
     "observacao",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Custa por ato = valor do imóvel × alíquota de registro do estado",
    "Sem desconto = 2 atos (registro da compra e da alienação fiduciária)",
    "Com desconto = metade, quando o imóvel é o 1º, residencial, financiado pelo SFH e dentro do teto do sistema (Lei 6.015/73, Art. 290)",
    "Economia = sem desconto − com desconto; fora das condições, zero",
    "Exemplo (o cenário verificado pela suíte de testes): 1º imóvel de R$ 350 mil em São Paulo, financiado pelo SFH. Com custa de R$ 3.500 por ato, os dois atos custariam R$ 7 mil; com o desconto, R$ 3.500 — economia de R$ 3.500. Um imóvel de R$ 2,3 milhões fica acima do teto de R$ 2,25 milhões e não tem desconto."
   ],
   "fontes": [
    {
     "nome": "Lei 6.015/1973, Art. 290",
     "detalhe": "50% de desconto nos emolumentos dos atos relacionados à primeira aquisição residencial financiada pelo SFH"
    },
    {
     "nome": "CNJ, Pedido de Providências 0007496-70.2024.2.00.0000 (20/05/2025)",
     "detalhe": "interpretação literal uniformizada para todas as Corregedorias: ter outro imóvel comprado de outra forma não impede o desconto"
    },
    {
     "nome": "Resolução CMN 5.255/2025",
     "detalhe": "teto de R$ 2,25 milhões de avaliação do imóvel no SFH"
    }
   ],
   "limitacoes": [
    "A alíquota de registro de cada estado é uma referência; a tabela real de emolumentos varia por faixa de valor e por cartório. O desconto depende de o cartório reconhecer as quatro condições — leve a declaração de 1º imóvel e o contrato do SFH, e use a minuta de requerimento que a calculadora gera.",
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "1º imóvel, SP, R$350 mil, financiado SFH, residencial — elegível",
    "entradasSite": {
     "dsfhValorImovel": 350000,
     "dsfhUf": "SP",
     "dsfhPrimeiraAquisicao": "sim",
     "dsfhFinanciadoSFH": "sim",
     "dsfhDestinacaoResidencial": "sim"
    },
    "entradasMCP": {
     "valorImovel": 350000,
     "uf": "SP",
     "primeiraAquisicao": "sim",
     "financiadoSFH": "sim",
     "destinacaoResidencial": "sim"
    },
    "esperado": {
     "aliquotaRegistro": 1,
     "custaPorAto": 3500,
     "custaTotalSemDesconto": 7000,
     "custaTotalComDesconto": 3500,
     "economia": 3500,
     "elegivel": true,
     "dentroDoTeto": true
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual + execução isolada do núcleo puro _calcularDescontoSFH() via Node vm sandbox (fora do navegador), rodando o arquivo real de produção sem alteração — bateu exatamente com a saída da calculadora. Alíquota de registro de SP (1,0%) vem de ITBIEstados.get('SP').registro, mesma tabela já auditada do Hub ITBI/Custos por Estado (não uma 2ª tabela nova). Custa por ato = 350000 × 1% = 3500; 2 atos (Compra e Venda + Alienação Fiduciária) = 7000 sem desconto; com o desconto de 50% do Art. 290 da Lei 6.015/1973, cada ato cai pela metade = 3500 no total, economia de 3500."
   },
   "mcp": {
    "ferramenta": "calcular_desconto_primeiro_imovel_sfh"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/desconto-primeiro-imovel-sfh/?dsfhValorImovel={valorImovel}&dsfhUf={uf}&dsfhPrimeiraAquisicao={primeiraAquisicao}&dsfhFinanciadoSFH={financiadoSFH}&dsfhDestinacaoResidencial={destinacaoResidencial}",
   "revisaoFormula": "28/09/2026"
  },
  {
   "id": "isencao-ir-venda-imovel-180-dias",
   "nome": "Isenção de IR — 180 Dias",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/isencao-ir-venda-imovel-180-dias/",
   "descricao": "Vendeu um imóvel? Veja se você tem direito à isenção de IR reaplicando o valor em até 180 dias.",
   "perguntaQueResponde": "Tenho direito à isenção de Imposto de Renda na venda do meu imóvel se reinvestir o valor em até 180 dias?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorVenda": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor da venda, em R$.",
      "x-campoSite": "ir180ValorVenda"
     },
     "custoAquisicao": {
      "type": "number",
      "minimum": 0,
      "description": "Custo de aquisição do imóvel vendido (valor na declaração de IR), em R$.",
      "x-campoSite": "ir180CustoAquisicao"
     },
     "corretagem": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão de corretagem paga na venda, em R$. Padrão 0.",
      "x-campoSite": "ir180Corretagem"
     },
     "dataVenda": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Data da venda, no formato AAAA-MM-DD (o prazo de 180 dias corridos conta a partir dela).",
      "x-campoSite": "ir180DataVenda"
     },
     "valorReaplicado": {
      "type": "number",
      "minimum": 0,
      "description": "Valor a reaplicar em imóvel residencial (ou na quitação de financiamento), em R$.",
      "x-campoSite": "ir180ValorReaplicado"
     },
     "beneficio5Anos": {
      "type": "string",
      "enum": [
       "sim",
       "nao"
      ],
      "default": "nao",
      "description": "\"sim\" se já usou esta isenção nos últimos 5 anos (aí não há isenção). Padrão \"nao\".",
      "x-campoSite": "ir180Beneficio5Anos"
     },
     "quitaFinanciamento": {
      "type": "string",
      "enum": [
       "sim",
       "nao"
      ],
      "default": "nao",
      "description": "\"sim\" se o valor vai quitar financiamento residencial de outro imóvel (STJ Tema 993). Padrão \"nao\".",
      "x-campoSite": "ir180QuitaFinanciamento"
     }
    },
    "required": [
     "valorVenda",
     "custoAquisicao",
     "dataVenda",
     "valorReaplicado"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valorVenda": {
      "type": "number",
      "description": "Valor da venda, em R$."
     },
     "custoAquisicao": {
      "type": "number",
      "description": "Custo de aquisição, em R$."
     },
     "corretagem": {
      "type": "number",
      "description": "Corretagem paga na venda, em R$."
     },
     "valorReaplicado": {
      "type": "number",
      "description": "Valor aplicado na compra de outro imóvel residencial, em R$."
     },
     "alienacao": {
      "type": "number",
      "description": "Venda − corretagem, em R$."
     },
     "ganhoBruto": {
      "type": "number",
      "description": "Ganho de capital antes da isenção, em R$."
     },
     "ganhoTributavel": {
      "type": "number",
      "description": "Ganho de capital que continua tributável, em R$."
     },
     "fatorIsencao": {
      "type": "number",
      "description": "Parte isenta do ganho como FRAÇÃO (0 a 1), não em %."
     },
     "isencaoTotal": {
      "type": "boolean",
      "description": "true se todo o ganho fica isento."
     },
     "irSemBeneficio": {
      "type": "number",
      "description": "IR sem a isenção, em R$."
     },
     "irComBeneficio": {
      "type": "number",
      "description": "IR com a isenção, em R$."
     },
     "economiaIR": {
      "type": "number",
      "description": "IR economizado, em R$."
     },
     "usouNosUltimos5Anos": {
      "type": "boolean",
      "description": "Resposta informada: usou o benefício nos últimos 5 anos?"
     },
     "quitaFinanciamento": {
      "type": "boolean",
      "description": "Resposta informada: o valor quita financiamento de imóvel?"
     },
     "dataVenda": {
      "type": "string",
      "description": "Data da venda (AAAA-MM-DD)."
     },
     "dataLimite": {
      "type": "string",
      "description": "Prazo final para reaplicar (AAAA-MM-DD)."
     },
     "diasRestantes": {
      "type": "number",
      "description": "Dias até o prazo final (negativo se já venceu)."
     },
     "prazoVencido": {
      "type": "boolean",
      "description": "true se o prazo de 180 dias já passou."
     },
     "elegivel": {
      "type": "boolean",
      "description": "true se cumpre os requisitos da isenção."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valorVenda",
     "custoAquisicao",
     "corretagem",
     "valorReaplicado",
     "alienacao",
     "ganhoBruto",
     "ganhoTributavel",
     "fatorIsencao",
     "isencaoTotal",
     "irSemBeneficio",
     "irComBeneficio",
     "economiaIR",
     "usouNosUltimos5Anos",
     "quitaFinanciamento",
     "dataVenda",
     "dataLimite",
     "diasRestantes",
     "prazoVencido",
     "elegivel",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Valor de alienação = venda − corretagem; ganho = alienação − custo de aquisição",
    "Fator de isenção = valor reaplicado ÷ valor de alienação (100% se reaplicar tudo)",
    "Ganho tributável = ganho × (1 − fator)",
    "IR pelas faixas: 15% até R$ 5 milhões, 17,5% até 10, 20% até 30 e 22,5% acima (RIR/2018, Art. 153)",
    "Prazo: 180 dias corridos da venda; sem isenção se o benefício foi usado nos últimos 5 anos",
    "Exemplo (o cenário verificado pela suíte de testes): venda de R$ 800 mil, custo de R$ 500 mil, R$ 48 mil de corretagem e R$ 700 mil reaplicados. O ganho é de R$ 252 mil; como 93,1% do valor foi reaplicado, o IR cai de R$ 37.800 para R$ 2.613,83 — economia de R$ 35.186,17."
   ],
   "fontes": [
    {
     "nome": "Lei 11.196/2005, Art. 39",
     "detalhe": "isenção do ganho de capital com reaplicação em 180 dias contados do contrato; § 2º (proporcional) e § 5º (1 vez a cada 5 anos)"
    },
    {
     "nome": "IN SRF 599/2005",
     "detalhe": "regulamentação da isenção pela Receita Federal"
    },
    {
     "nome": "STJ, Tema Repetitivo 993",
     "detalhe": "quitação de financiamento de imóvel residencial já possuído também dá direito à isenção"
    },
    {
     "nome": "Lei 13.259/2016",
     "detalhe": "alíquotas progressivas do ganho de capital (15% a 22,5%)"
    }
   ],
   "limitacoes": [
    "A isenção vale só para imóvel residencial vendido e comprado por pessoa física residente, uma vez a cada 5 anos (Lei 11.196/2005, Art. 39, § 5º). A calculadora não aplica ao mesmo tempo a isenção do único imóvel até R$ 440 mil (Lei 9.250/95, Art. 23) nem o fator de redução por data de aquisição. Guarde o contrato da venda e da compra para comprovar o prazo de 180 dias — ele conta da data do contrato de venda, não da escritura, e com mais de uma venda conta a partir da primeira (§ 1º).",
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "Venda R$800 mil, custo R$500 mil, corretagem R$48 mil, reaplica R$700 mil — isenção parcial ~93%",
    "entradasSite": {
     "ir180ValorVenda": 800000,
     "ir180CustoAquisicao": 500000,
     "ir180Corretagem": 48000,
     "ir180DataVenda": "2026-08-01",
     "ir180ValorReaplicado": 700000,
     "ir180Beneficio5Anos": "nao",
     "ir180QuitaFinanciamento": "nao"
    },
    "entradasMCP": {
     "valorVenda": 800000,
     "custoAquisicao": 500000,
     "corretagem": 48000,
     "dataVenda": "2026-08-01",
     "valorReaplicado": 700000,
     "beneficio5Anos": "nao",
     "quitaFinanciamento": "nao"
    },
    "esperado": {
     "alienacao": 752000,
     "ganhoBruto": 252000,
     "ganhoTributavel": 17425.53,
     "fatorIsencao": 0.9308510638297872,
     "isencaoTotal": false,
     "irSemBeneficio": 37800,
     "irComBeneficio": 2613.83,
     "economiaIR": 35186.17,
     "elegivel": true,
     "dataLimite": "2027-01-28"
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual + execução isolada do núcleo puro _calcularIsencaoIR180() via Node vm sandbox (fora do navegador), rodando o arquivo real de produção sem alteração. Alienação = 800000−48000 = 752000; ganho bruto = 752000−500000 = 252000; fator de isenção = 700000/752000 = 0,93085...; ganho tributável = 252000×(1−0,93085) = 17425,53; IR sem benefício = 252000×15% (1ª faixa da Lei 13.259/2016, bem abaixo de R$5mi) = 37800; IR com benefício = 17425,53×15% = 2613,83; economia = 37800−2613,83 = 35186,17. `diasRestantes`/`prazoVencido` deliberadamente FORA do esperado — são relativos a 'hoje' e mudam a cada dia; `dataLimite` (800000... a partir de 01/08/2026 + 180 dias corridos = 28/01/2027) é determinístico e seguro de travar."
   },
   "mcp": {
    "ferramenta": "calcular_isencao_ir_180_dias"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/isencao-ir-venda-imovel-180-dias/?ir180ValorVenda={valorVenda}&ir180CustoAquisicao={custoAquisicao}&ir180Corretagem={corretagem}&ir180DataVenda={dataVenda}&ir180ValorReaplicado={valorReaplicado}&ir180Beneficio5Anos={beneficio5Anos}&ir180QuitaFinanciamento={quitaFinanciamento}",
   "revisaoFormula": "22/09/2026"
  },
  {
   "id": "ciclo-brrrr",
   "nome": "Ciclo BRRRR Brasil",
   "hub": "imoveis",
   "url": "https://estimei.com.br/calculadoras/ciclo-brrrr/",
   "descricao": "Simule o ciclo Buy-Rehab-Rent-Refinance-Repeat: quanto capital você recicla via Home Equity/CGI para a próxima compra.",
   "perguntaQueResponde": "Como arrematar com deságio, reformar e refinanciar para recuperar 100% do capital investido e manter o aluguel?",
   "entradas": {
    "type": "object",
    "properties": {
     "valorCompra": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de compra/arrematação, em R$.",
      "x-campoSite": "brrrrValorCompra"
     },
     "custosAquisicao": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI + registro + despachante já somados, em R$. Padrão 0.",
      "x-campoSite": "brrrrCustosAquisicao"
     },
     "orcamentoReforma": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Orçamento da reforma, em R$. Padrão 0.",
      "x-campoSite": "brrrrOrcamentoReforma"
     },
     "valorReavaliado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do imóvel depois da reforma (reavaliação do banco), em R$.",
      "x-campoSite": "brrrrValorReavaliado"
     },
     "aluguelMensal": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Aluguel mensal bruto, em R$.",
      "x-campoSite": "brrrrAluguelMensal"
     },
     "vacanciaAdminPct": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 0,
      "description": "Vacância + taxa de administração combinadas, em % do aluguel. Padrão 0.",
      "x-campoSite": "brrrrVacanciaAdmin"
     },
     "ltvPct": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "LTV do banco no CGI, em % do valor reavaliado (ex.: 60).",
      "x-campoSite": "brrrrLTV"
     },
     "taxaCGIAnual": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de juros ANUAL do CGI, em %.",
      "x-campoSite": "brrrrTaxaCGI"
     },
     "prazoCGIMeses": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Prazo do CGI, em MESES.",
      "x-campoSite": "brrrrPrazoCGI"
     },
     "sistema": {
      "type": "string",
      "enum": [
       "sac",
       "price"
      ],
      "default": "price",
      "description": "Sistema do CGI (\"sac\" usa a 1ª parcela, a mais alta). Padrão \"price\".",
      "x-campoSite": "brrrrSistema"
     }
    },
    "required": [
     "valorCompra",
     "valorReavaliado",
     "aluguelMensal",
     "ltvPct",
     "taxaCGIAnual",
     "prazoCGIMeses"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "capitalInicialTotal": {
      "type": "number",
      "description": "Capital investido: compra + reforma + custos, em R$."
     },
     "valorSacado": {
      "type": "number",
      "description": "Valor liberado no refinanciamento (home equity), em R$."
     },
     "capitalResidual": {
      "type": "number",
      "description": "Capital que fica preso no imóvel, em R$."
     },
     "recuperacaoTotal": {
      "type": "boolean",
      "description": "true se o refinanciamento devolve todo o capital."
     },
     "pctCapitalRecuperado": {
      "type": "number",
      "description": "Capital recuperado no refinanciamento, em %."
     },
     "taxaMensalCGI": {
      "type": "number",
      "description": "Taxa do refinanciamento ao mês como FRAÇÃO (0,011 = 1,1%), não em %."
     },
     "parcelaCGI": {
      "type": "number",
      "description": "Parcela mensal do refinanciamento (a primeira, no SAC), em R$."
     },
     "amortizacaoConstanteSAC": {
      "type": "number",
      "description": "Amortização mensal no SAC (0 na Price), em R$."
     },
     "aluguelLiquidoMensal": {
      "type": "number",
      "description": "Aluguel líquido por mês, em R$."
     },
     "fluxoCaixaMensal": {
      "type": "number",
      "description": "Aluguel líquido − parcela, por mês, em R$."
     },
     "capRatePosReforma": {
      "type": "number",
      "description": "Cap rate depois da reforma, ao ano, em %."
     },
     "tempoReciclagemMeses": {
      "type": [
       "number",
       "null"
      ],
      "description": "Tempo para o fluxo de caixa devolver o capital residual (0 se o refinanciamento devolveu tudo; null se o fluxo é ≤ 0), em meses."
     },
     "veredito": {
      "type": "string",
      "enum": [
       "excelente",
       "atencao",
       "inviavel"
      ],
      "description": "Veredito do ciclo."
     },
     "vereditoDescricao": {
      "type": "string",
      "description": "Explicação do veredito."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "capitalInicialTotal",
     "valorSacado",
     "capitalResidual",
     "recuperacaoTotal",
     "pctCapitalRecuperado",
     "taxaMensalCGI",
     "parcelaCGI",
     "amortizacaoConstanteSAC",
     "aluguelLiquidoMensal",
     "fluxoCaixaMensal",
     "capRatePosReforma",
     "tempoReciclagemMeses",
     "veredito",
     "vereditoDescricao",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Capital inicial = compra + custos de aquisição + reforma",
    "Valor sacado = valor reavaliado × LTV do crédito com garantia (CGI)",
    "Capital residual = capital inicial − valor sacado; recuperado = sacado ÷ capital inicial",
    "Parcela do CGI pela Price ou SAC, com a taxa mensal equivalente",
    "Fluxo mensal = aluguel × (1 − vacância e administração) − parcela; cap rate = aluguel líquido anual ÷ valor reavaliado",
    "Exemplo (o cenário verificado pela suíte de testes): compra de R$ 200 mil, R$ 12 mil de custos e R$ 38 mil de reforma, reavaliado em R$ 400 mil com CGI de 60%. Saca-se R$ 240 mil — 96% do capital volta —, mas a parcela de R$ 2.841,69 supera o aluguel líquido de R$ 2.208: fluxo de −R$ 633,69 por mês."
   ],
   "fontes": [
    {
     "nome": "Lei 9.514/1997, Art. 22",
     "detalhe": "alienação fiduciária do imóvel em garantia — base do Crédito com Garantia de Imóvel (CGI/Home Equity)"
    },
    {
     "nome": "ABNT NBR 14.653",
     "detalhe": "avaliação de imóveis — o laudo pós-reforma que define o valor sobre o qual o banco calcula o LTV"
    }
   ],
   "limitacoes": [
    "Laudo de avaliação do imóvel (engenheiro ou arquiteto, pela ABNT NBR 14.653) — o banco do CGI faz o próprio",
    "Análise cadastral, comprovação de renda e score de crédito junto à instituição financeira",
    "Proposta e planilha de Custo Efetivo Total (CET) emitida formalmente pelo banco credor",
    "Due diligence documental e certidões cíveis/fiscais do imóvel e dos vendedores"
   ],
   "exemploAuditado": {
    "cenario": "BRRRR clássico — compra R$200k + custos R$12k + reforma R$38k, reavaliado R$400k, CGI 60% Price 14% a.a./240m",
    "entradasSite": {
     "brrrrValorCompra": 200000,
     "brrrrCustosAquisicao": 12000,
     "brrrrOrcamentoReforma": 38000,
     "brrrrValorReavaliado": 400000,
     "brrrrAluguelMensal": 2400,
     "brrrrVacanciaAdmin": 8,
     "brrrrLTV": 60,
     "brrrrTaxaCGI": 14,
     "brrrrPrazoCGI": 240,
     "brrrrSistema": "price"
    },
    "entradasMCP": {
     "valorCompra": 200000,
     "custosAquisicao": 12000,
     "orcamentoReforma": 38000,
     "valorReavaliado": 400000,
     "aluguelMensal": 2400,
     "vacanciaAdminPct": 8,
     "ltvPct": 60,
     "taxaCGIAnual": 14,
     "prazoCGIMeses": 240,
     "sistema": "price"
    },
    "esperado": {
     "capitalInicialTotal": 250000,
     "valorSacado": 240000,
     "capitalResidual": 10000,
     "pctCapitalRecuperado": 96,
     "parcelaCGI": 2841.69,
     "aluguelLiquidoMensal": 2208,
     "fluxoCaixaMensal": -633.69,
     "capRatePosReforma": 6.62,
     "veredito": "atencao"
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual + execução isolada do núcleo puro _calcularCicloBRRRR() via Node vm sandbox (fora do navegador), batendo exatamente com a saída da calculadora real. capitalResidual=10.000 (96% do capital recuperado) e fluxo de caixa mensal negativo (aluguel líquido R$2.208 < parcela Price R$2.841,69 sobre R$240k sacados a 14% a.a./240 meses) classificam o cenário como 'atencao' pela regra unificada de 17/09/2026 (Excelente exige >=90% recuperado E fluxo positivo; Inviável exige <70% recuperado E fluxo negativo; o resto — incluindo este cenário, 96% recuperado mas fluxo negativo — é Atenção/Alavancagem Parcial). Cenário deliberadamente realista (taxas de CGI no Brasil são mais altas que o refinanciamento americano, ver guia da calculadora) em vez de um exemplo artificialmente otimista."
   },
   "mcp": {
    "ferramenta": "calcular_ciclo_brrrr"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/ciclo-brrrr/?brrrrValorCompra={valorCompra}&brrrrCustosAquisicao={custosAquisicao}&brrrrOrcamentoReforma={orcamentoReforma}&brrrrValorReavaliado={valorReavaliado}&brrrrAluguelMensal={aluguelMensal}&brrrrVacanciaAdmin={vacanciaAdminPct}&brrrrLTV={ltvPct}&brrrrTaxaCGI={taxaCGIAnual}&brrrrPrazoCGI={prazoCGIMeses}&brrrrSistema={sistema}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "jornada-leilao",
   "nome": "Qual é o seu limite? Jornada do Leilão",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/jornada-leilao/",
   "descricao": "Preencha o lote uma vez e descubra o lance máximo que entrega o retorno anual que você exige.",
   "perguntaQueResponde": "Até quanto posso dar de lance neste lote, já contando desocupação e custos até a venda, e ainda ter o retorno anual que eu exijo?",
   "entradas": {
    "type": "object",
    "properties": {
     "avaliacao": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de avaliação/mercado do imóvel, em R$ (também usado como preço de venda).",
      "x-campoSite": "jornadaAvaliacao"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Lance pretendido, em R$. Não use junto com descontoPct. Sem lance nem desconto, a análise usa o teto de lance.",
      "x-campoSite": "jornadaLance"
     },
     "descontoPct": {
      "type": "number",
      "minimum": 0,
      "maximum": 95,
      "description": "Alternativa ao lance: deságio sobre a avaliação, em %.",
      "x-semCampoSite": true
     },
     "uf": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "description": "Sigla do estado (ITBI, cartório e CUB).",
      "x-campoSite": "jornadaEstado"
     },
     "municipio": {
      "type": "string",
      "description": "Município, para a alíquota de ITBI. Se omitido ou fora da tabela, usa a referência da UF e marca itbi.estimado=true.",
      "x-semCampoSite": true
     },
     "areaM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m² (reforma pelo CUB).",
      "x-campoSite": "jornadaArea"
     },
     "modalidade": {
      "type": "string",
      "enum": [
       "extrajudicial",
       "judicial_civel",
       "judicial_trabalhista"
      ],
      "description": "Modalidade do leilão. Padrão \"extrajudicial\". Na v1 não muda o cálculo: a comissão é de 5% nas três.",
      "x-campoSite": "jornadaModalidade",
      "x-valoresSite": {
       "extrajudicial": "leiloeiro"
      }
     },
     "ocupacao": {
      "type": "string",
      "enum": [
       "desocupado",
       "ex_mutuario",
       "terceiro"
      ],
      "description": "Situação de ocupação. Padrão \"desocupado\".",
      "x-campoSite": "jornadaOcupacao",
      "x-valoresSite": {
       "terceiro": "terceiro_litigioso"
      }
     },
     "viaDesocupacao": {
      "type": "string",
      "enum": [
       "amigavel",
       "judicial"
      ],
      "description": "Via de desocupação, se ocupado. Padrão \"judicial\" (conservador).",
      "x-semCampoSite": true
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "pintura",
       "basica",
       "media",
       "completa"
      ],
      "description": "Nível de reforma, pelo CUB da UF. Padrão \"media\".",
      "x-campoSite": "jornadaNivelReforma"
     },
     "dividasAssumidasValor": {
      "type": "number",
      "minimum": 0,
      "description": "Dívidas que o EDITAL transfere ao arrematante, em R$ — não o total de dívidas do imóvel: débito tributário anterior não passa ao arrematante (CTN Art. 130, p. único; STJ Tema 1.134), e o condominial só se o edital previr. Padrão 0.",
      "x-campoSite": "jornadaDividas"
     },
     "iptuMensal": {
      "type": "number",
      "minimum": 0,
      "description": "IPTU até a venda, em R$ por mês. Padrão 0.",
      "x-campoSite": "jornadaIPTU"
     },
     "condominioMensal": {
      "type": "number",
      "minimum": 0,
      "description": "Condomínio até a venda, em R$ por mês. Padrão 0.",
      "x-campoSite": "jornadaCondominio"
     },
     "aguaMensal": {
      "type": "number",
      "minimum": 0,
      "description": "Água até a venda, em R$ por mês. Padrão 0.",
      "x-campoSite": "jornadaAgua"
     },
     "prazoVendaMeses": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Prazo até a venda, em meses. Padrão 12.",
      "x-campoSite": "jornadaPrazoVenda"
     },
     "roiAlvoPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "ROI-alvo para o teto de lance, em % no período inteiro. Padrão 20.",
      "x-semCampoSite": true
     },
     "retornoAnualAlvoPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Meta de retorno ANUAL, em % ao ano, para o limite da Jornada (bloco limiteJornada). Se omitida, usa o equivalente anual do roiAlvoPct no prazo até a venda.",
      "x-campoSite": "jornadaMeta"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "description": "Comissão do corretor na revenda, em % sobre a avaliação. Padrão 6.",
      "x-campoSite": "jornadaComissaoVenda"
     },
     "taxaCDIAnualPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "CDI anual, em %. Se omitido, é buscado ao vivo no Banco Central (Selic Meta − 0,10 p.p., mesma conversão do site).",
      "x-semCampoSite": true
     },
     "tipoImovel": {
      "type": "string",
      "enum": [
       "residencial",
       "comercial",
       "terreno",
       "rural"
      ],
      "description": "Tipo de imóvel, para a dimensão Liquidez do risco. Se omitido, a Liquidez usa só o prazo até a venda (com aviso).",
      "x-campoSite": "jornadaTipo"
     }
    },
    "required": [
     "avaliacao",
     "uf",
     "areaM2"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "veredito": {
      "type": "object",
      "properties": {
       "semaforo": {
        "type": "string",
        "enum": [
         "verde",
         "amarelo",
         "vermelho"
        ],
        "description": "Vermelho: lance acima do teto, ROI anualizado abaixo do CDI ou risco alto. Amarelo: lance entre 90% e 100% do teto, risco moderado ou ITBI estimado. Verde: nenhum dos anteriores."
       },
       "resumo": {
        "type": "string",
        "description": "Uma frase com a posição do lance frente ao teto, o ROI anualizado frente ao CDI e o risco."
       },
       "motivos": {
        "type": "array",
        "items": {
         "type": "string"
        },
        "description": "As condições que definiram a cor (vazio se verde)."
       }
      },
      "required": [
       "semaforo",
       "resumo",
       "motivos"
      ],
      "additionalProperties": false
     },
     "lance": {
      "type": "object",
      "properties": {
       "valor": {
        "type": "number",
        "description": "Lance analisado, em R$."
       },
       "origem": {
        "type": "string",
        "enum": [
         "informado",
         "desconto",
         "teto"
        ],
        "description": "De onde veio o lance: informado, calculado pelo descontoPct ou igual ao teto de lance."
       },
       "descontoSobreAvaliacaoPct": {
        "type": "number",
        "description": "Deságio do lance sobre a avaliação, em %."
       }
      },
      "required": [
       "valor",
       "origem",
       "descontoSobreAvaliacaoPct"
      ],
      "additionalProperties": false
     },
     "tetoLance": {
      "type": "object",
      "properties": {
       "valor": {
        "type": "number",
        "description": "Maior lance que atinge o ROI-alvo, pela calculadora de lance máximo, em R$."
       },
       "roiAlvoPct": {
        "type": "number",
        "description": "ROI-alvo usado, no período inteiro, em %."
       },
       "roiInalcancavel": {
        "type": "boolean",
        "description": "true se nem com lance zero o ROI-alvo é atingido."
       },
       "inclui": {
        "type": "array",
        "items": {
         "type": "string"
        },
        "description": "Blocos de custo que o teto considera."
       },
       "ressalva": {
        "type": "string",
        "description": "O que o teto não considera."
       }
      },
      "required": [
       "valor",
       "roiAlvoPct",
       "roiInalcancavel",
       "inclui",
       "ressalva"
      ],
      "additionalProperties": false
     },
     "limiteJornada": {
      "type": "object",
      "properties": {
       "valor": {
        "type": [
         "number",
         "null"
        ],
        "description": "Maior lance inteiro cujo ROI anualizado atinge a meta, descontando desocupação, dívidas assumidas e custos mensais até a venda (mesmo cálculo da Jornada de Leilão do site); null se a meta for inalcançável, em R$."
       },
       "retornoAnualAlvoPct": {
        "type": "number",
        "description": "Meta de retorno anual usada, ao ano, em %."
       },
       "origemMeta": {
        "type": "string",
        "enum": [
         "informada",
         "equivalente_roiAlvoPct"
        ],
        "description": "informada = retornoAnualAlvoPct; equivalente_roiAlvoPct = roiAlvoPct convertido para ao ano no prazo até a venda."
       },
       "metaInalcancavel": {
        "type": "boolean",
        "description": "true se nem com lance zero a meta anual é atingida."
       },
       "roiAnualComLanceZeroPct": {
        "type": [
         "number",
         "null"
        ],
        "description": "ROI anualizado máximo possível, com lance zero, em %."
       },
       "folga": {
        "type": [
         "number",
         "null"
        ],
        "description": "Limite menos o lance analisado (negativo = lance acima do limite); null se a meta for inalcançável, em R$."
       },
       "lanceDentroDoLimite": {
        "type": [
         "boolean",
         "null"
        ],
        "description": "true se o lance analisado não passa do limite; null se a meta for inalcançável."
       },
       "inclui": {
        "type": "array",
        "items": {
         "type": "string"
        },
        "description": "Blocos de custo que o limite considera."
       }
      },
      "required": [
       "valor",
       "retornoAnualAlvoPct",
       "origemMeta",
       "metaInalcancavel",
       "roiAnualComLanceZeroPct",
       "folga",
       "lanceDentroDoLimite",
       "inclui"
      ],
      "additionalProperties": false
     },
     "custosAquisicao": {
      "type": "object",
      "properties": {
       "comissaoLeiloeiro": {
        "type": "object",
        "properties": {
         "valor": {
          "type": "number",
          "description": "Comissão do leiloeiro, em R$."
         },
         "pct": {
          "type": "number",
          "description": "Comissão sobre o lance, em %."
         }
        },
        "required": [
         "valor",
         "pct"
        ],
        "additionalProperties": false
       },
       "itbi": {
        "type": "object",
        "properties": {
         "valor": {
          "type": "number",
          "description": "ITBI sobre o lance, em R$."
         },
         "pct": {
          "type": "number",
          "description": "Alíquota de ITBI, em %."
         },
         "municipio": {
          "type": "string",
          "description": "Município cuja alíquota foi usada."
         },
         "estimado": {
          "type": "boolean",
          "description": "true se o município não foi informado ou não está na tabela de ITBI."
         }
        },
        "required": [
         "valor",
         "pct",
         "municipio",
         "estimado"
        ],
        "additionalProperties": false
       },
       "escritura": {
        "type": "number",
        "description": "Escritura, em R$."
       },
       "registro": {
        "type": "number",
        "description": "Registro, em R$."
       },
       "total": {
        "type": "number",
        "description": "Comissão + ITBI + escritura + registro, em R$."
       }
      },
      "required": [
       "comissaoLeiloeiro",
       "itbi",
       "escritura",
       "registro",
       "total"
      ],
      "additionalProperties": false
     },
     "desocupacao": {
      "type": "object",
      "properties": {
       "ocupacao": {
        "type": "string",
        "enum": [
         "desocupado",
         "ex_mutuario",
         "terceiro"
        ],
        "description": "Situação de ocupação informada."
       },
       "via": {
        "anyOf": [
         {
          "type": "string",
          "enum": [
           "amigavel",
           "judicial"
          ]
         },
         {
          "type": "null"
         }
        ],
        "description": "Via de desocupação considerada (null se desocupado)."
       },
       "custoEstimado": {
        "type": "number",
        "description": "Custo de desocupação, pela calculadora de desocupação (perfil \"somente custos\"), em R$."
       }
      },
      "required": [
       "ocupacao",
       "via",
       "custoEstimado"
      ],
      "additionalProperties": false
     },
     "reforma": {
      "type": "object",
      "properties": {
       "nivel": {
        "type": "string",
        "description": "Nível de reforma."
       },
       "custo": {
        "type": "number",
        "description": "Custo da reforma pelo CUB da UF, em R$."
       },
       "custoM2": {
        "type": "number",
        "description": "Custo da reforma por m², em R$."
       },
       "cub": {
        "anyOf": [
         {
          "type": "object",
          "properties": {
           "uf": {
            "type": "string"
           },
           "competencia": {
            "type": "string",
            "description": "Mês de referência do CUB (AAAA-MM)."
           }
          },
          "required": [
           "uf",
           "competencia"
          ],
          "additionalProperties": false
         },
         {
          "type": "null"
         }
        ],
        "description": "CUB usado (null sem reforma)."
       }
      },
      "required": [
       "nivel",
       "custo",
       "custoM2",
       "cub"
      ],
      "additionalProperties": false
     },
     "capital": {
      "type": "object",
      "properties": {
       "dia1": {
        "type": "number",
        "description": "Capital na arrematação: lance + custos de aquisição, em R$."
       },
       "total": {
        "type": "number",
        "description": "Capital total até a venda: Dia 1 + desocupação + reforma + dívidas assumidas + custos mensais, em R$."
       },
       "custosMensaisAteVenda": {
        "type": "number",
        "description": "IPTU + condomínio + água durante o prazo até a venda, em R$."
       },
       "composicao": {
        "type": "array",
        "items": {
         "type": "string"
        },
        "description": "Blocos somados no capital total."
       }
      },
      "required": [
       "dia1",
       "total",
       "custosMensaisAteVenda",
       "composicao"
      ],
      "additionalProperties": false
     },
     "retorno": {
      "type": "object",
      "properties": {
       "prazoMeses": {
        "type": "number",
        "description": "Prazo até a venda, em meses."
       },
       "lucroLiquido": {
        "type": "number",
        "description": "Lucro líquido como pessoa física, depois de todos os custos e do IR, em R$."
       },
       "irPF": {
        "type": "number",
        "description": "IR da pessoa física sobre o ganho de capital (15%), em R$."
       },
       "roiTotalPct": {
        "type": "number",
        "description": "ROI líquido no período inteiro (não anualizado), em %."
       },
       "roiAnualizadoPct": {
        "type": "number",
        "description": "ROI líquido anualizado pelo prazo — % a.a., em %."
       },
       "cdi": {
        "type": "object",
        "properties": {
         "anualPct": {
          "type": "number",
          "description": "Taxa CDI usada, ao ano, em %."
         },
         "origem": {
          "type": "string",
          "enum": [
           "informado",
           "bcb"
          ],
          "description": "\"informado\" = taxaCDIAnualPct da chamada; \"bcb\" = buscado ao vivo."
         },
         "fonte": {
          "type": "string"
         },
         "selicMetaPct": {
          "type": "number",
          "description": "Selic Meta vigente usada na conversão, ao ano, em %."
         },
         "consultadoEm": {
          "type": "string",
          "description": "Data e hora da consulta (ISO 8601)."
         }
        },
        "required": [
         "anualPct",
         "origem"
        ],
        "additionalProperties": false
       },
       "superaCDI": {
        "type": "boolean",
        "description": "true se o ROI anualizado supera o CDI anual (bruto)."
       }
      },
      "required": [
       "prazoMeses",
       "lucroLiquido",
       "irPF",
       "roiTotalPct",
       "roiAnualizadoPct",
       "cdi",
       "superaCDI"
      ],
      "additionalProperties": false
     },
     "risco": {
      "type": "object",
      "properties": {
       "score": {
        "type": "number",
        "description": "Estimei Risk Score (0 a 100): a nota da dimensão de maior risco."
       },
       "nivel": {
        "type": "string",
        "enum": [
         "verde",
         "amarelo",
         "vermelho"
        ],
        "description": "Faixa: verde 0–30, amarelo 31–65, vermelho 66–100."
       },
       "nomeFaixa": {
        "type": "string"
       },
       "dimensaoDominante": {
        "type": "string",
        "enum": [
         "juridico",
         "financeiro",
         "operacional",
         "liquidez"
        ],
        "description": "Dimensão que define a nota."
       },
       "dimensoes": {
        "type": "array",
        "items": {
         "type": "object",
         "properties": {
          "id": {
           "type": "string",
           "enum": [
            "juridico",
            "financeiro",
            "operacional",
            "liquidez"
           ]
          },
          "nome": {
           "type": "string"
          },
          "avaliada": {
           "type": "boolean"
          },
          "score": {
           "type": [
            "number",
            "null"
           ],
           "description": "Nota da dimensão, 0 a 100 (null se não avaliada)."
          },
          "nivel": {
           "anyOf": [
            {
             "type": "string",
             "enum": [
              "verde",
              "amarelo",
              "vermelho"
             ]
            },
            {
             "type": "null"
            }
           ]
          },
          "fatores": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "chave": {
              "type": "string"
             },
             "valor": {
              "type": "string"
             },
             "pontos": {
              "type": "number"
             }
            },
            "required": [
             "chave",
             "valor",
             "pontos"
            ],
            "additionalProperties": false
           }
          }
         },
         "required": [
          "id",
          "nome",
          "avaliada",
          "score",
          "nivel",
          "fatores"
         ],
         "additionalProperties": false
        },
        "description": "Jurídico, Financeiro, Operacional e Liquidez."
       },
       "fatoresCriticos": {
        "type": "array",
        "items": {
         "$ref": "#/properties/risco/properties/dimensoes/items/properties/fatores/items"
        },
        "description": "Fatores que agravam o risco, do maior para o menor."
       },
       "checklist": {
        "type": "array",
        "items": {
         "type": "string"
        },
        "description": "Até 4 recomendações preventivas."
       },
       "avisosLiquidez": {
        "type": "array",
        "items": {
         "type": "string"
        }
       },
       "entradas": {
        "type": "object",
        "properties": {
         "ocupacao": {
          "type": "string"
         },
         "rito": {
          "type": "string"
         },
         "dividas": {
          "type": "string"
         },
         "desagio": {
          "type": "string"
         },
         "reforma": {
          "type": "string"
         },
         "tipoImovel": {
          "type": "string"
         },
         "prazoMeses": {
          "type": "number"
         }
        },
        "required": [
         "ocupacao",
         "rito",
         "dividas",
         "desagio",
         "reforma",
         "prazoMeses"
        ],
        "additionalProperties": false,
        "description": "Eixos passados ao Risk Score (os mesmos parâmetros da calcular_risk_score_leilao), derivados do lote: dívidas, deságio e reforma em % da avaliação."
       }
      },
      "required": [
       "score",
       "nivel",
       "nomeFaixa",
       "dimensaoDominante",
       "dimensoes",
       "fatoresCriticos",
       "checklist",
       "avisosLiquidez",
       "entradas"
      ],
      "additionalProperties": false,
      "description": "Risk Score em 4 dimensões (metodologia v1.5)."
     },
     "modalidade": {
      "type": "string",
      "enum": [
       "extrajudicial",
       "judicial_civel",
       "judicial_trabalhista"
      ],
      "description": "Modalidade informada."
     },
     "linkSimulacao": {
      "type": "string",
      "description": "Link para a calculadora de Viabilidade Completa no site, já preenchida com os mesmos dados."
     },
     "premissas": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "description": "Todo padrão ou suposição aplicada na análise."
     },
     "fontes": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "description": "Normas e dados usados."
     },
     "motor": {
      "type": "string",
      "description": "Versão da fachada."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "veredito",
     "lance",
     "tetoLance",
     "limiteJornada",
     "custosAquisicao",
     "desocupacao",
     "reforma",
     "capital",
     "retorno",
     "risco",
     "modalidade",
     "linkSimulacao",
     "premissas",
     "fontes",
     "motor",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Para cada lance testado: comissão do leiloeiro, ITBI e honorários sobre o lance; escritura, registro e desocupação sobre a avaliação; dívidas que o edital transfere; reforma; e IPTU, condomínio e água em todos os meses até a venda",
    "Lucro = preço de venda − comissão do corretor − Imposto de Renda − tudo o que você desembolsou",
    "Imposto de Renda = 15% sobre o ganho de capital, com custo de aquisição = lance + leiloeiro + ITBI + cartório + reforma",
    "Retorno anual = retorno do período convertido para 12 meses (juros compostos), comparável com o CDI",
    "Seu limite = o maior lance, em reais inteiros, cujo retorno anual ainda atinge a sua meta"
   ],
   "fontes": [
    {
     "nome": "Decreto 21.981/1932, Art. 24 e STJ, RMS 65.084",
     "detalhe": "comissão de 5% do leiloeiro, paga pelo arrematante, também no leilão judicial"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da arrematação, não no valor venal"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153 + IN SRF 84/2001",
     "detalhe": "ganho de capital na revenda: custo de aquisição, corretagem deduzida e alíquota de 15% até R$ 5 milhões"
    },
    {
     "nome": "Banco Central — CDI (SGS)",
     "detalhe": "custo de oportunidade: a meta e o retorno anualizado são comparados ao CDI atualizado"
    },
    {
     "nome": "Metodologia própria do Estimei",
     "detalhe": "Risk Score em 4 dimensões e Matriz de Decisão Retorno vs. Risco"
    }
   ],
   "limitacoes": [
    "Esta versão considera compra à vista, revenda e pessoa física. Financiamento, aluguel no período, compra por empresa, parcelamento do lance (Art. 895 do CPC) e isenções de IR ficam de fora. Para eles, use a Análise Completa de Viabilidade de Leilão e as calculadoras de cada modalidade. Os percentuais típicos são referências de mercado: confira sempre o edital.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "Piloto Tatuapé — lance R$ 290 mil acima do limite para 20% a.a. (ocupado, Caixa)",
    "entradasSite": {
     "jornadaModalidade": "caixa",
     "jornadaEstado": "SP",
     "jornadaTipo": "residencial",
     "jornadaAvaliacao": 500000,
     "jornadaPrecoVenda": 500000,
     "jornadaArea": 80,
     "jornadaPrazoVenda": 12,
     "jornadaOcupacao": "terceiro_litigioso",
     "jornadaComissao": 5,
     "jornadaITBI": 3,
     "jornadaEscritura": 1.5,
     "jornadaRegistro": 0.8,
     "jornadaHonorarios": 5,
     "jornadaDesocupacao": 4,
     "jornadaDividas": 12000,
     "jornadaNivelReforma": "valor_fixo",
     "jornadaReformaValorFixo": 45000,
     "jornadaIPTU": 300,
     "jornadaCondominio": 850,
     "jornadaAgua": 50,
     "jornadaComissaoVenda": 6,
     "jornadaLance": 290000,
     "jornadaMeta": 20
    },
    "entradasMCP": {
     "modalidade": "caixa",
     "uf": "SP",
     "tipoImovel": "residencial",
     "avaliacao": 500000,
     "areaM2": 80,
     "prazoVendaMeses": 12,
     "ocupacao": "terceiro",
     "dividasAssumidasValor": 12000,
     "nivelReforma": "valor_fixo",
     "iptuMensal": 300,
     "condominioMensal": 850,
     "aguaMensal": 50,
     "comissaoVendaPct": 6,
     "lance": 290000,
     "retornoAnualAlvoPct": 20
    },
    "esperado": {
     "teto": 238286,
     "folga": -51714,
     "lucro": 24355,
     "roiAnual": 5.66,
     "totalDesembolso": 430600,
     "ir": 15045,
     "inalcancavel": false
    },
    "tolerancia": 0.01,
    "verificacao": "Verificado em 05/10/2026 por recomputação independente em Python (Decimal, arredondamento meio para cima), sem usar o motor: desembolso 290.000 + 81.200 (leiloeiro, ITBI, cartório, honorários, desocupação, dívidas) + 45.000 + 14.400 = 430.600; IR 15% × (470.000 − 369.200) = 15.045; lucro 24.355 (5,66% em 12 meses). Teto por bissecção inteira: R$ 238.286 dá 20,00% e R$ 238.287 dá 19,99%."
   },
   "mcp": {
    "ferramenta": "analisar_leilao"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/jornada-leilao/?jornadaAvaliacao={avaliacao}&jornadaLance={lance}&jornadaEstado={uf}&jornadaArea={areaM2}&jornadaModalidade={modalidade}&jornadaOcupacao={ocupacao}&jornadaNivelReforma={nivelReforma}&jornadaDividas={dividasAssumidasValor}&jornadaIPTU={iptuMensal}&jornadaCondominio={condominioMensal}&jornadaAgua={aguaMensal}&jornadaPrazoVenda={prazoVendaMeses}&jornadaMeta={retornoAnualAlvoPct}&jornadaComissaoVenda={comissaoVendaPct}&jornadaTipo={tipoImovel}&jornadaComissao=5&jornadaEscritura=1.5&jornadaRegistro=0.8&jornadaHonorarios=0",
   "revisaoFormula": "05/10/2026"
  },
  {
   "id": "viabilidade-caixa",
   "nome": "Imóveis Caixa - Análise Rápida",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/viabilidade-caixa/",
   "descricao": "Viabilidade para imóveis da Caixa Econômica Federal. Leilão, Licitação Aberta, Venda Online e Compra Direta.",
   "perguntaQueResponde": "Vale a pena arrematar este imóvel da Caixa pelo valor do lance considerando todas as despesas e a desocupação?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado se nivelReforma for por CUB. Padrão \"SP\".",
      "x-campoSite": "caixaEstado"
     },
     "modalidade": {
      "type": "string",
      "enum": [
       "leilao",
       "licitacao_aberta",
       "venda_online",
       "compra_direta"
      ],
      "default": "venda_online",
      "description": "Modalidade de venda da Caixa. Padrão \"venda_online\".",
      "x-campoSite": "caixaModalidade"
     },
     "avaliacao": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de avaliação, em R$.",
      "x-campoSite": "caixaAvaliacao"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance, em R$ (até 5% acima da avaliação).",
      "x-campoSite": "caixaLance"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m².",
      "x-campoSite": "caixaArea"
     },
     "comissaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance — só se aplica em modalidade \"leilao\"/\"licitacao_aberta\". Padrão 0.",
      "x-campoSite": "caixaComissao"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "caixaITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "caixaEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "caixaRegistro"
     },
     "dividasAnteriores": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Dívidas anteriores assumidas, em R$. Padrão 0.",
      "x-campoSite": "caixaDividasAnteriores"
     },
     "ocupacao": {
      "type": "string",
      "enum": [
       "desocupado",
       "ex_proprietario",
       "terceiros"
      ],
      "default": "desocupado",
      "description": "Situação de ocupação. Padrão \"desocupado\".",
      "x-campoSite": "caixaOcupacao"
     },
     "honorariosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Honorários advocatícios, em % sobre o lance. Padrão 0.",
      "x-campoSite": "caixaHonorarios"
     },
     "desocupacaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custo de desocupação, em % sobre a avaliação, só se ocupacao != \"desocupado\". Padrão 0.",
      "x-campoSite": "caixaDesocupacao"
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "valor_fixo",
       "personalizada",
       "pintura",
       "basica",
       "media",
       "completa"
      ],
      "default": "media",
      "description": "Nível/modo da reforma. Padrão \"media\".",
      "x-campoSite": "caixaNivelReforma"
     },
     "reformaValorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se nivelReforma=\"valor_fixo\".",
      "x-campoSite": "caixaReformaFixo"
     },
     "custoPorM2Personalizado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² da reforma, em R$ — obrigatório se nivelReforma=\"personalizada\".",
      "x-campoSite": "caixaCustoPorM2"
     },
     "intencao": {
      "type": "string",
      "enum": [
       "vender",
       "alugar"
      ],
      "default": "vender",
      "description": "Estratégia de saída. Padrão \"vender\".",
      "x-campoSite": "caixaIntencao"
     },
     "valorSaida": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Preço estimado de revenda, em R$ — obrigatório se intencao=\"vender\".",
      "x-campoSite": "caixaValorSaida"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na revenda, em %. Padrão 0.",
      "x-campoSite": "caixaComissaoVenda"
     },
     "aluguelRenda": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Aluguel mensal esperado, em R$ — obrigatório se intencao=\"alugar\".",
      "x-campoSite": "caixaAluguelRenda"
     }
    },
    "required": [
     "avaliacao",
     "lance",
     "area"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "modalidade": {
      "type": "string",
      "description": "Modalidade de venda da Caixa."
     },
     "avaliacao": {
      "type": "number",
      "description": "Valor de avaliação, em R$."
     },
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "area": {
      "type": "number",
      "description": "Área do imóvel, em m²."
     },
     "desconto": {
      "type": "number",
      "description": "Desconto do lance sobre o valor de avaliação/mercado, em %."
     },
     "custoTransacao": {
      "type": "number",
      "description": "Comissão do leiloeiro (só em leilão/licitação aberta) + ITBI + escritura + registro, em R$."
     },
     "custoJuridico": {
      "type": "number",
      "description": "Honorários + desocupação, em R$."
     },
     "totalDesembolso": {
      "type": "number",
      "description": "Lance + custos de transação + custo jurídico + dívidas + reforma, em R$."
     },
     "reforma": {
      "type": "number",
      "description": "Custo da reforma, em R$."
     },
     "custoAquisicaoFiscal": {
      "type": "number",
      "description": "Base fiscal do IR (0 se intencao=\"alugar\"), em R$."
     },
     "valorAlienacao": {
      "type": "number",
      "description": "Valor de revenda menos a comissão de venda (0 se intencao=\"alugar\"), em R$."
     },
     "irPF": {
      "type": "number",
      "description": "IR da pessoa física sobre o ganho de capital (0 se intencao=\"alugar\"), em R$."
     },
     "lucroLiq": {
      "type": "number",
      "description": "Vender: lucro líquido PF. Alugar: aluguel anual líquido de IR, em R$."
     },
     "roi": {
      "type": "number",
      "description": "Vender: ROI líquido no período inteiro. Alugar: yield líquido ao ano, em %."
     },
     "aluguelAnual": {
      "type": "number",
      "description": "Aluguel de 12 meses (0 se intencao=\"vender\"), em R$."
     },
     "irAlugAnual": {
      "type": "number",
      "description": "IR anual sobre o aluguel, tabela mensal da pessoa física (0 se intencao=\"vender\"), em R$."
     },
     "yieldBruto": {
      "type": "number",
      "description": "Aluguel anual sobre o total desembolsado, ao ano (0 se intencao=\"vender\"), em %."
     },
     "yieldLiq": {
      "type": "number",
      "description": "Aluguel anual líquido de IR sobre o total desembolsado, ao ano (0 se intencao=\"vender\"), em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "modalidade",
     "avaliacao",
     "lance",
     "area",
     "desconto",
     "custoTransacao",
     "custoJuridico",
     "totalDesembolso",
     "reforma",
     "custoAquisicaoFiscal",
     "valorAlienacao",
     "irPF",
     "lucroLiq",
     "roi",
     "aluguelAnual",
     "irAlugAnual",
     "yieldBruto",
     "yieldLiq",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Custos de aquisição = comissão do leiloeiro e ITBI sobre o lance + escritura e registro sobre a avaliação (a Venda Online não tem comissão)",
    "Custos jurídicos = honorários sobre o lance + desocupação sobre a avaliação",
    "Desembolso total = lance + aquisição + jurídico + dívidas anteriores + reforma",
    "Receita líquida = venda − corretagem − IR de 15% sobre o ganho de capital",
    "Ganho de capital = venda − corretagem − (lance + custos de aquisição + reforma); honorários, desocupação e dívidas antigas não entram nessa base",
    "Lucro = receita líquida − desembolso total; ROI = lucro ÷ desembolso",
    "Para alugar: yield = aluguel anual (menos o IR da tabela progressiva) ÷ desembolso",
    "Exemplo (o cenário verificado pela suíte de testes): Venda Online de imóvel avaliado em R$ 300 mil por R$ 210 mil, ocupado pelo ex-proprietário, com R$ 25 mil de reforma. O desembolso chega a R$ 258.900. Vendendo por R$ 320 mil com 6% de corretagem, o IR é de R$ 8.250 e sobram R$ 33.650 de lucro — ROI de 13%."
   ],
   "fontes": [
    {
     "nome": "Lei 9.514/1997, Arts. 26 e 27 + Lei 14.711/2023",
     "detalhe": "consolidação da propriedade e leilões do imóvel dado em alienação fiduciária (Marco Legal das Garantias)"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da transação (arrematação), não no valor venal"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153 + IN SRF 84/2001",
     "detalhe": "ganho de capital na revenda: custo de aquisição, corretagem deduzida e alíquota de 15% até R$ 5 milhões"
    },
    {
     "nome": "Lei 15.191/2025 e Lei 15.270/2025",
     "detalhe": "tabela progressiva mensal e redutor do IR sobre o aluguel"
    },
    {
     "nome": "Banco Central — CDI (SGS)",
     "detalhe": "custo de oportunidade: o ROI anualizado é comparado ao CDI atualizado"
    }
   ],
   "limitacoes": [
    "A comparação com o CDI considera 12 meses, e não há custos de carregamento até a venda. As isenções de IR (único imóvel até R$ 440 mil; reinvestimento em 180 dias) não são aplicadas automaticamente. Cada imóvel tem edital e matrícula próprios — leia os dois antes do lance.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "vender — Venda Online (sem comissão de leiloeiro), ocupado pelo ex-proprietário",
    "entradasSite": {
     "caixaEstado": "SP",
     "caixaModalidade": "venda_online",
     "caixaAvaliacao": 300000,
     "caixaLance": 210000,
     "caixaArea": 70,
     "caixaComissao": 5,
     "caixaITBI": 3,
     "caixaEscritura": 1,
     "caixaRegistro": 0.5,
     "caixaDividasAnteriores": 5000,
     "caixaOcupacao": "ex_proprietario",
     "caixaHonorarios": 1,
     "caixaDesocupacao": 2,
     "caixaNivelReforma": "valor_fixo",
     "caixaReformaFixo": 25000,
     "caixaIntencao": "vender",
     "caixaValorSaida": 320000,
     "caixaComissaoVenda": 6
    },
    "entradasMCP": {
     "estado": "SP",
     "modalidade": "venda_online",
     "avaliacao": 300000,
     "lance": 210000,
     "area": 70,
     "comissaoPct": 5,
     "itbiPct": 3,
     "escrituraPct": 1,
     "registroPct": 0.5,
     "dividasAnteriores": 5000,
     "ocupacao": "ex_proprietario",
     "honorariosPct": 1,
     "desocupacaoPct": 2,
     "nivelReforma": "valor_fixo",
     "reformaValorFixo": 25000,
     "intencao": "vender",
     "valorSaida": 320000,
     "comissaoVendaPct": 6
    },
    "esperado": {
     "custoTransacao": 10800,
     "custoJuridico": 8100,
     "totalDesembolso": 258900,
     "custoAquisicaoFiscal": 245800,
     "irPF": 8250,
     "lucroLiq": 33650,
     "roi": 13,
     "desconto": 30
    },
    "tolerancia": 0.01,
    "verificacao": "Duas regras-chave num cenário: (1) Venda Online zera a comissão do leiloeiro apesar do campo preenchido com 5%; (2) honorários + desocupação + dívidas anteriores FORA da base fiscal (245.800) mas DENTRO do desembolso (258.900). Derivação manual = navegador, 25/07/2026."
   },
   "mcp": {
    "ferramenta": "calcular_viabilidade_caixa"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/viabilidade-caixa/?caixaEstado={estado}&caixaModalidade={modalidade}&caixaAvaliacao={avaliacao}&caixaLance={lance}&caixaArea={area}&caixaComissao={comissaoPct}&caixaITBI={itbiPct}&caixaEscritura={escrituraPct}&caixaRegistro={registroPct}&caixaDividasAnteriores={dividasAnteriores}&caixaOcupacao={ocupacao}&caixaHonorarios={honorariosPct}&caixaDesocupacao={desocupacaoPct}&caixaNivelReforma={nivelReforma}&caixaReformaFixo={reformaValorFixo}&caixaCustoPorM2={custoPorM2Personalizado}&caixaIntencao={intencao}&caixaValorSaida={valorSaida}&caixaComissaoVenda={comissaoVendaPct}&caixaAluguelRenda={aluguelRenda}",
   "revisaoFormula": "16/09/2026"
  },
  {
   "id": "viabilidade-caixa-hub",
   "nome": "Imóveis Caixa — Análise Completa",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/viabilidade-caixa-hub/",
   "descricao": "Due diligence completa: financiamento SAC/Price, custo de carregamento (imóvel ocupado), desembolso no Dia 1 e comparativo PF vs PJ na tributação.",
   "perguntaQueResponde": "Considerando financiamento, tempo de carregamento e Imposto de Renda como PF ou PJ, esse imóvel da Caixa é um bom negócio de ponta a ponta?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado se nivelReforma for por CUB. Padrão \"SP\".",
      "x-campoSite": "hubCaixaEstado"
     },
     "modalidade": {
      "type": "string",
      "enum": [
       "leilao",
       "licitacao_aberta",
       "venda_online",
       "compra_direta"
      ],
      "default": "venda_online",
      "description": "Modalidade de venda da Caixa. Padrão \"venda_online\".",
      "x-campoSite": "hubCaixaModalidade"
     },
     "avaliacao": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de avaliação, em R$.",
      "x-campoSite": "hubCaixaAvaliacao"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance, em R$ (até 5% acima da avaliação).",
      "x-campoSite": "hubCaixaLance"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m².",
      "x-campoSite": "hubCaixaArea"
     },
     "previsaoVenda": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Previsão até a venda, em MESES.",
      "x-campoSite": "hubCaixaPrevisaoVenda"
     },
     "comissaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance — só em modalidade \"leilao\"/\"licitacao_aberta\". Padrão 0.",
      "x-campoSite": "hubCaixaComissao"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "hubCaixaITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "hubCaixaEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "hubCaixaRegistro"
     },
     "dividasAnteriores": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Dívidas anteriores assumidas, em R$. Padrão 0.",
      "x-campoSite": "hubCaixaDividasAnteriores"
     },
     "ocupacao": {
      "type": "string",
      "enum": [
       "desocupado",
       "ex_proprietario",
       "terceiros"
      ],
      "default": "desocupado",
      "description": "Situação de ocupação. Padrão \"desocupado\".",
      "x-campoSite": "hubCaixaOcupacao"
     },
     "honorariosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Honorários advocatícios, em % sobre o lance. Padrão 0.",
      "x-campoSite": "hubCaixaHonorarios"
     },
     "desocupacaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custo de desocupação, em % sobre a avaliação, só se ocupacao != \"desocupado\". Padrão 0.",
      "x-campoSite": "hubCaixaDesocupacao"
     },
     "iptuMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "IPTU mensal, em R$. Padrão 0.",
      "x-campoSite": "hubCaixaIPTU"
     },
     "condominioMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Condomínio mensal, em R$. Padrão 0.",
      "x-campoSite": "hubCaixaCondominio"
     },
     "aguaMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Água mensal, em R$. Padrão 0.",
      "x-campoSite": "hubCaixaAgua"
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "valor_fixo",
       "personalizada",
       "pintura",
       "basica",
       "media",
       "completa"
      ],
      "default": "media",
      "description": "Nível/modo da reforma. Padrão \"media\".",
      "x-campoSite": "hubCaixaNivelReforma"
     },
     "reformaValorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se nivelReforma=\"valor_fixo\".",
      "x-campoSite": "hubCaixaReformaFixo"
     },
     "custoPorM2Personalizado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² da reforma, em R$ — obrigatório se nivelReforma=\"personalizada\".",
      "x-campoSite": "hubCaixaCustoPorM2"
     },
     "mesesObra": {
      "type": "number",
      "minimum": 0,
      "description": "Duração da obra, em meses (use 0 se não houver reforma).",
      "x-campoSite": "hubCaixaMesesObra"
     },
     "financia": {
      "type": "boolean",
      "default": false,
      "description": "Se true, financia o saldo do lance. Padrão false (à vista).",
      "x-campoSite": "hubCaixaFinancia",
      "x-valoresSite": {
       "true": "sim",
       "false": "nao"
      }
     },
     "entradaPct": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 100,
      "description": "Entrada, em % sobre o lance — só se financia=true. Padrão 100 (à vista).",
      "x-campoSite": "hubCaixaEntradaPct"
     },
     "taxaAnual": {
      "type": "number",
      "minimum": 0,
      "description": "Taxa de juros ANUAL do financiamento, em % — obrigatório se financia=true.",
      "x-campoSite": "hubCaixaFinancTaxa"
     },
     "prazoAnos": {
      "type": "integer",
      "minimum": 0,
      "description": "Prazo do financiamento, em anos — obrigatório se financia=true.",
      "x-campoSite": "hubCaixaFinancPrazo"
     },
     "prestPagas": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Nº de parcelas já pagas até a venda. Padrão: mesmo valor de previsaoVenda.",
      "x-campoSite": "hubCaixaPrestPagas"
     },
     "financTabela": {
      "type": "string",
      "enum": [
       "price",
       "sac"
      ],
      "default": "price",
      "description": "Tabela de amortização, só se financia=true. Padrão \"price\".",
      "x-campoSite": "hubCaixaFinancTabela"
     },
     "aluguelFixo": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Aluguel recebido por mês enquanto aguarda a venda, em R$. Padrão 0.",
      "x-campoSite": "hubCaixaAluguelFixo"
     },
     "valorSaida": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Preço estimado de revenda, em R$.",
      "x-campoSite": "hubCaixaValorSaida"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na revenda, em %. Padrão 0.",
      "x-campoSite": "hubCaixaComissaoVenda"
     },
     "usaPJ": {
      "type": "boolean",
      "default": false,
      "description": "Se true, usa o regime PJ (Lucro Presumido) no lucro/ROI principal em vez de PF. Padrão false.",
      "x-campoSite": "hubCaixaPJ",
      "x-valoresSite": {
       "true": "sim",
       "false": "nao"
      }
     }
    },
    "required": [
     "avaliacao",
     "lance",
     "area",
     "previsaoVenda",
     "mesesObra",
     "valorSaida"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "modalidade": {
      "type": "string",
      "description": "Modalidade de venda da Caixa."
     },
     "avaliacao": {
      "type": "number",
      "description": "Valor de avaliação, em R$."
     },
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "area": {
      "type": "number",
      "description": "Área do imóvel, em m²."
     },
     "desconto": {
      "type": "number",
      "description": "Desconto do lance sobre o valor de avaliação/mercado, em %."
     },
     "custoTransacao": {
      "type": "number",
      "description": "Comissão do leiloeiro (só em leilão/licitação aberta) + ITBI + escritura + registro, em R$."
     },
     "reforma": {
      "type": "number",
      "description": "Custo da reforma, em R$."
     },
     "entradaValor": {
      "type": "number",
      "description": "Entrada paga à vista (o lance inteiro, sem financiamento), em R$."
     },
     "financValor": {
      "type": "number",
      "description": "Valor financiado (0 sem financiamento), em R$."
     },
     "totalParcEscolhida": {
      "type": "number",
      "description": "Parcelas do financiamento pagas até a venda, na tabela escolhida, em R$."
     },
     "saldoEscolhido": {
      "type": "number",
      "description": "Saldo devedor quitado na venda, em R$."
     },
     "totalDesembolso": {
      "type": "number",
      "description": "Entrada + custos de transação + custo jurídico + dívidas + reforma + custos mensais + parcelas pagas, em R$."
     },
     "irPF": {
      "type": "number",
      "description": "IR da pessoa física sobre o ganho de capital (15%), em R$."
     },
     "lucroLiqPF": {
      "type": "number",
      "description": "Lucro líquido como pessoa física, depois de todos os custos e do IR, em R$."
     },
     "roiPF": {
      "type": "number",
      "description": "ROI líquido como pessoa física no período inteiro (não anualizado), em %."
     },
     "irPJ": {
      "type": "number",
      "description": "Tributos da PJ no Lucro Presumido sobre a receita da venda (IRPJ + adicional + CSLL + PIS + COFINS), em R$."
     },
     "lucroLiqPJ": {
      "type": "number",
      "description": "Lucro líquido como PJ no Lucro Presumido, em R$."
     },
     "roiPJ": {
      "type": "number",
      "description": "ROI líquido como PJ no período inteiro (não anualizado), em %."
     },
     "roiAnualEsc": {
      "type": "number",
      "description": "ROI do regime escolhido (usaPJ) anualizado pela previsão de venda — % a.a., em %."
     },
     "lucroSemFinanc": {
      "type": "number",
      "description": "Lucro líquido do mesmo cenário comprado à vista, no regime escolhido, em R$."
     },
     "desembolsoSemFinanc": {
      "type": "number",
      "description": "Total desembolsado no cenário à vista, em R$."
     },
     "roiSemFinanc": {
      "type": "number",
      "description": "ROI líquido do cenário à vista, no período inteiro, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "modalidade",
     "avaliacao",
     "lance",
     "area",
     "desconto",
     "custoTransacao",
     "reforma",
     "entradaValor",
     "financValor",
     "totalParcEscolhida",
     "saldoEscolhido",
     "totalDesembolso",
     "irPF",
     "lucroLiqPF",
     "roiPF",
     "irPJ",
     "lucroLiqPJ",
     "roiPJ",
     "roiAnualEsc",
     "lucroSemFinanc",
     "desembolsoSemFinanc",
     "roiSemFinanc",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Dia 1 (até 48h): a entrada — o lance inteiro, ou o percentual de entrada se financiar — e a comissão do leiloeiro, quando houver",
    "Custos de aquisição = comissão e ITBI sobre o lance + escritura e registro sobre a avaliação; desocupação = honorários sobre o lance + custo de desocupação sobre a avaliação",
    "Carregamento = (IPTU + condomínio + água) × meses até a venda, somado às parcelas pagas no período",
    "Desembolso total = entrada + aquisição + desocupação + dívidas anteriores + reforma + carregamento",
    "Receita líquida = venda − saldo devedor quitado − corretagem − imposto (+ aluguel líquido, se alugar até vender)",
    "Lucro = receita líquida − desembolso; ROI = lucro ÷ desembolso, anualizado pelos meses até a venda",
    "Exemplo (o cenário verificado pela suíte de testes): leilão à vista, imóvel de R$ 300 mil arrematado por R$ 240 mil, R$ 20 mil de reforma e R$ 600 de custos por mês durante 8 meses. O desembolso chega a R$ 292.500; vendendo por R$ 320 mil, sobram R$ 5.735 — ROI de 1,96% no período, ou 2,95% ao ano, abaixo do CDI."
   ],
   "fontes": [
    {
     "nome": "Lei 9.514/1997, Arts. 26 e 27 + Lei 14.711/2023",
     "detalhe": "consolidação da propriedade e leilões do imóvel dado em alienação fiduciária (Marco Legal das Garantias)"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da transação (arrematação), não no valor venal"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153 + IN SRF 84/2001",
     "detalhe": "ganho de capital na revenda: custo de aquisição, corretagem deduzida e alíquota de 15% até R$ 5 milhões"
    },
    {
     "nome": "Lei 9.250/1995, Art. 23 e Lei 11.196/2005, Art. 39",
     "detalhe": "isenções do único imóvel até R$ 440 mil e do reinvestimento em 180 dias (não aplicadas automaticamente)"
    },
    {
     "nome": "Banco Central — CDI (SGS)",
     "detalhe": "custo de oportunidade: o ROI anualizado é comparado ao CDI atualizado"
    }
   ],
   "limitacoes": [
    "Custos mensais, honorários e dívidas antigas reduzem o lucro, mas não a base do ganho de capital; os juros do financiamento também ficam fora dela, de forma conservadora. As isenções de IR não são aplicadas automaticamente, e a regra de débitos muda por modalidade — confira sempre o edital e a matrícula.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "à vista, Leilão SFI, vender em 8 meses — regime PF",
    "entradasSite": {
     "hubCaixaEstado": "SP",
     "hubCaixaModalidade": "leilao",
     "hubCaixaTipo": "residencial",
     "hubCaixaAvaliacao": 300000,
     "hubCaixaLance": 240000,
     "hubCaixaArea": 70,
     "hubCaixaPrevisaoVenda": 8,
     "hubCaixaComissao": 5,
     "hubCaixaITBI": 3,
     "hubCaixaEscritura": 1,
     "hubCaixaRegistro": 0.5,
     "hubCaixaDividasAnteriores": 4000,
     "hubCaixaOcupacao": "desocupado",
     "hubCaixaHonorarios": 0,
     "hubCaixaIPTU": 200,
     "hubCaixaCondominio": 400,
     "hubCaixaAgua": 0,
     "hubCaixaNivelReforma": "valor_fixo",
     "hubCaixaReformaFixo": 20000,
     "hubCaixaMesesObra": 2,
     "hubCaixaFinancia": "nao",
     "hubCaixaAluguelFixo": 0,
     "hubCaixaIntencao": "vender",
     "hubCaixaValorSaida": 320000,
     "hubCaixaComissaoVenda": 6,
     "hubCaixaPJ": "nao"
    },
    "entradasMCP": {
     "estado": "SP",
     "modalidade": "leilao",
     "avaliacao": 300000,
     "lance": 240000,
     "area": 70,
     "previsaoVenda": 8,
     "comissaoPct": 5,
     "itbiPct": 3,
     "escrituraPct": 1,
     "registroPct": 0.5,
     "dividasAnteriores": 4000,
     "ocupacao": "desocupado",
     "honorariosPct": 0,
     "iptuMensal": 200,
     "condominioMensal": 400,
     "aguaMensal": 0,
     "nivelReforma": "valor_fixo",
     "reformaValorFixo": 20000,
     "mesesObra": 2,
     "financia": false,
     "aluguelFixo": 0,
     "valorSaida": 320000,
     "comissaoVendaPct": 6,
     "usaPJ": false
    },
    "esperado": {
     "custoTransacao": 23700,
     "totalDesembolso": 292500,
     "irPF": 2565,
     "lucroLiqPF": 5735,
     "roiPF": 1.96,
     "roiAnualEsc": 2.95,
     "lucroSemFinanc": 5735,
     "desembolsoSemFinanc": 292500,
     "roiSemFinanc": 1.96
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual completa da Obra-Prima no caminho à vista: base fiscal 283.700 (lance + transação + reforma; dívidas de terceiros, custos mensais e jurídico FORA — IN SRF 84/2001); carregamento 600×8 = 4.800 DENTRO do desembolso. Python = navegador, 25/07/2026. Obs.: bridge __pilarCaixaHub publica o regime ESCOLHIDO nas chaves irPF/lucroLiqPF/roiPF. FIX 1.1 (25/07): passa a expor roiAnualEsc = 2.95% a.a. — o veredito vs CDI agora usa este valor, não o ROI do período (1,96% em 8 meses).\n\nFIX 1.4 (25/07): a perna À VISTA do card 'Sacada da Alavancagem' usava base fiscal inflada — incluía dívidas de terceiros e custos mensais, que a RFB não aceita — pagando MENOS IR que a perna financiada e distorcendo a comparação. Receipt (derivado à mão e confirmado pelo runner):\n  base fiscal da perna à vista  292.500,00 → 283.700,00\n  IR                                1.245,00 → 2.565,00\n  lucroSemFinanc                    7.055,00 → 5.735,00\n  roiSemFinanc                          2,41% → 1,96%\nCONSISTÊNCIA GANHA: neste cenário à vista, lucroSemFinanc agora é IDÊNTICO a lucroLiqPF (5.735,00) e roiSemFinanc idêntico a roiPF (1,96%) — como tem de ser, já que sem financiamento as duas contas descrevem a mesma operação. Antes divergiam em R$ 1.320 por usarem bases fiscais diferentes.\nO desembolso GERENCIAL (292.500) permanece com todos os custos — só a base FISCAL mudou.\nTambém corrigido (1.4-B, achado pelo crítico de completude): a perna à vista era sempre PF 15%, mesmo com PJ selecionado — agora segue o regime escolhido, aqui e no hub de bancos."
   },
   "mcp": {
    "ferramenta": "calcular_viabilidade_caixa_hub"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/viabilidade-caixa-hub/?hubCaixaEstado={estado}&hubCaixaModalidade={modalidade}&hubCaixaAvaliacao={avaliacao}&hubCaixaLance={lance}&hubCaixaArea={area}&hubCaixaPrevisaoVenda={previsaoVenda}&hubCaixaComissao={comissaoPct}&hubCaixaITBI={itbiPct}&hubCaixaEscritura={escrituraPct}&hubCaixaRegistro={registroPct}&hubCaixaDividasAnteriores={dividasAnteriores}&hubCaixaOcupacao={ocupacao}&hubCaixaHonorarios={honorariosPct}&hubCaixaDesocupacao={desocupacaoPct}&hubCaixaIPTU={iptuMensal}&hubCaixaCondominio={condominioMensal}&hubCaixaAgua={aguaMensal}&hubCaixaNivelReforma={nivelReforma}&hubCaixaReformaFixo={reformaValorFixo}&hubCaixaCustoPorM2={custoPorM2Personalizado}&hubCaixaMesesObra={mesesObra}&hubCaixaFinancia={financia}&hubCaixaEntradaPct={entradaPct}&hubCaixaFinancTaxa={taxaAnual}&hubCaixaFinancPrazo={prazoAnos}&hubCaixaPrestPagas={prestPagas}&hubCaixaFinancTabela={financTabela}&hubCaixaAluguelFixo={aluguelFixo}&hubCaixaValorSaida={valorSaida}&hubCaixaComissaoVenda={comissaoVendaPct}&hubCaixaPJ={usaPJ}&hubCaixaIntencao=vender",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "viabilidade-bancos-hub",
   "nome": "Leilão de Banco Privado",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/viabilidade-bancos-hub/",
   "descricao": "Análise especializada em leilões de bancos privados (Itaú, Bradesco, Santander). Dívidas retroativas críticas, assessoria jurídica obrigatória, ocupação e risco.",
   "perguntaQueResponde": "Vale a pena arrematar este imóvel de banco privado considerando dívidas anteriores, assessoria jurídica e risco de ocupação?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado se nivelReforma for por CUB. Padrão \"SP\".",
      "x-campoSite": "hubBancosEstado"
     },
     "modalidade": {
      "type": "string",
      "default": "leilao",
      "description": "Modalidade de venda. Padrão \"leilao\".",
      "x-campoSite": "hubBancosModalidade"
     },
     "avaliacao": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de avaliação, em R$.",
      "x-campoSite": "hubBancosAvaliacao"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance, em R$.",
      "x-campoSite": "hubBancosLance"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m².",
      "x-campoSite": "hubBancosArea"
     },
     "previsaoVenda": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Previsão até a venda, em MESES.",
      "x-campoSite": "hubBancosPrevisaoVenda"
     },
     "comissaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance. Padrão 0.",
      "x-campoSite": "hubBancosComissao"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "hubBancosITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "hubBancosEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "hubBancosRegistro"
     },
     "assessoria": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Assessoria jurídica (valor fixo, dívidas retroativas), em R$. Padrão 0.",
      "x-campoSite": "hubBancosAssessoria"
     },
     "dividasAnteriores": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Dívidas anteriores assumidas, em R$. Padrão 0.",
      "x-campoSite": "hubBancosDividasAnteriores"
     },
     "ocupacao": {
      "type": "string",
      "enum": [
       "desocupado",
       "ocupado_judicial",
       "ocupado_amigavel"
      ],
      "default": "desocupado",
      "description": "Situação de ocupação. Padrão \"desocupado\".",
      "x-campoSite": "hubBancosOcupacao"
     },
     "honorariosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Honorários advocatícios, em % sobre o lance. Padrão 0.",
      "x-campoSite": "hubBancosHonorarios"
     },
     "desocupacaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custo de desocupação, em % sobre a avaliação, só se ocupacao != \"desocupado\". Padrão 0.",
      "x-campoSite": "hubBancosDesocupacao"
     },
     "iptuMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "IPTU mensal, em R$. Padrão 0.",
      "x-campoSite": "hubBancosIPTU"
     },
     "condominioMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Condomínio mensal, em R$. Padrão 0.",
      "x-campoSite": "hubBancosCondominio"
     },
     "aguaMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Água mensal, em R$. Padrão 0.",
      "x-campoSite": "hubBancosAgua"
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "valor_fixo",
       "personalizada",
       "pintura",
       "basica",
       "media",
       "completa"
      ],
      "default": "media",
      "description": "Nível/modo da reforma. Padrão \"media\".",
      "x-campoSite": "hubBancosNivelReforma"
     },
     "reformaValorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se nivelReforma=\"valor_fixo\".",
      "x-campoSite": "hubBancosReformaFixo"
     },
     "custoPorM2Personalizado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² da reforma, em R$ — obrigatório se nivelReforma=\"personalizada\".",
      "x-campoSite": "hubBancosCustoPorM2"
     },
     "mesesObra": {
      "type": "number",
      "minimum": 0,
      "description": "Duração da obra, em meses (use 0 se não houver reforma).",
      "x-campoSite": "hubBancosMesesObra"
     },
     "aluguelFixo": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Aluguel recebido por mês enquanto aguarda a venda, em R$. Padrão 0.",
      "x-campoSite": "hubBancosAluguelFixo"
     },
     "valorSaida": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Preço estimado de revenda, em R$.",
      "x-campoSite": "hubBancosValorSaida"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na revenda, em %. Padrão 0.",
      "x-campoSite": "hubBancosComissaoVenda"
     },
     "usaPJ": {
      "type": "boolean",
      "default": false,
      "description": "Se true, usa o regime PJ (Lucro Presumido). Padrão false.",
      "x-campoSite": "hubBancosRegime",
      "x-valoresSite": {
       "true": "pj",
       "false": "pf"
      }
     }
    },
    "required": [
     "avaliacao",
     "lance",
     "area",
     "previsaoVenda",
     "mesesObra",
     "valorSaida"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "modalidade": {
      "type": "string",
      "description": "Modalidade de venda."
     },
     "avaliacao": {
      "type": "number",
      "description": "Valor de avaliação, em R$."
     },
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "area": {
      "type": "number",
      "description": "Área do imóvel, em m²."
     },
     "custoTransacao": {
      "type": "number",
      "description": "Comissão do leiloeiro + ITBI + escritura + registro, em R$."
     },
     "custoJuridico": {
      "type": "number",
      "description": "Honorários + desocupação, em R$."
     },
     "assessoria": {
      "type": "number",
      "description": "Assessoria, em R$."
     },
     "reforma": {
      "type": "number",
      "description": "Custo da reforma, em R$."
     },
     "totalDesembolso": {
      "type": "number",
      "description": "Lance + custos de transação + custo jurídico + dívidas + assessoria + reforma + custos mensais, em R$."
     },
     "custoAquisicaoFiscal": {
      "type": "number",
      "description": "Base fiscal do IR: lance + custos de transação + reforma, em R$."
     },
     "irPF": {
      "type": "number",
      "description": "IR da pessoa física sobre o ganho de capital (15%), em R$."
     },
     "lucroLiqPF": {
      "type": "number",
      "description": "Lucro líquido como pessoa física, depois de todos os custos e do IR, em R$."
     },
     "roiPF": {
      "type": "number",
      "description": "ROI líquido como pessoa física no período inteiro (não anualizado), em %."
     },
     "irPJ": {
      "type": "number",
      "description": "Tributos da PJ no Lucro Presumido sobre a receita da venda (IRPJ + adicional + CSLL + PIS + COFINS), em R$."
     },
     "lucroLiqPJ": {
      "type": "number",
      "description": "Lucro líquido como PJ no Lucro Presumido, em R$."
     },
     "roiPJ": {
      "type": "number",
      "description": "ROI líquido como PJ no período inteiro (não anualizado), em %."
     },
     "roiAnualEsc": {
      "type": "number",
      "description": "ROI do regime escolhido (usaPJ) anualizado pela previsão de venda — % a.a., em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "modalidade",
     "avaliacao",
     "lance",
     "area",
     "custoTransacao",
     "custoJuridico",
     "assessoria",
     "reforma",
     "totalDesembolso",
     "custoAquisicaoFiscal",
     "irPF",
     "lucroLiqPF",
     "roiPF",
     "irPJ",
     "lucroLiqPJ",
     "roiPJ",
     "roiAnualEsc",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Dia 1 (até 48h): a entrada — o lance, ou o percentual de entrada se o banco financiar — e a comissão de 5% do leiloeiro",
    "Custos de aquisição = comissão e ITBI sobre o lance + escritura e registro sobre a avaliação",
    "Custos jurídicos = honorários sobre o lance + desocupação sobre a avaliação + assessoria (valor fixo)",
    "Carregamento = custos mensais × meses até a venda + parcelas pagas",
    "Desembolso total = entrada + aquisição + jurídico + dívidas anteriores + reforma + carregamento",
    "Lucro = venda − saldo devedor − corretagem − imposto − desembolso; ROI = lucro ÷ desembolso, também anualizado",
    "Exemplo (o cenário verificado pela suíte de testes): imóvel de R$ 350 mil arrematado por R$ 260 mil, ocupado, com R$ 8 mil de assessoria, R$ 6 mil de dívidas e R$ 30 mil de reforma, vendido em 10 meses por R$ 380 mil. O desembolso chega a R$ 352.750 e o resultado é um prejuízo de R$ 1.722,50 — mesmo com 26% de desconto."
   ],
   "fontes": [
    {
     "nome": "Lei 9.514/1997, Arts. 26 e 27 + Lei 14.711/2023",
     "detalhe": "consolidação da propriedade e leilões do imóvel dado em alienação fiduciária (Marco Legal das Garantias)"
    },
    {
     "nome": "Decreto 21.981/1932, Art. 24",
     "detalhe": "comissão obrigatória de 5% do leiloeiro, paga pelo comprador"
    },
    {
     "nome": "STJ, REsp 2.042.756/SP",
     "detalhe": "o arrematante responde pelo débito condominial quando o edital prevê"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da transação (arrematação), não no valor venal"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153 + IN SRF 84/2001",
     "detalhe": "ganho de capital na revenda: custo de aquisição, corretagem deduzida e alíquota de 15% até R$ 5 milhões"
    }
   ],
   "limitacoes": [
    "Assessoria, honorários, desocupação e dívidas antigas saem do lucro, mas não reduzem o imposto. O custo de desocupação é uma estimativa — ocupação judicializada pode levar meses a mais.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "leilão de banco privado, ocupado judicial, com assessoria jurídica",
    "entradasSite": {
     "hubBancosEstado": "SP",
     "hubBancosModalidade": "leilao",
     "hubBancosTipo": "residencial",
     "hubBancosAvaliacao": 350000,
     "hubBancosLance": 260000,
     "hubBancosArea": 80,
     "hubBancosPrevisaoVenda": 10,
     "hubBancosComissao": 5,
     "hubBancosITBI": 3,
     "hubBancosEscritura": 1,
     "hubBancosRegistro": 0.5,
     "hubBancosAssessoria": 8000,
     "hubBancosDividasAnteriores": 6000,
     "hubBancosOcupacao": "ocupado_judicial",
     "hubBancosHonorarios": 2,
     "hubBancosDesocupacao": 3,
     "hubBancosIPTU": 300,
     "hubBancosCondominio": 400,
     "hubBancosAgua": 0,
     "hubBancosNivelReforma": "valor_fixo",
     "hubBancosReformaFixo": 30000,
     "hubBancosMesesObra": 3,
     "hubBancosFinancia": "nao",
     "hubBancosAluguelFixo": 0,
     "hubBancosIntencao": "vender",
     "hubBancosValorSaida": 380000,
     "hubBancosComissaoVenda": 6
    },
    "entradasMCP": {
     "estado": "SP",
     "modalidade": "leilao",
     "avaliacao": 350000,
     "lance": 260000,
     "area": 80,
     "previsaoVenda": 10,
     "comissaoPct": 5,
     "itbiPct": 3,
     "escrituraPct": 1,
     "registroPct": 0.5,
     "assessoria": 8000,
     "dividasAnteriores": 6000,
     "ocupacao": "ocupado_judicial",
     "honorariosPct": 2,
     "desocupacaoPct": 3,
     "iptuMensal": 300,
     "condominioMensal": 400,
     "aguaMensal": 0,
     "nivelReforma": "valor_fixo",
     "reformaValorFixo": 30000,
     "mesesObra": 3,
     "aluguelFixo": 0,
     "valorSaida": 380000,
     "comissaoVendaPct": 6
    },
    "esperado": {
     "custoTransacao": 26050,
     "custoJuridico": 15700,
     "assessoria": 8000,
     "totalDesembolso": 352750,
     "custoAquisicaoFiscal": 316050,
     "irPF": 6172.5,
     "lucroLiqPF": -1722.5,
     "roiPF": -0.49,
     "roiAnualEsc": -0.59
    },
    "tolerancia": 0.01,
    "verificacao": "Assessoria jurídica (R$ 8.000 fixos) corretamente DENTRO do desembolso e FORA da base fiscal — comportamento correto que o hub de leiloeiros NÃO replica (bug 1.13). Derivação manual = navegador, 25/07/2026."
   },
   "mcp": {
    "ferramenta": "calcular_viabilidade_bancos_hub"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/viabilidade-bancos-hub/?hubBancosEstado={estado}&hubBancosModalidade={modalidade}&hubBancosAvaliacao={avaliacao}&hubBancosLance={lance}&hubBancosArea={area}&hubBancosPrevisaoVenda={previsaoVenda}&hubBancosComissao={comissaoPct}&hubBancosITBI={itbiPct}&hubBancosEscritura={escrituraPct}&hubBancosRegistro={registroPct}&hubBancosAssessoria={assessoria}&hubBancosDividasAnteriores={dividasAnteriores}&hubBancosOcupacao={ocupacao}&hubBancosHonorarios={honorariosPct}&hubBancosDesocupacao={desocupacaoPct}&hubBancosIPTU={iptuMensal}&hubBancosCondominio={condominioMensal}&hubBancosAgua={aguaMensal}&hubBancosNivelReforma={nivelReforma}&hubBancosReformaFixo={reformaValorFixo}&hubBancosCustoPorM2={custoPorM2Personalizado}&hubBancosMesesObra={mesesObra}&hubBancosAluguelFixo={aluguelFixo}&hubBancosValorSaida={valorSaida}&hubBancosComissaoVenda={comissaoVendaPct}&hubBancosRegime={usaPJ}&hubBancosFinancia=nao&hubBancosIntencao=vender",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "viabilidade-trt-hub",
   "nome": "Leilão Judicial (TRT)",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/viabilidade-trt-hub/",
   "descricao": "Especializado em leilões judiciais. Art. 895 CPC: parcelamento 30×, indexação SELIC/IPCA, risco de impugnação em 3 cenários (otimista/esperado/pessimista).",
   "perguntaQueResponde": "Nesse leilão judicial trabalhista, o parcelamento em até 30 vezes e o risco de impugnação ainda deixam a arrematação lucrativa?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado se nivelReforma for por CUB. Padrão \"SP\".",
      "x-campoSite": "hubTRTEstado"
     },
     "avaliacao": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de avaliação, em R$.",
      "x-campoSite": "hubTRTAvaliacao"
     },
     "praca": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2,
      "default": 2,
      "description": "1 = 1ª praça (lance mínimo = avaliação) ou 2 = 2ª praça/leilão (lance mínimo = 50% da avaliação). Padrão 2.",
      "x-campoSite": "hubTRTPraca"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance, em R$.",
      "x-campoSite": "hubTRTLance"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m².",
      "x-campoSite": "hubTRTArea"
     },
     "previsaoVenda": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Previsão até a venda, em MESES.",
      "x-campoSite": "hubTRTPrevisaoVenda"
     },
     "indexador": {
      "type": "string",
      "enum": [
       "selic",
       "ipca",
       "sem_correcao"
      ],
      "default": "selic",
      "description": "Índice de correção do saldo parcelado. Padrão \"selic\".",
      "x-campoSite": "hubTRTIndexador",
      "x-valoresSite": {
       "sem_correcao": "nenhum"
      }
     },
     "taxaIndexadorAnualPct": {
      "type": "number",
      "minimum": 0,
      "description": "Taxa ANUAL do índice escolhido, em %. Se omitida, é buscada ao vivo no Banco Central como no site: Selic Meta (SGS 432) ou IPCA de 12 meses (SGS 13522). Ignorada se indexador = \"sem_correcao\".",
      "x-semCampoSite": true
     },
     "parcelasDesejadas": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "default": 24,
      "description": "Nº de parcelas desejadas pro saldo (Art. 895 CPC permite até 30). Padrão 24.",
      "x-campoSite": "hubTRTParcelasDesejadas"
     },
     "comissaoLeiloeiroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance (paga à parte, não deduzida do saldo parcelado). Padrão 0.",
      "x-campoSite": "hubTRTComissaoLeiloeiro"
     },
     "custasProcessuaisPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custas processuais, em % sobre o lance. Padrão 0.",
      "x-campoSite": "hubTRTCustasProcessuais"
     },
     "expedicaoCarta": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Expedição de carta de arrematação, valor fixo em R$. Padrão 0.",
      "x-campoSite": "hubTRTExpedicaoCarta"
     },
     "mandadoImissao": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Mandado de imissão na posse, valor fixo em R$. Padrão 0.",
      "x-campoSite": "hubTRTMandadoImissao"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "hubTRTITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "hubTRTEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "hubTRTRegistro"
     },
     "dividasAnteriores": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Dívidas anteriores assumidas, em R$. Padrão 0.",
      "x-campoSite": "hubTRTDividasAnteriores"
     },
     "ocupacao": {
      "type": "string",
      "enum": [
       "desocupado",
       "terceiros"
      ],
      "default": "desocupado",
      "description": "Situação de ocupação. Padrão \"desocupado\".",
      "x-campoSite": "hubTRTOcupacao"
     },
     "honorariosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Honorários advocatícios, em % sobre o lance. Padrão 0.",
      "x-campoSite": "hubTRTHonorarios"
     },
     "desocupacaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custo de desocupação (imissão de posse), em % sobre a avaliação, só se ocupacao != \"desocupado\". Padrão 0.",
      "x-campoSite": "hubTRTCustosDesocupacao"
     },
     "iptuMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "IPTU mensal, em R$. Padrão 0.",
      "x-campoSite": "hubTRTIPTU"
     },
     "condominioMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Condomínio mensal, em R$. Padrão 0.",
      "x-campoSite": "hubTRTCondominio"
     },
     "aguaMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Água mensal, em R$. Padrão 0.",
      "x-campoSite": "hubTRTAgua"
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "valor_fixo",
       "personalizada",
       "pintura",
       "basica",
       "media",
       "completa"
      ],
      "default": "nenhuma",
      "description": "Nível/modo da reforma. Padrão \"nenhuma\".",
      "x-campoSite": "hubTRTNivelReforma"
     },
     "reformaValorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se nivelReforma=\"valor_fixo\".",
      "x-campoSite": "hubTRTReformaFixo"
     },
     "custoPorM2Personalizado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² da reforma, em R$ — obrigatório se nivelReforma=\"personalizada\".",
      "x-campoSite": "hubTRTCustoPorM2"
     },
     "mesesObra": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Duração da obra, em meses. Padrão 0.",
      "x-campoSite": "hubTRTMesesObra"
     },
     "aluguelFixo": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Aluguel recebido por mês enquanto aguarda a venda, em R$. Padrão 0.",
      "x-campoSite": "hubTRTAluguelFixo"
     },
     "valorSaida": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Preço estimado de revenda, em R$.",
      "x-campoSite": "hubTRTValorSaida"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na revenda, em %. Padrão 0.",
      "x-campoSite": "hubTRTComissaoVenda"
     },
     "usaPJ": {
      "type": "boolean",
      "default": false,
      "description": "Se true, usa o regime PJ (Lucro Presumido). Padrão false.",
      "x-campoSite": "hubTRTPJ",
      "x-valoresSite": {
       "true": "sim",
       "false": "nao"
      }
     }
    },
    "required": [
     "avaliacao",
     "lance",
     "area",
     "previsaoVenda",
     "valorSaida"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "avaliacao": {
      "type": "number",
      "description": "Valor de avaliação, em R$."
     },
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "area": {
      "type": "number",
      "description": "Área do imóvel, em m²."
     },
     "praca": {
      "type": "number",
      "description": "Praça do leilão: 1 ou 2."
     },
     "desconto": {
      "type": "number",
      "description": "Desconto do lance sobre o valor de avaliação/mercado, em %."
     },
     "sinal": {
      "type": "number",
      "description": "Sinal de 25% do lance, pago à vista, em R$."
     },
     "comissaoLeiloeiro": {
      "type": "number",
      "description": "Comissão do leiloeiro, paga à parte do lance, em R$."
     },
     "saldoParcelado": {
      "type": "number",
      "description": "75% do lance, parcelado, em R$."
     },
     "prazoMeses": {
      "type": "number",
      "description": "Número de parcelas do saldo (máximo 30)."
     },
     "totalParcEscolhida": {
      "type": "number",
      "description": "Parcelas pagas até a venda, corrigidas pelo indexador, em R$."
     },
     "saldoEscolhido": {
      "type": "number",
      "description": "Saldo do parcelamento quitado na venda, em R$."
     },
     "custoTransacao": {
      "type": "number",
      "description": "Custas processuais + ITBI + escritura + registro, em R$."
     },
     "custoJuridico": {
      "type": "number",
      "description": "Honorários + desocupação + expedição da carta + mandado de imissão, em R$."
     },
     "reforma": {
      "type": "number",
      "description": "Custo da reforma, em R$."
     },
     "totalDesembolso": {
      "type": "number",
      "description": "Sinal + comissão + custos de transação + custo jurídico + dívidas + reforma + custos mensais + parcelas pagas, em R$."
     },
     "custoAquisicaoFiscal": {
      "type": "number",
      "description": "Base fiscal do IR: lance + comissão + custos de transação + reforma, em R$."
     },
     "irPF": {
      "type": "number",
      "description": "IR da pessoa física sobre o ganho de capital (15%), em R$."
     },
     "lucroLiqPF": {
      "type": "number",
      "description": "Lucro líquido como pessoa física, depois de todos os custos e do IR, em R$."
     },
     "roiPF": {
      "type": "number",
      "description": "ROI líquido como pessoa física no período inteiro (não anualizado), em %."
     },
     "irPJ": {
      "type": "number",
      "description": "Tributos da PJ no Lucro Presumido sobre a receita da venda (IRPJ + adicional + CSLL + PIS + COFINS), em R$."
     },
     "lucroLiqPJ": {
      "type": "number",
      "description": "Lucro líquido como PJ no Lucro Presumido, em R$."
     },
     "roiPJ": {
      "type": "number",
      "description": "ROI líquido como PJ no período inteiro (não anualizado), em %."
     },
     "roiAnualEsc": {
      "type": "number",
      "description": "ROI do regime escolhido (usaPJ) anualizado pela previsão de venda — % a.a., em %."
     },
     "taxaIndexador": {
      "type": "object",
      "properties": {
       "anualPct": {
        "type": "number",
        "description": "Taxa anual usada para corrigir as parcelas (0 = sem correção), em %."
       },
       "origem": {
        "type": "string",
        "enum": [
         "informado",
         "bcb"
        ],
        "description": "\"informado\" = taxaIndexadorAnualPct da chamada (ou sem correção); \"bcb\" = buscada ao vivo."
       },
       "fonte": {
        "type": "string",
        "description": "Série do Banco Central usada, quando buscada ao vivo."
       },
       "consultadoEm": {
        "type": "string",
        "description": "Data e hora da consulta (ISO 8601)."
       }
      },
      "required": [
       "anualPct",
       "origem"
      ],
      "additionalProperties": false,
      "description": "Taxa do indexador usada na correção das parcelas e sua origem."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "avaliacao",
     "lance",
     "area",
     "praca",
     "desconto",
     "sinal",
     "comissaoLeiloeiro",
     "saldoParcelado",
     "prazoMeses",
     "totalParcEscolhida",
     "saldoEscolhido",
     "custoTransacao",
     "custoJuridico",
     "reforma",
     "totalDesembolso",
     "custoAquisicaoFiscal",
     "irPF",
     "lucroLiqPF",
     "roiPF",
     "irPJ",
     "lucroLiqPJ",
     "roiPJ",
     "roiAnualEsc",
     "taxaIndexador",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Dia 1: sinal de 25% do lance (CPC Art. 895, § 1º) + comissão do leiloeiro, paga à parte e à vista",
    "Garantia: o saldo fica garantido por hipoteca do próprio imóvel",
    "Saldo parcelado = lance − sinal, em até 30 parcelas com amortização constante, corrigidas pelo indexador da proposta — Selic ou IPCA (CPC Art. 895, § 2º)",
    "Custos de aquisição = custas processuais e ITBI sobre o lance + escritura e registro sobre a avaliação",
    "Custos jurídicos e de desocupação = honorários + desocupação + carta de arrematação + mandado de imissão na posse",
    "Desembolso total = Dia 1 + aquisição + jurídico + dívidas + reforma + custos mensais até a venda + parcelas pagas",
    "Lucro = venda − saldo a quitar − corretagem − imposto − desembolso",
    "Cenário esperado = lucro × (1 − p) + cenário pessimista × p, com p = 10%, 25% ou 40% de chance de impugnação",
    "Exemplo (o cenário verificado pela suíte de testes): lance de R$ 180 mil na 2ª praça, parcelado em 24 meses. No Dia 1 saem R$ 45 mil de sinal e R$ 9 mil de comissão; os R$ 135 mil restantes viram parcelas corrigidas."
   ],
   "fontes": [
    {
     "nome": "CPC (Lei 13.105/2015), Arts. 879–903",
     "detalhe": "alienação judicial: preço vil (891), parcelamento com 25% à vista e até 30 meses (895), carta de arrematação (901) e invalidação em 10 dias (903)"
    },
    {
     "nome": "CTN, Art. 130, parágrafo único",
     "detalhe": "na arrematação, os débitos tributários do imóvel são pagos com o preço"
    },
    {
     "nome": "Decreto 21.981/1932, Art. 24 e STJ, RMS 65.084",
     "detalhe": "comissão de 5% do leiloeiro, também no leilão judicial, paga à parte"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da transação (arrematação), não no valor venal"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153 + IN SRF 84/2001",
     "detalhe": "ganho de capital na revenda: custo de aquisição, corretagem deduzida e alíquota de 15% até R$ 5 milhões"
    }
   ],
   "limitacoes": [
    "O cenário pessimista é conservador: considera todo o desembolso perdido mais o custo de oportunidade do capital preso. Honorários, carta e mandado não reduzem o imposto. Confirme sempre com o edital e um advogado.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "leilão trabalhista 2ª praça, parcelado em 24× (Art. 895 CPC), imóvel ocupado",
    "entradasSite": {
     "hubTRTTipoProcesso": "trabalhista",
     "hubTRTTribunal": "trt2",
     "hubTRTPraca": "2",
     "hubTRTEstado": "SP",
     "hubTRTTipo": "residencial",
     "hubTRTAvaliacao": 300000,
     "hubTRTLance": 180000,
     "hubTRTArea": 70,
     "hubTRTPrevisaoVenda": 12,
     "hubTRTParcelasDesejadas": 24,
     "hubTRTComissaoLeiloeiro": 5,
     "hubTRTIndexador": "selic",
     "hubTRTCustasProcessuais": 0.5,
     "hubTRTExpedicaoCarta": 1500,
     "hubTRTMandadoImissao": 2000,
     "hubTRTITBI": 3,
     "hubTRTEscritura": 0,
     "hubTRTRegistro": 0.8,
     "hubTRTDividasAnteriores": 0,
     "hubTRTHonorarios": 5,
     "hubTRTOcupacao": "terceiros",
     "hubTRTMesesImissao": 6,
     "hubTRTCustosDesocupacao": 2,
     "hubTRTIPTU": 200,
     "hubTRTCondominio": 400,
     "hubTRTAgua": 0,
     "hubTRTNivelReforma": "valor_fixo",
     "hubTRTReformaFixo": 25000,
     "hubTRTMesesObra": 3,
     "hubTRTRiscoImpugnacao": "medio",
     "hubTRTMesesCapitalPreso": 12,
     "hubTRTIntencao": "vender",
     "hubTRTValorSaida": 300000,
     "hubTRTComissaoVenda": 6,
     "hubTRTAluguelFixo": 0,
     "hubTRTPJ": "nao"
    },
    "entradasMCP": {
     "praca": "2",
     "estado": "SP",
     "avaliacao": 300000,
     "lance": 180000,
     "area": 70,
     "previsaoVenda": 12,
     "parcelasDesejadas": 24,
     "comissaoLeiloeiroPct": 5,
     "indexador": "selic",
     "custasProcessuaisPct": 0.5,
     "expedicaoCarta": 1500,
     "mandadoImissao": 2000,
     "itbiPct": 3,
     "escrituraPct": 0,
     "registroPct": 0.8,
     "dividasAnteriores": 0,
     "honorariosPct": 5,
     "ocupacao": "terceiros",
     "desocupacaoPct": 2,
     "iptuMensal": 200,
     "condominioMensal": 400,
     "aguaMensal": 0,
     "nivelReforma": "valor_fixo",
     "reformaValorFixo": 25000,
     "mesesObra": 3,
     "valorSaida": 300000,
     "comissaoVendaPct": 6,
     "aluguelFixo": 0,
     "usaPJ": false
    },
    "esperado": {
     "sinal": 45000,
     "comissaoLeiloeiro": 9000,
     "prazoMeses": 24,
     "lucroLiqPF": 10764.68,
     "roiPF": 5.52
    },
    "tolerancia": 0.01,
    "verificacao": "DESBLOQUEADO PELO FIX 2.1: o motor do Art. 895 existia completo desde sempre, sem formulário — a calculadora mais sofisticada do projeto nunca abriu.\nArt. 895 CPC conferido à mão: sinal 25% × 180.000 = 45.000 e comissão do leiloeiro 5% × 180.000 = 9.000.\n\nVALOR-OURO ATUALIZADO EM 22/08/2026 (Celso, com base em pesquisa jurídica: Migalhas + STJ RMS 65.084/2023): o modelo original deduzia AMBOS (sinal E comissão) do lance para achar o saldo parcelado — incorreto. A comissão do leiloeiro é paga À PARTE (somada por cima do lance, à vista, no mesmo prazo do sinal), não deduzida do que é financiado. Corrigido: saldoParcelado = lance − sinal apenas (135.000, não mais 126.000); comissão passou a ser somada explicitamente em custoAquisicaoFiscal/totalCustoAtivo/baseYieldAtivo (antes 'desaparecia' da contabilidade de custo total). Reconciliação manual completa do novo valor-ouro: custoTransacao = 900(custas 0,5%×180k) + 5.400(ITBI 3%×180k) + 0(escritura) + 2.400(registro 0,8%×300k) = 8.700 (comissão NÃO entra aqui — evita duplicar com entradaValor). custoJuridico = 9.000(honorários 5%×180k) + 6.000(desocupação 2%×300k) + 1.500(carta) + 2.000(mandado) = 18.500. financValor(saldoParcelado) = 180.000−45.000 = 135.000; saldoEscolhido após 12 de 24 parcelas (amortização linear + juros SELIC) = 135.000 − 12×5.625 = 67.500 exato. totalMensaisAteVenda = (200+400+0)×12 = 7.200. totalParcEscolhida (12 parcelas, saldo declinante, SELIC 14,25%) = 81.440,32 (saída do motor, mesma fórmula já testada). totalDesembolso = entradaValor(54.000) + custoTransacao(8.700) + custoJuridico(18.500) + reforma(25.000) + totalMensaisAteVenda(7.200) + totalParcEscolhida(81.440,32) = 194.840,32. custoAquisicaoFiscal = lance(180.000) + comissaoLeiloeiro(9.000) + custoTransacao(8.700) + reforma(25.000) = 222.700; valorAlienacao = 300.000 − comissãoVenda(18.000) = 282.000; ganhoCapIR = 282.000−222.700 = 59.300; irPF = 15%×59.300 = 8.895. bolsoPF = 300.000 − saldoEscolhido(67.500) − comissãoVenda(18.000) − irPF(8.895) + aluguelLiq(0) = 205.605. lucroLiqPF = 205.605 − 194.840,32 = 10.764,68 (bate exato com a saída do runner). roiPF = 10.764,68/194.840,32×100 = 5,52%. ROE de 19,93% sobre os 54.000 efetivamente desembolsados no Dia 1 (era 35,82% no modelo anterior, incorreto por não contabilizar a comissão como custo real).",
    "dadosFixados": {
     "selicMeta": 14.25,
     "nota": "Selic Meta vigente em 25/07/2026, quando o valor-ouro foi gravado (indexador='selic' no Art. 895 CPC alimenta bm.selicMeta no parcelamento e no custo de oportunidade). Achado real (17/08/2026): sem esta trava, o cenário divergia silenciosamente quando a Selic ao vivo da API BCB caiu para 14,00% — runner obtinha lucroLiqPF=19559.14/roiPF=10.34 em vez do valor-ouro (valores da época, ANTES do fix de 22/08/2026 abaixo). Confirmado por reprodução isolada: Selic=14,25% trava reproduz o valor-ouro exato; Selic=14,00% reproduz exatamente a divergência observada. Ver PROJETO.md Regra 70."
    }
   },
   "mcp": {
    "ferramenta": "calcular_viabilidade_trt_hub"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/viabilidade-trt-hub/?hubTRTEstado={estado}&hubTRTAvaliacao={avaliacao}&hubTRTPraca={praca}&hubTRTLance={lance}&hubTRTArea={area}&hubTRTPrevisaoVenda={previsaoVenda}&hubTRTIndexador={indexador}&hubTRTParcelasDesejadas={parcelasDesejadas}&hubTRTComissaoLeiloeiro={comissaoLeiloeiroPct}&hubTRTCustasProcessuais={custasProcessuaisPct}&hubTRTExpedicaoCarta={expedicaoCarta}&hubTRTMandadoImissao={mandadoImissao}&hubTRTITBI={itbiPct}&hubTRTEscritura={escrituraPct}&hubTRTRegistro={registroPct}&hubTRTDividasAnteriores={dividasAnteriores}&hubTRTOcupacao={ocupacao}&hubTRTHonorarios={honorariosPct}&hubTRTCustosDesocupacao={desocupacaoPct}&hubTRTIPTU={iptuMensal}&hubTRTCondominio={condominioMensal}&hubTRTAgua={aguaMensal}&hubTRTNivelReforma={nivelReforma}&hubTRTReformaFixo={reformaValorFixo}&hubTRTCustoPorM2={custoPorM2Personalizado}&hubTRTMesesObra={mesesObra}&hubTRTAluguelFixo={aluguelFixo}&hubTRTValorSaida={valorSaida}&hubTRTComissaoVenda={comissaoVendaPct}&hubTRTPJ={usaPJ}&hubTRTIntencao=vender",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "viabilidade-leiloeiros-hub",
   "nome": "Leilão com Leiloeiro Oficial",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/viabilidade-leiloeiros-hub/",
   "descricao": "Operacional: fluxo 24h rígido (martelo até TED), comissão 5% fixa por lei, fraude check JUCESP, logística para móveis.",
   "perguntaQueResponde": "Depois da comissão do leiloeiro e das taxas administrativas, esse leilão ainda vale a pena?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado se nivelReforma for por CUB. Padrão \"SP\".",
      "x-campoSite": "hubLeilaoEstado"
     },
     "avaliacao": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de avaliação, em R$.",
      "x-campoSite": "hubLeilaoAvaliacao"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance, em R$.",
      "x-campoSite": "hubLeilaoLance"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m².",
      "x-campoSite": "hubLeilaoArea"
     },
     "previsaoVenda": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Previsão até a venda, em MESES.",
      "x-campoSite": "hubLeilaoPrevisaoVenda"
     },
     "comissaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance. Padrão 0.",
      "x-campoSite": "hubLeilaoComissao"
     },
     "taxasAdmin": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Taxas administrativas fixas do leiloeiro, em R$. Padrão 0.",
      "x-campoSite": "hubLeilaoTaxasAdmin"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "hubLeilaoITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "hubLeilaoEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "hubLeilaoRegistro"
     },
     "dividasAnteriores": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Dívidas anteriores assumidas, em R$. Padrão 0.",
      "x-campoSite": "hubLeilaoDividasAnteriores"
     },
     "ocupacao": {
      "type": "string",
      "enum": [
       "desocupado",
       "ocupado"
      ],
      "default": "desocupado",
      "description": "Situação de ocupação. Padrão \"desocupado\".",
      "x-campoSite": "hubLeilaoOcupacao",
      "x-valoresSite": {
       "ocupado": "terceiros"
      }
     },
     "honorariosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Honorários advocatícios, em % sobre o lance. Padrão 0.",
      "x-campoSite": "hubLeilaoHonorarios"
     },
     "desocupacaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custo de desocupação, em % sobre a avaliação, só se ocupacao != \"desocupado\". Padrão 0.",
      "x-campoSite": "hubLeilaoDesocupacao"
     },
     "iptuMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "IPTU mensal, em R$. Padrão 0.",
      "x-campoSite": "hubLeilaoIPTU"
     },
     "condominioMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Condomínio mensal, em R$. Padrão 0.",
      "x-campoSite": "hubLeilaoCondominio"
     },
     "aguaMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Água mensal, em R$. Padrão 0.",
      "x-campoSite": "hubLeilaoAgua"
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "valor_fixo",
       "personalizada",
       "pintura",
       "basica",
       "media",
       "completa"
      ],
      "default": "media",
      "description": "Nível/modo da reforma. Padrão \"media\".",
      "x-campoSite": "hubLeilaoNivelReforma"
     },
     "reformaValorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se nivelReforma=\"valor_fixo\".",
      "x-campoSite": "hubLeilaoReformaFixo"
     },
     "custoPorM2Personalizado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² da reforma, em R$ — obrigatório se nivelReforma=\"personalizada\".",
      "x-campoSite": "hubLeilaoCustoPorM2"
     },
     "mesesObra": {
      "type": "number",
      "minimum": 0,
      "description": "Duração da obra, em meses (use 0 se não houver reforma).",
      "x-campoSite": "hubLeilaoMesesObra"
     },
     "aluguelFixo": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Aluguel recebido por mês enquanto aguarda a venda, em R$. Padrão 0.",
      "x-campoSite": "hubLeilaoAluguelFixo"
     },
     "valorSaida": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Preço estimado de revenda, em R$.",
      "x-campoSite": "hubLeilaoValorSaida"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na revenda, em %. Padrão 0.",
      "x-campoSite": "hubLeilaoComissaoVenda"
     },
     "usaPJ": {
      "type": "boolean",
      "default": false,
      "description": "Se true, usa o regime PJ (Lucro Presumido). Padrão false.",
      "x-campoSite": "hubLeilaoPJ",
      "x-valoresSite": {
       "true": "sim",
       "false": "nao"
      }
     }
    },
    "required": [
     "avaliacao",
     "lance",
     "area",
     "previsaoVenda",
     "mesesObra",
     "valorSaida"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "avaliacao": {
      "type": "number",
      "description": "Valor de avaliação, em R$."
     },
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "area": {
      "type": "number",
      "description": "Área do imóvel, em m²."
     },
     "custoTransacao": {
      "type": "number",
      "description": "Comissão do leiloeiro + ITBI + escritura + registro, em R$."
     },
     "taxasAdmin": {
      "type": "number",
      "description": "Taxas administrativas do leiloeiro, em R$."
     },
     "totalDesembolso": {
      "type": "number",
      "description": "Lance + custos de transação + custo jurídico + dívidas + taxas + reforma + custos mensais, em R$."
     },
     "irPF": {
      "type": "number",
      "description": "IR da pessoa física sobre o ganho de capital (15%), em R$."
     },
     "lucroLiqPF": {
      "type": "number",
      "description": "Lucro líquido como pessoa física, depois de todos os custos e do IR, em R$."
     },
     "roiPF": {
      "type": "number",
      "description": "ROI líquido como pessoa física no período inteiro (não anualizado), em %."
     },
     "irPJ": {
      "type": "number",
      "description": "Tributos da PJ no Lucro Presumido sobre a receita da venda (IRPJ + adicional + CSLL + PIS + COFINS), em R$."
     },
     "lucroLiqPJ": {
      "type": "number",
      "description": "Lucro líquido como PJ no Lucro Presumido, em R$."
     },
     "roiPJ": {
      "type": "number",
      "description": "ROI líquido como PJ no período inteiro (não anualizado), em %."
     },
     "roiAnualEsc": {
      "type": "number",
      "description": "ROI do regime escolhido (usaPJ) anualizado pela previsão de venda — % a.a., em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "avaliacao",
     "lance",
     "area",
     "custoTransacao",
     "taxasAdmin",
     "totalDesembolso",
     "irPF",
     "lucroLiqPF",
     "roiPF",
     "irPJ",
     "lucroLiqPJ",
     "roiPJ",
     "roiAnualEsc",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Dia 1 (prazo do edital) = lance + comissão de 5% + taxas administrativas do leiloeiro",
    "Custos de aquisição = comissão e ITBI sobre o lance + escritura e registro sobre a avaliação",
    "Desocupação = honorários sobre o lance + custo de desocupação sobre a avaliação",
    "Carregamento = (IPTU + condomínio + água) × meses até a venda",
    "Desembolso total = lance + aquisição + taxas + desocupação + dívidas + reforma + carregamento",
    "Lucro = venda − corretagem − imposto − desembolso; ROI = lucro ÷ desembolso, anualizado pelos meses até a venda",
    "Exemplo (o cenário verificado pela suíte de testes): imóvel de R$ 250 mil arrematado por R$ 180 mil, com R$ 1.500 de taxas, R$ 18 mil de reforma e 8 meses até a venda. No Dia 1 saem R$ 190.500; o desembolso total chega a R$ 219.850 e a venda por R$ 265 mil deixa R$ 24.037,50 — ROI de 10,93%, ou 16,84% ao ano."
   ],
   "fontes": [
    {
     "nome": "Decreto 21.981/1932, Art. 24",
     "detalhe": "comissão obrigatória de 5% do leiloeiro, paga pelo comprador"
    },
    {
     "nome": "Lei 9.514/1997, Arts. 26 e 27 + Lei 14.711/2023",
     "detalhe": "consolidação da propriedade e leilões do imóvel dado em alienação fiduciária (Marco Legal das Garantias)"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da transação (arrematação), não no valor venal"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153 + IN SRF 84/2001",
     "detalhe": "ganho de capital na revenda: custo de aquisição, corretagem deduzida e alíquota de 15% até R$ 5 milhões"
    },
    {
     "nome": "Banco Central — CDI (SGS)",
     "detalhe": "custo de oportunidade: o ROI anualizado é comparado ao CDI atualizado"
    }
   ],
   "limitacoes": [
    "Taxas administrativas, honorários e dívidas antigas reduzem o lucro, mas não o imposto. A meta de 2× o CDI é referência da calculadora, não garantia.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "leiloeiro oficial com taxas administrativas (pós-fix 1.13)",
    "entradasSite": {
     "hubLeilaoLeiloeiro": "outro",
     "hubLeilaoEstado": "SP",
     "hubLeilaoTipo": "residencial",
     "hubLeilaoAvaliacao": 250000,
     "hubLeilaoLance": 180000,
     "hubLeilaoArea": 65,
     "hubLeilaoPrevisaoVenda": 8,
     "hubLeilaoComissao": 5,
     "hubLeilaoTaxasAdmin": 1500,
     "hubLeilaoITBI": 2,
     "hubLeilaoEscritura": 1,
     "hubLeilaoRegistro": 0.5,
     "hubLeilaoDividasAnteriores": 0,
     "hubLeilaoOcupacao": "desocupado",
     "hubLeilaoHonorarios": 0,
     "hubLeilaoIPTU": 200,
     "hubLeilaoCondominio": 300,
     "hubLeilaoAgua": 0,
     "hubLeilaoNivelReforma": "valor_fixo",
     "hubLeilaoReformaFixo": 18000,
     "hubLeilaoMesesObra": 2,
     "hubLeilaoAluguelFixo": 0,
     "hubLeilaoIntencao": "vender",
     "hubLeilaoValorSaida": 265000,
     "hubLeilaoComissaoVenda": 6,
     "hubLeilaoPJ": "nao"
    },
    "entradasMCP": {
     "estado": "SP",
     "avaliacao": 250000,
     "lance": 180000,
     "area": 65,
     "previsaoVenda": 8,
     "comissaoPct": 5,
     "taxasAdmin": 1500,
     "itbiPct": 2,
     "escrituraPct": 1,
     "registroPct": 0.5,
     "dividasAnteriores": 0,
     "ocupacao": "desocupado",
     "honorariosPct": 0,
     "iptuMensal": 200,
     "condominioMensal": 300,
     "aguaMensal": 0,
     "nivelReforma": "valor_fixo",
     "reformaValorFixo": 18000,
     "mesesObra": 2,
     "aluguelFixo": 0,
     "valorSaida": 265000,
     "comissaoVendaPct": 6,
     "usaPJ": false
    },
    "esperado": {
     "custoTransacao": 16350,
     "taxasAdmin": 1500,
     "totalDesembolso": 219850,
     "irPF": 5212.5,
     "lucroLiqPF": 24037.5,
     "roiPF": 10.93,
     "roiAnualEsc": 16.84
    },
    "tolerancia": 0.01,
    "verificacao": "CORRIGIDO PELO FIX 1.13 em 25/07/2026. As taxas administrativas do leiloeiro (R$ 1.500) agora entram no desembolso e, portanto, no lucro. Receipt antes/depois medido pelo runner:\n  totalDesembolso  218.350,00 → 219.850,00  (+1.500,00 = exatamente a taxa)\n  lucroLiqPF        25.537,50 → 24.037,50   (−1.500,00)\n  roiPF                 11,70% → 10,93%\nContinua FORA de custoAquisicaoFiscal (214.350) — taxa administrativa não é dedutível do ganho de capital, mesmo tratamento da assessoria no hub de bancos. Prova de regressão: alterar a taxa agora MOVE o lucro (antes, trocar 1.500 por 20.000 não mudava nada)."
   },
   "mcp": {
    "ferramenta": "calcular_viabilidade_leiloeiros_hub"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/viabilidade-leiloeiros-hub/?hubLeilaoEstado={estado}&hubLeilaoAvaliacao={avaliacao}&hubLeilaoLance={lance}&hubLeilaoArea={area}&hubLeilaoPrevisaoVenda={previsaoVenda}&hubLeilaoComissao={comissaoPct}&hubLeilaoTaxasAdmin={taxasAdmin}&hubLeilaoITBI={itbiPct}&hubLeilaoEscritura={escrituraPct}&hubLeilaoRegistro={registroPct}&hubLeilaoDividasAnteriores={dividasAnteriores}&hubLeilaoOcupacao={ocupacao}&hubLeilaoHonorarios={honorariosPct}&hubLeilaoDesocupacao={desocupacaoPct}&hubLeilaoIPTU={iptuMensal}&hubLeilaoCondominio={condominioMensal}&hubLeilaoAgua={aguaMensal}&hubLeilaoNivelReforma={nivelReforma}&hubLeilaoReformaFixo={reformaValorFixo}&hubLeilaoCustoPorM2={custoPorM2Personalizado}&hubLeilaoMesesObra={mesesObra}&hubLeilaoAluguelFixo={aluguelFixo}&hubLeilaoValorSaida={valorSaida}&hubLeilaoComissaoVenda={comissaoVendaPct}&hubLeilaoPJ={usaPJ}&hubLeilaoIntencao=vender",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "viabilidade-leilao-simples",
   "nome": "Viabilidade Simples",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/viabilidade-leilao-simples/",
   "descricao": "Estimativa rápida de viabilidade de um imóvel em leilão.",
   "perguntaQueResponde": "De forma rápida, esse lance em leilão parece um bom negócio ou não?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado se nivelReforma for por CUB. Padrão \"SP\".",
      "x-campoSite": "leilaoSimplesEstado"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance, em R$.",
      "x-campoSite": "leilaoSimplesLance"
     },
     "mercado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de mercado/avaliação, em R$ (precisa ser maior que o lance).",
      "x-campoSite": "leilaoSimplesMercado"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m².",
      "x-campoSite": "leilaoSimplesArea"
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "valor_fixo",
       "personalizada",
       "pintura",
       "basica",
       "media",
       "completa"
      ],
      "default": "nenhuma",
      "description": "Nível/modo da reforma. Padrão \"nenhuma\".",
      "x-campoSite": "leilaoSimplesReforma"
     },
     "reformaValorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se nivelReforma=\"valor_fixo\".",
      "x-campoSite": "leilaoSimplesReformaValorFixo"
     },
     "reformaCustoM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² da reforma, em R$ — obrigatório se nivelReforma=\"personalizada\".",
      "x-campoSite": "leilaoSimplesCustoReformaPersonalizado"
     },
     "comissaoLeiloeiroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance. Padrão 0.",
      "x-campoSite": "leilaoSimplesComissao"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "leilaoSimplesITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "leilaoSimplesEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "leilaoSimplesRegistro"
     },
     "dividasAnteriores": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Dívidas anteriores do imóvel assumidas, em R$. Padrão 0.",
      "x-campoSite": "leilaoSimplesDividasAnteriores"
     },
     "honorariosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Honorários advocatícios, em % sobre o lance. Padrão 0.",
      "x-campoSite": "leilaoSimplesHonorarios"
     },
     "ocupacao": {
      "type": "string",
      "enum": [
       "desocupado",
       "ex_proprietario",
       "terceiros"
      ],
      "default": "desocupado",
      "description": "Situação de ocupação. Padrão \"desocupado\".",
      "x-campoSite": "leilaoSimplesOcupacao"
     },
     "desocupacaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custo de desocupação, em % sobre o valor de mercado, só se ocupacao != \"desocupado\". Padrão 0.",
      "x-campoSite": "leilaoSimplesDesocupacao"
     },
     "valorSaida": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Preço estimado de revenda, em R$.",
      "x-campoSite": "leilaoSimplesValorSaida"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na revenda, em %. Padrão 0.",
      "x-campoSite": "leilaoSimplesComissaoVenda"
     }
    },
    "required": [
     "lance",
     "mercado",
     "area",
     "valorSaida"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "mercado": {
      "type": "number",
      "description": "Valor de mercado/avaliação, em R$."
     },
     "area": {
      "type": "number",
      "description": "Área do imóvel, em m²."
     },
     "reforma": {
      "type": "number",
      "description": "Custo da reforma, em R$."
     },
     "itbi": {
      "type": "number",
      "description": "ITBI, em R$."
     },
     "comissaoLeilao": {
      "type": "number",
      "description": "Comissão do leiloeiro, em R$."
     },
     "escritura": {
      "type": "number",
      "description": "Escritura, em R$."
     },
     "registro": {
      "type": "number",
      "description": "Registro, em R$."
     },
     "comissaoVenda": {
      "type": "number",
      "description": "Comissão do corretor na revenda, em R$."
     },
     "custoAquisicao": {
      "type": "number",
      "description": "Total desembolsado: lance + custos de transação + honorários + desocupação + dívidas + reforma, em R$."
     },
     "valorAlienacao": {
      "type": "number",
      "description": "Valor de revenda menos a comissão de venda, em R$."
     },
     "irPF": {
      "type": "number",
      "description": "IR da pessoa física sobre o ganho de capital (15%), em R$."
     },
     "lucroLiqPF": {
      "type": "number",
      "description": "Lucro líquido como pessoa física, em R$."
     },
     "roiPF": {
      "type": "number",
      "description": "ROI líquido como pessoa física no período inteiro (não anualizado), em %."
     },
     "desconto": {
      "type": "number",
      "description": "Desconto do lance sobre o valor de avaliação/mercado, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "lance",
     "mercado",
     "area",
     "reforma",
     "itbi",
     "comissaoLeilao",
     "escritura",
     "registro",
     "comissaoVenda",
     "custoAquisicao",
     "valorAlienacao",
     "irPF",
     "lucroLiqPF",
     "roiPF",
     "desconto",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Custo de aquisição = lance + comissão do leiloeiro e ITBI (sobre o lance) + escritura e registro (sobre a avaliação) + reforma",
    "Receita líquida = valor de venda − comissão do corretor",
    "Imposto = 15% × (receita líquida − custo de aquisição), nunca negativo",
    "Lucro = receita líquida − imposto − custo de aquisição; ROI = lucro ÷ custo de aquisição",
    "Desconto = 1 − lance ÷ valor de mercado",
    "Exemplo (o cenário verificado pela suíte de testes): lance de R$ 200 mil num imóvel de R$ 300 mil, com R$ 30 mil de reforma. O custo de aquisição chega a R$ 250.500; vendendo por R$ 300 mil com 6% de corretagem, o imposto é de R$ 4.725 e sobram R$ 26.775 — ROI de 10,69%. No mesmo imóvel, um lance de R$ 280 mil sem reforma dá prejuízo de R$ 24.900."
   ],
   "fontes": [
    {
     "nome": "Lei 9.514/1997, Art. 27 + Lei 14.711/2023",
     "detalhe": "leilão extrajudicial do imóvel dado em alienação fiduciária (Marco Legal das Garantias)"
    },
    {
     "nome": "CPC (Lei 13.105/2015), Arts. 879–903",
     "detalhe": "alienação judicial: leilão, preço vil, parcelamento e carta de arrematação"
    },
    {
     "nome": "Decreto 21.981/1932, Art. 24 e STJ, RMS 65.084",
     "detalhe": "comissão de 5% do leiloeiro, paga pelo arrematante, também no leilão judicial"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da arrematação, não no valor venal"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153 + IN SRF 84/2001",
     "detalhe": "ganho de capital na revenda: custo de aquisição, corretagem deduzida e alíquota de 15% até R$ 5 milhões"
    },
    {
     "nome": "Lei 9.250/1995, Art. 23 e Lei 11.196/2005, Art. 39",
     "detalhe": "isenções do único imóvel até R$ 440 mil e do reinvestimento em 180 dias (não aplicadas automaticamente)"
    }
   ],
   "limitacoes": [
    "A análise não tem prazo: não considera IPTU, condomínio nem o tempo até a venda. As isenções do único imóvel até R$ 440 mil (Lei 9.250/95, Art. 23) e do reinvestimento em 180 dias (Lei 11.196/2005, Art. 39) não são aplicadas. Leia o edital e a matrícula antes do lance.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "flip com lucro — todos os custos informados",
    "entradasSite": {
     "leilaoSimplesEstado": "SP",
     "leilaoSimplesTipo": "residencial",
     "leilaoSimplesLance": 200000,
     "leilaoSimplesMercado": 300000,
     "leilaoSimplesArea": 80,
     "leilaoSimplesReforma": "valor_fixo",
     "leilaoSimplesReformaValorFixo": 30000,
     "leilaoSimplesComissao": 5,
     "leilaoSimplesITBI": 3,
     "leilaoSimplesEscritura": 1,
     "leilaoSimplesRegistro": 0.5,
     "leilaoSimplesComissaoVenda": 6,
     "leilaoSimplesValorSaida": 300000
    },
    "entradasMCP": {
     "estado": "SP",
     "lance": 200000,
     "mercado": 300000,
     "area": 80,
     "nivelReforma": "valor_fixo",
     "reformaValorFixo": 30000,
     "comissaoLeiloeiroPct": 5,
     "itbiPct": 3,
     "escrituraPct": 1,
     "registroPct": 0.5,
     "comissaoVendaPct": 6,
     "valorSaida": 300000
    },
    "esperado": {
     "itbi": 6000,
     "comissaoLeilao": 10000,
     "escritura": 3000,
     "registro": 1500,
     "comissaoVenda": 18000,
     "custoAquisicao": 250500,
     "valorAlienacao": 282000,
     "irPF": 4725,
     "lucroLiqPF": 26775,
     "roiPF": 10.69,
     "desconto": 33.3
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual completa: ITBI e comissão do leiloeiro sobre o LANCE (STJ Tema 1.113); escritura/registro sobre a avaliação; IR = 15% × (alienação − custo fiscal), IN SRF 84/2001. Python e navegador idênticos em 25/07/2026."
   },
   "mcp": {
    "ferramenta": "calcular_viabilidade_leilao_simples"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/viabilidade-leilao-simples/?leilaoSimplesEstado={estado}&leilaoSimplesLance={lance}&leilaoSimplesMercado={mercado}&leilaoSimplesArea={area}&leilaoSimplesReforma={nivelReforma}&leilaoSimplesReformaValorFixo={reformaValorFixo}&leilaoSimplesCustoReformaPersonalizado={reformaCustoM2}&leilaoSimplesComissao={comissaoLeiloeiroPct}&leilaoSimplesITBI={itbiPct}&leilaoSimplesEscritura={escrituraPct}&leilaoSimplesRegistro={registroPct}&leilaoSimplesDividasAnteriores={dividasAnteriores}&leilaoSimplesHonorarios={honorariosPct}&leilaoSimplesOcupacao={ocupacao}&leilaoSimplesDesocupacao={desocupacaoPct}&leilaoSimplesValorSaida={valorSaida}&leilaoSimplesComissaoVenda={comissaoVendaPct}&leilaoSimplesIntencao=vender",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "viabilidade-leilao-completa",
   "nome": "Viabilidade Completa",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/viabilidade-leilao-completa/",
   "descricao": "Análise detalhada de todos os custos e retornos de um leilão.",
   "perguntaQueResponde": "Considerando todos os custos de aquisição, venda e impostos, qual é o lucro líquido e o ROI real dessa arrematação?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado se nivelReforma for por CUB. Padrão \"SP\".",
      "x-campoSite": "leilaoEstadoCompleto"
     },
     "mercado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de avaliação/mercado, em R$.",
      "x-campoSite": "leilaoValorMercado"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance, em R$ (até 5% acima da avaliação).",
      "x-campoSite": "leilaoLance"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m².",
      "x-campoSite": "leilaoArea"
     },
     "previsaoVenda": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Previsão até a venda, em MESES — define por quanto tempo os custos mensais correm.",
      "x-campoSite": "leilaoPrevisaoVenda"
     },
     "valorSaida": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Preço estimado de revenda, em R$.",
      "x-campoSite": "leilaoValorSaida"
     },
     "comissaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance. Padrão 0.",
      "x-campoSite": "leilaoComissao"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "leilaoITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "leilaoEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre a avaliação. Padrão 0.",
      "x-campoSite": "leilaoRegistro"
     },
     "dividasAnteriores": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Dívidas anteriores assumidas, em R$. Padrão 0.",
      "x-campoSite": "leilaoDividasAnteriores"
     },
     "ocupacao": {
      "type": "string",
      "enum": [
       "desocupado",
       "ex_proprietario",
       "terceiros"
      ],
      "default": "desocupado",
      "description": "Situação de ocupação. Padrão \"desocupado\".",
      "x-campoSite": "leilaoOcupacao"
     },
     "honorariosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Honorários advocatícios, em % sobre o lance. Padrão 0.",
      "x-campoSite": "leilaoHonorarios"
     },
     "desocupacaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custo de desocupação, em % sobre a avaliação, só se ocupacao != \"desocupado\". Padrão 0.",
      "x-campoSite": "leilaoDesocupacao"
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "valor_fixo",
       "personalizada",
       "pintura",
       "basica",
       "media",
       "completa"
      ],
      "default": "media",
      "description": "Nível/modo da reforma. Padrão \"media\".",
      "x-campoSite": "leilaoNivelReforma"
     },
     "reformaValorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se nivelReforma=\"valor_fixo\".",
      "x-campoSite": "leilaoReformaValorFixo"
     },
     "reformaCustoM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² da reforma, em R$ — obrigatório se nivelReforma=\"personalizada\".",
      "x-campoSite": "leilaoCustoReformaPersonalizado"
     },
     "mesesObra": {
      "type": "number",
      "minimum": 0,
      "description": "Duração da obra, em meses (use 0 se não houver reforma).",
      "x-campoSite": "leilaoMesesObra"
     },
     "agua": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Água mensal, em R$. Padrão 0.",
      "x-campoSite": "leilaoAgua"
     },
     "iptu": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "IPTU mensal, em R$. Padrão 0.",
      "x-campoSite": "leilaoIPTU"
     },
     "condominio": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Condomínio mensal, em R$. Padrão 0.",
      "x-campoSite": "leilaoCondominio"
     },
     "outrosCustos": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Outros custos mensais, em R$. Padrão 0.",
      "x-campoSite": "leilaoOutrosCustos"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na revenda, em %. Padrão 0.",
      "x-campoSite": "leilaoComissaoVenda"
     },
     "usaPJ": {
      "type": "boolean",
      "default": false,
      "description": "Se true, usa o regime PJ (Lucro Presumido) no lucro/ROI principal em vez de PF. Padrão false.",
      "x-campoSite": "leilaoRegime",
      "x-valoresSite": {
       "true": "pj",
       "false": "pf"
      }
     }
    },
    "required": [
     "mercado",
     "lance",
     "area",
     "previsaoVenda",
     "valorSaida",
     "mesesObra"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "mercado": {
      "type": "number",
      "description": "Valor de avaliação/mercado, em R$."
     },
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "area": {
      "type": "number",
      "description": "Área do imóvel, em m²."
     },
     "desconto": {
      "type": "number",
      "description": "Desconto do lance sobre o valor de avaliação/mercado, em %."
     },
     "custoTransacao": {
      "type": "number",
      "description": "Comissão do leiloeiro + ITBI + escritura + registro, em R$."
     },
     "reforma": {
      "type": "number",
      "description": "Custo da reforma, em R$."
     },
     "totalDesembolso": {
      "type": "number",
      "description": "Tudo o que sai do bolso até a venda: lance, custos de transação, honorários, desocupação, dívidas, reforma e custos mensais, em R$."
     },
     "irPF": {
      "type": "number",
      "description": "IR da pessoa física sobre o ganho de capital (15%), em R$."
     },
     "lucroLiqPF": {
      "type": "number",
      "description": "Lucro líquido como pessoa física, depois de todos os custos e do IR, em R$."
     },
     "roiPF": {
      "type": "number",
      "description": "ROI líquido como pessoa física no período inteiro (não anualizado), em %."
     },
     "irPJ": {
      "type": "number",
      "description": "Tributos da PJ no Lucro Presumido sobre a receita da venda (IRPJ + adicional + CSLL + PIS + COFINS), em R$."
     },
     "lucroLiqPJ": {
      "type": "number",
      "description": "Lucro líquido como PJ no Lucro Presumido, em R$."
     },
     "roiPJ": {
      "type": "number",
      "description": "ROI líquido como PJ no período inteiro (não anualizado), em %."
     },
     "roiAnualEsc": {
      "type": "number",
      "description": "ROI do regime escolhido (usaPJ) anualizado pela previsão de venda — % a.a., em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "mercado",
     "lance",
     "area",
     "desconto",
     "custoTransacao",
     "reforma",
     "totalDesembolso",
     "irPF",
     "lucroLiqPF",
     "roiPF",
     "irPJ",
     "lucroLiqPJ",
     "roiPJ",
     "roiAnualEsc",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Dia 1: o lance (ou a entrada, se financiar) e a comissão do leiloeiro",
    "Custos de aquisição = comissão e ITBI sobre o lance + escritura e registro sobre a avaliação; desocupação = honorários + custo de desocupação",
    "Carregamento = (IPTU + condomínio + água + outros) × meses até a venda, mais as parcelas pagas",
    "Desembolso total = entrada + aquisição + desocupação + dívidas anteriores + reforma + carregamento",
    "Receita líquida = venda − saldo devedor − corretagem − imposto (+ aluguel líquido do período)",
    "Lucro = receita líquida − desembolso; ROI = lucro ÷ desembolso, anualizado pelos meses até a venda",
    "Exemplo (o cenário verificado pela suíte de testes): lance de R$ 220 mil num imóvel de R$ 300 mil, R$ 25 mil de reforma e R$ 800 por mês durante 10 meses. O desembolso chega a R$ 275.100; vendendo por R$ 310 mil, sobram R$ 12.655 como pessoa física — ROI de 4,6%, ou 5,55% ao ano."
   ],
   "fontes": [
    {
     "nome": "Lei 9.514/1997, Art. 27 + Lei 14.711/2023",
     "detalhe": "leilão extrajudicial do imóvel dado em alienação fiduciária (Marco Legal das Garantias)"
    },
    {
     "nome": "CPC (Lei 13.105/2015), Arts. 879–903",
     "detalhe": "alienação judicial: leilão, preço vil, parcelamento e carta de arrematação"
    },
    {
     "nome": "Decreto 21.981/1932, Art. 24 e STJ, RMS 65.084",
     "detalhe": "comissão de 5% do leiloeiro, paga pelo arrematante, também no leilão judicial"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da arrematação, não no valor venal"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153 + IN SRF 84/2001",
     "detalhe": "ganho de capital na revenda: custo de aquisição, corretagem deduzida e alíquota de 15% até R$ 5 milhões"
    },
    {
     "nome": "Banco Central — CDI (SGS)",
     "detalhe": "custo de oportunidade: o ROI anualizado é comparado ao CDI atualizado"
    }
   ],
   "limitacoes": [
    "As isenções de IR não são aplicadas automaticamente, e o custo de desocupação é uma estimativa. O resultado é comparado com CDI, poupança, CDB e Tesouro Selic atualizados, mas sem descontar o IR dessas aplicações.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "vender, sem financiamento, 10 meses de carregamento — PF vs PJ",
    "entradasSite": {
     "leilaoEstadoCompleto": "SP",
     "leilaoTipo": "residencial",
     "leilaoValorMercado": 300000,
     "leilaoLance": 220000,
     "leilaoArea": 70,
     "leilaoPrevisaoVenda": 10,
     "leilaoIntencao": "vender",
     "leilaoValorSaida": 310000,
     "leilaoComissao": 5,
     "leilaoITBI": 3,
     "leilaoEscritura": 1,
     "leilaoRegistro": 0.5,
     "leilaoDividasAnteriores": 0,
     "leilaoOcupacao": "desocupado",
     "leilaoHonorarios": 0,
     "leilaoNivelReforma": "valor_fixo",
     "leilaoReformaValorFixo": 25000,
     "leilaoMesesObra": 2,
     "leilaoAgua": 150,
     "leilaoIPTU": 250,
     "leilaoCondominio": 400,
     "leilaoOutrosCustos": 0,
     "leilaoFinancia": "nao",
     "leilaoComissaoVenda": 6,
     "leilaoRegime": "pf"
    },
    "entradasMCP": {
     "estado": "SP",
     "mercado": 300000,
     "lance": 220000,
     "area": 70,
     "previsaoVenda": 10,
     "valorSaida": 310000,
     "comissaoPct": 5,
     "itbiPct": 3,
     "escrituraPct": 1,
     "registroPct": 0.5,
     "dividasAnteriores": 0,
     "ocupacao": "desocupado",
     "honorariosPct": 0,
     "nivelReforma": "valor_fixo",
     "reformaValorFixo": 25000,
     "mesesObra": 2,
     "agua": 150,
     "iptu": 250,
     "condominio": 400,
     "outrosCustos": 0,
     "comissaoVendaPct": 6,
     "usaPJ": false
    },
    "esperado": {
     "custoTransacao": 22100,
     "totalDesembolso": 275100,
     "irPF": 3645,
     "lucroLiqPF": 12655,
     "roiPF": 4.6,
     "roiAnualEsc": 5.55
    },
    "tolerancia": 0.01,
    "verificacao": "Base fiscal 267.100 = lance+transação+reforma; carregamento (800×10=8.000) fora da base mas dentro do desembolso. Derivação manual = navegador, 25/07/2026."
   },
   "mcp": {
    "ferramenta": "calcular_viabilidade_leilao_completa"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/viabilidade-leilao-completa/?leilaoEstadoCompleto={estado}&leilaoValorMercado={mercado}&leilaoLance={lance}&leilaoArea={area}&leilaoPrevisaoVenda={previsaoVenda}&leilaoValorSaida={valorSaida}&leilaoComissao={comissaoPct}&leilaoITBI={itbiPct}&leilaoEscritura={escrituraPct}&leilaoRegistro={registroPct}&leilaoDividasAnteriores={dividasAnteriores}&leilaoOcupacao={ocupacao}&leilaoHonorarios={honorariosPct}&leilaoDesocupacao={desocupacaoPct}&leilaoNivelReforma={nivelReforma}&leilaoReformaValorFixo={reformaValorFixo}&leilaoCustoReformaPersonalizado={reformaCustoM2}&leilaoMesesObra={mesesObra}&leilaoAgua={agua}&leilaoIPTU={iptu}&leilaoCondominio={condominio}&leilaoOutrosCustos={outrosCustos}&leilaoComissaoVenda={comissaoVendaPct}&leilaoRegime={usaPJ}&leilaoFinancia=nao&leilaoIntencao=vender",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "lance-maximo",
   "nome": "Lance Máximo",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/lance-maximo/",
   "descricao": "Descubra o valor máximo que você pode dar no lance.",
   "perguntaQueResponde": "Qual é o maior valor que posso oferecer por este imóvel em leilão mantendo o retorno mínimo que planejei?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado se nivelReforma for por CUB. Padrão \"SP\".",
      "x-campoSite": "lanceEstado"
     },
     "valorMercado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de mercado/avaliação do imóvel, em R$.",
      "x-campoSite": "lanceValorMercado"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m².",
      "x-campoSite": "lanceArea"
     },
     "roiMinimoPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "ROI mínimo desejado na operação, em %.",
      "x-campoSite": "lanceROIMinimo"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "lanceITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "lanceEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "lanceRegistro"
     },
     "comissaoLeiloeiroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance. Padrão 0.",
      "x-campoSite": "lanceComissaoLeiloeiro"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na revenda, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "lanceComissaoVenda"
     },
     "honorariosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Honorários advocatícios, em % sobre o lance. Padrão 0.",
      "x-campoSite": "lanceHonorarios"
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "valor_fixo",
       "personalizada",
       "pintura",
       "basica",
       "media",
       "completa"
      ],
      "default": "media",
      "description": "Nível/modo da reforma. Padrão \"media\".",
      "x-campoSite": "lanceNivelReforma"
     },
     "reformaValorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se nivelReforma=\"valor_fixo\".",
      "x-campoSite": "lanceReformaValorFixo"
     },
     "reformaCustoM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² da reforma, em R$ — obrigatório se nivelReforma=\"personalizada\".",
      "x-campoSite": "lanceReformaCustoM2"
     }
    },
    "required": [
     "valorMercado",
     "area",
     "roiMinimoPct"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "valorMercado": {
      "type": "number",
      "description": "Valor de mercado informado, em R$."
     },
     "area": {
      "type": "number",
      "description": "Área do imóvel, em m²."
     },
     "reforma": {
      "type": "number",
      "description": "Custo da reforma considerado, em R$."
     },
     "lanceMaximo": {
      "type": "number",
      "description": "Maior lance que ainda atinge o ROI mínimo, arredondado ao real. Não desconta desocupação, custos de posse até a venda nem dívidas do edital, em R$."
     },
     "custoTotal": {
      "type": "number",
      "description": "Custo total no lance máximo: lance + ITBI + escritura + registro + comissão do leiloeiro + reforma + honorários, em R$."
     },
     "roi": {
      "type": "number",
      "description": "ROI líquido no lance máximo, no período inteiro (não anualizado), em %."
     },
     "lucro": {
      "type": "number",
      "description": "Lucro líquido no lance máximo, depois do IR da pessoa física, em R$."
     },
     "ir": {
      "type": "number",
      "description": "IR da pessoa física sobre o ganho de capital (15%) no lance máximo, em R$."
     },
     "roiInalcancavel": {
      "type": "boolean",
      "description": "true se nem com lance zero o ROI mínimo é atingido."
     },
     "negocioInviavel": {
      "type": "boolean",
      "description": "true se o ROI é inalcançável ou o lucro no lance máximo é ≤ 0."
     },
     "roiTeto": {
      "type": "number",
      "description": "ROI com lance zero — o máximo possível nessa configuração, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "valorMercado",
     "area",
     "reforma",
     "lanceMaximo",
     "custoTotal",
     "roi",
     "lucro",
     "ir",
     "roiInalcancavel",
     "negocioInviavel",
     "roiTeto",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Para cada lance testado: ITBI, comissão do leiloeiro e honorários sobre o lance; escritura e registro sobre a avaliação; reforma pelo nível, valor fixo ou R$/m²",
    "Custo total = lance + ITBI + escritura + registro + comissão + reforma + honorários",
    "Receita líquida = valor de mercado − comissão de venda",
    "Imposto = 15% × (receita líquida − custo de aquisição, sem os honorários)",
    "ROI = (receita líquida − imposto − custo total) ÷ custo total",
    "Lance máximo: bissecção numérica — 100 tentativas entre R$ 0 e 99% do valor de mercado até o ROI bater com a meta",
    "Exemplo (o cenário verificado pela suíte de testes): imóvel de R$ 300 mil, R$ 20 mil de reforma e meta de 20% de ROI. O lance máximo é de R$ 188.680: o custo total fica em R$ 228.274,40 e o lucro em R$ 45.666,76. Se a meta for impossível (1.000%, por exemplo), a calculadora avisa que nem um lance simbólico a alcança — sinal de que a meta ou o valor de venda precisam ser revistos."
   ],
   "fontes": [
    {
     "nome": "Decreto 21.981/1932, Art. 24 e STJ, RMS 65.084",
     "detalhe": "comissão de 5% do leiloeiro, paga pelo arrematante, também no leilão judicial"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da arrematação, não no valor venal"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153 + IN SRF 84/2001",
     "detalhe": "ganho de capital na revenda: custo de aquisição, corretagem deduzida e alíquota de 15% até R$ 5 milhões"
    },
    {
     "nome": "Tabela da 28ª Reunião Plenária do CRECI-SP e Código Civil, Art. 722",
     "detalhe": "comissão de venda sugerida (6% a 8% em imóveis urbanos) e contrato de corretagem"
    },
    {
     "nome": "Banco Central — CDI (SGS)",
     "detalhe": "custo de oportunidade: o ROI anualizado é comparado ao CDI atualizado"
    }
   ],
   "limitacoes": [
    "O teto não inclui desocupação (acordo, mudança ou ação de imissão na posse; só entram os honorários advocatícios, se informados) nem custos de posse até a venda (IPTU, condomínio e contas do imóvel), nem dívidas anteriores do edital. Para descontá-los, use a Análise Completa de Viabilidade de Leilão. O prazo informado serve só para comparar com o CDI, e a venda é considerada pelo valor de mercado informado. A comissão do leiloeiro é de 5% (Decreto 21.981/32, Art. 24; STJ, RMS 65.084), e as isenções de IR não são aplicadas. Confira sempre o edital.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "ROI alvo 20% alcançável — consistência da bissecção",
    "entradasSite": {
     "lanceEstado": "SP",
     "lanceTipoImovel": "residencial",
     "lanceValorMercado": 300000,
     "lanceArea": 80,
     "lanceITBI": 3,
     "lanceEscritura": 1,
     "lanceRegistro": 0.5,
     "lanceComissaoLeiloeiro": 5,
     "lanceComissaoVenda": 6,
     "lanceHonorarios": 0,
     "lanceROIMinimo": 20,
     "lanceNivelReforma": "valor_fixo",
     "lanceReformaValorFixo": 20000
    },
    "entradasMCP": {
     "estado": "SP",
     "valorMercado": 300000,
     "area": 80,
     "itbiPct": 3,
     "escrituraPct": 1,
     "registroPct": 0.5,
     "comissaoLeiloeiroPct": 5,
     "comissaoVendaPct": 6,
     "honorariosPct": 0,
     "roiMinimoPct": 20,
     "nivelReforma": "valor_fixo",
     "reformaValorFixo": 20000
    },
    "esperado": {
     "lanceMaximo": 188680,
     "custoTotal": 228274.4,
     "roi": 20.01,
     "roiInalcancavel": false
    },
    "tolerancia": 0.01,
    "verificacao": "Verificado por consistência direta: recomputando à mão com lance 188.680 → custo fiscal 228.274,40, lucro 45.666,76, ROI 20,0053% ≈ alvo. Navegador = derivação, 25/07/2026."
   },
   "mcp": {
    "ferramenta": "calcular_lance_maximo"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/lance-maximo/?lanceEstado={estado}&lanceValorMercado={valorMercado}&lanceArea={area}&lanceROIMinimo={roiMinimoPct}&lanceITBI={itbiPct}&lanceEscritura={escrituraPct}&lanceRegistro={registroPct}&lanceComissaoLeiloeiro={comissaoLeiloeiroPct}&lanceComissaoVenda={comissaoVendaPct}&lanceHonorarios={honorariosPct}&lanceNivelReforma={nivelReforma}&lanceReformaValorFixo={reformaValorFixo}&lanceReformaCustoM2={reformaCustoM2}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "roi-vs-cdi",
   "nome": "ROI vs CDI",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/roi-vs-cdi/",
   "descricao": "Compare o retorno do leilão com investimentos tradicionais.",
   "perguntaQueResponde": "O retorno desse flip de leilão supera o que eu ganharia deixando o mesmo dinheiro rendendo no CDI pelo mesmo período?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado se nivelReforma for por CUB. Padrão \"SP\".",
      "x-campoSite": "roiCDIEstado"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance, em R$.",
      "x-campoSite": "roiCDILance"
     },
     "mercado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de mercado/avaliação (= preço de venda projetado), em R$.",
      "x-campoSite": "roiCDIMercado"
     },
     "prazoMeses": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Prazo da operação, em meses.",
      "x-campoSite": "roiCDIPrazo"
     },
     "taxaCDIAnualPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa CDI ANUAL, em %. Se omitida, é buscada ao vivo no Banco Central (Selic Meta − 0,10 p.p., mesma conversão do site).",
      "x-campoSite": "roiCDITaxa"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "roiCDIITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "roiCDIEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "roiCDIRegistro"
     },
     "comissaoLeiloeiroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance. Padrão 0.",
      "x-campoSite": "roiCDIComissaoLeiloeiro"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na venda, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "roiCDIComissaoVenda"
     },
     "honorariosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Honorários advocatícios, em % sobre o lance. Padrão 0.",
      "x-campoSite": "roiCDIHonorarios"
     },
     "usaPJ": {
      "type": "boolean",
      "default": false,
      "description": "Se true, usa o regime PJ (Lucro Presumido). Padrão false (PF).",
      "x-campoSite": "roiCDIRegime",
      "x-valoresSite": {
       "true": "PJ",
       "false": "PF"
      }
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "valor_fixo",
       "personalizada",
       "pintura",
       "basica",
       "media",
       "completa"
      ],
      "default": "nenhuma",
      "description": "Nível/modo da reforma. Padrão \"nenhuma\".",
      "x-campoSite": "roiCDINivelReforma"
     },
     "reformaValorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se nivelReforma=\"valor_fixo\".",
      "x-campoSite": "roiCDIReformaValorFixo"
     },
     "reformaCustoM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² da reforma, em R$ — obrigatório se nivelReforma=\"personalizada\".",
      "x-campoSite": "roiCDIReformaCustoM2"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m² — obrigatória se nivelReforma for \"personalizada\" ou um nível por CUB (pintura, basica, media, completa).",
      "x-campoSite": "roiCDIArea"
     }
    },
    "required": [
     "lance",
     "mercado",
     "prazoMeses"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "mercado": {
      "type": "number",
      "description": "Valor de mercado (= preço de venda projetado), em R$."
     },
     "prazoMeses": {
      "type": "number",
      "description": "Prazo da operação, em meses."
     },
     "custoTotal": {
      "type": "number",
      "description": "Lance + ITBI + escritura + registro + comissão do leiloeiro + reforma + honorários, em R$."
     },
     "irPF": {
      "type": "number",
      "description": "IR da pessoa física sobre o ganho de capital (15%), mesmo quando usaPJ=true, em R$."
     },
     "lucroLiq": {
      "type": "number",
      "description": "Lucro líquido no regime escolhido (usaPJ), em R$."
     },
     "roiTotal": {
      "type": "number",
      "description": "ROI líquido no regime escolhido, no período inteiro (não anualizado), em %."
     },
     "roiAnualizado": {
      "type": "number",
      "description": "ROI líquido anualizado — % a.a., em %."
     },
     "montanteCDI": {
      "type": "number",
      "description": "Custo total aplicado no CDI pelo mesmo prazo (juros compostos, sem IR da aplicação), em R$."
     },
     "lucroCDI": {
      "type": "number",
      "description": "Rendimento do CDI no prazo, em R$."
     },
     "superaCDI": {
      "type": "boolean",
      "description": "true se o lucro da operação supera o rendimento do CDI no mesmo prazo."
     },
     "cdi": {
      "type": "object",
      "properties": {
       "anualPct": {
        "type": "number",
        "description": "Taxa CDI usada, ao ano, em %."
       },
       "origem": {
        "type": "string",
        "enum": [
         "informado",
         "bcb"
        ],
        "description": "\"informado\" = taxaCDIAnualPct da chamada; \"bcb\" = buscado ao vivo."
       },
       "fonte": {
        "type": "string",
        "description": "De onde veio a taxa quando buscada ao vivo."
       },
       "selicMetaPct": {
        "type": "number",
        "description": "Selic Meta vigente usada na conversão, ao ano, em %."
       },
       "consultadoEm": {
        "type": "string",
        "description": "Data e hora da consulta ao BCB (ISO 8601)."
       }
      },
      "required": [
       "anualPct",
       "origem"
      ],
      "additionalProperties": false,
      "description": "Taxa CDI usada na comparação e sua origem."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "lance",
     "mercado",
     "prazoMeses",
     "custoTotal",
     "irPF",
     "lucroLiq",
     "roiTotal",
     "roiAnualizado",
     "montanteCDI",
     "lucroCDI",
     "superaCDI",
     "cdi",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Custo total = lance + ITBI e comissão do leiloeiro (sobre o lance) + escritura e registro (sobre a avaliação) + reforma + honorários",
    "Lucro = venda − comissão de venda − imposto − custo total (15% sobre o ganho na PF; Lucro Presumido na PJ)",
    "ROI anualizado = (1 + ROI total)12 ÷ meses − 1",
    "Alternativa no CDI = custo total × (1 + CDI)anos; lucro do CDI = montante − custo total",
    "Múltiplo do CDI = lucro do leilão ÷ lucro do CDI",
    "Exemplo (o cenário verificado pela suíte de testes): lance de R$ 200 mil, imóvel de R$ 300 mil, venda em 24 meses, CDI de 14,15% ao ano. O leilão lucra R$ 52.275 — ROI de 23,71% no período, mas só 11,22% ao ano. Os mesmos R$ 220.500 no CDI renderiam R$ 66.816,41."
   ],
   "fontes": [
    {
     "nome": "Banco Central — CDI (SGS)",
     "detalhe": "custo de oportunidade: o ROI anualizado é comparado ao CDI atualizado"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da arrematação, não no valor venal"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153 + IN SRF 84/2001",
     "detalhe": "ganho de capital na revenda: custo de aquisição, corretagem deduzida e alíquota de 15% até R$ 5 milhões"
    },
    {
     "nome": "Tabela da 28ª Reunião Plenária do CRECI-SP e Código Civil, Art. 722",
     "detalhe": "comissão de venda sugerida (6% a 8% em imóveis urbanos) e contrato de corretagem"
    }
   ],
   "limitacoes": [
    "O CDI entra bruto, sem o IR da aplicação — com o imposto, a renda fixa rende um pouco menos. A análise não inclui desocupação (só os honorários advocatícios, se informados), nem IPTU e condomínio até a venda. A comissão de venda sugerida segue a tabela da 28ª Plenária do CRECI-SP (Código Civil, Art. 722, sobre a corretagem).",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "flip de 24 meses — referência da anualização (fix 4.1)",
    "entradasSite": {
     "roiCDILance": 200000,
     "roiCDIMercado": 300000,
     "roiCDIPrazo": 24,
     "roiCDITaxa": 14.15,
     "roiCDIEstado": "SP",
     "roiCDIITBI": 3,
     "roiCDIEscritura": 1,
     "roiCDIRegistro": 0.5,
     "roiCDIComissaoLeiloeiro": 5,
     "roiCDIComissaoVenda": 6,
     "roiCDIHonorarios": 0,
     "roiCDIRegime": "PF",
     "roiCDINivelReforma": "nenhuma"
    },
    "entradasMCP": {
     "lance": 200000,
     "mercado": 300000,
     "prazoMeses": 24,
     "taxaCDIAnualPct": 14.15,
     "estado": "SP",
     "itbiPct": 3,
     "escrituraPct": 1,
     "registroPct": 0.5,
     "comissaoLeiloeiroPct": 5,
     "comissaoVendaPct": 6,
     "honorariosPct": 0,
     "usaPJ": false,
     "nivelReforma": "nenhuma"
    },
    "esperado": {
     "custoTotal": 220500,
     "irPF": 9225,
     "lucroLiq": 52275,
     "roiTotal": 23.71,
     "roiAnualizado": 11.22,
     "montanteCDI": 287316.41,
     "lucroCDI": 66816.41
    },
    "tolerancia": 0.01,
    "verificacao": "ESTA é a implementação de referência da anualização: 23,71% em 24 meses = 11,22% a.a. — ABAIXO do CDI de 14,15%. Os hubs (fix 4.1) hoje elogiam esse mesmo negócio; após o fix devem concordar com estes números. Taxa CDI informada pelo usuário (14,15) → cenário independente de benchmarks. Derivação manual = navegador, 25/07/2026."
   },
   "mcp": {
    "ferramenta": "calcular_roi_vs_cdi"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/roi-vs-cdi/?roiCDIEstado={estado}&roiCDILance={lance}&roiCDIMercado={mercado}&roiCDIPrazo={prazoMeses}&roiCDITaxa={taxaCDIAnualPct}&roiCDIITBI={itbiPct}&roiCDIEscritura={escrituraPct}&roiCDIRegistro={registroPct}&roiCDIComissaoLeiloeiro={comissaoLeiloeiroPct}&roiCDIComissaoVenda={comissaoVendaPct}&roiCDIHonorarios={honorariosPct}&roiCDIRegime={usaPJ}&roiCDINivelReforma={nivelReforma}&roiCDIReformaValorFixo={reformaValorFixo}&roiCDIReformaCustoM2={reformaCustoM2}&roiCDIArea={area}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "custos-totais-leilao",
   "nome": "Custos Totais da Arrematação",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/custos-totais-leilao/",
   "descricao": "Todos os custos de arrematação com ITBI automático por município (29 municípios).",
   "perguntaQueResponde": "Quanto vou gastar no total (ITBI, escritura, registro, comissões) para arrematar este imóvel no meu município?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado se nivelReforma for por CUB. Padrão \"SP\".",
      "x-campoSite": "custosTotaisEstado"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance, em R$.",
      "x-campoSite": "custosTotaisLance"
     },
     "mercado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de mercado/avaliação, em R$.",
      "x-campoSite": "custosTotaisMercado"
     },
     "tipoLeilao": {
      "type": "string",
      "enum": [
       "extrajudicial",
       "judicial"
      ],
      "default": "extrajudicial",
      "description": "Tipo de leilão (judicial força comissão de 5%, Decreto 21.981/1932 e STJ RMS 65.084). Padrão \"extrajudicial\".",
      "x-campoSite": "custosTotaisTipo"
     },
     "comissaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance (ignorado se tipoLeilao=\"judicial\"). Padrão 0.",
      "x-campoSite": "custosTotaisComissao"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "custosTotaisITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "custosTotaisEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "custosTotaisRegistro"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na venda, em %. Padrão 0.",
      "x-campoSite": "custosTotaisComissaoVenda"
     },
     "honorariosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Honorários advocatícios, em % sobre o lance. Padrão 0.",
      "x-campoSite": "custosTotaisHonorarios"
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "valor_fixo",
       "personalizada",
       "pintura",
       "basica",
       "media",
       "completa"
      ],
      "default": "nenhuma",
      "description": "Nível/modo da reforma. Padrão \"nenhuma\".",
      "x-campoSite": "custosTotaisNivelReforma"
     },
     "reformaValorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se nivelReforma=\"valor_fixo\".",
      "x-campoSite": "custosTotaisReformaValorFixo"
     },
     "reformaCustoM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² da reforma, em R$ — obrigatório se nivelReforma=\"personalizada\".",
      "x-campoSite": "custosTotaisReformaCustoM2"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m² — obrigatória se nivelReforma for \"personalizada\" ou um nível por CUB (pintura, basica, media, completa).",
      "x-campoSite": "custosTotaisArea"
     }
    },
    "required": [
     "lance",
     "mercado"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "mercado": {
      "type": "number",
      "description": "Valor de mercado/avaliação, em R$."
     },
     "tipoLeilao": {
      "type": "string",
      "description": "Tipo de leilão: extrajudicial ou judicial."
     },
     "reforma": {
      "type": "number",
      "description": "Custo da reforma, em R$."
     },
     "itbi": {
      "type": "number",
      "description": "ITBI, em R$."
     },
     "comissao": {
      "type": "number",
      "description": "Comissão do leiloeiro (5% fixos no leilão judicial), em R$."
     },
     "honorarios": {
      "type": "number",
      "description": "Honorários advocatícios, em R$."
     },
     "escritura": {
      "type": "number",
      "description": "Escritura, em R$."
     },
     "registro": {
      "type": "number",
      "description": "Registro, em R$."
     },
     "custoAquisicaoFiscal": {
      "type": "number",
      "description": "Base fiscal do IR: lance + ITBI + escritura + registro + comissão + reforma (sem honorários), em R$."
     },
     "custoTotal": {
      "type": "number",
      "description": "Custo de aquisição fiscal + honorários, em R$."
     },
     "pctTotal": {
      "type": "number",
      "description": "Custos além do lance como proporção do lance (1 casa decimal), em %."
     },
     "valorAlienacao": {
      "type": "number",
      "description": "Valor de mercado menos a comissão de venda, em R$."
     },
     "ganhoCapital": {
      "type": "number",
      "description": "Ganho de capital tributável (mínimo 0), em R$."
     },
     "irPF": {
      "type": "number",
      "description": "IR da pessoa física sobre o ganho de capital (15%), em R$."
     },
     "lucroLiqPF": {
      "type": "number",
      "description": "Lucro líquido como pessoa física, depois de todos os custos e do IR, em R$."
     },
     "roiPF": {
      "type": "number",
      "description": "ROI líquido como pessoa física no período inteiro (não anualizado), em %."
     },
     "irPJ": {
      "type": "number",
      "description": "Tributos da PJ no Lucro Presumido sobre a receita da venda (IRPJ + adicional + CSLL + PIS + COFINS), em R$."
     },
     "lucroLiqPJ": {
      "type": "number",
      "description": "Lucro líquido como PJ no Lucro Presumido, em R$."
     },
     "roiPJ": {
      "type": "number",
      "description": "ROI líquido como PJ no período inteiro (não anualizado), em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "lance",
     "mercado",
     "tipoLeilao",
     "reforma",
     "itbi",
     "comissao",
     "honorarios",
     "escritura",
     "registro",
     "custoAquisicaoFiscal",
     "custoTotal",
     "pctTotal",
     "valorAlienacao",
     "ganhoCapital",
     "irPF",
     "lucroLiqPF",
     "roiPF",
     "irPJ",
     "lucroLiqPJ",
     "roiPJ",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Sobre o lance: comissão do leiloeiro (5%, paga pelo arrematante), ITBI e honorários",
    "Sobre a avaliação: escritura e registro",
    "Custo de aquisição fiscal = lance + comissão + ITBI + escritura + registro + reforma",
    "Custo total = custo de aquisição fiscal + honorários; peso dos custos = (custo total − lance) ÷ lance",
    "Imposto na venda: pessoa física, 15% × (venda − corretagem − custo fiscal); jurídica, Lucro Presumido sobre a receita da venda",
    "Lucro = venda − corretagem − imposto − custo total; ROI = lucro ÷ custo total",
    "Exemplo (o cenário verificado pela suíte de testes): lance de R$ 150 mil em leilão extrajudicial, imóvel de R$ 250 mil, R$ 20 mil de reforma e 5% de honorários. O custo total chega a R$ 193.750 — 29,2% acima do lance. Vendendo por R$ 250 mil, a pessoa física lucra R$ 33.937,50 (ROI de 17,52%) e a jurídica, R$ 26.425."
   ],
   "fontes": [
    {
     "nome": "Decreto 21.981/1932, Art. 24 e STJ, RMS 65.084",
     "detalhe": "comissão de 5% do leiloeiro, paga pelo arrematante, também no leilão judicial"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da transação — na arrematação, o lance; o valor venal do IPTU não serve nem de piso"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153 + IN SRF 84/2001",
     "detalhe": "ganho de capital: o que entra no custo de aquisição (honorários não entram) e alíquota de 15% até R$ 5 milhões"
    },
    {
     "nome": "CPC (Lei 13.105/2015), Arts. 886 e 887",
     "detalhe": "conteúdo do edital judicial (matrícula, avaliação, ônus) e publicação com 5 dias de antecedência"
    },
    {
     "nome": "STJ, Tema 1.134 (REsp 1.914.902/SP)",
     "detalhe": "tributos anteriores à arrematação não passam ao arrematante, mesmo com previsão no edital"
    }
   ],
   "limitacoes": [
    "Não há prazo: IPTU, condomínio e desocupação até a venda não entram. Dívidas anteriores dependem do edital e do tipo de leilão — tributos atrasados não passam ao arrematante no leilão judicial (STJ, Tema 1.134), mas condomínio pode passar.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "extrajudicial com honorários — separação base fiscal × custo total",
    "entradasSite": {
     "custosTotaisLance": 150000,
     "custosTotaisMercado": 250000,
     "custosTotaisEstado": "SP",
     "custosTotaisTipoImovel": "residencial",
     "custosTotaisTipo": "extrajudicial",
     "custosTotaisComissao": 5,
     "custosTotaisITBI": 2,
     "custosTotaisEscritura": 1.5,
     "custosTotaisRegistro": 0.8,
     "custosTotaisComissaoVenda": 6,
     "custosTotaisHonorarios": 5,
     "custosTotaisRegime": "PF",
     "custosTotaisNivelReforma": "valor_fixo",
     "custosTotaisReformaValorFixo": 20000
    },
    "entradasMCP": {
     "lance": 150000,
     "mercado": 250000,
     "estado": "SP",
     "tipoLeilao": "extrajudicial",
     "comissaoPct": 5,
     "itbiPct": 2,
     "escrituraPct": 1.5,
     "registroPct": 0.8,
     "comissaoVendaPct": 6,
     "honorariosPct": 5,
     "nivelReforma": "valor_fixo",
     "reformaValorFixo": 20000
    },
    "esperado": {
     "itbi": 3000,
     "comissao": 7500,
     "honorarios": 7500,
     "escritura": 3750,
     "registro": 2000,
     "custoAquisicaoFiscal": 186250,
     "custoTotal": 193750,
     "pctTotal": 29.2,
     "valorAlienacao": 235000,
     "ganhoCapital": 48750,
     "irPF": 7312.5,
     "lucroLiqPF": 33937.5,
     "roiPF": 17.52,
     "irPJ": 14825,
     "lucroLiqPJ": 26425,
     "roiPJ": 13.64
    },
    "tolerancia": 0.01,
    "verificacao": "Honorários advocatícios FORA da base fiscal (IN SRF 84/2001 Art. 17) mas DENTRO do custo total gerencial — a distinção-chave do produto. Derivação manual = navegador, 25/07/2026.\n\nFIXES 1.7 + 1.14 (25/07): imposto PJ agora é CALCULADO, não uma alíquota fixa.\n  irPJ        15.815,50 → 14.825,00\n  lucroLiqPJ  25.434,50 → 26.425,00\n  roiPJ           13,13% → 13,64%\nDuas correções somadas: (a) base passa de valorAlienacao (235.000, líquida de comissão) para a RECEITA BRUTA (250.000) — DL 1.598/77 Art. 12 §1º lista as exclusões exaustivamente e corretagem não está entre elas; a presunção de 8%/12% já é a dedução presumida das despesas de venda; (b) alíquota efetiva 5,93% em vez de 6,73%, porque o adicional de 10% do IRPJ só incide sobre presunção acima de R$ 60 mil/trimestre e aqui a presunção é 20.000. Conferido: 250.000 × 5,93% = 14.825,00 — mesmo valor que a revisão adversarial calculou de forma independente como o legalmente correto."
   },
   "mcp": {
    "ferramenta": "calcular_custos_totais_leilao"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/custos-totais-leilao/?custosTotaisEstado={estado}&custosTotaisLance={lance}&custosTotaisMercado={mercado}&custosTotaisTipo={tipoLeilao}&custosTotaisComissao={comissaoPct}&custosTotaisITBI={itbiPct}&custosTotaisEscritura={escrituraPct}&custosTotaisRegistro={registroPct}&custosTotaisComissaoVenda={comissaoVendaPct}&custosTotaisHonorarios={honorariosPct}&custosTotaisNivelReforma={nivelReforma}&custosTotaisReformaValorFixo={reformaValorFixo}&custosTotaisReformaCustoM2={reformaCustoM2}&custosTotaisArea={area}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "financiamento-leilao",
   "nome": "Financiamento para Leilões",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/financiamento-leilao/",
   "descricao": "Simule o financiamento do imóvel arrematado em leilão.",
   "perguntaQueResponde": "Se eu financiar o imóvel arrematado em leilão, qual sistema me dá a melhor parcela e o menor custo total?",
   "entradas": {
    "type": "object",
    "properties": {
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance, em R$.",
      "x-campoSite": "financLeilaoLance"
     },
     "mercado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de mercado/avaliação, em R$.",
      "x-campoSite": "financLeilaoMercado"
     },
     "entradaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Entrada, em % sobre o lance. Padrão 0.",
      "x-campoSite": "financLeilaoEntradaPercentual"
     },
     "taxaAnual": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de juros ANUAL do financiamento, em %.",
      "x-campoSite": "financLeilaoTaxa"
     },
     "prazoAnos": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Prazo do financiamento, em anos.",
      "x-campoSite": "financLeilaoPrazo"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "financLeilaoITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "financLeilaoEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "financLeilaoRegistro"
     },
     "comissaoLeiloeiroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance. Padrão 0.",
      "x-campoSite": "financLeilaoComissaoLeiloeiro"
     }
    },
    "required": [
     "lance",
     "mercado",
     "taxaAnual",
     "prazoAnos"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "mercado": {
      "type": "number",
      "description": "Valor de mercado/avaliação, em R$."
     },
     "entrada": {
      "type": "number",
      "description": "Entrada paga à vista, em R$."
     },
     "financiado": {
      "type": "number",
      "description": "Valor financiado (lance − entrada), em R$."
     },
     "custosAquisicao": {
      "type": "number",
      "description": "ITBI + escritura + registro + comissão do leiloeiro, pagos à parte, em R$."
     },
     "parcelaPrice": {
      "type": "number",
      "description": "Parcela mensal fixa na tabela Price, em R$."
     },
     "totalPrice": {
      "type": "number",
      "description": "Soma das parcelas na Price, em R$."
     },
     "jurosPrice": {
      "type": "number",
      "description": "Juros pagos na Price, em R$."
     },
     "primeiraParcelaSAC": {
      "type": "number",
      "description": "Primeira parcela mensal no SAC (a maior), em R$."
     },
     "totalSAC": {
      "type": "number",
      "description": "Soma das parcelas no SAC, em R$."
     },
     "ultimaParcelaSAC": {
      "type": "number",
      "description": "Última parcela mensal no SAC (a menor), em R$."
     },
     "jurosSAC": {
      "type": "number",
      "description": "Juros pagos no SAC, em R$."
     },
     "economiaSAC": {
      "type": "number",
      "description": "Total Price − total SAC, em R$."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "lance",
     "mercado",
     "entrada",
     "financiado",
     "custosAquisicao",
     "parcelaPrice",
     "totalPrice",
     "jurosPrice",
     "primeiraParcelaSAC",
     "totalSAC",
     "ultimaParcelaSAC",
     "jurosSAC",
     "economiaSAC",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Entrada = lance × percentual de entrada; financiado = lance − entrada",
    "Custos de aquisição = ITBI e comissão do leiloeiro sobre o lance + escritura e registro sobre a avaliação",
    "Desembolso inicial = entrada + custos de aquisição",
    "Taxa mensal = (1 + taxa anual)1/12 − 1",
    "Price: parcela = financiado × i ÷ (1 − (1 + i)−n); SAC: amortização = financiado ÷ n, e cada parcela = amortização + juros sobre o saldo",
    "Economia do SAC = total pago no Price − total pago no SAC",
    "Exemplo (o cenário verificado pela suíte de testes): lance de R$ 200 mil, 30% de entrada, 10,26% ao ano em 20 anos. Saem R$ 60 mil de entrada e R$ 20.500 de custos no início. No Price, 240 parcelas de R$ 1.333,17; no SAC, a primeira é R$ 1.727,48 e o total pago fica R$ 42.091,32 menor."
   ],
   "fontes": [
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da transação — na arrematação, o lance; o valor venal do IPTU não serve nem de piso"
    },
    {
     "nome": "Decreto 21.981/1932, Art. 24 e STJ, RMS 65.084",
     "detalhe": "comissão de 5% do leiloeiro, paga pelo arrematante, também no leilão judicial"
    },
    {
     "nome": "Lei 4.380/1964 e Lei 6.015/1973",
     "detalhe": "SFH (contrato com força de escritura) e registro do imóvel"
    },
    {
     "nome": "Matemática financeira — Tabela Price e SAC",
     "detalhe": "taxa mensal equivalente (1 + taxa anual)^(1/12) − 1; parcela fixa ou amortização constante"
    }
   ],
   "limitacoes": [
    "Seguros, tarifas e IOF não entram — compare sempre o CET da proposta. Leilões judiciais e de leiloeiros costumam exigir pagamento à vista; confirme no edital se o imóvel aceita financiamento.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "Price vs SAC, entrada 30%, 10,26% a.a., 20 anos",
    "entradasSite": {
     "financLeilaoEstado": "SP",
     "financLeilaoTipoImovel": "residencial",
     "financLeilaoLance": 200000,
     "financLeilaoMercado": 300000,
     "financLeilaoEntradaPercentual": 30,
     "financLeilaoTaxa": 10.26,
     "financLeilaoPrazo": 20,
     "financLeilaoTipo": "price",
     "financLeilaoRegime": "PF",
     "financLeilaoITBI": 3,
     "financLeilaoEscritura": 1,
     "financLeilaoRegistro": 0.5,
     "financLeilaoComissaoLeiloeiro": 5
    },
    "entradasMCP": {
     "lance": 200000,
     "mercado": 300000,
     "entradaPct": 30,
     "taxaAnual": 10.26,
     "prazoAnos": 20,
     "itbiPct": 3,
     "escrituraPct": 1,
     "registroPct": 0.5,
     "comissaoLeiloeiroPct": 5
    },
    "esperado": {
     "entrada": 60000,
     "financiado": 140000,
     "custosAquisicao": 20500,
     "parcelaPrice": 1333.17,
     "totalPrice": 319960.8,
     "jurosPrice": 179960.8,
     "primeiraParcelaSAC": 1727.48,
     "totalSAC": 277869.48,
     "ultimaParcelaSAC": 588.1,
     "economiaSAC": 42091.32
    },
    "tolerancia": 0.01,
    "verificacao": "ARMADILHA DE ORDEM DE ARREDONDAMENTO documentada para o runner: o código arredonda a amortização mensal (583,33) ANTES do loop de 240 meses e usa esse valor arredondado para decrementar o saldo a cada iteração — o saldo residual acumula ~R$0,80 de resíduo, elevando a última parcela SAC de 583,33 (ingênuo) para 588,10 (real). Uma primeira derivação manual sem essa ordem exata errou por R$ 4,77 na última parcela — só bateu ao replicar o loop EXATO do código, iteração por iteração, com Python. Isso prova por que o runner deve executar a MESMA sequência de operações do código-fonte, não uma fórmula fechada equivalente. NOTA DO RUNNER (25/07): o campo 'amortizacao' (583,33) foi verificado à mão mas NÃO é publicado na ponte __pilarFinancLeilao — removido do dado-ouro por não ser observável. A última parcela SAC (588,10), que é o efeito visível do arredondamento, permanece asseverada."
   },
   "mcp": {
    "ferramenta": "calcular_financiamento_leilao"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/financiamento-leilao/?financLeilaoLance={lance}&financLeilaoMercado={mercado}&financLeilaoEntradaPercentual={entradaPct}&financLeilaoTaxa={taxaAnual}&financLeilaoPrazo={prazoAnos}&financLeilaoITBI={itbiPct}&financLeilaoEscritura={escrituraPct}&financLeilaoRegistro={registroPct}&financLeilaoComissaoLeiloeiro={comissaoLeiloeiroPct}&financLeilaoTipo=comparativo",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "reforma-oportunidade",
   "nome": "Reforma e Custo de Oportunidade",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/reforma-oportunidade/",
   "descricao": "Calcule o custo real da reforma incluindo aluguel e tempo.",
   "perguntaQueResponde": "Vale a pena gastar dinheiro reformando este imóvel antes de vender ou terei mais lucro vendendo no estado atual?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado (define o CUB usado no custo de cada nível de reforma). Padrão \"SP\".",
      "x-campoSite": "reformaOportEstado"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance, em R$.",
      "x-campoSite": "reformaOportLance"
     },
     "mercado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de mercado/avaliação, em R$.",
      "x-campoSite": "reformaOportMercado"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do imóvel, em m².",
      "x-campoSite": "reformaOportArea"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "reformaOportITBI"
     },
     "comissaoLeiloeiroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance. Padrão 0.",
      "x-campoSite": "reformaOportComissao"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "reformaOportEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "reformaOportRegistro"
     },
     "comissaoVendaPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na venda, em %. Padrão 0.",
      "x-campoSite": "reformaOportComissaoVenda"
     },
     "valorizPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Valorização esperada do imóvel reformado, em % sobre o valor de mercado (só se aplica às estratégias COM reforma). Padrão 0.",
      "x-campoSite": "reformaOportValorizacao"
     },
     "usaPJ": {
      "type": "boolean",
      "default": false,
      "description": "Se true, escolhe a melhor estratégia pelo lucro em regime PJ (Lucro Presumido) em vez de PF. Padrão false.",
      "x-campoSite": "reformaOportRegime",
      "x-valoresSite": {
       "true": "PJ",
       "false": "PF"
      }
     }
    },
    "required": [
     "lance",
     "mercado",
     "area"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "mercado": {
      "type": "number",
      "description": "Valor de mercado/avaliação antes da reforma, em R$."
     },
     "area": {
      "type": "number",
      "description": "Área do imóvel, em m²."
     },
     "custosFixos": {
      "type": "number",
      "description": "ITBI + escritura + registro + comissão do leiloeiro, em R$."
     },
     "semReforma": {
      "type": "object",
      "properties": {
       "reform": {
        "type": "number",
        "description": "Custo da reforma desta estratégia (0 em \"vender sem reformar\"), em R$."
       },
       "mercadoPos": {
        "type": "number",
        "description": "Valor de venda depois da reforma (com a valorização informada), em R$."
       },
       "custoTotal": {
        "type": "number",
        "description": "Lance + custos fixos de aquisição + reforma, em R$."
       },
       "valorAlienacao": {
        "type": "number",
        "description": "Valor de venda menos a comissão do corretor, em R$."
       },
       "ganhoCapital": {
        "type": "number",
        "description": "Ganho de capital tributável (mínimo 0), em R$."
       },
       "irPF": {
        "type": "number",
        "description": "IR da pessoa física sobre o ganho de capital (15%), em R$."
       },
       "lucroLiqPF": {
        "type": "number",
        "description": "Lucro líquido como pessoa física, em R$."
       },
       "roiPF": {
        "type": "number",
        "description": "ROI líquido como pessoa física no período (1 casa decimal), em %."
       },
       "irPJ": {
        "type": "number",
        "description": "Tributos da PJ no Lucro Presumido sobre a receita da venda, em R$."
       },
       "lucroLiqPJ": {
        "type": "number",
        "description": "Lucro líquido como PJ, em R$."
       },
       "roiPJ": {
        "type": "number",
        "description": "ROI líquido como PJ no período (1 casa decimal), em %."
       }
      },
      "required": [
       "reform",
       "mercadoPos",
       "custoTotal",
       "valorAlienacao",
       "ganhoCapital",
       "irPF",
       "lucroLiqPF",
       "roiPF",
       "irPJ",
       "lucroLiqPJ",
       "roiPJ"
      ],
      "additionalProperties": false,
      "description": "Resultado de uma estratégia de venda."
     },
     "reformaBasica": {
      "$ref": "#/properties/semReforma"
     },
     "reformaMedia": {
      "$ref": "#/properties/semReforma"
     },
     "reformaCompleta": {
      "$ref": "#/properties/semReforma"
     },
     "melhorEstrategia": {
      "type": "string",
      "enum": [
       "Vender sem reformar",
       "Reforma Básica",
       "Reforma Média",
       "Reforma Completa"
      ],
      "description": "Estratégia de maior lucro líquido no regime escolhido (usaPJ)."
     },
     "diferencaMelhorVsVender": {
      "type": "number",
      "description": "Lucro da melhor estratégia menos o de vender sem reformar, em R$."
     },
     "reformaCompensa": {
      "type": "boolean",
      "description": "true se alguma reforma dá mais lucro que vender sem reformar."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "lance",
     "mercado",
     "area",
     "custosFixos",
     "semReforma",
     "reformaBasica",
     "reformaMedia",
     "reformaCompleta",
     "melhorEstrategia",
     "diferencaMelhorVsVender",
     "reformaCompensa",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Custos fixos da compra = ITBI e comissão do leiloeiro sobre o lance + escritura e registro sobre o valor de mercado",
    "Reforma = CUB do estado × fator do nível (básica 0,15 · média 0,30 · completa 0,50) × área",
    "Valor de venda: sem reforma, o valor de mercado; com reforma, mercado × (1 + valorização esperada)",
    "Custo total = lance + custos fixos + reforma",
    "Imposto: 15% × (venda − corretagem − custo total) na pessoa física; Lucro Presumido sobre a receita na jurídica",
    "Lucro = venda − corretagem − imposto − custo total; ROI = lucro ÷ custo total",
    "Exemplo (o cenário verificado pela suíte de testes): lance de R$ 200 mil num imóvel de R$ 280 mil, 70 m². Vendendo sem reformar, o custo total é R$ 220.200 e o lucro, R$ 36.550 — ROI de 16,6%. Com 20% de valorização, a venda pós-reforma sobe para R$ 336 mil; o resultado de cada nível depende do CUB do mês, que a tabela mostra atualizado."
   ],
   "fontes": [
    {
     "nome": "CUB/m² dos Sinduscons (ABNT NBR 12.721:2006)",
     "detalhe": "custo da reforma por nível (básica, média e completa), na versão sem desoneração"
    },
    {
     "nome": "IN SRF 84/2001, Art. 17, I, a e RIR/2018, Art. 137",
     "detalhe": "reforma comprovada, inclusive pequenas obras, integra o custo de aquisição"
    },
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148 e 153",
     "detalhe": "ganho de capital na revenda e alíquota de 15% até R$ 5 milhões"
    },
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da arrematação, não no valor venal"
    },
    {
     "nome": "Decreto 21.981/1932, Art. 24",
     "detalhe": "comissão de 5% do leiloeiro, paga pelo arrematante"
    }
   ],
   "limitacoes": [
    "A mesma valorização é aplicada aos três níveis, então a reforma mais barata tende a vencer — ajuste o percentual para refletir o que cada nível realmente agrega. Custos do período de obra não entram.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "vender direto × reformar antes — 4 estratégias comparadas",
    "entradasSite": {
     "reformaOportEstado": "SP",
     "reformaOportTipoImovel": "residencial",
     "reformaOportLance": 200000,
     "reformaOportMercado": 280000,
     "reformaOportArea": 70,
     "reformaOportITBI": 3,
     "reformaOportComissao": 5,
     "reformaOportEscritura": 1,
     "reformaOportRegistro": 0.5,
     "reformaOportComissaoVenda": 6,
     "reformaOportValorizacao": 20,
     "reformaOportAluguel": 0,
     "reformaOportNivelAdicional": "nenhuma",
     "reformaOportRegime": "PF"
    },
    "entradasMCP": {
     "estado": "SP",
     "lance": 200000,
     "mercado": 280000,
     "area": 70,
     "itbiPct": 3,
     "comissaoLeiloeiroPct": 5,
     "escrituraPct": 1,
     "registroPct": 0.5,
     "comissaoVendaPct": 6,
     "valorizPct": 20,
     "usaPJ": false
    },
    "esperado": {
     "custoTotalSemReforma": 220200,
     "lucroSemReforma": 36550,
     "roiSemReforma": 16.6,
     "reformaBasica": 23473.59,
     "mercadoPosBasica": 336000,
     "custoTotalBasica": 243673.59,
     "lucroBasica": 61341.45,
     "roiBasica": 25.2
    },
    "tolerancia": 0.01,
    "verificacao": "DESBLOQUEADO PELO FIX 2.1. Valores conferidos contra derivação manual feita ANTES de o componente existir (apenas lendo o JS): sem reforma custoTotal 220.200, lucro 36.550, ROI 16,6%; básica reform 29.750,18 (CUB SP 2.833,35 × 0,15 × 70), mercadoPos 336.000, lucro 56.006,35, ROI 22,4%. Match exato — a calculadora renderizada produz o que a leitura do código previa. FORMALIZADO EM 31/08/2026 (Regra 175): a ponte não publicava e1/estratégias em campos planos, então esses números nunca viraram um `esperado` de verdade — ficavam só nesta nota. Adicionados aliases soltos na ponte (custoTotalSemReforma/lucroSemReforma/roiSemReforma/reformaBasica/mercadoPosBasica/custoTotalBasica/lucroBasica/roiBasica) e os mesmos 8 valores desta nota, já conferidos duas vezes de forma independente (derivação manual + replay exato da função `_calcEstrategiaVenda` em Node.js), viraram `esperado` de verdade. `e1`/`estrategiasReforma` continuam do jeito que sempre estiveram — mudança puramente aditiva na ponte (Regra 10).",
    "dadosFixados": {
     "cub": {
      "SP": 2235.58
     },
     "nota": "CUB de SP travado (17/08/2026, Regra 71 do PROJETO.md) — reformaBasica/custoTotalBasica/lucroBasica/roiBasica dependem diretamente do CUB do estado. RECONGELADO 06/09/2026: CUB de SP corrigido de R$ 2.833,35 (fabricado, nunca conferido) pra R$ 2.235,58 (Sinduscon-SP real, R8-N sem desoneração, competência Ago/2026) — o valor antigo estava ~27% inflado. Trava e esperado atualizados juntos nesta sessão; valores obtidos via tests/runner.html contra o cálculo real (mesma metodologia das rodadas anteriores)."
    }
   },
   "mcp": {
    "ferramenta": "calcular_reforma_oportunidade"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/reforma-oportunidade/?reformaOportEstado={estado}&reformaOportLance={lance}&reformaOportMercado={mercado}&reformaOportArea={area}&reformaOportITBI={itbiPct}&reformaOportComissao={comissaoLeiloeiroPct}&reformaOportEscritura={escrituraPct}&reformaOportRegistro={registroPct}&reformaOportComissaoVenda={comissaoVendaPct}&reformaOportValorizacao={valorizPct}&reformaOportRegime={usaPJ}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "custos-por-estado",
   "nome": "Custos por Estado",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/custos-por-estado/",
   "descricao": "Imposto, escritura e registro para passar o imóvel para o seu nome.",
   "perguntaQueResponde": "Quanto vou pagar de ITBI, escritura e registro para colocar esse imóvel no meu nome no meu estado?",
   "entradas": {
    "type": "object",
    "properties": {
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance/arrematação, em R$.",
      "x-campoSite": "custoEstadoLance"
     },
     "mercado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de mercado/avaliação, em R$.",
      "x-campoSite": "custoEstadoMercado"
     },
     "uf": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado. Padrão \"SP\".",
      "x-campoSite": "custoEstadoUF"
     },
     "municipio": {
      "type": "string",
      "description": "Nome do município (ex.: \"São Paulo\"). Se omitido/não encontrado, usa a média do estado.",
      "x-campoSite": "custoEstadoMunicipio"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 1.5,
      "description": "Escritura, em % sobre o valor de mercado. Padrão 1.5.",
      "x-campoSite": "custoEstadoEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0.8,
      "description": "Registro, em % sobre o valor de mercado. Padrão 0.8.",
      "x-campoSite": "custoEstadoRegistro"
     }
    },
    "required": [
     "lance",
     "mercado"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "mercado": {
      "type": "number",
      "description": "Valor de mercado/avaliação, em R$."
     },
     "uf": {
      "type": "string",
      "description": "Sigla do estado."
     },
     "municipio": {
      "type": "string",
      "description": "Município cuja alíquota de ITBI foi usada, ou \"<UF> (média estadual)\"."
     },
     "itbiPct": {
      "type": "number",
      "description": "Alíquota de ITBI aplicada, sobre o lance, em %."
     },
     "itbi": {
      "type": "number",
      "description": "ITBI, em R$."
     },
     "escritura": {
      "type": "number",
      "description": "Escritura, em R$."
     },
     "registroCRI": {
      "type": "number",
      "description": "Registro no Cartório de Registro de Imóveis, em R$."
     },
     "totalTransf": {
      "type": "number",
      "description": "ITBI + escritura + registro, em R$."
     },
     "pctTotal": {
      "type": "number",
      "description": "Custos de transferência como proporção do lance, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "lance",
     "mercado",
     "uf",
     "municipio",
     "itbiPct",
     "itbi",
     "escritura",
     "registroCRI",
     "totalTransf",
     "pctTotal",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "ITBI = alíquota do município × valor da transação — na arrematação, o lance (STJ, Tema 1.113)",
    "Escritura = percentual × valor de mercado (a dispensa pelo SFH não é automática)",
    "Registro = percentual × valor de mercado (Lei 6.015/73)",
    "Custo de transferência = ITBI + escritura + registro; peso = total ÷ valor da transação",
    "Comparativo: o mesmo cálculo com a alíquota de outras capitais",
    "Exemplo (o cenário verificado pela suíte de testes): arrematação de R$ 200 mil em São Paulo, imóvel de R$ 300 mil, financiado. Com a alíquota paulista de 3%, o ITBI é R$ 6.000 — sobre o lance, não sobre os R$ 300 mil. Com escritura de R$ 4.500 e registro de R$ 2.400, a transferência custa R$ 12.900, ou 6,45% do lance."
   ],
   "fontes": [
    {
     "nome": "CF/88, Art. 156, II e § 2º, I",
     "detalhe": "ITBI de competência municipal; imunidade na integralização de capital (não automática)"
    },
    {
     "nome": "CTN, Art. 35",
     "detalhe": "fato gerador do ITBI: transmissão onerosa de imóveis"
    },
    {
     "nome": "STJ, Tema 1.113 (REsp 1.937.821)",
     "detalhe": "base do ITBI é o valor da transação; prefeitura não pode impor valor de referência"
    },
    {
     "nome": "Lei 6.015/1973 e Lei 4.380/1964",
     "detalhe": "registro de imóveis; contrato do SFH com força de escritura (dispensa não automática)"
    },
    {
     "nome": "Leis municipais de ITBI das 27 capitais",
     "detalhe": "alíquotas da tabela, com a data de atualização mostrada no resultado — confirme na prefeitura"
    }
   ],
   "limitacoes": [
    "Só as capitais estão na tabela; para outros municípios, informe a alíquota. A imunidade na integralização de capital de empresa (CF/88, Art. 156, § 2º, I) não é aplicada automaticamente. Alíquotas mudam por lei municipal — confirme na prefeitura.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "SP financiado — escritura calculada normalmente (isenção não é automática)",
    "entradasSite": {
     "custoEstadoLance": 200000,
     "custoEstadoMercado": 300000,
     "custoEstadoUF": "SP",
     "custoEstadoTipoImovel": "residencial",
     "custoEstadoMunicipio": "São Paulo",
     "custoEstadoFinanciado": "sim",
     "custoEstadoRegime": "PF",
     "custoEstadoEscritura": 1.5,
     "custoEstadoRegistro": 0.8
    },
    "entradasMCP": {
     "lance": 200000,
     "mercado": 300000,
     "uf": "SP",
     "municipio": "São Paulo",
     "escrituraPct": 1.5,
     "registroPct": 0.8
    },
    "esperado": {
     "itbiPct": 3,
     "itbi": 6000,
     "escritura": 4500,
     "registroCRI": 2400,
     "totalTransf": 12900,
     "pctTotal": 6.45
    },
    "tolerancia": 0.01,
    "verificacao": "Regra testada: ITBI sobre o LANCE (6.000 = 3% × 200.000, não 3% × 300.000). BUG REAL corrigido em 18/08/2026 (Regra 42 do PROJETO.md, Pendência #0): esta calculadora zerava a escritura automaticamente sempre que 'financiado' = sim, tratando como regra geral a isenção da Lei 4.380/64 — que só vale em casos específicos (SFH/MCMV) e não é automática em NENHUMA calculadora da Obra-Prima. O valor-ouro anterior (escritura=0, totalTransf=8400, pctTotal=4.2) travava o bug como comportamento esperado. Corrigido: escritura = mercado × percentual sempre (4.500 = 1,5% × 300.000, igual estivesse financiado ou não); quem for isento zera o campo manualmente. Derivação manual = navegador, 18/08/2026.",
    "dadosFixados": {
     "itbi": {
      "municipio": "São Paulo",
      "uf": "SP",
      "aliquota": 3
     },
     "nota": "ITBI de São Paulo travado em 3% (17/08/2026, Regra 71 do PROJETO.md) — substitui o antigo campo 'depende_dados' (documentação solta, nunca lido pelo runner.html) por um mock real e enforced. Município agora explícito em 'entradas' (achado da auditoria: antes ficava em branco e o código caía no primeiro município de SP encontrado no JSON, sem garantia de ordem estável)."
    }
   },
   "mcp": {
    "ferramenta": "calcular_custos_por_estado"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/custos-por-estado/?custoEstadoLance={lance}&custoEstadoMercado={mercado}&custoEstadoUF={uf}&custoEstadoMunicipio={municipio}&custoEstadoEscritura={escrituraPct}&custoEstadoRegistro={registroPct}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "capital-minimo",
   "nome": "Capital Mínimo Recomendado",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/capital-minimo/",
   "descricao": "Descubra quanto capital é necessário para iniciar operações em leilões imobiliários.",
   "perguntaQueResponde": "Quanto capital eu preciso ter disponível antes de começar a arrematar imóveis em leilão?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado se nivelReforma for por CUB. Padrão \"SP\".",
      "x-campoSite": "capitalMinimoEstado"
     },
     "risco": {
      "type": "string",
      "enum": [
       "conservador",
       "moderado",
       "agressivo"
      ],
      "default": "moderado",
      "description": "Perfil de risco (margem de segurança 50%/30%/15%). Padrão \"moderado\".",
      "x-campoSite": "capitalMinimoRisco"
     },
     "capital": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Capital disponível, em R$.",
      "x-campoSite": "capitalMinimoCapital"
     },
     "lance": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do lance/imóvel-alvo, em R$.",
      "x-campoSite": "capitalMinimoLance"
     },
     "mercado": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de mercado/avaliação, em R$. Se omitido, assume igual ao lance.",
      "x-campoSite": "capitalMinimoMercado"
     },
     "area": {
      "type": "number",
      "minimum": 0,
      "description": "Área do imóvel, em m² — obrigatória se nivelReforma não for \"nenhuma\".",
      "x-campoSite": "capitalMinimoArea"
     },
     "itbiPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "ITBI, em % sobre o lance. Padrão 0.",
      "x-campoSite": "capitalMinimoITBI"
     },
     "escrituraPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Escritura, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "capitalMinimoEscritura"
     },
     "registroPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Registro, em % sobre o valor de mercado. Padrão 0.",
      "x-campoSite": "capitalMinimoRegistro"
     },
     "comissaoPct": {
      "type": "number",
      "minimum": 0,
      "maximum": 10,
      "default": 0,
      "description": "Comissão do leiloeiro, em % sobre o lance (0 a 10, Decreto 21.981/32). Padrão 0.",
      "x-campoSite": "capitalMinimoComissao"
     },
     "honorariosPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Honorários advocatícios, em % sobre o lance. Padrão 0.",
      "x-campoSite": "capitalMinimoHonorarios"
     },
     "nivelReforma": {
      "type": "string",
      "enum": [
       "nenhuma",
       "valor_fixo",
       "personalizada",
       "pintura",
       "basica",
       "media",
       "completa",
       "luxo"
      ],
      "default": "basica",
      "description": "Nível/modo da reforma. Padrão \"basica\".",
      "x-campoSite": "capitalMinimoReforma",
      "x-valoresSite": {
       "luxo": null
      }
     },
     "reformaValorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se nivelReforma=\"valor_fixo\".",
      "x-campoSite": "capitalMinimoReformaValorFixo"
     },
     "reformaCustoM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² da reforma, em R$ — obrigatório se nivelReforma=\"personalizada\".",
      "x-campoSite": "capitalMinimoReformaCustoM2"
     }
    },
    "required": [
     "capital",
     "lance"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no cálculo (tabela de CUB)."
     },
     "risco": {
      "type": "string",
      "description": "Perfil de risco usado: conservador, moderado ou agressivo."
     },
     "capital": {
      "type": "number",
      "description": "Capital disponível, em R$."
     },
     "lance": {
      "type": "number",
      "description": "Valor do lance, em R$."
     },
     "mercado": {
      "type": "number",
      "description": "Valor de mercado usado (igual ao lance se não informado), em R$."
     },
     "area": {
      "type": "number",
      "description": "Área do imóvel, em m²."
     },
     "custoReforma": {
      "type": "number",
      "description": "Custo da reforma, em R$."
     },
     "custoAquisicao": {
      "type": "number",
      "description": "ITBI + comissão + honorários + escritura + registro + reforma (sem o lance), em R$."
     },
     "custoTotal": {
      "type": "number",
      "description": "Lance + custo de aquisição, em R$."
     },
     "margemPct": {
      "type": "number",
      "description": "Margem de segurança do perfil como FRAÇÃO (0,5 / 0,3 / 0,15), não em %."
     },
     "capitalMinimoRecomendado": {
      "type": "number",
      "description": "Custo total + margem de segurança, em R$."
     },
     "ocupacaoPct": {
      "type": "number",
      "description": "Capital mínimo recomendado como proporção do capital disponível, em %."
     },
     "viavel": {
      "type": "boolean",
      "description": "true se o capital disponível cobre o capital mínimo recomendado."
     },
     "deficit": {
      "type": "number",
      "description": "Quanto falta de capital (0 se viável), em R$."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "risco",
     "capital",
     "lance",
     "mercado",
     "area",
     "custoReforma",
     "custoAquisicao",
     "custoTotal",
     "margemPct",
     "capitalMinimoRecomendado",
     "ocupacaoPct",
     "viavel",
     "deficit",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Custos de aquisição = ITBI, comissão e honorários sobre o lance + escritura e registro sobre a avaliação + reforma",
    "Custo total = lance (ou a entrada, se financiar) + custos de aquisição",
    "Margem de segurança = custo total × 50% (conservador), 30% (moderado) ou 15% (agressivo)",
    "Capital mínimo recomendado = custo total + margem",
    "Ocupação = capital mínimo ÷ seu capital disponível; acima de 100%, falta dinheiro",
    "Com financiamento: a calculadora compara à vista e financiado, com a parcela pela taxa mensal equivalente",
    "Exemplo (o cenário verificado pela suíte de testes): lance de R$ 200 mil num imóvel de R$ 250 mil, R$ 25.500,15 de reforma, perfil moderado. Os custos somam R$ 45.250,15 e o custo total, R$ 245.250,15; com 30% de margem, o capital recomendado é R$ 318.825,20 — 106,3% dos R$ 300 mil disponíveis. O capital não basta."
   ],
   "fontes": [
    {
     "nome": "CF/88, Art. 156, II e STJ Tema 1.113",
     "detalhe": "ITBI municipal, com base no valor da transação — na arrematação, o lance; o valor venal do IPTU não serve nem de piso"
    },
    {
     "nome": "Decreto 21.981/1932, Art. 24 e STJ, RMS 65.084",
     "detalhe": "comissão de 5% do leiloeiro, paga pelo arrematante, também no leilão judicial"
    },
    {
     "nome": "CUB/m² dos Sinduscons (ABNT NBR 12.721:2006)",
     "detalhe": "custo da reforma pelos níveis de obra, na versão sem desoneração"
    },
    {
     "nome": "Matemática financeira — Tabela Price e SAC",
     "detalhe": "parcela do financiamento opcional, com taxa mensal equivalente"
    }
   ],
   "limitacoes": [
    "Não há custos mensais até a venda nem dívidas anteriores — se o edital prevê, some à parte. Para decidir sobre um imóvel específico, use a Viabilidade Simples ou a Completa.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "à vista, perfil moderado, reforma por valor fixo (caminho correto)",
    "entradasSite": {
     "capitalMinimoRisco": "moderado",
     "capitalMinimoCapital": 300000,
     "capitalMinimoLance": 200000,
     "capitalMinimoEstado": "SP",
     "capitalMinimoTipoImovel": "residencial",
     "capitalMinimoMercado": 250000,
     "capitalMinimoArea": 60,
     "capitalMinimoPrevisaoVenda": 12,
     "capitalMinimoRegime": "PF",
     "capitalMinimoITBI": 3,
     "capitalMinimoEscritura": 1,
     "capitalMinimoRegistro": 0.5,
     "capitalMinimoComissao": 5,
     "capitalMinimoHonorarios": 0,
     "capitalMinimoReforma": "valor_fixo",
     "capitalMinimoReformaValorFixo": 25500.15,
     "capitalMinimoFinanciar": "nao"
    },
    "entradasMCP": {
     "risco": "moderado",
     "capital": 300000,
     "lance": 200000,
     "estado": "SP",
     "mercado": 250000,
     "area": 60,
     "itbiPct": 3,
     "escrituraPct": 1,
     "registroPct": 0.5,
     "comissaoPct": 5,
     "honorariosPct": 0,
     "nivelReforma": "valor_fixo",
     "reformaValorFixo": 25500.15
    },
    "esperado": {
     "custoReforma": 25500.15,
     "custoAquisicao": 45250.15,
     "custoTotal": 245250.15,
     "capitalMinimoRecomendado": 318825.2,
     "ocupacaoPct": 106.3
    },
    "tolerancia": 0.01,
    "verificacao": "Caminho valor_fixo (NÃO afetado pelo bug 1.12): ITBI 6.000 + comissão 10.000 + escritura 2.500 + registro 1.250 + reforma 25.500,15 = 45.250,15; + lance 200.000 = 245.250,15; margem moderada 30% → 318.825,20. Derivação manual = navegador, 25/07/2026. Comparar com o cenário seguinte (mesmo imóvel via CUB) evidencia o bug 1.12: R$ 32.597,70 a menos de capital exigido."
   },
   "mcp": {
    "ferramenta": "calcular_capital_minimo"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/capital-minimo/?capitalMinimoEstado={estado}&capitalMinimoRisco={risco}&capitalMinimoCapital={capital}&capitalMinimoLance={lance}&capitalMinimoMercado={mercado}&capitalMinimoArea={area}&capitalMinimoITBI={itbiPct}&capitalMinimoEscritura={escrituraPct}&capitalMinimoRegistro={registroPct}&capitalMinimoComissao={comissaoPct}&capitalMinimoHonorarios={honorariosPct}&capitalMinimoReforma={nivelReforma}&capitalMinimoReformaValorFixo={reformaValorFixo}&capitalMinimoReformaCustoM2={reformaCustoM2}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "custo-oportunidade-selic",
   "nome": "Custo de Oportunidade SELIC",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/custo-oportunidade-selic/",
   "descricao": "Calcule quanto você \"perdeu\" em juros enquanto esperava pela reforma ou venda do leilão.",
   "perguntaQueResponde": "Quanto dinheiro eu deixei de ganhar rendendo na Selic enquanto meu capital ficou parado esperando a reforma ou a venda?",
   "entradas": {
    "type": "object",
    "properties": {
     "capital": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Capital parado, em R$.",
      "x-campoSite": "custoOporCapital"
     },
     "meses": {
      "type": "number",
      "minimum": 1,
      "maximum": 120,
      "description": "Tempo de espera, em meses (1 a 120).",
      "x-campoSite": "custoOporMeses"
     },
     "taxaAnualPct": {
      "type": "number",
      "minimum": 0,
      "description": "Taxa ANUAL de referência, em % (ex.: a Selic Meta atual).",
      "x-semCampoSite": true
     },
     "ganhoEsperado": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Ganho esperado da operação, em R$, pra comparar com o custo de oportunidade. Padrão 0.",
      "x-campoSite": "custoOporGanho"
     }
    },
    "required": [
     "capital",
     "meses",
     "taxaAnualPct"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "capital": {
      "type": "number",
      "description": "Capital parado, em R$."
     },
     "meses": {
      "type": "number",
      "description": "Tempo de espera, em meses."
     },
     "taxaAnualPct": {
      "type": "number",
      "description": "Taxa de referência informada, ao ano, em %."
     },
     "ganhoEsperado": {
      "type": "number",
      "description": "Ganho esperado da operação, em R$."
     },
     "custoOportunidade": {
      "type": "number",
      "description": "Quanto o capital renderia na taxa de referência no período (proporcional aos meses), em R$."
     },
     "ganhoLiquido": {
      "type": "number",
      "description": "Ganho esperado menos o custo de oportunidade, em R$."
     },
     "viavel": {
      "type": "boolean",
      "description": "true se o ganho esperado cobre o custo de oportunidade."
     },
     "percentualMargemGanho": {
      "type": "number",
      "description": "Custo de oportunidade como proporção do ganho esperado (0 se o ganho for 0), em %."
     },
     "roiPercentual": {
      "type": "number",
      "description": "Ganho esperado sobre o capital, no período, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "capital",
     "meses",
     "taxaAnualPct",
     "ganhoEsperado",
     "custoOportunidade",
     "ganhoLiquido",
     "viavel",
     "percentualMargemGanho",
     "roiPercentual",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Custo de oportunidade = capital × taxa anual da aplicação × meses ÷ 12",
    "Taxas: Selic, CDI, poupança ou Tesouro, atualizadas pelo Banco Central",
    "Ganho líquido = ganho esperado do leilão − custo de oportunidade",
    "Peso do custo = custo de oportunidade ÷ ganho esperado",
    "ROI = ganho esperado ÷ capital; a tabela compara o custo nas quatro aplicações",
    "Exemplo (o cenário verificado pela suíte de testes, com Selic de 14,25% ao ano): R$ 100 mil parados por 6 meses custam R$ 7.125 em rendimento perdido. Se o leilão promete R$ 20 mil, o ganho que realmente se deve à escolha do leilão é R$ 12.875 — o custo de oportunidade come 35,6% do ganho."
   ],
   "fontes": [
    {
     "nome": "Banco Central — Selic, CDI e poupança (SGS)",
     "detalhe": "taxas anuais das aplicações comparadas, atualizadas automaticamente"
    },
    {
     "nome": "Tesouro Nacional — Tesouro Selic",
     "detalhe": "título público pós-fixado usado como alternativa de baixo risco"
    },
    {
     "nome": "Matemática financeira — custo de oportunidade",
     "detalhe": "rendimento proporcional ao prazo: capital × taxa × meses ÷ 12"
    }
   ],
   "limitacoes": [
    "A conta é linear (juros simples proporcionais aos meses) e usa a taxa bruta, sem o IR da aplicação — em prazos longos, os juros compostos aumentam o custo, e o IR o reduz. Serve para comparar ordens de grandeza, não para prever o rendimento exato da aplicação.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "capital parado 6 meses na Selic vs ganho esperado",
    "entradasSite": {
     "custoOporRegime": "PF",
     "custoOporCapital": 100000,
     "custoOporMeses": 6,
     "custoOporAplicacao": "selic",
     "custoOporGanho": 20000
    },
    "entradasMCP": {
     "capital": 100000,
     "meses": 6,
     "ganhoEsperado": 20000
    },
    "esperado": {
     "custoOportunidade": 7125,
     "ganhoLiquido": 12875,
     "percentualMargemGanho": 35.6,
     "roiPercentual": 20
    },
    "tolerancia": 0.01,
    "verificacao": "Fórmula linear pro-rata: 100.000 × 14,25% × 6/12 = 7.125,00. Derivação manual = navegador, 25/07/2026.",
    "dadosFixados": {
     "selicMeta": 14.25,
     "nota": "Valores válidos para Selic Meta 14,25% a.a. (snapshot jul/2026). O runner DEVE congelar Benchmarks neste snapshot antes de comparar — requisito de design do runner."
    }
   },
   "mcp": {
    "ferramenta": "calcular_custo_oportunidade_selic"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/custo-oportunidade-selic/?custoOporCapital={capital}&custoOporMeses={meses}&custoOporGanho={ganhoEsperado}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "ocupacao-forcada",
   "nome": "Desocupação de Imóvel",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/ocupacao-forcada/",
   "descricao": "Prazos e custos para desocupar imóvel de leilão (amigável ou forçada).",
   "perguntaQueResponde": "Quanto tempo e quanto custa para desocupar um imóvel arrematado que ainda está ocupado?",
   "entradas": {
    "type": "object",
    "properties": {
     "valor": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor do imóvel, em R$.",
      "x-campoSite": "ocupacaoValor"
     },
     "tipo": {
      "type": "string",
      "enum": [
       "desocupado",
       "amigavel",
       "judicial"
      ],
      "default": "desocupado",
      "description": "Situação de ocupação. Padrão \"desocupado\".",
      "x-campoSite": "ocupacaoTipo"
     },
     "perfil": {
      "type": "string",
      "enum": [
       "conservador",
       "somente_custos",
       "conservacao"
      ],
      "default": "conservador",
      "description": "Perfil de análise (ver descrição de cada um no site). Padrão \"conservador\".",
      "x-campoSite": "ocupacaoPerfil"
     },
     "riscoConservacaoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Risco de conservação (%), só usado com perfil=\"conservacao\" e tipo=\"desocupado\" (não há fonte oficial pra um número fixo). Padrão 0.",
      "x-campoSite": "ocupacaoRiscoConservacao"
     },
     "custoJuridico": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custo jurídico (advogado, cartório), em R$. Padrão 0.",
      "x-campoSite": "ocupacaoCustoJuridico"
     },
     "custoMensal": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custo mensal durante o processo (aluguel equivalente, IPTU etc.), em R$. Padrão 0.",
      "x-campoSite": "ocupacaoCustoMensal"
     }
    },
    "required": [
     "valor"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valor": {
      "type": "number",
      "description": "Valor do imóvel, em R$."
     },
     "tipo": {
      "type": "string",
      "description": "Situação de ocupação: desocupado, amigavel ou judicial."
     },
     "perfil": {
      "type": "string",
      "description": "Perfil de análise: conservador, somente_custos ou conservacao."
     },
     "custoTotal": {
      "type": "number",
      "description": "Custo jurídico + custo de desocupação + custos mensais no prazo típico da situação, em R$."
     },
     "reducaoPct": {
      "type": "number",
      "description": "Redução aplicada sobre o valor do imóvel, em %."
     },
     "reducaoValor": {
      "type": "number",
      "description": "Redução aplicada sobre o valor do imóvel, em R$."
     },
     "valorLiquidoFinal": {
      "type": "number",
      "description": "Valor do imóvel menos redução e custos, em R$."
     },
     "impactoTotalPct": {
      "type": "number",
      "description": "(Redução + custos) sobre o valor do imóvel, em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valor",
     "tipo",
     "perfil",
     "custoTotal",
     "reducaoPct",
     "reducaoValor",
     "valorLiquidoFinal",
     "impactoTotalPct",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Prazo e custo-base por cenário: desocupado, 0; amigável, 2 meses e R$ 500; judicial, 6 meses e R$ 8.000",
    "Custo total = custo jurídico informado + custo-base + custo mensal × meses do cenário",
    "Ajuste de valor, conforme a visão escolhida: conservadora, 5% (amigável) ou 15% (judicial) do valor; só custos, 0%; conservação, o percentual que você informar, aplicado só ao imóvel vazio",
    "Valor líquido = valor do imóvel − custo total − ajuste; impacto = (custo + ajuste) ÷ valor",
    "Exemplo (o cenário verificado pela suíte de testes): imóvel de R$ 250 mil, desocupação judicial, R$ 5 mil de advogado e R$ 800 por mês. Os custos somam R$ 17.800. Na visão conservadora, o ajuste de 15% leva o valor líquido a R$ 194.700 (impacto de 22,12%); só com custos, a R$ 232.200 (7,12%)."
   ],
   "fontes": [
    {
     "nome": "CPC (Lei 13.105/2015), Arts. 554–568",
     "detalhe": "ações possessórias; Art. 555 permite cumular perdas e danos e indenização dos frutos"
    },
    {
     "nome": "Lei 9.514/1997, Arts. 30 e 37-A",
     "detalhe": "reintegração liminar com 60 dias para desocupar e taxa de ocupação de 1% ao mês até a posse"
    },
    {
     "nome": "Lei 8.245/1991, Art. 8º",
     "detalhe": "imóvel locado vendido: denúncia com 90 dias, salvo cláusula de vigência averbada"
    },
    {
     "nome": "Estimativas de mercado do Estimei",
     "detalhe": "prazos, custos-base e percentuais de ajuste de valor — nenhuma norma os fixa"
    }
   ],
   "limitacoes": [
    "Prazos, custos-base e percentuais de ajuste são estimativas de mercado — nenhuma norma os fixa, e prazos judiciais variam muito por comarca. Consulte um advogado antes de arrematar imóvel ocupado.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "ocupado judicial — perfil conservador (redução 15%)",
    "entradasSite": {
     "ocupacaoValor": 250000,
     "ocupacaoTipo": "judicial",
     "ocupacaoPerfil": "conservador",
     "ocupacaoCustoJuridico": 5000,
     "ocupacaoCustoMensal": 800
    },
    "entradasMCP": {
     "valor": 250000,
     "tipo": "judicial",
     "perfil": "conservador",
     "custoJuridico": 5000,
     "custoMensal": 800
    },
    "esperado": {
     "custoTotal": 17800,
     "reducaoValor": 37500,
     "valorLiquidoFinal": 194700,
     "impactoTotalPct": 22.12
    },
    "tolerancia": 0.01,
    "verificacao": "custoTotal = 5.000 jurídico + 8.000 base judicial + 800×6 meses (CPC Arts. 555-583). Redução 15% da tabela conservadora. Derivação manual = navegador, 25/07/2026."
   },
   "mcp": {
    "ferramenta": "calcular_ocupacao_forcada"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/ocupacao-forcada/?ocupacaoValor={valor}&ocupacaoTipo={tipo}&ocupacaoPerfil={perfil}&ocupacaoRiscoConservacao={riscoConservacaoPct}&ocupacaoCustoJuridico={custoJuridico}&ocupacaoCustoMensal={custoMensal}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "risk-score-leilao",
   "nome": "Risk Score de Leilões",
   "hub": "leiloes",
   "url": "https://estimei.com.br/calculadoras/risk-score-leilao/",
   "descricao": "Risco da arrematação (0-100) em 4 dimensões — jurídico, financeiro, operacional e liquidez.",
   "perguntaQueResponde": "Qual é o risco jurídico, financeiro, operacional e de liquidez desta arrematação de leilão?",
   "entradas": {
    "type": "object",
    "properties": {
     "ocupacao": {
      "type": "string",
      "enum": [
       "desocupado",
       "ex_mutuario",
       "terceiro_litigioso"
      ],
      "default": "desocupado",
      "description": "Status de ocupação. Padrão \"desocupado\".",
      "x-campoSite": "riskOcupacao"
     },
     "rito": {
      "type": "string",
      "enum": [
       "extrajudicial",
       "judicial_trabalhista",
       "judicial_civel_familia"
      ],
      "default": "extrajudicial",
      "description": "Rito/origem do leilão (\"extrajudicial\" = Lei 9.514/97). Padrão \"extrajudicial\".",
      "x-campoSite": "riskRito"
     },
     "dividas": {
      "type": "string",
      "enum": [
       "isento",
       "baixas",
       "moderadas",
       "elevadas"
      ],
      "default": "isento",
      "description": "Dívidas de condomínio/IPTU: baixas < 5%, moderadas 5-15%, elevadas > 15% da avaliação. Padrão \"isento\".",
      "x-campoSite": "riskDividas"
     },
     "desagio": {
      "type": "string",
      "enum": [
       "alto",
       "medio",
       "baixo"
      ],
      "default": "medio",
      "description": "Deságio do lance sobre a avaliação: alto > 50%, medio 30-50%, baixo < 30%. Padrão \"medio\".",
      "x-campoSite": "riskDesagio"
     },
     "reforma": {
      "type": "string",
      "enum": [
       "leve",
       "media",
       "pesada"
      ],
      "default": "leve",
      "description": "Complexidade da reforma: media 10-25%, pesada > 25% do valor do imóvel. Padrão \"leve\".",
      "x-campoSite": "riskReforma"
     },
     "tipoImovel": {
      "type": "string",
      "enum": [
       "residencial",
       "comercial",
       "terreno",
       "rural"
      ],
      "description": "Tipo de imóvel, para a Liquidez (residencial 0, comercial 20, terreno 30, rural 35 pontos). Se omitido, a Liquidez sai sem esse fator e com aviso.",
      "x-campoSite": "riskTipoImovel"
     },
     "prazoMeses": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Prazo estimado até a venda, em meses, para a Liquidez (até 12: 0; 13 a 24: 15; mais de 24: 30 pontos). Se omitido, a Liquidez sai sem esse fator e com aviso; sem tipo nem prazo, a Liquidez não é avaliada.",
      "x-campoSite": "riskPrazoMeses"
     }
    },
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "scoreBruto": {
      "type": "number",
      "description": "Soma dos pontos dos 5 eixos da metodologia anterior (v1.4), só como registro — não é a nota."
     },
     "score": {
      "type": "number",
      "description": "Estimei Risk Score, de 0 (menor risco) a 100: a nota da dimensão de maior risco."
     },
     "nivel": {
      "type": "string",
      "enum": [
       "verde",
       "amarelo",
       "vermelho"
      ],
      "description": "Faixa da nota geral: verde 0–30, amarelo 31–65, vermelho 66–100."
     },
     "nomeFaixa": {
      "type": "string",
      "description": "Nome da faixa."
     },
     "mensagemFaixa": {
      "type": "string",
      "description": "Orientação da faixa."
     },
     "eixos": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "chave": {
         "type": "string",
         "description": "Nome do eixo avaliado."
        },
        "valor": {
         "type": "string",
         "description": "Opção escolhida no eixo."
        },
        "pontos": {
         "type": "number",
         "description": "Pontos do eixo no score (negativo = redutor de risco)."
        }
       },
       "required": [
        "chave",
        "valor",
        "pontos"
       ],
       "additionalProperties": false
      },
      "description": "Os 5 eixos avaliados, com a opção escolhida e os pontos."
     },
     "fatoresCriticos": {
      "type": "array",
      "items": {
       "$ref": "#/properties/eixos/items"
      },
      "description": "Eixos com pontos > 0, do maior para o menor."
     },
     "checklist": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "description": "Até 4 recomendações, da mais urgente para a menos urgente."
     },
     "dimensoes": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "string",
         "enum": [
          "juridico",
          "financeiro",
          "operacional",
          "liquidez"
         ]
        },
        "nome": {
         "type": "string",
         "description": "Nome da dimensão."
        },
        "avaliada": {
         "type": "boolean",
         "description": "false só na Liquidez, quando nem o tipo de imóvel nem o prazo foram informados."
        },
        "score": {
         "type": [
          "number",
          "null"
         ],
         "description": "Nota da dimensão, de 0 a 100 (null se não avaliada): pontos dos fatores ÷ máximo da dimensão."
        },
        "nivel": {
         "anyOf": [
          {
           "type": "string",
           "enum": [
            "verde",
            "amarelo",
            "vermelho"
           ]
          },
          {
           "type": "null"
          }
         ],
         "description": "Faixa da dimensão (null se não avaliada)."
        },
        "fatores": {
         "type": "array",
         "items": {
          "$ref": "#/properties/eixos/items"
         },
         "description": "Fatores que compõem a dimensão, com os pontos."
        }
       },
       "required": [
        "id",
        "nome",
        "avaliada",
        "score",
        "nivel",
        "fatores"
       ],
       "additionalProperties": false
      },
      "description": "As 4 dimensões do risco: Jurídico, Financeiro, Operacional e Liquidez."
     },
     "avisosLiquidez": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "description": "Avisos quando a Liquidez foi calculada sem o tipo de imóvel e/ou o prazo."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "scoreBruto",
     "score",
     "nivel",
     "nomeFaixa",
     "mensagemFaixa",
     "eixos",
     "fatoresCriticos",
     "checklist",
     "dimensoes",
     "avisosLiquidez",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Jurídico: rito (extrajudicial 10 · trabalhista 20 · cível ou de família 35), ocupação por terceiro ou litígio (45) e dívidas que o edital transfere (até 40) — máximo de 120 pontos",
    "Financeiro: deságio (acima de 50%, −15 · entre 30% e 50%, 0 · abaixo de 30%, +20) e dívidas no edital (até 40) — máximo de 60",
    "Operacional: reforma (leve 0 · média 15 · pesada 30) e ocupação (ex-mutuário 25 · terceiro 45) — máximo de 75",
    "Liquidez: tipo de imóvel (residencial 0 · comercial 20 · terreno 30 · rural 35) e prazo até a venda (até 12 meses 0 · 13 a 24 meses 15 · mais de 24 meses 30) — máximo de 65",
    "Nota de cada dimensão = pontos somados ÷ máximo da dimensão, de 0 a 100",
    "Nota geral = a nota da dimensão de maior risco",
    "Exemplo (o cenário verificado pela suíte de testes): ocupado pelo ex-mutuário, extrajudicial, dívidas baixas, deságio médio e reforma média, num imóvel residencial. O Jurídico fica em 17, o Financeiro em 17, o Operacional em 53 (reforma média e desocupação) e a Liquidez em 0. A nota geral é 53 — risco moderado, puxada pelo Operacional."
   ],
   "fontes": [
    {
     "nome": "Lei 9.514/1997 e CPC (Lei 13.105/2015), Arts. 824–909",
     "detalhe": "ritos extrajudicial (alienação fiduciária) e judicial (execução e arrematação)"
    },
    {
     "nome": "CTN, Art. 130, parágrafo único e STJ, Tema 1.134",
     "detalhe": "tributos anteriores à arrematação judicial não passam ao arrematante"
    },
    {
     "nome": "STJ, REsp 2.042.756/SP",
     "detalhe": "débito condominial com o arrematante quando o edital prevê"
    },
    {
     "nome": "Metodologia própria do Estimei",
     "detalhe": "pontos por fator, 4 dimensões (nota geral = a de maior risco) e faixas de 0 a 30, 31 a 65 e 66 a 100"
    }
   ],
   "limitacoes": [
    "Pontos, dimensões e faixas são metodologia própria do Estimei — nenhuma norma os fixa, e os pontos da Liquidez são provisórios. O score é triagem, não veredito: combine-o com as calculadoras de custos e viabilidade e, em risco moderado ou alto, com uma consulta jurídica. A Liquidez usa só o tipo de imóvel e o prazo informado; não mede a demanda da região nem o estado do imóvel.",
    "Leitura minuciosa do edital oficial e seus anexos vinculantes",
    "Certidão de matrícula imobiliária e de ônus reais atualizada no Cartório de Registro de Imóveis (CRI)",
    "Vistoria física <em>in loco</em> para averiguar a situação real de ocupação e conservação",
    "Parecer técnico e representação de advogado especialista para imissão na posse e segurança jurídica"
   ],
   "exemploAuditado": {
    "cenario": "conservador — todos os eixos no melhor caso (4 dimensões)",
    "entradasSite": {
     "riskOcupacao": "desocupado",
     "riskRito": "extrajudicial",
     "riskDividas": "isento",
     "riskDesagio": "alto",
     "riskReforma": "leve",
     "riskTipoImovel": "residencial",
     "riskPrazoMeses": ""
    },
    "entradasMCP": {
     "ocupacao": "desocupado",
     "rito": "extrajudicial",
     "dividas": "isento",
     "desagio": "alto",
     "reforma": "leve",
     "tipoImovel": "residencial",
     "prazoMeses": ""
    },
    "esperado": {
     "scoreBruto": -5,
     "juridico": 8,
     "financeiro": 0,
     "operacional": 0,
     "liquidez": 0,
     "score": 8,
     "nivel": "verde"
    },
    "tolerancia": 0.01,
    "verificacao": "Metodologia v1.5 (30/09/2026, docs/RISK-SCORE-4D.md §8). Jurídico: rito extrajudicial 10 ÷ 120 = 8,3 → 8. Financeiro: deságio alto −15 + dívidas 0 = −15 → limitado a 0. Operacional: reforma leve 0 + desocupado 0 = 0. Liquidez: residencial 0, prazo não informado → 0 ÷ 65 = 0. Nota geral = maior dimensão = 8 (verde). Soma bruta dos 5 eixos (registro): 0+10+0−15+0 = −5. Na v1.4 a nota era 0."
   },
   "mcp": {
    "ferramenta": "calcular_risk_score_leilao"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/risk-score-leilao/?riskOcupacao={ocupacao}&riskRito={rito}&riskDividas={dividas}&riskDesagio={desagio}&riskReforma={reforma}&riskTipoImovel={tipoImovel}&riskPrazoMeses={prazoMeses}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "viabilidade-reforma",
   "nome": "Viabilidade de Reforma para Venda",
   "hub": "reforma",
   "url": "https://estimei.com.br/calculadoras/viabilidade-reforma/",
   "descricao": "Calcule se reformar para vender vale a pena: ROI, TIR, VPL, IR e comissão de corretor.",
   "perguntaQueResponde": "Reformar este imóvel antes de vender aumenta meu lucro líquido o suficiente para compensar o investimento e o tempo?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado, só usado nos modos por CUB. Padrão \"SP\".",
      "x-campoSite": "viaEstado"
     },
     "valorAtual": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor de mercado atual do imóvel (antes de reformar), em R$.",
      "x-campoSite": "viaValorAtual"
     },
     "custoAquisicaoOriginal": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Quanto custou comprar o imóvel originalmente, em R$ (base fiscal do IR, nunca o valor de mercado atual).",
      "x-campoSite": "viaCustoAquisicao"
     },
     "valorizacaoPct": {
      "type": "number",
      "minimum": 0,
      "description": "Valorização esperada com a reforma + mercado, em % sobre o valor atual.",
      "x-campoSite": "viaValorizacao"
     },
     "tempoMeses": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Tempo até a revenda, em MESES.",
      "x-campoSite": "viaTempo"
     },
     "tipo": {
      "type": "string",
      "enum": [
       "pintura",
       "basica",
       "media",
       "completa",
       "valor_fixo",
       "personalizada",
       "nenhuma"
      ],
      "default": "valor_fixo",
      "description": "Nível/modo da reforma. Padrão \"valor_fixo\".",
      "x-campoSite": "viaTipo"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área da reforma, em m² — obrigatório nos modos por CUB e em \"personalizada\".",
      "x-campoSite": "viaArea"
     },
     "qualidade": {
      "type": "string",
      "enum": [
       "basico",
       "medio",
       "alto"
      ],
      "default": "medio",
      "description": "Qualidade dos materiais, só nos modos por CUB. Padrão \"medio\".",
      "x-campoSite": "viaQualidade"
     },
     "custoPorM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m², em R$ — obrigatório se tipo=\"personalizada\".",
      "x-campoSite": "viaCustoPorM2"
     },
     "custoReforma": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se tipo=\"valor_fixo\".",
      "x-campoSite": "viaCustoReforma"
     },
     "pctCorretor": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Comissão do corretor na venda, em %. Padrão 0.",
      "x-campoSite": "viaComissaoCorretor"
     },
     "custosMensaisReais": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Custos mensais correntes durante obra+espera (condomínio, IPTU etc.), em R$. Padrão 0.",
      "x-campoSite": "viaCustosMensais"
     },
     "usaPJ": {
      "type": "boolean",
      "default": false,
      "description": "Se true, usa o regime PJ (Lucro Presumido) no lucro/ROI principal em vez de PF. Padrão false.",
      "x-campoSite": "viaPJ",
      "x-valoresSite": {
       "true": "sim",
       "false": "nao"
      }
     }
    },
    "required": [
     "valorAtual",
     "custoAquisicaoOriginal",
     "valorizacaoPct",
     "tempoMeses"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "custoReforma": {
      "type": "number",
      "description": "Custo da reforma, em R$."
     },
     "valorAtual": {
      "type": "number",
      "description": "Valor atual do imóvel, em R$."
     },
     "valorFinal": {
      "type": "number",
      "description": "Valor de venda depois da reforma, em R$."
     },
     "ganhoValorizacao": {
      "type": "number",
      "description": "Valor final − valor atual, em R$."
     },
     "valorCorretor": {
      "type": "number",
      "description": "Comissão do corretor na venda, em R$."
     },
     "pctCorretor": {
      "type": "number",
      "description": "Comissão do corretor sobre o valor final, em %."
     },
     "custoAquisicaoOriginal": {
      "type": "number",
      "description": "Custo de aquisição original do imóvel, em R$."
     },
     "custoAquisicaoFiscal": {
      "type": "number",
      "description": "Base fiscal do IR: aquisição original + reforma, em R$."
     },
     "ganhoCapitalFiscal": {
      "type": "number",
      "description": "Ganho de capital tributável (mínimo 0), em R$."
     },
     "irPF": {
      "type": "number",
      "description": "IR da pessoa física sobre o ganho de capital (15%), em R$."
     },
     "irPF_pf": {
      "type": "number",
      "description": "Igual a irPF (campo repetido por compatibilidade), em R$."
     },
     "irPJ": {
      "type": "number",
      "description": "Tributos da PJ no Lucro Presumido sobre a receita da venda, em R$."
     },
     "lucroLiqPF": {
      "type": "number",
      "description": "Lucro líquido da reforma como pessoa física, em R$."
     },
     "lucroLiqPF_pf": {
      "type": "number",
      "description": "Igual a lucroLiqPF (campo repetido por compatibilidade), em R$."
     },
     "lucroLiqPJ": {
      "type": "number",
      "description": "Lucro líquido da reforma como PJ, em R$."
     },
     "roiPF": {
      "type": "number",
      "description": "ROI sobre o desembolso da reforma, pessoa física, no período, em %."
     },
     "roiPF_pf": {
      "type": "number",
      "description": "Igual a roiPF (campo repetido por compatibilidade), em %."
     },
     "roiPJ": {
      "type": "number",
      "description": "ROI sobre o desembolso da reforma, PJ, no período, em %."
     },
     "roiAnualizado": {
      "type": "number",
      "description": "ROI do regime escolhido anualizado pelo tempo até a venda, ao ano (0 se não há lucro), em %."
     },
     "entradaValor": {
      "type": "number",
      "description": "Parte da reforma paga à vista (o custo inteiro, sem financiamento), em R$."
     },
     "financValor": {
      "type": "number",
      "description": "Parte financiada (0: financiamento da reforma não modelado no MCP), em R$."
     },
     "saldoEscolhido": {
      "type": "number",
      "description": "Saldo devedor quitado na venda (0 sem financiamento), em R$."
     },
     "totalParcEscolhida": {
      "type": "number",
      "description": "Parcelas pagas até a venda (0 sem financiamento), em R$."
     },
     "totalDesembolso": {
      "type": "number",
      "description": "Reforma + custos mensais até a venda, em R$."
     },
     "mensalCorrente": {
      "type": "number",
      "description": "Custos mensais até a venda, em R$."
     },
     "tempoMeses": {
      "type": "number",
      "description": "Tempo até a venda, em meses."
     },
     "tempoAnos": {
      "type": "number",
      "description": "Tempo até a venda, em anos."
     },
     "area": {
      "type": "number",
      "description": "Área, em m² (0 se não informada)."
     },
     "cubTotal": {
      "type": "number",
      "description": "CUB total da UF por m² (0 fora dos níveis por CUB), em R$."
     },
     "modelo1Autogestao": {
      "type": "number",
      "description": "Sempre 0 nesta calculadora (campo mantido por compatibilidade), em R$."
     },
     "tipo": {
      "type": "string",
      "description": "Modo/nível da reforma."
     },
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no CUB."
     },
     "qualidade": {
      "type": "string",
      "description": "Padrão de acabamento."
     },
     "regime": {
      "type": "string",
      "enum": [
       "PF",
       "PJ"
      ],
      "description": "Regime usado no ROI anualizado."
     },
     "usaPJ": {
      "type": "boolean",
      "description": "true se o regime é PJ."
     },
     "ehTipoCUB": {
      "type": "boolean",
      "description": "true se o custo veio do CUB da UF."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "custoReforma",
     "valorAtual",
     "valorFinal",
     "ganhoValorizacao",
     "valorCorretor",
     "pctCorretor",
     "custoAquisicaoOriginal",
     "custoAquisicaoFiscal",
     "ganhoCapitalFiscal",
     "irPF",
     "irPF_pf",
     "irPJ",
     "lucroLiqPF",
     "lucroLiqPF_pf",
     "lucroLiqPJ",
     "roiPF",
     "roiPF_pf",
     "roiPJ",
     "roiAnualizado",
     "entradaValor",
     "financValor",
     "saldoEscolhido",
     "totalParcEscolhida",
     "totalDesembolso",
     "mensalCorrente",
     "tempoMeses",
     "tempoAnos",
     "area",
     "cubTotal",
     "modelo1Autogestao",
     "tipo",
     "estado",
     "qualidade",
     "regime",
     "usaPJ",
     "ehTipoCUB",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Valor de venda = valor atual × (1 + valorização esperada)",
    "Custo da reforma = valor fixo, ou área × R$/m², ou área × CUB do estado × fator do tipo × fator de qualidade",
    "Ganho de capital = venda − comissão − (custo de aquisição original + reforma)",
    "IR pessoa física = 15% do ganho; pessoa jurídica no Lucro Presumido: IRPJ, CSLL, PIS e Cofins sobre a receita da venda",
    "Lucro = venda − comissão − IR − valor atual − (reforma + custos mensais × meses)",
    "ROI = lucro ÷ desembolso próprio, também anualizado pelo prazo",
    "Exemplo (o cenário verificado pela suíte de testes): imóvel de R$ 400 mil, comprado por R$ 300 mil, reforma de R$ 60 mil, valorização de 40% e venda em 6 meses com 6% de corretagem. Vende por R$ 560 mil; o ganho de capital é R$ 166.400 e o IR, R$ 24.960. Descontados os R$ 400 mil que a venda imediata daria e os R$ 64.800 investidos, sobram R$ 36.640 — ROI de 56,54%."
   ],
   "fontes": [
    {
     "nome": "RIR/2018 (Decreto 9.580/2018), Arts. 134–148, 137 e 153",
     "detalhe": "apuração do ganho de capital, reforma e ITBI no custo de aquisição, alíquota de 15% até R$ 5 milhões"
    },
    {
     "nome": "IN SRF 84/2001",
     "detalhe": "ganho de capital da pessoa física — corretagem deduzida do valor de venda (Art. 19, § 3º)"
    },
    {
     "nome": "Lei 9.250/1995, Art. 23 e Lei 11.196/2005, Art. 39",
     "detalhe": "isenções do único imóvel até R$ 440 mil e do reinvestimento em 180 dias (não aplicadas automaticamente)"
    },
    {
     "nome": "Código Civil, Art. 724",
     "detalhe": "remuneração do corretor pelos usos locais, quando não ajustada entre as partes"
    },
    {
     "nome": "CUB/m² dos Sinduscons (ABNT NBR 12.721:2006)",
     "detalhe": "custo por m² dos tipos de reforma estimados, na versão sem desoneração"
    },
    {
     "nome": "Banco Central — CDI",
     "detalhe": "custo de oportunidade do capital investido na reforma"
    }
   ],
   "limitacoes": [
    "As isenções — único imóvel até R$ 440 mil (Lei 9.250/1995, Art. 23) ou reinvestimento em 180 dias (Lei 11.196/2005, Art. 39) — não são aplicadas automaticamente, e a valorização é uma premissa sua. Com financiamento, os juros pagos até a venda entram no desembolso.",
    "Projeto executivo assinado por engenheiro ou arquiteto com recolhimento de ART/RRT (NBR 16.280)",
    "Vistoria estrutural e técnica presencial das instalações elétricas e hidráulicas",
    "Orçamentos comerciais fechados de fornecedores locais, considerando perdas e frete"
   ],
   "exemploAuditado": {
    "cenario": "Reforma de valor fixo R$ 60 mil à vista, imóvel de R$ 400 mil valorizando 40%, venda em 6 meses, PF, corretor 6%",
    "entradasSite": {
     "viaValorAtual": 400000,
     "viaCustoAquisicao": 300000,
     "viaEstado": "SP",
     "viaArea": "",
     "viaTipo": "valor_fixo",
     "viaCustoReforma": 60000,
     "viaCustoPorM2": "",
     "viaQualidade": "medio",
     "viaValorizacao": 40,
     "viaTempo": 6,
     "viaFinancia": "nao",
     "viaEntradaPct": "",
     "viaFinancTabela": "price",
     "viaFinancTaxa": "",
     "viaFinancPrazo": "",
     "viaPrestPagas": "",
     "viaPJ": "nao",
     "viaComissaoCorretor": 6,
     "viaCustosMensais": 800
    },
    "entradasMCP": {
     "valorAtual": 400000,
     "custoAquisicaoOriginal": 300000,
     "estado": "SP",
     "area": "",
     "tipo": "valor_fixo",
     "custoReforma": 60000,
     "custoPorM2": "",
     "qualidade": "medio",
     "valorizacaoPct": 40,
     "tempoMeses": 6,
     "usaPJ": false,
     "pctCorretor": 6,
     "custosMensaisReais": 800
    },
    "esperado": {
     "custoReforma": 60000,
     "valorAtual": 400000,
     "valorFinal": 560000,
     "ganhoValorizacao": 160000,
     "valorCorretor": 33600,
     "pctCorretor": 6,
     "custoAquisicaoOriginal": 300000,
     "custoAquisicaoFiscal": 360000,
     "ganhoCapitalFiscal": 166400,
     "irPF": 24960,
     "irPF_pf": 24960,
     "irPJ": 33208,
     "lucroLiqPF": 36640,
     "lucroLiqPF_pf": 36640,
     "lucroLiqPJ": 28392,
     "roiPF": 56.54,
     "roiPF_pf": 56.54,
     "roiPJ": 43.81,
     "roiAnualizado": 145.06,
     "entradaValor": 60000,
     "financValor": 0,
     "saldoEscolhido": 0,
     "totalParcEscolhida": 0,
     "totalDesembolso": 64800,
     "mensalCorrente": 800,
     "tempoMeses": 6,
     "taxaAnual": 0,
     "prazoAnos": 0,
     "area": 0,
     "cubTotal": 0,
     "modelo1Autogestao": 0,
     "tipo": "valor_fixo",
     "estado": "SP",
     "qualidade": "medio",
     "regime": "PF",
     "usaPJ": false,
     "usaFinanc": false,
     "ehTipoCUB": false
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual seguindo viabilidade-reforma.js:232-338 na ordem exata. Tipo 'valor_fixo' ⇒ ehTipoCUB=false, custoReforma = 60.000 SEM fator de qualidade (aplicaFatorQualidade=false, linha 233) e cubTotal=0 — por isso o cenário NÃO depende do CUB. Venda: valorFinal = round(400.000×1,40) = 560.000; comissão = round(560.000×6%) = 33.600; valor de alienação = 526.400. Base fiscal (IN SRF 84/2001 + RIR/2018 Arts. 134-148): custo de aquisição FISCAL = 300.000 (original, nunca o valor de mercado atual) + 60.000 de reforma = 360.000 ⇒ ganho de capital = 166.400 e IR PF = 15% = 24.960. IR PJ por Utils.irPJLucroPresumido(560.000) calculado componente a componente: IRPJ 15%×(8%×560.000=44.800) = 6.720; adicional = 0 (presunção 44.800 < limite 20.000×3 = 60.000 — este cenário trava justamente o fix 1.14, que substituiu a alíquota plana de 6,73%); CSLL 9%×(12%×560.000) = 6.048; PIS 0,65% = 3.640; COFINS 3% = 16.800 ⇒ total 33.208 (alíquota efetiva 5,93%, não 6,73%). Desembolso próprio = 60.000 + 800×6 = 64.800. Lucro PF = (560.000 − 33.600 − 24.960) − 400.000 − 64.800 = 36.640 ⇒ ROI = round(36.640/64.800×100, 2) = 56,54%; PJ = 493.192 − 400.000 − 64.800 = 28.392 ⇒ 43,81%. ROI anualizado = ((1+0,5654320987654321)^(1/0,5) − 1)×100 = 145,06% a.a. (tempoAnos = round(6/12, 4 casas) = 0,5). Campos dependentes de Benchmarks (xCDI, rendCDI, lucroVPL, vplPositivo) foram deliberadamente EXCLUÍDOS do esperado."
   },
   "mcp": {
    "ferramenta": "calcular_viabilidade_reforma"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/viabilidade-reforma/?viaEstado={estado}&viaValorAtual={valorAtual}&viaCustoAquisicao={custoAquisicaoOriginal}&viaValorizacao={valorizacaoPct}&viaTempo={tempoMeses}&viaTipo={tipo}&viaArea={area}&viaQualidade={qualidade}&viaCustoPorM2={custoPorM2}&viaCustoReforma={custoReforma}&viaComissaoCorretor={pctCorretor}&viaCustosMensais={custosMensaisReais}&viaPJ={usaPJ}&viaFinancia=nao",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "reforma-simples",
   "nome": "Reforma Simples",
   "hub": "reforma",
   "url": "https://estimei.com.br/calculadoras/reforma-simples/",
   "descricao": "Pintura, troca de pisos, gesso e pequenos reparos residenciais.",
   "perguntaQueResponde": "Quanto vou gastar para pintar, trocar o piso ou fazer pequenos reparos nesse cômodo?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado (ex.: \"SP\"), só usado nos modos por CUB. Padrão \"SP\".",
      "x-campoSite": "refSimplesEstado"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área da reforma, em m².",
      "x-campoSite": "refSimplesArea"
     },
     "tipo": {
      "type": "string",
      "enum": [
       "pintura",
       "basica",
       "media",
       "completa",
       "valor_fixo",
       "personalizada"
      ],
      "default": "media",
      "description": "Nível/modo da reforma. Padrão \"media\".",
      "x-campoSite": "refSimplesTipo"
     },
     "qualidade": {
      "type": "string",
      "enum": [
       "basico",
       "medio",
       "alto"
      ],
      "default": "medio",
      "description": "Qualidade dos materiais (fator 0,8/1,0/1,3), só nos modos por CUB. Padrão \"medio\".",
      "x-campoSite": "refSimplesQualidade"
     },
     "custoPorM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m², em R$ — obrigatório se tipo=\"personalizada\".",
      "x-campoSite": "refSimplesCustoPorM2"
     },
     "valorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$ — obrigatório se tipo=\"valor_fixo\".",
      "x-campoSite": "refSimplesValorFixo"
     },
     "economiaVocePct": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 0,
      "description": "% de economia em mão de obra fazendo você mesmo. Padrão 0.",
      "x-campoSite": "refSimplesFazerVoce"
     }
    },
    "required": [
     "area"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no CUB."
     },
     "area": {
      "type": "number",
      "description": "Área, em m²."
     },
     "tipo": {
      "type": "string",
      "description": "Nível da reforma."
     },
     "qualidade": {
      "type": "string",
      "description": "Padrão de acabamento."
     },
     "ehTipoCUB": {
      "type": "boolean",
      "description": "true se o custo veio do CUB da UF (níveis pintura, basica, media, completa)."
     },
     "cubTotal": {
      "type": "number",
      "description": "CUB total da UF por m² (0 fora dos níveis por CUB), em R$."
     },
     "total": {
      "type": "number",
      "description": "Custo total da reforma, em R$."
     },
     "totalMateriais": {
      "type": "number",
      "description": "Materiais, em R$."
     },
     "totalMaoObra": {
      "type": "number",
      "description": "Mão de obra, em R$."
     },
     "economiaMO": {
      "type": "number",
      "description": "Economia na mão de obra fazendo parte do serviço, em R$."
     },
     "economiaVocePct": {
      "type": "number",
      "description": "Parte da mão de obra feita pelo próprio dono, em %."
     },
     "custoPorM2": {
      "type": "number",
      "description": "Custo por m², em R$."
     },
     "modelo1Autogestao": {
      "type": "number",
      "description": "Custo com autogestão da obra (materiais + mão de obra; 0 fora dos níveis por CUB), em R$."
     },
     "modelo2Hibrido": {
      "type": "number",
      "description": "Custo no modelo híbrido (mão de obra +10%; 0 fora dos níveis por CUB), em R$."
     },
     "modelo3EmpMin": {
      "type": "number",
      "description": "Custo com empreiteira, faixa mínima (mão de obra +20%; 0 fora dos níveis por CUB), em R$."
     },
     "modelo3EmpMax": {
      "type": "number",
      "description": "Custo com empreiteira, faixa máxima (mão de obra +30%; 0 fora dos níveis por CUB), em R$."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "area",
     "tipo",
     "qualidade",
     "ehTipoCUB",
     "cubTotal",
     "total",
     "totalMateriais",
     "totalMaoObra",
     "economiaMO",
     "economiaVocePct",
     "custoPorM2",
     "modelo1Autogestao",
     "modelo2Hibrido",
     "modelo3EmpMin",
     "modelo3EmpMax",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Custo base = área × CUB do estado × fator do tipo × fator de qualidade",
    "Fator do tipo: só pintura 0,05 · básica 0,15 · média 0,30 · completa 0,50",
    "Fator de qualidade: básica 0,8 · média 1,0 · alta 1,3",
    "Materiais = custo base × (1 − % de mão de obra); mão de obra = custo base × % de mão de obra — 60% na pintura, 40% na básica, 45% na média, 48% na completa",
    "Faça você mesmo: o percentual informado sai só da mão de obra",
    "Com valor fixo ou custo personalizado, esse valor substitui o custo base (dividido em 55% de material e 45% de mão de obra), e a calculadora mostra ao lado uma referência pelo CUB, para você comparar. Exemplo (o cenário verificado pela suíte de testes): R$ 900/m² em 50 m² dão R$ 45.000 — R$ 24.750 de materiais e R$ 20.250 de mão de obra. Fazendo 20% da mão de obra você mesmo, saem R$ 4.050, e o total fica em R$ 40.950, ou R$ 819/m²."
   ],
   "fontes": [
    {
     "nome": "CUB/m² dos Sinduscons (ABNT NBR 12.721:2006)",
     "detalhe": "custo unitário básico de cada estado, divulgado mensalmente — base da estimativa, na versão sem desoneração"
    },
    {
     "nome": "SINAPI / IBGE / Caixa — Tabela oficial com atualização mensal",
     "detalhe": "faixas de mercado e lista de materiais de referência"
    },
    {
     "nome": "Lei 12.546/2011",
     "detalhe": "desoneração da folha — motivo de usar o CUB sem desoneração para obra contratada por pessoa física"
    },
    {
     "nome": "ABNT NBR 16.280:2015",
     "detalhe": "sistema de gestão de reformas em edificações: plano de reforma e responsáveis técnicos"
    },
    {
     "nome": "NR-18",
     "detalhe": "segurança e saúde no trabalho na indústria da construção"
    }
   ],
   "limitacoes": [
    "Projeto executivo assinado por engenheiro ou arquiteto com recolhimento de ART/RRT (NBR 16.280)",
    "Vistoria estrutural e técnica presencial das instalações elétricas e hidráulicas",
    "Orçamentos comerciais fechados de fornecedores locais, considerando perdas e frete"
   ],
   "exemploAuditado": {
    "cenario": "Custo personalizado R$ 900/m² em 50 m², 20% de economia fazendo você mesmo (sem CUB)",
    "entradasSite": {
     "refSimplesEstado": "SP",
     "refSimplesArea": 50,
     "refSimplesTipo": "personalizada",
     "refSimplesCustoPorM2": 900,
     "refSimplesValorFixo": "",
     "refSimplesQualidade": "medio",
     "refSimplesFazerVoce": "20"
    },
    "entradasMCP": {
     "estado": "SP",
     "area": 50,
     "tipo": "personalizada",
     "custoPorM2": 900,
     "valorFixo": "",
     "qualidade": "medio",
     "economiaVocePct": "20"
    },
    "esperado": {
     "total": 40950,
     "totalMateriais": 24750,
     "totalMaoObra": 16200,
     "economiaMO": 4050,
     "economiaVoce": 20,
     "custoPorM2": 819,
     "area": 50,
     "tipo": "personalizada",
     "tipoLabel": "Custo Personalizado por m²",
     "qualidade": "medio",
     "estado": "SP",
     "ehTipoCUB": false,
     "itensMateriaisEhReferencia": true,
     "modelo1Autogestao": 0,
     "modelo2Hibrido": 0,
     "modelo3EmpMin": 0,
     "modelo3EmpMax": 0
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual (reforma-simples.js:181-207). Modo 'personalizada': custoBaseCUB = round(900 × 50) = 45.000 e aplicaFatorQualidade = false — a qualidade 'medio' (fator 1,0) NÃO é aplicada, e mesmo 'basico'/'alto' não seriam (trava explícita contra uma regressão que voltasse a multiplicar o valor informado pelo usuário). pctMaoObra permanece no default do let (0,45) porque o ramo 'personalizada' não o reatribui — travado aqui de propósito. Materiais = round(45.000×0,55) = 24.750; MO bruta = round(45.000×0,45) = 20.250; economia (select de 20%) = 4.050; MO líquida = 16.200; total = 40.950; custo/m² = round(40.950/50) = 819,00. Os 4 modelos de contratação são 0 fora dos tipos por CUB (ehTipoCUB=false). NÃO depende do CUB — cubTotal/cubRefTotal/cubRefMat/cubRefMO/cubRefDiffPct ficam fora do esperado."
   },
   "mcp": {
    "ferramenta": "calcular_reforma_simples"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/reforma-simples/?refSimplesEstado={estado}&refSimplesArea={area}&refSimplesTipo={tipo}&refSimplesQualidade={qualidade}&refSimplesCustoPorM2={custoPorM2}&refSimplesValorFixo={valorFixo}&refSimplesFazerVoce={economiaVocePct}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "reforma-completa",
   "nome": "Reforma Completa",
   "hub": "reforma",
   "url": "https://estimei.com.br/calculadoras/reforma-completa/",
   "descricao": "Planejamento detalhado com materiais, mão de obra e custos extras.",
   "perguntaQueResponde": "Quanto custa reformar esse imóvel por completo, incluindo materiais, mão de obra e imprevistos?",
   "entradas": {
    "type": "object",
    "properties": {
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área total da reforma, em m².",
      "x-campoSite": "refAreaTotal"
     },
     "custoPorM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m² já conhecido, em R$. Use isso OU valorFixo.",
      "x-campoSite": "refCustoPorM2",
      "x-camposJunto": {
       "refTipo": "personalizada"
      }
     },
     "valorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma já conhecido, em R$. Use isso OU custoPorM2.",
      "x-campoSite": "refValorFixo",
      "x-camposJunto": {
       "refTipo": "valor_fixo"
      }
     },
     "margemPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Margem de segurança sobre materiais+MO, em %. Padrão 0.",
      "x-campoSite": "refMargem"
     },
     "aluguelMes": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Aluguel mensal enquanto durar a obra, em R$. Padrão 0.",
      "x-campoSite": "refAluguel"
     },
     "diasAluguel": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Duração estimada da obra, em DIAS (convertido pra meses internamente). Padrão 0.",
      "x-campoSite": "refDiasAluguel"
     }
    },
    "required": [
     "area"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "area": {
      "type": "number",
      "description": "Área, em m²."
     },
     "totalMat": {
      "type": "number",
      "description": "Materiais, em R$."
     },
     "totalMO": {
      "type": "number",
      "description": "Mão de obra, em R$."
     },
     "margem": {
      "type": "number",
      "description": "Margem de segurança, em R$."
     },
     "margemPct": {
      "type": "number",
      "description": "Margem de segurança sobre materiais + mão de obra, em %."
     },
     "aluguelTotal": {
      "type": "number",
      "description": "Aluguel pago durante a obra, em R$."
     },
     "custoTotal": {
      "type": "number",
      "description": "Custo total da reforma, em R$."
     },
     "custoPorM2": {
      "type": "number",
      "description": "Custo total por m², em R$."
     },
     "modelo1Autogestao": {
      "type": "number",
      "description": "Custo com autogestão da obra (materiais + mão de obra; 0 fora dos níveis por CUB), em R$."
     },
     "modelo2Hibrido": {
      "type": "number",
      "description": "Custo no modelo híbrido (mão de obra +10%; 0 fora dos níveis por CUB), em R$."
     },
     "modelo3EmpMin": {
      "type": "number",
      "description": "Custo com empreiteira, faixa mínima (mão de obra +20%; 0 fora dos níveis por CUB), em R$."
     },
     "modelo3EmpMax": {
      "type": "number",
      "description": "Custo com empreiteira, faixa máxima (mão de obra +30%; 0 fora dos níveis por CUB), em R$."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "area",
     "totalMat",
     "totalMO",
     "margem",
     "margemPct",
     "aluguelTotal",
     "custoTotal",
     "custoPorM2",
     "modelo1Autogestao",
     "modelo2Hibrido",
     "modelo3EmpMin",
     "modelo3EmpMax",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "1. Âncora pelo CUB — área × CUB do estado × fator do tipo × qualidade, a mesma conta da Reforma Simples, dividida em materiais e mão de obra.",
    "2. Quantitativos — os mesmos da Calculadora de Materiais (tinta, piso com 10% de perda, tijolos por cômodo, cimento, areia, pontos elétricos e hidráulicos), e mão de obra por diárias: pedreiro e ajudante o período todo, eletricista em 30% e encanador em 20% dos dias.",
    "3. Calibração — os preços de referência (SINAPI, base São Paulo), ajustados ao seu estado pela razão entre os CUBs, são escalados por um fator único para que, no cenário típico (1 cômodo a cada 25 m²), materiais e mão de obra batam com a âncora. Com tudo em branco, Simples e Completa dão o mesmo número; mais cômodos que o típico aumentam tijolos e louças; o preço que você digitar prevalece.",
    "4. Total = materiais + mão de obra + margem de segurança (% sobre os dois) + aluguel durante a obra (valor mensal × dias ÷ 30).",
    "Exemplo (o cenário verificado pela suíte de testes): um valor fixo de R$ 120.000 em 80 m² vira R$ 66.000 de materiais e R$ 54.000 de mão de obra; somando 10% de margem de segurança (R$ 12.000) e 45 dias de aluguel a R$ 2.000 por mês (R$ 3.000), o custo total é de R$ 135.000, ou R$ 1.687,50/m²."
   ],
   "fontes": [
    {
     "nome": "SINAPI / IBGE / Caixa — Tabela oficial com atualização mensal",
     "detalhe": "preços de referência de materiais e mão de obra usados quando você não informa uma cotação"
    },
    {
     "nome": "CUB/m² dos Sinduscons (NBR 12.721:2006)",
     "detalhe": "ajuste regional do custo pelo estado, na versão sem desoneração"
    },
    {
     "nome": "Lei 12.546/2011",
     "detalhe": "desoneração da folha — motivo de usar o CUB sem desoneração para obra contratada por pessoa física"
    },
    {
     "nome": "ABNT NBR 16.280:2015",
     "detalhe": "sistema de gestão de reformas em edificações: plano de reforma e responsáveis técnicos"
    },
    {
     "nome": "NR-18",
     "detalhe": "segurança e saúde no trabalho na indústria da construção"
    },
    {
     "nome": "Código Civil, Arts. 610 a 626",
     "detalhe": "contrato de empreitada — base da Margem do Empreiteiro sobre a mão de obra"
    }
   ],
   "limitacoes": [
    "Projeto executivo assinado por engenheiro ou arquiteto com recolhimento de ART/RRT (NBR 16.280)",
    "Vistoria estrutural e técnica presencial das instalações elétricas e hidráulicas",
    "Orçamentos comerciais fechados de fornecedores locais, considerando perdas e frete"
   ],
   "exemploAuditado": {
    "cenario": "Valor fixo de R$ 120 mil em 80 m², margem de segurança 10% e 45 dias de aluguel a R$ 2.000",
    "entradasSite": {
     "refEstado": "SP",
     "refAreaTotal": 80,
     "refComodos": 4,
     "refTipo": "valor_fixo",
     "refValorFixo": 120000,
     "refCustoPorM2": "",
     "refQualidade": "medio",
     "refTinta": "",
     "refPiso": "",
     "refTijolo": "",
     "refCimento": "",
     "refAreia": "",
     "refDiasObra": "",
     "refPedreiro": "",
     "refEletricista": "",
     "refEncanador": "",
     "refAjudante": "",
     "refFazerVoce": "0",
     "refMargemEmpreiteiro": "",
     "refMargem": 10,
     "refAluguel": 2000,
     "refDiasAluguel": 45
    },
    "entradasMCP": {
     "area": 80,
     "valorFixo": 120000,
     "custoPorM2": "",
     "margemPct": 10,
     "aluguelMes": 2000,
     "diasAluguel": 45
    },
    "esperado": {
     "totalMat": 66000,
     "totalMO": 54000,
     "margem": 12000,
     "margemPct": 10,
     "aluguelTotal": 3000,
     "custoTotal": 135000,
     "custoPorM2": 1687.5,
     "margemEmpreiteiroPct": 0,
     "economiaMO": 0,
     "diasAjust": 0,
     "area": 80,
     "comodos": 4,
     "tipo": "valor_fixo",
     "tipoLabel": "Valor Fixo Informado",
     "qualidade": "medio",
     "estado": "SP",
     "ehTipoCUB": false,
     "itensMateriaisEhReferencia": true,
     "modelo1Autogestao": 0,
     "modelo2Hibrido": 0,
     "modelo3EmpMin": 0,
     "modelo3EmpMax": 0
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual (reforma-completa.js:407-450). Modo 'valor_fixo': custoTotalInformado = 120.000; a divisão usa FatoresReforma.media.pctMaoObra = 0,45 como REFERÊNCIA de mercado ⇒ MO = round(120.000×0,45) = 54.000 e materiais = round(120.000 − 54.000) = 66.000 (materiais por SUBTRAÇÃO, não por 0,55 — a diferença aparece se algum dia alguém trocar a ordem). Margem de segurança: em branco = 0% (Regra 11); aqui informamos 10% ⇒ round((66.000+54.000)×10/100) = 12.000. Aluguel: mesesAlug = round(45/30, 2 casas) = 1,5 ⇒ round(2.000×1,5) = 3.000 (o campo é em DIAS, convertido para meses — mesma classe de armadilha do bug de prazo em anos vs meses do portabilidade-financiamento). Custo total = 66.000+54.000+12.000+3.000 = 135.000; custo/m² = round(135.000/80) = 1.687,50. Fora dos tipos por CUB, diasAjust/economiaMO/margemEmpreiteiroPct e os 4 modelos ficam em 0 (nunca são reatribuídos). NÃO depende do CUB (cubTotal e cubRef* excluídos do esperado)."
   },
   "mcp": {
    "ferramenta": "calcular_reforma_completa"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/reforma-completa/?refAreaTotal={area}&refCustoPorM2={custoPorM2}&refValorFixo={valorFixo}&refMargem={margemPct}&refAluguel={aluguelMes}&refDiasAluguel={diasAluguel}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "calculadora-materiais",
   "nome": "Calculadora de Materiais",
   "hub": "reforma",
   "url": "https://estimei.com.br/calculadoras/calculadora-materiais/",
   "descricao": "Descubra a quantidade exata de materiais para sua reforma.",
   "perguntaQueResponde": "Quantos sacos de cimento, tijolos e outros materiais eu preciso comprar para essa obra?",
   "entradas": {
    "type": "object",
    "properties": {
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área da obra, em m².",
      "x-campoSite": "matArea"
     },
     "custoPorM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo de materiais por m², em R$. Use isso OU valorFixo.",
      "x-campoSite": "matCustoPorM2",
      "x-camposJunto": {
       "matTipoObra": "personalizada"
      }
     },
     "valorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total de materiais já conhecido, em R$. Use isso OU custoPorM2.",
      "x-campoSite": "matValorFixo",
      "x-camposJunto": {
       "matTipoObra": "valor_fixo"
      }
     },
     "freteEntulhoPct": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Frete + descarte de entulho, em % sobre o total de materiais. Padrão 0.",
      "x-campoSite": "matFreteEntulho"
     }
    },
    "required": [
     "area"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "area": {
      "type": "number",
      "description": "Área, em m²."
     },
     "totalMat": {
      "type": "number",
      "description": "Materiais, em R$."
     },
     "custoPorM2": {
      "type": "number",
      "description": "Materiais por m², em R$."
     },
     "freteEntulho": {
      "type": "number",
      "description": "Frete e caçamba de entulho, em R$."
     },
     "freteEntulhoPct": {
      "type": "number",
      "description": "Frete e entulho sobre os materiais, em %."
     },
     "totalGeral": {
      "type": "number",
      "description": "Materiais + frete e entulho, em R$."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "area",
     "totalMat",
     "custoPorM2",
     "freteEntulho",
     "freteEntulhoPct",
     "totalGeral",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Tinta = área × 2 ÷ 5 litros (área pintada estimada em 2× a do piso, 5 m² por litro)",
    "Piso = área × 1,10 m² (10% de perda) — reformas média e completa e construção nova",
    "Tijolos = cômodos × 3,5 paredes × 40 — reforma completa e construção nova",
    "Cimento = área ÷ 5 sacos; areia = área × 0,1 m³",
    "Elétrica: 1 ponto a cada 5 m²; hidráulica: 1 ponto a cada 8 m²",
    "Os preços de referência saem do SINAPI, ajustados ao seu estado (CUB do estado ÷ CUB de SP) e à qualidade, e depois calibrados por um fator único para que a soma bata com a parcela de materiais da estimativa pelo CUB. O preço que você digitar sempre prevalece. Frete e descarte de entulho entram como percentual sobre o total. Exemplo (o cenário verificado pela suíte de testes): R$ 400/m² em 50 m² dão R$ 20.000 de materiais; com 10% de frete e entulho, R$ 22.000."
   ],
   "fontes": [
    {
     "nome": "SINAPI / IBGE / Caixa — Tabela oficial com atualização mensal",
     "detalhe": "preços de referência de materiais, ajustados ao estado e calibrados pelo CUB"
    },
    {
     "nome": "CUB/m² dos Sinduscons (ABNT NBR 12.721:2006)",
     "detalhe": "custo unitário básico de cada estado, divulgado mensalmente — base da estimativa, na versão sem desoneração"
    },
    {
     "nome": "ABNT NBR 5410",
     "detalhe": "instalações elétricas de baixa tensão — pontos e circuitos estimados"
    },
    {
     "nome": "ABNT NBR 5626:2020",
     "detalhe": "sistemas prediais de água fria e água quente — pontos hidráulicos estimados"
    },
    {
     "nome": "ABNT NBR 16.280:2015",
     "detalhe": "sistema de gestão de reformas em edificações: plano de reforma e responsáveis técnicos"
    }
   ],
   "limitacoes": [
    "Projeto executivo assinado por engenheiro ou arquiteto com recolhimento de ART/RRT (NBR 16.280)",
    "Vistoria estrutural e técnica presencial das instalações elétricas e hidráulicas",
    "Orçamentos comerciais fechados de fornecedores locais, considerando perdas e frete"
   ],
   "exemploAuditado": {
    "cenario": "Materiais a R$ 400/m² em 50 m² com 10% de frete e descarte de entulho",
    "entradasSite": {
     "matEstado": "SP",
     "matArea": 50,
     "matComodos": 3,
     "matAltura": 2.8,
     "matTipoObra": "personalizada",
     "matQualidade": "medio",
     "matValorFixo": "",
     "matCustoPorM2": 400,
     "matPrecoTinta": "",
     "matPrecoPiso": "",
     "matPrecoTijolo": "",
     "matPrecoCimento": "",
     "matPrecoAreia": "",
     "matFreteEntulho": 10
    },
    "entradasMCP": {
     "area": 50,
     "valorFixo": "",
     "custoPorM2": 400,
     "freteEntulhoPct": 10
    },
    "esperado": {
     "totalMat": 20000,
     "custoPorM2": 400,
     "freteEntulho": 2000,
     "freteEntulhoPct": 10,
     "totalGeral": 22000,
     "area": 50,
     "comodos": 3,
     "altura": 2.8,
     "tipo": "personalizada",
     "tipoLabel": "Custo Personalizado por m²",
     "qualidade": "medio",
     "estado": "SP",
     "ehTipoCUB": false,
     "ehConstrucao": false,
     "itensMateriaisEhReferencia": true
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual (materiais.js:324-330). Modo 'personalizada': totalMat = round(400 × 50) = 20.000, SEM fator de qualidade (o ramo não aplica fatorQual — trava contra uma regressão que passasse a multiplicar o valor informado). custo/m² = round(20.000/50) = 400,00. Frete/entulho incide SÓ sobre materiais (não sobre um total já somado): round(20.000 × 10/100) = 2.000 ⇒ total geral = 22.000. O cenário também congela que 'personalizada' exige área (materiais.js:194) e que ehConstrucao=false não gera custo de estrutura. NÃO depende do CUB — cubTotal/cubRefTotal/cubRefDiffPct ficam fora do esperado."
   },
   "mcp": {
    "ferramenta": "calcular_materiais_reforma"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/calculadora-materiais/?matArea={area}&matCustoPorM2={custoPorM2}&matValorFixo={valorFixo}&matFreteEntulho={freteEntulhoPct}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "calculadora-piso",
   "nome": "Calculadora de Piso",
   "hub": "reforma",
   "url": "https://estimei.com.br/calculadoras/calculadora-piso/",
   "descricao": "Calcule a quantidade exata de piso ou revestimento.",
   "perguntaQueResponde": "Quantas peças de piso eu preciso comprar para cobrir esse cômodo, já considerando a perda de corte?",
   "entradas": {
    "type": "object",
    "properties": {
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do cômodo a revestir, em m².",
      "x-campoSite": "pisoArea"
     },
     "larguraCm": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Largura da peça, em cm.",
      "x-campoSite": "pisoLargura"
     },
     "comprimentoCm": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Comprimento da peça, em cm.",
      "x-campoSite": "pisoComp"
     },
     "assentamento": {
      "type": "string",
      "enum": [
       "reto",
       "diagonal",
       "espinha",
       "mosaico"
      ],
      "default": "reto",
      "description": "Tipo de assentamento (muda a perda: 10/15/18/25%). Padrão \"reto\".",
      "x-campoSite": "pisoAssentamento"
     }
    },
    "required": [
     "area",
     "larguraCm",
     "comprimentoCm"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "area": {
      "type": "number",
      "description": "Área a cobrir, em m²."
     },
     "larguraCm": {
      "type": "number",
      "description": "Largura da peça, em cm."
     },
     "comprimentoCm": {
      "type": "number",
      "description": "Comprimento da peça, em cm."
     },
     "assentamento": {
      "type": "string",
      "description": "Tipo de assentamento."
     },
     "perdaPct": {
      "type": "number",
      "description": "Perda considerada como FRAÇÃO (0,1 = 10%), não em %."
     },
     "areaPecaM2": {
      "type": "number",
      "description": "Área de uma peça, em m²."
     },
     "areaComPerda": {
      "type": "number",
      "description": "Área a comprar com a perda, em m²."
     },
     "pecasTotais": {
      "type": "number",
      "description": "Número de peças a comprar."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "area",
     "larguraCm",
     "comprimentoCm",
     "assentamento",
     "perdaPct",
     "areaPecaM2",
     "areaComPerda",
     "pecasTotais",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Área de compra = área do cômodo × (1 + perda): reto 10% · diagonal 15% · espinha de peixe 18% · mosaico 25%",
    "Peças = área de compra ÷ área de uma peça, arredondado para cima",
    "Caixas = área de compra ÷ m² por caixa (a referência do formato, ou a que você informar), arredondado para cima",
    "Argamassa = área × consumo: 4,5 kg/m² na cerâmica (AC-I); 6 kg/m² no porcelanato e na pedra (AC-III), ou 12 kg/m² quando a peça tem 900 cm² ou mais (dupla colagem) — em sacos de 20 kg",
    "Rejunte = área × 0,3 kg/m², em embalagens de 5 kg",
    "Custo = área de compra × preço do m² + argamassa × R$ 5/kg + rejunte × R$ 8/kg",
    "Exemplo (o cenário verificado pela suíte de testes): 40 m² de cerâmica 60×60 cm em assentamento reto dão 44 m² de compra; cada peça tem 0,36 m², então são 123 peças. Laminado e vinílico não usam argamassa nem rejunte."
   ],
   "fontes": [
    {
     "nome": "SINAPI / IBGE / Caixa — Tabela oficial com atualização mensal",
     "detalhe": "referência de preço do m² por tipo de piso, ajustada ao estado"
    },
    {
     "nome": "CUB/m² dos Sinduscons (ABNT NBR 12.721:2006)",
     "detalhe": "fator regional: CUB do estado ÷ CUB de São Paulo, aplicado ao preço e à faixa de avaliação"
    },
    {
     "nome": "ABNT NBR 13.753",
     "detalhe": "revestimento de piso com placas cerâmicas e argamassa colante — dupla colagem em placas a partir de 900 cm²"
    },
    {
     "nome": "ABNT NBR 14.081-1",
     "detalhe": "argamassa colante: AC-I (interno), AC-II (interno e externo) e AC-III (alta aderência)"
    },
    {
     "nome": "ABNT NBR 14.992",
     "detalhe": "argamassa de rejuntamento de placas cerâmicas"
    },
    {
     "nome": "ABNT NBR ISO 13006",
     "detalhe": "placas cerâmicas: definições, classificação e marcação (norma vigente desde 2020, no lugar das antigas especificações brasileiras)"
    }
   ],
   "limitacoes": [
    "Custos de argamassa e rejunte usam preços médios fixos por quilo, e a perda de corte é uma referência — cômodos com muitos recortes perdem mais. Confirme a metragem da caixa com a loja antes de fechar a compra e guarde uma ou duas caixas para reparos futuros.",
    "Projeto executivo assinado por engenheiro ou arquiteto com recolhimento de ART/RRT (NBR 16.280)",
    "Vistoria estrutural e técnica presencial das instalações elétricas e hidráulicas",
    "Orçamentos comerciais fechados de fornecedores locais, considerando perdas e frete"
   ],
   "exemploAuditado": {
    "cenario": "40 m² de cerâmica 60×60 cm, assentamento reto (perda 10%)",
    "entradasSite": {
     "pisoArea": 40,
     "pisoLargura": 60,
     "pisoComp": 60,
     "pisoTipo": "ceramica",
     "pisoAssentamento": "reto",
     "pisoEstado": "SP"
    },
    "entradasMCP": {
     "area": 40,
     "larguraCm": 60,
     "comprimentoCm": 60,
     "assentamento": "reto"
    },
    "esperado": {
     "areaPecaM2": 0.36,
     "areaComPerda": 44,
     "pecasTotais": 123
    },
    "tolerancia": 0.01,
    "verificacao": "Peça de 0,60×0,60 = 0,36 m². Perda de 10% para assentamento reto (NBR 13753) → 44 m². Peças = teto(44/0,36) = 123 — arredondamento para cima obrigatório. Cenário trava a tabela de perdas por tipo de assentamento (reto 10% / diagonal 15% / espinha 18% / mosaico 25%)."
   },
   "mcp": {
    "ferramenta": "calcular_piso"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/calculadora-piso/?pisoArea={area}&pisoLargura={larguraCm}&pisoComp={comprimentoCm}&pisoAssentamento={assentamento}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "calculadora-tinta",
   "nome": "Calculadora de Tinta",
   "hub": "reforma",
   "url": "https://estimei.com.br/calculadoras/calculadora-tinta/",
   "descricao": "Descubra quantas latas de tinta você precisa para pintar.",
   "perguntaQueResponde": "Quantas latas de tinta eu preciso comprar para pintar essa parede com duas demãos?",
   "entradas": {
    "type": "object",
    "properties": {
     "area": {
      "type": "number",
      "minimum": 0,
      "description": "Área de parede a pintar, em m² (modo direto). Padrão 0 — use isso OU comprimento+altura+paredes.",
      "x-campoSite": "tintaArea"
     },
     "comprimento": {
      "type": "number",
      "minimum": 0,
      "description": "Comprimento do ambiente, em m (modo indireto).",
      "x-campoSite": "tintaComprimento"
     },
     "altura": {
      "type": "number",
      "minimum": 0,
      "description": "Pé-direito, em m (modo indireto).",
      "x-campoSite": "tintaAltura"
     },
     "paredes": {
      "type": "integer",
      "minimum": 0,
      "description": "Número de paredes a pintar (modo indireto).",
      "x-campoSite": "tintaParedes"
     },
     "largura": {
      "type": "number",
      "minimum": 0,
      "description": "Largura do ambiente, em m — só usado se incluirTeto=true.",
      "x-campoSite": "tintaLargura"
     },
     "incluirTeto": {
      "type": "boolean",
      "default": false,
      "description": "Se true, soma a área do teto (comprimento×largura). Padrão false.",
      "x-campoSite": "tintaTeto",
      "x-valoresSite": {
       "true": "sim",
       "false": "nao"
      }
     },
     "demao": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "default": 2,
      "description": "Número de demãos. Padrão 2.",
      "x-campoSite": "tintaDemao"
     },
     "tipo": {
      "type": "string",
      "enum": [
       "latex",
       "acrilica",
       "epoxi",
       "esmalte",
       "textura"
      ],
      "default": "acrilica",
      "description": "Tipo de tinta (muda o rendimento m²/L). Padrão \"acrilica\".",
      "x-campoSite": "tintaTipo"
     }
    },
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "areaTotal": {
      "type": "number",
      "description": "Área a pintar, em m²."
     },
     "demao": {
      "type": "number",
      "description": "Número de demãos."
     },
     "tipo": {
      "type": "string",
      "description": "Tipo de tinta."
     },
     "litros": {
      "type": "number",
      "description": "Tinta necessária, em litros."
     },
     "latas18L": {
      "type": "number",
      "description": "Latas de 18 L."
     },
     "latas36L": {
      "type": "number",
      "description": "Galões de 3,6 L."
     },
     "latas1L": {
      "type": "number",
      "description": "Latas de 1 L para completar."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "areaTotal",
     "demao",
     "tipo",
     "litros",
     "latas18L",
     "latas36L",
     "latas1L",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Área = a área de parede informada, ou comprimento × altura × número de paredes; o teto, se incluído, soma comprimento × largura",
    "Litros = área × demãos ÷ rendimento por demão",
    "Rendimento (m² por litro, por demão): látex PVA 9 · acrílica 11 · esmalte 12 · epóxi 5 · textura 2",
    "Latas: primeiro as de 18 L, depois as de 3,6 L, e o resto em latas de 1 L, arredondando para cima",
    "Kit: selador de 1 L a cada 10 m², massa corrida de 0,5 kg/m², 1 lixa a cada 5 m² e 1 rolo de fita a cada 20 m²",
    "Custo = litros × preço do litro (o que você informar, ou a referência do tipo ajustada ao estado)",
    "Exemplo (o cenário verificado pela suíte de testes): 60 m² de parede, 2 demãos de tinta acrílica — 120 m² ÷ 11 = 10,9 litros, ou 3 galões de 3,6 L mais 1 lata de 1 L. Como não se compra fração de lata, a última embalagem é sempre arredondada para cima."
   ],
   "fontes": [
    {
     "nome": "SINAPI / IBGE / Caixa — Tabela oficial com atualização mensal",
     "detalhe": "referência de preço do litro por tipo de tinta, ajustada ao estado"
    },
    {
     "nome": "CUB/m² dos Sinduscons (ABNT NBR 12.721:2006)",
     "detalhe": "fator regional: CUB do estado ÷ CUB de São Paulo, aplicado ao preço e à faixa de avaliação"
    },
    {
     "nome": "ABNT NBR 15.079-1:2019",
     "detalhe": "tinta látex: requisitos mínimos de desempenho nos níveis econômica, standard e premium"
    },
    {
     "nome": "Especificações técnicas de fabricantes",
     "detalhe": "rendimento por demão de cada tipo de tinta, em condições reais de parede"
    }
   ],
   "limitacoes": [
    "O rendimento real varia com a porosidade da parede, a técnica e a diluição; paredes novas chegam a consumir 20% a 40% a mais. A NBR 15.079 classifica a tinta látex em econômica, standard e premium pelo desempenho, e o rendimento declarado muda entre essas linhas — confira o da sua lata e reserve uma sobra para retoques.",
    "Projeto executivo assinado por engenheiro ou arquiteto com recolhimento de ART/RRT (NBR 16.280)",
    "Vistoria estrutural e técnica presencial das instalações elétricas e hidráulicas",
    "Orçamentos comerciais fechados de fornecedores locais, considerando perdas e frete"
   ],
   "exemploAuditado": {
    "cenario": "60 m² de parede, 2 demãos, tinta acrílica (rendimento 11 m²/L)",
    "entradasSite": {
     "tintaArea": 60,
     "tintaTeto": "nao",
     "tintaDemao": 2,
     "tintaTipo": "acrilica",
     "tintaEstado": "SP"
    },
    "entradasMCP": {
     "area": 60,
     "incluirTeto": false,
     "demao": 2,
     "tipo": "acrilica"
    },
    "esperado": {
     "areaTotal": 60,
     "litros": 10.9,
     "latas18L": 0,
     "latas36L": 3,
     "latas1L": 1
    },
    "tolerancia": 0.01,
    "verificacao": "Física direta: (60 m² × 2 demãos) / 11 m²·L⁻¹ = 10,9 L. Decomposição em embalagens comerciais verificada: 0 latas de 18L, 3 de 3,6L (10,8L) e 1 de 1L para o resto — o arredondamento PARA CIMA na última embalagem é correto (não se compra fração de lata)."
   },
   "mcp": {
    "ferramenta": "calcular_tinta"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/calculadora-tinta/?tintaArea={area}&tintaComprimento={comprimento}&tintaAltura={altura}&tintaParedes={paredes}&tintaLargura={largura}&tintaTeto={incluirTeto}&tintaDemao={demao}&tintaTipo={tipo}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "orcamento-por-ambiente",
   "nome": "Orçamento por Ambiente",
   "hub": "reforma",
   "url": "https://estimei.com.br/calculadoras/orcamento-por-ambiente/",
   "descricao": "Calcule o custo estimado para reformar cada cômodo da casa.",
   "perguntaQueResponde": "Quanto custa reformar só este cômodo específico, sem orçar a casa inteira?",
   "entradas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "SP",
      "description": "Sigla do estado (ex.: \"SP\"), só usado nos modos por CUB. Padrão \"SP\".",
      "x-campoSite": "ambEstado"
     },
     "ambiente": {
      "type": "string",
      "enum": [
       "cozinha",
       "banheiro",
       "quarto",
       "sala",
       "jantar",
       "area",
       "escritorio",
       "garagem"
      ],
      "default": "quarto",
      "description": "Tipo de ambiente. Padrão \"quarto\".",
      "x-campoSite": "ambTipo"
     },
     "area": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Área do ambiente, em m².",
      "x-campoSite": "ambArea"
     },
     "tipoReforma": {
      "type": "string",
      "enum": [
       "pintura",
       "basica",
       "media",
       "completa",
       "valor_fixo",
       "personalizada"
      ],
      "default": "media",
      "description": "Nível/modo da reforma. Padrão \"media\".",
      "x-campoSite": "ambTipoReforma"
     },
     "custoPorM2": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Custo por m², em R$ — obrigatório se tipoReforma=\"personalizada\".",
      "x-campoSite": "ambCustoPorM2"
     },
     "valorFixo": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total, em R$ — obrigatório se tipoReforma=\"valor_fixo\".",
      "x-campoSite": "ambValorFixo"
     }
    },
    "required": [
     "area"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "estado": {
      "type": "string",
      "description": "Sigla do estado usada no CUB."
     },
     "ambiente": {
      "type": "string",
      "description": "Ambiente orçado."
     },
     "area": {
      "type": "number",
      "description": "Área do ambiente, em m²."
     },
     "tipoReforma": {
      "type": "string",
      "description": "Nível da reforma."
     },
     "ehTipoCUB": {
      "type": "boolean",
      "description": "true se o custo veio do CUB da UF."
     },
     "cubTotal": {
      "type": "number",
      "description": "CUB total da UF por m² (0 fora dos níveis por CUB), em R$."
     },
     "custoPorM2": {
      "type": "number",
      "description": "Custo por m², em R$."
     },
     "custoTotal": {
      "type": "number",
      "description": "Custo total do ambiente, em R$."
     },
     "valorMat": {
      "type": "number",
      "description": "Materiais, em R$."
     },
     "valorMO": {
      "type": "number",
      "description": "Mão de obra, em R$."
     },
     "fatorComp": {
      "type": "number",
      "description": "Fator de complexidade do ambiente (1 = padrão)."
     },
     "modelo1Autogestao": {
      "type": "number",
      "description": "Custo com autogestão da obra (materiais + mão de obra; 0 fora dos níveis por CUB), em R$."
     },
     "modelo2Hibrido": {
      "type": "number",
      "description": "Custo no modelo híbrido (mão de obra +10%; 0 fora dos níveis por CUB), em R$."
     },
     "modelo3EmpMin": {
      "type": "number",
      "description": "Custo com empreiteira, faixa mínima (mão de obra +20%; 0 fora dos níveis por CUB), em R$."
     },
     "modelo3EmpMax": {
      "type": "number",
      "description": "Custo com empreiteira, faixa máxima (mão de obra +30%; 0 fora dos níveis por CUB), em R$."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "estado",
     "ambiente",
     "area",
     "tipoReforma",
     "ehTipoCUB",
     "cubTotal",
     "custoPorM2",
     "custoTotal",
     "valorMat",
     "valorMO",
     "fatorComp",
     "modelo1Autogestao",
     "modelo2Hibrido",
     "modelo3EmpMin",
     "modelo3EmpMax",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Fórmula paramétrica (demais ambientes, e banheiro/cozinha nas reformas Pintura e Básica): custo por m² = CUB do estado × fator do tipo de reforma × fator do cômodo; custo total = custo por m² × área",
    "Fator do cômodo: cozinha e banheiro 1,2 · área de serviço e garagem 0,8 · quarto, salas e escritório 1,0",
    "Orçamento item a item (banheiro e cozinha nas reformas Média e Completa): cada serviço com a composição do SINAPI do seu estado, sobre uma geometria estimada — perímetro de 4,2 × √área (ou o real, se você informar largura e comprimento), pé-direito de 2,60 m e 2 m² de vãos descontados da parede",
    "Nos dois caminhos, o valor é o de autogestão; a calculadora mostra também o custo com um profissional coordenando (+10% sobre a mão de obra) e com empreiteiro geral (+20% a 30% sobre a mão de obra). Os números de exemplo mudam com o CUB e o SINAPI do mês — o bloco \"Exemplo Prático\", abaixo, mostra o cálculo com os dados atuais."
   ],
   "fontes": [
    {
     "nome": "SINAPI / IBGE / Caixa — Tabela oficial com atualização mensal",
     "detalhe": "composições do estado usadas no orçamento item a item de banheiro e cozinha"
    },
    {
     "nome": "CUB/m² dos Sinduscons (ABNT NBR 12.721:2006)",
     "detalhe": "custo unitário básico de cada estado, divulgado mensalmente — base da estimativa, na versão sem desoneração"
    },
    {
     "nome": "Lei 12.546/2011",
     "detalhe": "desoneração da folha — motivo de usar o CUB sem desoneração para obra contratada por pessoa física"
    },
    {
     "nome": "ABNT NBR 16.280:2015",
     "detalhe": "sistema de gestão de reformas em edificações: plano de reforma e responsáveis técnicos"
    }
   ],
   "limitacoes": [
    "Projeto executivo assinado por engenheiro ou arquiteto com recolhimento de ART/RRT (NBR 16.280)",
    "Vistoria estrutural e técnica presencial das instalações elétricas e hidráulicas",
    "Orçamentos comerciais fechados de fornecedores locais, considerando perdas e frete"
   ],
   "exemploAuditado": {
    "cenario": "Cozinha de 12 m², reforma Média, SP — orçamento itemizado SINAPI (Regra 283)",
    "entradasSite": {
     "ambEstado": "SP",
     "ambTipo": "cozinha",
     "ambArea": 12,
     "ambTipoReforma": "media",
     "ambValorFixo": "",
     "ambCustoPorM2": "",
     "ambLargura": "",
     "ambComprimento": ""
    },
    "entradasMCP": {
     "estado": "SP",
     "ambiente": "cozinha",
     "area": 12,
     "tipoReforma": "media",
     "valorFixo": "",
     "custoPorM2": ""
    },
    "esperado": {
     "cubTotal": 2235.58,
     "custoPorM2": 546.3,
     "custoTotal": 6555.6,
     "valorMat": 3067.01,
     "valorMO": 3488.59,
     "pctMaoObraTipo": 0.532154,
     "fatorComp": 1.2,
     "modelo1Autogestao": 6555.6,
     "modelo2Hibrido": 6904.46,
     "modelo3EmpMin": 7253.32,
     "modelo3EmpMax": 7602.18,
     "cubRefTotal": 0,
     "cubRefMat": 0,
     "cubRefMO": 0,
     "cubRefDiffPct": 0,
     "area": 12,
     "tipo": "cozinha",
     "tipoReforma": "media",
     "tipoReformaLabel": "Média",
     "prioridade": "alta",
     "estado": "SP",
     "estadoNome": "São Paulo",
     "ehTipoCUB": true,
     "ehSinapi": true
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação independente em Python (não pelo código do site), direto das abas CSD e 'SEM Desoneração' do arquivo oficial: perímetro = 4,2×√área, pé-direito 2,60, vãos 2,0 m²; cada item: qtd arredondada a 2 casas × preço SP, total do item arredondado; mão de obra = soma de round(total do item × %MO oficial). RECONGELADO 23/09/2026: antes pela fórmula CUB×0,30×1,2 (R$ 9.657,72); agora itemizado (bancada 93441, meia altura 87275, 3 tomadas 20 A com eletroduto/cabo, 2 pontos de água e 2 de esgoto, pintura de teto e paredes secas) — decisão do CTO.",
    "dadosFixados": {
     "cub": {
      "SP": 2235.58
     },
     "sinapi": {
      "uf": "SP",
      "composicoes": {
       "87251": [
        52.15,
        0.2608
       ],
       "87275": [
        80.54,
        0.5554
       ],
       "88484": [
        6.46,
        0.709
       ],
       "88485": [
        5.17,
        0.6364
       ],
       "89356": [
        34.54,
        0.8266
       ],
       "89362": [
        13.51,
        0.8446
       ],
       "89711": [
        31.15,
        0.7066
       ],
       "89986": [
        73.27,
        0.1875
       ],
       "91852": [
        12.08,
        0.8245
       ],
       "91926": [
        5.76,
        0.4028
       ],
       "91940": [
        26.15,
        0.9082
       ],
       "91953": [
        40.18,
        0.72
       ],
       "91997": [
        50.14,
        0.7134
       ],
       "93441": [
        1436.65,
        0.1025
       ],
       "97633": [
        33.43,
        1
       ],
       "97663": [
        19.1,
        1
       ],
       "104640": [
        16.22,
        0.693
       ],
       "104642": [
        13.06,
        0.6187
       ]
      }
     },
     "nota": "CUB de SP e as composições SINAPI de SP (preço, % de mão de obra) travados na referência 08/2026 (arquivo oficial SINAPI-2026-08-formato-xlsx.zip, emitido 11/09/2026) — Regras 71/283: a atualização mensal dos dados não pode mudar o resultado deste teste."
    },
    "divergenciaMCP": "Nos níveis Média e Premium, banheiro e cozinha usam no site o orçamento itemizado SINAPI, que o MCP ainda não reproduz; nesses casos o MCP devolve o custo pelo CUB."
   },
   "mcp": {
    "ferramenta": "calcular_orcamento_por_ambiente"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/orcamento-por-ambiente/?ambEstado={estado}&ambTipo={ambiente}&ambArea={area}&ambTipoReforma={tipoReforma}&ambCustoPorM2={custoPorM2}&ambValorFixo={valorFixo}",
   "revisaoFormula": "30/09/2026"
  },
  {
   "id": "financiamento-reforma",
   "nome": "Financiamento para Reforma",
   "hub": "reforma",
   "url": "https://estimei.com.br/calculadoras/financiamento-reforma/",
   "descricao": "Simule o financiamento da sua reforma e compare as opções.",
   "perguntaQueResponde": "Se eu financiar a reforma, qual vai ser a parcela e o custo total, e vale mais SAC ou Price?",
   "entradas": {
    "type": "object",
    "properties": {
     "valor": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Valor total da reforma, em R$.",
      "x-campoSite": "finRefValor"
     },
     "entrada": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Entrada, em R$. Padrão 0.",
      "x-campoSite": "finRefEntrada"
     },
     "taxaMensalPct": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Taxa de juros MENSAL, em % (ex.: 2 para 2%/mês).",
      "x-campoSite": "finRefTaxa"
     },
     "prazoMeses": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Prazo, em MESES.",
      "x-campoSite": "finRefPrazo"
     }
    },
    "required": [
     "valor",
     "taxaMensalPct",
     "prazoMeses"
    ],
    "additionalProperties": false
   },
   "saidas": {
    "type": "object",
    "properties": {
     "valor": {
      "type": "number",
      "description": "Valor da reforma, em R$."
     },
     "entrada": {
      "type": "number",
      "description": "Entrada, em R$."
     },
     "financiado": {
      "type": "number",
      "description": "Valor financiado, em R$."
     },
     "taxaMensalPct": {
      "type": "number",
      "description": "Taxa de juros ao mês, em %."
     },
     "prazoMeses": {
      "type": "number",
      "description": "Prazo, em meses."
     },
     "parcelaPrice": {
      "type": "number",
      "description": "Parcela mensal fixa na Price, em R$."
     },
     "totalPrice": {
      "type": "number",
      "description": "Soma das parcelas na Price, em R$."
     },
     "jurosPrice": {
      "type": "number",
      "description": "Juros pagos na Price, em R$."
     },
     "pctJuros": {
      "type": "number",
      "description": "Juros da Price sobre o valor financiado, em %."
     },
     "amort": {
      "type": "number",
      "description": "Amortização mensal constante no SAC, em R$."
     },
     "primeiraP": {
      "type": "number",
      "description": "Primeira parcela no SAC, em R$."
     },
     "ultimaP": {
      "type": "number",
      "description": "Última parcela no SAC, em R$."
     },
     "totalSAC": {
      "type": "number",
      "description": "Soma das parcelas no SAC, em R$."
     },
     "jurosSAC": {
      "type": "number",
      "description": "Juros pagos no SAC, em R$."
     },
     "pctJurosSAC": {
      "type": "number",
      "description": "Juros do SAC sobre o valor financiado, em %."
     },
     "economiaSAC": {
      "type": "number",
      "description": "Total Price − total SAC, em R$."
     },
     "menorTaxaModalidade": {
      "type": "number",
      "description": "Menor taxa de referência entre as modalidades de crédito para reforma, ao mês (valor fixo da calculadora), em %."
     },
     "fonte": {
      "type": "string",
      "description": "Página da calculadora no site do Estimei com a mesma fórmula."
     },
     "aviso": {
      "type": "string",
      "description": "Aviso de uso: estimativa educativa, não substitui profissional habilitado."
     }
    },
    "required": [
     "valor",
     "entrada",
     "financiado",
     "taxaMensalPct",
     "prazoMeses",
     "parcelaPrice",
     "totalPrice",
     "jurosPrice",
     "pctJuros",
     "amort",
     "primeiraP",
     "ultimaP",
     "totalSAC",
     "jurosSAC",
     "pctJurosSAC",
     "economiaSAC",
     "menorTaxaModalidade",
     "fonte",
     "aviso"
    ],
    "additionalProperties": false
   },
   "formula": [
    "Valor financiado = valor da reforma − entrada",
    "Price: parcela = financiado × i ÷ (1 − (1 + i)−n), com i = taxa mensal e n = prazo em meses; total = parcela × n",
    "SAC: amortização = financiado ÷ n; cada parcela = amortização + juros sobre o saldo devedor do mês",
    "Juros totais = total pago − valor financiado",
    "Poupar no CDI: aporte mensal que, rendendo o CDI mensal equivalente, junta o valor financiado no mesmo prazo",
    "Exemplo (o cenário verificado pela suíte de testes): reforma de R$ 30 mil com R$ 6 mil de entrada, a 2% ao mês em 24 meses. No Price, 24 parcelas de R$ 1.268,91, total de R$ 30.453,84 (R$ 6.453,84 de juros). No SAC, a primeira parcela é de R$ 1.480 e a última de R$ 1.020, com R$ 6.000 de juros — R$ 453,84 a menos."
   ],
   "fontes": [
    {
     "nome": "Portaria MCID nº 499/2026",
     "detalhe": "Reforma Casa Brasil: taxa única de 0,99% ao mês, renda até R$ 13 mil, até 72 meses e R$ 50 mil"
    },
    {
     "nome": "Banco Central — taxas médias de crédito e CDI",
     "detalhe": "referência das demais modalidades e do comparativo de poupar no CDI"
    },
    {
     "nome": "Matemática financeira — Tabela Price e SAC",
     "detalhe": "parcela fixa pela fórmula de anuidade; SAC com amortização constante e juros sobre o saldo"
    }
   ],
   "limitacoes": [
    "A simulação não inclui seguros, tarifas nem IOF — por isso compare sempre o CET (Custo Efetivo Total) da proposta. O rendimento do CDI é bruto, sem Imposto de Renda, e a taxa real depende do seu perfil de crédito.",
    "Projeto executivo assinado por engenheiro ou arquiteto com recolhimento de ART/RRT (NBR 16.280)",
    "Vistoria estrutural e técnica presencial das instalações elétricas e hidráulicas",
    "Orçamentos comerciais fechados de fornecedores locais, considerando perdas e frete"
   ],
   "exemploAuditado": {
    "cenario": "R$ 30 mil de reforma com R$ 6 mil de entrada, 2%/mês em 24 meses — Price vs SAC, sem comparativo de CDI",
    "entradasSite": {
     "finRefValor": 30000,
     "finRefEntrada": 6000,
     "finRefTaxa": 2,
     "finRefPrazo": 24,
     "finRefTipo": "comparativo",
     "finRefComparar": "nao"
    },
    "entradasMCP": {
     "valor": 30000,
     "entrada": 6000,
     "taxaMensalPct": 2,
     "prazoMeses": 24
    },
    "esperado": {
     "valor": 30000,
     "entrada": 6000,
     "financiado": 24000,
     "taxaMensalPct": 2,
     "prazoMeses": 24,
     "parcelaPrice": 1268.91,
     "totalPrice": 30453.84,
     "jurosPrice": 6453.84,
     "pctJuros": 26.9,
     "amort": 1000,
     "primeiraP": 1480,
     "ultimaP": 1020,
     "totalSAC": 30000,
     "jurosSAC": 6000,
     "pctJurosSAC": 25,
     "economiaSAC": 453.84,
     "tipo": "comparativo",
     "compararCDI": false,
     "menorTaxaModalidade": 0.99
    },
    "tolerancia": 0.01,
    "verificacao": "Derivação manual (financiamento-reforma.js:49-82) + prova fechada independente para o SAC. Financiado = 30.000 − 6.000 = 24.000 (a entrada abate o principal — o bug histórico da Análise Exclusiva do PDF era ignorar isso). PRICE: PMT = 24.000 × (0,02 × 1,02^24)/(1,02^24 − 1), com 1,02^24 = 1,6084372… ⇒ 1.268,91/mês; total = round(1.268,91 × 24) = 30.453,84 (o total usa a PARCELA JÁ ARREDONDADA, não o PMT exato — trava a ordem); juros = 6.453,84 e pctJuros = round(6.453,84/24.000×100, 1 casa) = 26,9%. SAC verificado por soma fechada: amortização = 1.000/mês; juros = 2% × (24.000+23.000+…+1.000) = 0,02 × 300.000 = 6.000 ⇒ total exato 30.000, 1ª parcela = 1.000 + 0,02×24.000 = 1.480, última = 1.000 + 0,02×1.000 = 1.020, pctJurosSAC = 25,0%. Economia do SAC = 30.453,84 − 30.000 = 453,84 — e a propriedade matemática totalSAC ≤ totalPrice fica travada. Campos dependentes de Benchmarks (aporteMensalCDI, totalAportesCDI, diferencaMensalCDI, economiaPoupar, cdiAnual, taxaCDIMPct) foram EXCLUÍDOS do esperado; compararCDI=false confirma que o bloco de CDI não foi ativado. menorTaxaModalidade=0,99 congela a 1ª linha da tabela _MODALIDADES_CREDITO (Reforma Casa Brasil, Caixa) — RECONGELADO 06/09/2026: era 1,17 (Reforma Casa Brasil MCMV F1), o programa passou por reestruturação em maio/2026 (Portaria MCID nº 499/2026) que unificou as 2 faixas antigas (F1 1,17%/F2 1,95%) numa taxa única de 0,99%/mês — achado numa varredura de índices, não uma regressão de código."
   },
   "mcp": {
    "ferramenta": "calcular_financiamento_reforma"
   },
   "deepLinkModelo": "https://estimei.com.br/calculadoras/financiamento-reforma/?finRefValor={valor}&finRefEntrada={entrada}&finRefTaxa={taxaMensalPct}&finRefPrazo={prazoMeses}",
   "revisaoFormula": "30/09/2026"
  }
 ]
}
