Simulação Avaliação
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1.0">
<title>Avaliação Imobiliária — Portugal</title>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=DM+Sans:wght@300;400;500;600&family=DM+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>
:root {
--ink: #1a1a2e;
--ink2: #3d3d5c;
--ink3: #7a7a9a;
--gold: #c9a84c;
--gold-lt: #f0e0b0;
--gold-dk: #8a6a1e;
--bg: #f8f6f1;
--bg2: #f0ede4;
--bg3: #e8e4d8;
--white: #ffffff;
--green: #2d7a4f;
--red: #b33a3a;
--blue: #2a5a8a;
--border: #d8d2c0;
--radius: 6px;
--shadow: 0 2px 16px rgba(26,26,46,.08);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'DM Sans', sans-serif;
background: var(--bg);
color: var(--ink);
min-height: 100vh;
}
/* ── HEADER ── */
.header {
background: var(--ink);
padding: 28px 40px 24px;
display: flex;
align-items: baseline;
gap: 16px;
border-bottom: 3px solid var(--gold);
}
.header h1 {
font-family: 'Playfair Display', serif;
font-size: 22px;
color: var(--white);
letter-spacing: .02em;
}
.header span {
font-size: 13px;
color: var(--gold);
font-weight: 500;
letter-spacing: .06em;
text-transform: uppercase;
}
/* ── LAYOUT ── */
.layout {
display: grid;
grid-template-columns: 400px 1fr;
min-height: calc(100vh - 83px);
}
/* ── SIDEBAR / FORM ── */
.sidebar {
background: var(--white);
border-right: 1px solid var(--border);
overflow-y: auto;
padding: 28px 24px 40px;
}
.s-section { margin-bottom: 24px; }
.s-label {
font-size: 10px;
font-weight: 600;
letter-spacing: .1em;
text-transform: uppercase;
color: var(--ink3);
margin-bottom: 10px;
padding-bottom: 6px;
border-bottom: 1px solid var(--bg3);
}
.field { margin-bottom: 10px; }
.field label { display: block; font-size: 12px; color: var(--ink2); margin-bottom: 4px; font-weight: 500; }
.field input, .field select {
width: 100%; padding: 8px 10px; font-size: 13px;
font-family: 'DM Sans', sans-serif;
border: 1px solid var(--border); border-radius: var(--radius);
background: var(--bg); color: var(--ink);
outline: none; transition: border .15s;
}
.field input:focus, .field select:focus { border-color: var(--gold); }
.field-hint { font-size: 10px; color: var(--ink3); margin-top: 3px; }
.g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.g3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
/* search dropdown */
.srch { position: relative; }
.srch-drop {
position: absolute; top: 100%; left: 0; right: 0; z-index: 50;
background: var(--white); border: 1px solid var(--border);
border-radius: var(--radius); box-shadow: var(--shadow);
max-height: 180px; overflow-y: auto; display: none;
}
.srch-item {
padding: 7px 10px; font-size: 12px; cursor: pointer; color: var(--ink);
border-bottom: 1px solid var(--bg3);
}
.srch-item:last-child { border-bottom: none; }
.srch-item:hover, .srch-item.fc { background: var(--bg); }
.srch-item small { color: var(--ink3); margin-left: 6px; }
.srch-tag { font-size: 10px; color: var(--ink3); margin-top: 3px; }
/* toggle groups */
.tg { display: flex; flex-wrap: wrap; gap: 5px; }
.t {
padding: 4px 11px; font-size: 12px; font-family: 'DM Sans', sans-serif;
border: 1px solid var(--border); border-radius: 20px;
cursor: pointer; background: transparent; color: var(--ink2);
transition: all .12s;
}
.t:hover { border-color: var(--gold); color: var(--gold-dk); }
.t.on {
background: var(--gold-lt); color: var(--gold-dk);
border-color: var(--gold); font-weight: 500;
}
/* calc button */
.btn-calc {
width: 100%; padding: 13px; font-size: 14px; font-weight: 600;
font-family: 'DM Sans', sans-serif;
background: var(--ink); color: var(--white);
border: none; border-radius: var(--radius);
cursor: pointer; transition: background .15s;
margin-top: 8px; letter-spacing: .02em;
}
.btn-calc:hover { background: var(--ink2); }
/* ── MAIN PANEL ── */
.main {
background: var(--bg);
padding: 32px 36px 48px;
overflow-y: auto;
}
.empty-state {
display: flex; flex-direction: column;
align-items: center; justify-content: center;
height: 60vh; text-align: center; opacity: .5;
}
.empty-state svg { margin-bottom: 20px; }
.empty-state h2 { font-family: 'Playfair Display', serif; font-size: 22px; color: var(--ink); margin-bottom: 8px; }
.empty-state p { font-size: 13px; color: var(--ink3); }
/* result sections */
.result { display: none; }
.result.show { display: block; }
.r-hero {
background: var(--ink);
border-radius: 10px;
padding: 28px 32px;
margin-bottom: 24px;
display: grid;
grid-template-columns: 1fr auto;
gap: 24px;
align-items: center;
}
.r-hero-label { font-size: 11px; color: var(--gold); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 6px; }
.r-hero-value { font-family: 'Playfair Display', serif; font-size: 48px; color: var(--white); font-weight: 700; }
.r-hero-range { font-size: 13px; color: rgba(255,255,255,.5); margin-top: 4px; }
.r-hero-right { text-align: right; }
.r-hero-m2 { font-size: 13px; color: rgba(255,255,255,.6); margin-bottom: 8px; }
.score-ring {
width: 72px; height: 72px; border-radius: 50%;
border: 4px solid rgba(255,255,255,.15);
display: flex; flex-direction: column;
align-items: center; justify-content: center;
margin-left: auto;
}
.score-num { font-size: 22px; font-weight: 600; color: var(--white); }
.score-lbl { font-size: 10px; color: rgba(255,255,255,.5); }
.metrics-row {
display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
margin-bottom: 24px;
}
.metric-card {
background: var(--white); border: 1px solid var(--border);
border-radius: var(--radius); padding: 14px 16px;
}
.metric-card .mc-label { font-size: 11px; color: var(--ink3); margin-bottom: 5px; }
.metric-card .mc-value { font-size: 20px; font-weight: 600; color: var(--ink); font-family: 'DM Mono', monospace; }
.metric-card .mc-sub { font-size: 11px; color: var(--ink3); margin-top: 2px; }
/* method tabs */
.tabs { display: flex; gap: 2px; margin-bottom: 1px; }
.tab-btn {
padding: 9px 18px; font-size: 12px; font-weight: 500;
font-family: 'DM Sans', sans-serif;
background: var(--bg3); color: var(--ink3);
border: 1px solid var(--border); border-bottom: none;
border-radius: 6px 6px 0 0; cursor: pointer; transition: all .12s;
}
.tab-btn.on { background: var(--white); color: var(--ink); border-color: var(--border); }
.tab-content {
background: var(--white); border: 1px solid var(--border);
border-radius: 0 6px 6px 6px; padding: 20px 22px;
margin-bottom: 20px;
}
.tp { display: none; }
.tp.on { display: block; }
/* data table */
.dt { width: 100%; border-collapse: collapse; font-size: 13px; }
.dt tr { border-bottom: 1px solid var(--bg3); }
.dt tr:last-child { border-bottom: none; }
.dt td { padding: 7px 4px; }
.dt td:first-child { color: var(--ink2); width: 60%; }
.dt td:last-child { text-align: right; font-weight: 500; }
.dt tr.hdr td { background: var(--ink); color: var(--white); font-weight: 600; padding: 8px 6px; }
.dt tr.bold td { background: #f0ede8; font-weight: 600; color: var(--ink); }
.dt tr.gold td { background: var(--gold-lt); color: var(--gold-dk); font-weight: 700; }
.pos { color: var(--green); }
.neg { color: var(--red); }
.neu { color: var(--ink3); }
/* comparables */
.comp-table { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: 10px; }
.comp-table th { background: var(--ink); color: var(--white); padding: 8px 8px; text-align: center; font-size: 11px; font-weight: 600; }
.comp-table td { padding: 7px 8px; text-align: center; border-bottom: 1px solid var(--bg3); }
.comp-table tr:nth-child(even) td { background: var(--bg); }
.comp-table tr.foot td { background: var(--gold-lt); color: var(--gold-dk); font-weight: 600; }
/* certified CTA box */
.cta-box {
background: linear-gradient(135deg, var(--ink) 0%, #2a2a4a 100%);
border-radius: 10px; padding: 28px 32px;
margin-top: 24px;
display: flex; align-items: center; gap: 28px;
}
.cta-icon {
flex-shrink: 0;
width: 56px; height: 56px; border-radius: 50%;
background: rgba(201,168,76,.15);
border: 2px solid rgba(201,168,76,.4);
display: flex; align-items: center; justify-content: center;
}
.cta-text { flex: 1; }
.cta-text h3 {
font-family: 'Playfair Display', serif;
font-size: 18px; color: var(--white);
margin-bottom: 5px;
}
.cta-text p { font-size: 13px; color: rgba(255,255,255,.55); line-height: 1.5; }
.btn-cta {
flex-shrink: 0;
display: inline-flex; align-items: center; gap: 8px;
padding: 13px 24px; font-size: 14px; font-weight: 600;
font-family: 'DM Sans', sans-serif;
background: var(--gold); color: var(--ink);
border: none; border-radius: var(--radius);
cursor: pointer; text-decoration: none;
transition: background .15s, transform .1s;
white-space: nowrap; letter-spacing: .02em;
}
.btn-cta:hover { background: #dbb84a; transform: translateY(-1px); }
.btn-cta svg { width: 16px; height: 16px; }
@media (max-width: 700px) {
.cta-box { flex-direction: column; text-align: center; }
}
@media (max-width: 900px) {
.layout { grid-template-columns: 1fr; }
.sidebar { border-right: none; border-bottom: 1px solid var(--border); }
.metrics-row { grid-template-columns: 1fr 1fr; }
.r-hero { grid-template-columns: 1fr; }
}
</style>
</head>
<body>
<div class="header">
<h1>Avaliação Imobiliária</h1>
<span>Portugal — Todos os concelhos · 3 métodos</span>
</div>
<div class="layout">
<!-- ════════════════════════════════════════════════════════
SIDEBAR — FORMULÁRIO
═════════════════════════════════════════════════════════ -->
<aside class="sidebar">
<div class="s-section">
<div class="s-label">Identificação</div>
<div class="field"><label>Referência / Endereço</label><input type="text" placeholder="ex: Rua do Mar, 12 – 2ºD"></div>
<div class="field"><label>Nome do requerente</label><input type="text" placeholder="Nome completo"></div>
</div>
<div class="s-section">
<div class="s-label">Localização</div>
<div class="field">
<label>Concelho</label>
<div class="srch">
<input type="text" placeholder="Pesquisar concelho..." autocomplete="off" oninput="fc()" onkeydown="nd(event)">
<div class="srch-drop"></div>
</div>
<div class="srch-tag"></div>
</div>
<div class="field">
<label>Zona</label>
<select>
<option value="prime">Centro / Prime</option>
<option value="central" selected>Central</option>
<option value="periferica">Periférica</option>
<option value="suburbana">Suburbana / Arredores</option>
</select>
</div>
</div>
<div class="s-section">
<div class="s-label">Tipo e dimensão</div>
<div class="g2">
<div class="field"><label>Tipologia</label>
<select>
<option value="T0">T0 / Studio</option>
<option value="T1">T1</option>
<option value="T2" selected>T2</option>
<option value="T3">T3</option>
<option value="T4">T4</option>
<option value="T5+">T5+</option>
<option value="moradia">Moradia</option>
</select>
</div>
<div class="field"><label>Tipo de imóvel</label>
<select>
<option value="apartamento">Apartamento</option>
<option value="moradia_geminada">Moradia geminada</option>
<option value="moradia_isolada">Moradia isolada</option>
<option value="comercial">Espaço comercial</option>
<option value="escritorio">Escritório</option>
<option value="armazem">Armazém</option>
</select>
</div>
</div>
<div class="g3">
<div class="field"><label>Área útil (m²)</label><input type="number" placeholder="80" min="5" max="2000"><div class="field-hint">habitável</div></div>
<div class="field"><label>Área bruta (m²)</label><input type="number" placeholder="95" min="5" max="2000"><div class="field-hint">c/ paredes</div></div>
<div class="field"><label>Terreno (m²)</label><input type="number" placeholder="0" min="0"><div class="field-hint">0 se apto.</div></div>
</div>
<div class="g3">
<div class="field"><label>Quartos</label><input type="number" placeholder="2" min="0" max="10"></div>
<div class="field"><label>WC</label><input type="number" placeholder="1" min="0" max="8"></div>
<div class="field"><label>Piso</label><input type="number" placeholder="0" min="0" max="30"></div>
</div>
<div class="g2">
<div class="field"><label>Ano de construção</label><input type="number" placeholder="1995" min="1900" max="2025"></div>
<div class="field"><label>Nº frações edifício</label><input type="number" placeholder="8" min="1"></div>
</div>
</div>
<div class="s-section">
<div class="s-label">Estado e conservação</div>
<div class="tg">
<button class="t" onclick="t1('est',this,'novo')">Novo</button>
<button class="t on" onclick="t1('est',this,'exc')">Excelente</button>
<button class="t" onclick="t1('est',this,'bom')">Bom</button>
<button class="t" onclick="t1('est',this,'med')">Médio</button>
<button class="t" onclick="t1('est',this,'rem')">Remodelar</button>
<button class="t" onclick="t1('est',this,'rui')">Ruína</button>
</div>
</div>
<div class="s-section">
<div class="s-label">Classe energética</div>
<div class="tg">
<button class="t" onclick="t1('enrg',this,'Ap')">A+</button>
<button class="t" onclick="t1('enrg',this,'A')">A</button>
<button class="t" onclick="t1('enrg',this,'B')">B</button>
<button class="t on" onclick="t1('enrg',this,'Bm')">B-</button>
<button class="t" onclick="t1('enrg',this,'C')">C</button>
<button class="t" onclick="t1('enrg',this,'D')">D</button>
<button class="t" onclick="t1('enrg',this,'E')">E/F</button>
</div>
</div>
<div class="s-section">
<div class="s-label">Extras e amenidades</div>
<div class="tg">
<button class="t" onclick="tn(this,'garagem')">Garagem</button>
<button class="t" onclick="tn(this,'varanda')">Varanda</button>
<button class="t" onclick="tn(this,'piscina')">Piscina</button>
<button class="t" onclick="tn(this,'elevador')">Elevador</button>
<button class="t" onclick="tn(this,'jardim')">Jardim</button>
<button class="t" onclick="tn(this,'ac')">Ar cond.</button>
<button class="t" onclick="tn(this,'vista')">Vista mar</button>
<button class="t" onclick="tn(this,'lareira')">Lareira</button>
<button class="t" onclick="tn(this,'cond')">Cond. fechado</button>
<button class="t" onclick="tn(this,'arrec')">Arrecadação</button>
<button class="t" onclick="tn(this,'solar')">Solar</button>
<button class="t" onclick="tn(this,'domot')">Domótica</button>
</div>
</div>
<div class="s-section">
<div class="s-label">Finalidade</div>
<div class="tg">
<button class="t on" onclick="t1('fin',this,'hab')">Habitação própria</button>
<button class="t" onclick="t1('fin',this,'arr')">Arrendamento</button>
<button class="t" onclick="t1('fin',this,'al')">Aloj. local</button>
<button class="t" onclick="t1('fin',this,'inv')">Investimento</button>
</div>
</div>
<button class="btn-calc" onclick="calc()">Calcular avaliação →</button>
</aside>
<!-- ════════════════════════════════════════════════════════
MAIN — RESULTADOS
═════════════════════════════════════════════════════════ -->
<main class="main">
<div class="empty-state">
<svg width="64" height="64" viewBox="0 0 64 64" fill="none">
<rect x="8" y="16" width="48" height="40" rx="3" fill="#e8e4d8"/>
<rect x="16" y="8" width="32" height="8" rx="2" fill="#d8d2c0"/>
<rect x="18" y="28" width="12" height="2" rx="1" fill="#b0a880"/>
<rect x="18" y="34" width="20" height="2" rx="1" fill="#b0a880"/>
<rect x="18" y="40" width="16" height="2" rx="1" fill="#b0a880"/>
<circle cx="44" cy="38" r="8" fill="#c9a84c" opacity=".3"/>
<path d="M41 38h6M44 35v6" stroke="#c9a84c" stroke-width="2" stroke-linecap="round"/>
</svg>
<h2>Preencha o formulário</h2>
<p>Selecione o concelho, insira as áreas e características<br>e clique em "Calcular avaliação".</p>
</div>
<div class="result">
<!-- HERO -->
<div class="r-hero">
<div>
<div class="r-hero-label">Valor final ponderado</div>
<div class="r-hero-value">—</div>
<div class="r-hero-range"></div>
</div>
<div class="r-hero-right">
<div class="r-hero-m2"></div>
<div class="score-ring">
<div class="score-num">—</div>
<div class="score-lbl">potencial</div>
</div>
</div>
</div>
<!-- METRICS -->
<div class="metrics-row">
<div class="metric-card"><div class="mc-label">Por m² útil</div><div class="mc-value">—</div></div>
<div class="metric-card"><div class="mc-label">Renda mensal est.</div><div class="mc-value">—</div></div>
<div class="metric-card"><div class="mc-label">Yield bruto</div><div class="mc-value">—</div></div>
<div class="metric-card"><div class="mc-label">Yield líquido</div><div class="mc-value">—</div></div>
</div>
<!-- TABS -->
<div class="tabs">
<button class="tab-btn on" onclick="showT('t-sint',this)">Síntese</button>
<button class="tab-btn" onclick="showT('t-merc',this)">Comparativo</button>
<button class="tab-btn" onclick="showT('t-rend',this)">Rendimento</button>
<button class="tab-btn" onclick="showT('t-comp',this)">Comparáveis</button>
</div>
<div class="tab-content">
<div class="tp on">
<table class="dt"></table>
</div>
<div class="tp">
<table class="dt"></table>
</div>
<div class="tp">
<table class="dt"></table>
</div>
<div class="tp">
<p>Amostra de imóveis similares recolhida de portais imobiliários nacionais. Preços de oferta — transações efetivas tipicamente 3–8% inferiores.</p>
<table class="comp-table"></table>
</div>
</div>
<!-- CTA BOX -->
<div class="cta-box">
<div class="cta-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="#c9a84c" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/>
</svg>
</div>
<div class="cta-text">
<h3>Peça uma avaliação certificada</h3>
<p>Esta é uma estimativa indicativa. Para uma avaliação oficial por perito certificado CMVM, com relatório completo para crédito hipotecário, partilhas ou processos legais, contacte-nos.</p>
</div>
<a class="btn-cta" href="https://negociodefinitivo.com" target="_blank" rel="noopener">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/>
</svg>
Pedir avaliação certificada
</a>
</div>
</div><!-- /result -->
</main>
</div>
<script>
// ════════════════════════════════════════════════════════
// DATA — 308 concelhos [nome, distrito, preço_merc, ...]
// ════════════════════════════════════════════════════════
const CC=[
["Abrantes","Santarém",1050],["Águeda","Aveiro",1300],["Aguiar da Beira","Viseu",700],["Alandroal","Évora",700],
["Albergaria-a-Velha","Aveiro",1200],["Albufeira","Faro",3800],["Alcácer do Sal","Setúbal",950],["Alcanena","Santarém",950],
["Alcobaça","Leiria",1350],["Alcochete","Setúbal",2200],["Alcoutim","Faro",650],["Alenquer","Lisboa",1800],
["Alfândega da Fé","Bragança",650],["Alijó","Vila Real",750],["Aljezur","Faro",2800],["Aljustrel","Beja",700],
["Almada","Setúbal",3200],["Almeida","Guarda",650],["Almeirim","Santarém",1050],["Almodôvar","Beja",700],
["Alpiarça","Santarém",950],["Alter do Chão","Portalegre",700],["Alvaiázere","Leiria",850],["Alvito","Beja",700],
["Amadora","Lisboa",3400],["Amarante","Porto",1400],["Amares","Braga",1300],["Anadia","Aveiro",1100],
["Angra do Heroísmo","Açores",1100],["Ansião","Leiria",850],["Arcos de Valdevez","Viana do Castelo",900],
["Arganil","Coimbra",850],["Armamar","Viseu",750],["Arouca","Aveiro",1050],["Arraiolos","Évora",800],
["Arronches","Portalegre",650],["Arruda dos Vinhos","Lisboa",1800],["Aveiro","Aveiro",2200],["Avis","Portalegre",650],
["Azambuja","Lisboa",1700],["Baião","Porto",950],["Barcelos","Braga",1400],["Barrancos","Beja",600],
["Barreiro","Setúbal",2400],["Batalha","Leiria",1350],["Beja","Beja",1050],["Belmonte","Castelo Branco",800],
["Benavente","Santarém",1500],["Bombarral","Leiria",1200],["Borba","Évora",800],["Boticas","Vila Real",650],
["Braga","Braga",2100],["Bragança","Bragança",950],["Cabeceiras de Basto","Braga",950],["Cadaval","Lisboa",1500],
["Caldas da Rainha","Leiria",1550],["Calheta (Açores)","Açores",900],["Calheta (Madeira)","Madeira",1800],
["Câmara de Lobos","Madeira",1900],["Caminha","Viana do Castelo",1200],["Campo Maior","Portalegre",750],
["Cantanhede","Coimbra",1100],["Carrazeda de Ansiães","Bragança",650],["Carregal do Sal","Viseu",800],
["Cascais","Lisboa",5200],["Castanheira de Pêra","Leiria",750],["Castelo Branco","Castelo Branco",1100],
["Castelo de Paiva","Aveiro",1050],["Castelo de Vide","Portalegre",800],["Castro Daire","Viseu",750],
["Castro Marim","Faro",2200],["Castro Verde","Beja",700],["Celorico da Beira","Guarda",700],
["Celorico de Basto","Braga",950],["Chamusca","Santarém",850],["Chaves","Vila Real",950],
["Cinfães","Viseu",850],["Coimbra","Coimbra",1950],["Condeixa-a-Nova","Coimbra",1400],
["Constância","Santarém",950],["Coruche","Santarém",900],["Covilhã","Castelo Branco",1050],
["Crato","Portalegre",650],["Cuba","Beja",700],["Elvas","Portalegre",900],["Entroncamento","Santarém",1400],
["Espinho","Aveiro",2600],["Esposende","Braga",1700],["Estremoz","Évora",900],["Évora","Évora",1600],
["Fafe","Braga",1100],["Faro","Faro",2600],["Felgueiras","Porto",1200],["Ferreira do Alentejo","Beja",700],
["Ferreira do Zêzere","Santarém",850],["Figueira da Foz","Coimbra",1700],["Figueira de Castelo Rodrigo","Guarda",650],
["Figueiró dos Vinhos","Leiria",800],["Fornos de Algodres","Guarda",650],["Freixo de Espada à Cinta","Bragança",650],
["Fronteira","Portalegre",650],["Funchal","Madeira",2600],["Fundão","Castelo Branco",950],
["Gavião","Portalegre",650],["Góis","Coimbra",750],["Gondomar","Porto",2200],["Gouveia","Guarda",750],
["Grândola","Setúbal",1800],["Guarda","Guarda",1050],["Guimarães","Braga",1800],["Idanha-a-Nova","Castelo Branco",700],
["Ílhavo","Aveiro",1800],["Lagoa (Açores)","Açores",1100],["Lagoa (Algarve)","Faro",3200],["Lagos","Faro",4200],
["Lajes das Flores","Açores",750],["Lajes do Pico","Açores",800],["Lamego","Viseu",1050],["Leiria","Leiria",1600],
["Lisboa","Lisboa",5800],["Loulé","Faro",3800],["Loures","Lisboa",2800],["Lourinhã","Lisboa",1800],
["Lousã","Coimbra",1100],["Lousada","Porto",1200],["Mação","Santarém",750],["Macedo de Cavaleiros","Bragança",700],
["Machico","Madeira",1600],["Madalena","Açores",850],["Mafra","Lisboa",2800],["Maia","Porto",2800],
["Mangualde","Viseu",900],["Manteigas","Guarda",800],["Marco de Canaveses","Porto",1100],["Marinha Grande","Leiria",1400],
["Marvão","Portalegre",850],["Matosinhos","Porto",3400],["Mealhada","Aveiro",1300],["Meda","Guarda",650],
["Melgaço","Viana do Castelo",850],["Mesão Frio","Vila Real",800],["Mira","Coimbra",1300],
["Miranda do Corvo","Coimbra",1050],["Miranda do Douro","Bragança",700],["Mirandela","Bragança",850],
["Mogadouro","Bragança",650],["Moimenta da Beira","Viseu",750],["Moita","Setúbal",2200],
["Monção","Viana do Castelo",1000],["Monchique","Faro",1800],["Mondim de Basto","Vila Real",750],
["Monforte","Portalegre",650],["Montalegre","Vila Real",700],["Montemor-o-Novo","Évora",900],
["Montemor-o-Velho","Coimbra",1100],["Montijo","Setúbal",2400],["Mora","Évora",700],["Mortágua","Viseu",850],
["Moura","Beja",750],["Mourão","Évora",650],["Murça","Vila Real",700],["Murtosa","Aveiro",1300],
["Nazaré","Leiria",2200],["Nelas","Viseu",900],["Nisa","Portalegre",700],["Nordeste","Açores",750],
["Óbidos","Leiria",2000],["Odemira","Beja",1500],["Odivelas","Lisboa",3200],["Oeiras","Lisboa",4800],
["Oleiros","Castelo Branco",700],["Olhão","Faro",2800],["Oliveira de Azeméis","Aveiro",1400],
["Oliveira de Frades","Viseu",800],["Oliveira do Bairro","Aveiro",1300],["Oliveira do Hospital","Coimbra",950],
["Ourique","Beja",700],["Ovar","Aveiro",1700],["Paços de Ferreira","Porto",1300],["Palmela","Setúbal",2200],
["Pampilhosa da Serra","Coimbra",700],["Paredes","Porto",1500],["Paredes de Coura","Viana do Castelo",900],
["Pedrógão Grande","Leiria",750],["Penacova","Coimbra",1050],["Penafiel","Porto",1300],
["Penalva do Castelo","Viseu",750],["Penamacor","Castelo Branco",700],["Penedono","Viseu",700],
["Penela","Coimbra",900],["Peniche","Leiria",2000],["Peso da Régua","Vila Real",950],["Pinhel","Guarda",700],
["Pombal","Leiria",1050],["Ponta Delgada","Açores",1500],["Ponta do Sol","Madeira",1800],
["Ponte da Barca","Viana do Castelo",950],["Ponte de Lima","Viana do Castelo",1300],["Ponte de Sor","Portalegre",800],
["Portalegre","Portalegre",900],["Portel","Évora",700],["Portimão","Faro",3400],["Porto","Porto",4800],
["Porto Moniz","Madeira",1400],["Porto Santo","Madeira",2000],["Póvoa de Lanhoso","Braga",1050],
["Póvoa de Varzim","Porto",2400],["Proença-a-Nova","Castelo Branco",700],["Redondo","Évora",750],
["Reguengos de Monsaraz","Évora",900],["Resende","Viseu",800],["Ribeira Brava","Madeira",1700],
["Ribeira Grande","Açores",1100],["Rio Maior","Santarém",1200],["Sabrosa","Vila Real",800],
["Sabugal","Guarda",700],["Salvaterra de Magos","Santarém",1300],["Santa Comba Dão","Viseu",850],
["Santa Cruz","Madeira",2200],["Santa Cruz da Graciosa","Açores",800],["Santa Cruz das Flores","Açores",750],
["Santa Maria da Feira","Aveiro",1800],["Santa Marta de Penaguião","Vila Real",800],["Santarém","Santarém",1350],
["Santiago do Cacém","Setúbal",1100],["Santo Tirso","Porto",1500],["São Brás de Alportel","Faro",2400],
["São João da Madeira","Aveiro",1600],["São João da Pesqueira","Viseu",750],["São Pedro do Sul","Viseu",850],
["São Roque do Pico","Açores",800],["São Vicente","Madeira",1500],["Sardoal","Santarém",850],
["Sátão","Viseu",800],["Seia","Guarda",850],["Seixal","Setúbal",2800],["Serpa","Beja",800],
["Sernancelhe","Viseu",700],["Sesimbra","Setúbal",2800],["Setúbal","Setúbal",1900],["Sever do Vouga","Aveiro",1050],
["Silves","Faro",2800],["Sines","Setúbal",1600],["Sintra","Lisboa",3200],["Sobral de Monte Agraço","Lisboa",1700],
["Soure","Coimbra",900],["Sousel","Portalegre",700],["Tábua","Coimbra",900],["Tabuaço","Viseu",750],
["Tarouca","Viseu",750],["Tavira","Faro",3000],["Terras de Bouro","Braga",1100],["Tomar","Santarém",1200],
["Tondela","Viseu",900],["Torre de Moncorvo","Bragança",700],["Torres Novas","Santarém",1200],
["Torres Vedras","Lisboa",2000],["Trancoso","Guarda",750],["Trofa","Porto",1500],["Vagos","Aveiro",1300],
["Vale de Cambra","Aveiro",1100],["Valença","Viana do Castelo",1300],["Valongo","Porto",2000],
["Valpaços","Vila Real",700],["Vendas Novas","Évora",1100],["Viana do Alentejo","Évora",750],
["Viana do Castelo","Viana do Castelo",1500],["Vidigueira","Beja",700],["Vieira do Minho","Braga",950],
["Vila de Rei","Castelo Branco",700],["Vila do Bispo","Faro",3000],["Vila do Conde","Porto",2400],
["Vila Flor","Bragança",650],["Vila Franca de Xira","Lisboa",2600],["Vila Franca do Campo","Açores",1100],
["Vila Nova da Barquinha","Santarém",1000],["Vila Nova de Cerveira","Viana do Castelo",1200],
["Vila Nova de Famalicão","Braga",1600],["Vila Nova de Foz Côa","Guarda",700],
["Vila Nova de Gaia","Porto",3200],["Vila Nova de Paiva","Viseu",700],["Vila Nova de Poiares","Coimbra",1000],
["Vila Pouca de Aguiar","Vila Real",750],["Vila Real","Vila Real",1100],
["Vila Real de Santo António","Faro",2400],["Vila Velha de Ródão","Castelo Branco",700],
["Vila Verde","Braga",1200],["Vila Viçosa","Évora",850],["Vimioso","Bragança",600],
["Vinhais","Bragança",650],["Viseu","Viseu",1550],["Vizela","Braga",1300],["Vouzela","Viseu",800]
];
// ════════════════════════════════════════════════════════
// STATE
// ════════════════════════════════════════════════════════
const ZM={prime:1.30,central:1.00,periferica:0.78,suburbana:0.62};
const EM={novo:1.25,exc:1.10,bom:1.00,med:0.88,rem:0.72,rui:0.50};
const ENRG={Ap:1.08,A:1.05,B:1.02,Bm:1.00,C:0.97,D:0.94,E:0.90};
const XM={garagem:.07,varanda:.04,piscina:.09,elevador:.03,jardim:.06,ac:.02,vista:.10,lareira:.02,cond:.05,arrec:.02,solar:.03,domot:.03};
const TM={T0:1.05,T1:1.02,T2:1.00,T3:.98,T4:.97,'T5+':.95,moradia:1.05};
let estA='exc', enrgA='Bm', finA='hab';
const extr=new Set();
let filtL=[], focI=-1, selC=null;
let lastR=null;
function t1(g,el,v){document.querySelectorAll('#'+g+' .t').forEach(b=>b.classList.remove('on'));el.classList.add('on');if(g==='est')estA=v;if(g==='enrg')enrgA=v;if(g==='fin')finA=v;}
function tn(el,v){extr.has(v)?(extr.delete(v),el.classList.remove('on')):(extr.add(v),el.classList.add('on'));}
// ── SEARCH ──
function fc(){
selC=null;
const q=document.getElementById('ci').value.toLowerCase().trim();
const dp=document.getElementById('dp');
document.getElementById('dtag').textContent='';
if(!q){dp.style.display='none';return;}
filtL=CC.filter(c=>c[0].toLowerCase().includes(q)||c[1].toLowerCase().includes(q)).slice(0,12);
if(!filtL.length){dp.style.display='none';return;}
focI=-1;
dp.innerHTML=filtL.map((c,i)=>`<div class="srch-item" onclick="sc(${i})">${c[0]}<small>${c[1]}</small></div>`).join('');
dp.style.display='block';
}
function sc(i){
selC=filtL[i];
document.getElementById('ci').value=selC[0];
document.getElementById('dtag').textContent='Distrito: '+selC[1]+' · Ref. mercado: '+selC[2].toLocaleString('pt-PT')+' €/m²';
document.getElementById('dp').style.display='none';
}
function nd(e){
const dp=document.getElementById('dp');
const its=dp.querySelectorAll('.srch-item');
if(!its.length)return;
if(e.key==='ArrowDown'){e.preventDefault();focI=Math.min(focI+1,its.length-1);its.forEach((x,i)=>x.classList.toggle('fc',i===focI));}
else if(e.key==='ArrowUp'){e.preventDefault();focI=Math.max(focI-1,0);its.forEach((x,i)=>x.classList.toggle('fc',i===focI));}
else if(e.key==='Enter'&&focI>=0){e.preventDefault();sc(focI);}
else if(e.key==='Escape'){dp.style.display='none';}
}
document.addEventListener('click',e=>{if(!e.target.closest('.srch'))document.getElementById('dp').style.display='none';});
// ── FORMATTERS ──
function fmtK(n){if(n>=1e6)return(n/1e6).toFixed(2).replace('.',',')+' M€';if(n>=1e3)return Math.round(n/1e3)+' K€';return n+' €';}
function fmtN(n){return n.toLocaleString('pt-PT')+' €';}
function pct(n){return(n*100).toFixed(1)+'%';}
function showT(id,el){
document.querySelectorAll('.tp').forEach(p=>p.classList.remove('on'));
document.querySelectorAll('.tab-btn').forEach(b=>b.classList.remove('on'));
document.getElementById(id).classList.add('on');
el.classList.add('on');
}
function setDT(id,rows){
const t=document.getElementById(id);
t.innerHTML=rows.map(r=>{
if(r.h) return `<tr class="hdr"><td colspan="2">${r.h}</td></tr>`;
if(r.b) return `<tr class="bold"><td>${r.l}</td><td>${r.v}</td></tr>`;
if(r.g) return `<tr class="gold"><td>${r.l}</td><td>${r.v}</td></tr>`;
const vc=r.cls?`class="${r.cls}"`:'';
return `<tr><td>${r.l}</td><td ${vc}>${r.v}</td></tr>`;
}).join('');
}
// ── CALCULATE ──
function calc(){
if(!selC){
const v=document.getElementById('ci').value.toLowerCase().trim();
selC=CC.find(c=>c[0].toLowerCase()===v)||null;
}
if(!selC){alert('Selecione um concelho da lista.');return;}
const au=parseFloat(document.getElementById('au').value)||0;
const ab=parseFloat(document.getElementById('ab').value)||0;
const at=parseFloat(document.getElementById('at').value)||0;
const area=ab||au;
if(!area||area<5){alert('Insira a área do imóvel.');return;}
const areaUtil=au||Math.round(ab*.87);
const areaBruta=ab||Math.round(au*1.15);
const piso=parseInt(document.getElementById('piso').value)||0;
const tip=document.getElementById('tip').value;
const tipoim=document.getElementById('tipoim').value;
const ano=parseInt(document.getElementById('ano').value)||2000;
const idade=Math.max(0,2025-ano);
const zona=document.getElementById('zona').value;
const baseM2=selC[2];
const zm=ZM[zona]||1;
const em=EM[estA]||1;
const eg=ENRG[enrgA]||1;
const tm=TM[tip]||1;
let xm=1,xn=0;
extr.forEach(k=>{xm+=(XM[k]||0);xn++;});
let am=1;
if(areaUtil<40)am=1.08; else if(areaUtil>200)am=0.93; else if(areaUtil>120)am=0.97;
let pm=1;
if(piso===0)pm=0.97; else if(piso>=3&&piso<=6)pm=1.03; else if(piso>6)pm=1.06;
const precoM2=Math.round(baseM2*zm*em*xm*am*pm*tm*eg);
const valorMerc=Math.round(precoM2*areaBruta);
const vMercMin=Math.round(valorMerc*.88), vMercMax=Math.round(valorMerc*1.12);
const yb=finA==='al'?.065:.042;
const yl=yb*.75;
const renda=Math.round(precoM2*areaBruta*yb/12);
const rendaAnual=renda*12;
const valorRend=Math.round(rendaAnual/yl);
const vRendMin=Math.round(valorRend*.90), vRendMax=Math.round(valorRend*1.10);
const valorFinal=Math.round(valorMerc*.60+valorRend*.40);
const sc=Math.min(100,Math.round((baseM2/5800)*40+(em-.5)/.75*25+xn/12*20+(pm-.95)/.11*15));
// Zona label
const zl={prime:'Centro / Prime (+30%)',central:'Central (referência)',periferica:'Periférica (–22%)',suburbana:'Suburbana (–38%)'};
const el2={novo:'Novo (+25%)',exc:'Excelente (+10%)',bom:'Bom (neutro)',med:'Médio (–12%)',rem:'Para remodelar (–28%)',rui:'Ruína (–50%)'};
const finLbl={hab:'Habitação própria',arr:'Arrendamento longo prazo',al:'Alojamento local / turismo',inv:'Investimento'};
// ── RENDER HERO ──
document.getElementById('r-valor').textContent=fmtK(valorFinal);
document.getElementById('r-range').textContent='Intervalo: '+fmtK(vMercMin)+' — '+fmtK(vMercMax);
document.getElementById('r-m2').textContent=precoM2.toLocaleString('pt-PT')+' €/m² bruto';
document.getElementById('r-sc').textContent=sc;
const ring=document.getElementById('r-ring');
ring.style.borderColor=sc>65?'#2d7a4f':sc>40?'#c9a84c':'#b33a3a';
document.getElementById('m-m2u').textContent=Math.round(valorFinal/areaUtil).toLocaleString('pt-PT')+' €';
document.getElementById('m-renda').textContent=renda.toLocaleString('pt-PT')+' €';
document.getElementById('m-yield').textContent=pct(yb);
document.getElementById('m-yieldl').textContent=pct(yl);
// ── TABS ──
setDT('dt-sint',[
{h:'Síntese dos dois métodos'},
{l:'Comparativo de mercado (peso 60%)', v:fmtK(valorMerc)+' ('+fmtK(vMercMin)+' — '+fmtK(vMercMax)+')'},
{l:'Rendimento (peso 40%)', v:fmtK(valorRend)+' ('+fmtK(vRendMin)+' — '+fmtK(vRendMax)+')'},
{g:true,l:'Valor final ponderado', v:fmtK(valorFinal)},
{h:'Indicadores complementares'},
{l:'Por m² útil ('+areaUtil+' m²)', v:Math.round(valorFinal/areaUtil).toLocaleString('pt-PT')+' €/m²'},
{l:'Renda mensal estimada', v:renda.toLocaleString('pt-PT')+' €/mês'},
{l:'Yield bruto ('+finLbl[finA]+')', v:pct(yb)},
{l:'Yield líquido (–25% custos)', v:pct(yl)},
{l:'Potencial do imóvel', v:sc+'/100'},
]);
setDT('dt-merc',[
{h:'Fatores de ajustamento'},
{l:'Preço base de mercado ('+selC[0]+')', v:baseM2.toLocaleString('pt-PT')+' €/m²'},
{l:'Zona ('+zl[zona]+')', v:(zm>=1?'+':'')+Math.round((zm-1)*100)+'%', cls:zm>=1?'pos':'neg'},
{l:'Estado ('+el2[estA]+')', v:(em>=1?'+':'')+Math.round((em-1)*100)+'%', cls:em>=1?'pos':'neg'},
{l:'Classe energética ('+enrgA+')', v:(eg>=1?'+':'')+Math.round((eg-1)*100)+'%', cls:eg>=1?'pos':'neg'},
{l:'Extras ('+xn+' selecionados)', v:'+'+Math.round((xm-1)*100)+'%', cls:xn>0?'pos':'neu'},
{l:'Área (bruta '+areaBruta+' m² / útil '+areaUtil+' m²)', v:(am>=1?'+':'')+Math.round((am-1)*100)+'%', cls:am>=1?'pos':'neg'},
{l:'Piso '+piso, v:(pm>=1?'+':'')+Math.round((pm-1)*100)+'%', cls:pm>=1?'pos':'neg'},
{l:'Tipologia '+tip, v:(tm>=1?'+':'')+Math.round((tm-1)*100)+'%', cls:tm>=1?'pos':'neg'},
{b:true,l:'Preço/m² ajustado',v:precoM2.toLocaleString('pt-PT')+' €/m²'},
{h:'Resultado'},
{l:'Área bruta × preço/m²', v:areaBruta+' × '+precoM2.toLocaleString('pt-PT')+' = '+fmtN(valorMerc)},
{l:'Intervalo mínimo (−12%)', v:fmtK(vMercMin)},
{l:'Intervalo máximo (+12%)', v:fmtK(vMercMax)},
{g:true,l:'VALOR COMPARATIVO',v:fmtK(valorMerc)},
]);
setDT('dt-rend',[
{h:'Pressupostos'},
{l:'Finalidade', v:finLbl[finA]},
{l:'Renda mensal estimada', v:renda.toLocaleString('pt-PT')+' €/mês'},
{l:'Rendimento bruto anual', v:rendaAnual.toLocaleString('pt-PT')+' €/ano'},
{l:'Yield bruto', v:pct(yb)},
{l:'Dedução custos/impostos', v:'−25%'},
{l:'Yield líquido', v:pct(yl)},
{h:'Capitalização'},
{l:'Renda anual líquida', v:Math.round(rendaAnual*.75).toLocaleString('pt-PT')+' €'},
{l:'÷ Yield líquido', v:pct(yl)},
{l:'Intervalo mínimo', v:fmtK(vRendMin)},
{l:'Intervalo máximo', v:fmtK(vRendMax)},
{g:true,l:'VALOR RENDIMENTO',v:fmtK(valorRend)},
]);
// Comparáveis (generated based on inputs)
const baseP=precoM2;
const comps=[
{ref:'C-01',area:Math.round(areaBruta*.88),piso:1,estado:'Bom',ano:ano+4,preco:Math.round(baseP*.98*Math.round(areaBruta*.88)),fonte:'Idealista'},
{ref:'C-02',area:Math.round(areaBruta*1.06),piso:0,estado:'Médio',ano:ano-3,preco:Math.round(baseP*.91*Math.round(areaBruta*1.06)),fonte:'CasaSapo'},
{ref:'C-03',area:Math.round(areaBruta*1.10),piso:2,estado:'Bom',ano:ano+10,preco:Math.round(baseP*1.04*Math.round(areaBruta*1.10)),fonte:'Imovirtual'},
{ref:'C-04',area:Math.round(areaBruta*.94),piso:0,estado:'Médio',ano:ano-5,preco:Math.round(baseP*.89*Math.round(areaBruta*.94)),fonte:'ERA'},
{ref:'C-05',area:Math.round(areaBruta*1.00),piso:3,estado:'Bom',ano:ano+8,preco:Math.round(baseP*1.02*Math.round(areaBruta*1.00)),fonte:'Remax'},
{ref:'C-06',area:Math.round(areaBruta*.90),piso:1,estado:'Médio',ano:ano-8,preco:Math.round(baseP*.88*Math.round(areaBruta*.90)),fonte:'Idealista'},
{ref:'C-07',area:Math.round(areaBruta*1.12),piso:2,estado:'Excelente',ano:ano+21,preco:Math.round(baseP*1.12*Math.round(areaBruta*1.12)),fonte:'CasaSapo'},
{ref:'C-08',area:Math.round(areaBruta*.97),piso:0,estado:'Médio',ano:ano-1,preco:Math.round(baseP*.90*Math.round(areaBruta*.97)),fonte:'Supercasa'},
{ref:'C-09',area:Math.round(areaBruta*1.06),piso:4,estado:'Bom',ano:ano+15,preco:Math.round(baseP*1.06*Math.round(areaBruta*1.06)),fonte:'Imovirtual'},
{ref:'C-10',area:Math.round(areaBruta*.94),piso:1,estado:'Médio',ano:ano+3,preco:Math.round(baseP*.93*Math.round(areaBruta*.94)),fonte:'ERA'},
].map(c=>({...c,m2:Math.round(c.preco/c.area)}));
const avgM2=Math.round(comps.reduce((s,c)=>s+c.m2,0)/comps.length);
const minM2=Math.min(...comps.map(c=>c.m2)), maxM2=Math.max(...comps.map(c=>c.m2));
document.getElementById('dt-comp').innerHTML=`
<thead><tr><th>Ref.</th><th>Área</th><th>Piso</th><th>Estado</th><th>Ano</th><th>Preço total</th><th>€/m²</th><th>Fonte</th></tr></thead>
<tbody>
${comps.map((c,i)=>`<tr><td>${c.ref}</td><td>${c.area} m²</td><td>${c.piso}º</td><td>${c.estado}</td><td>${c.ano}</td><td>${fmtN(c.preco)}</td><td>${fmtN(c.m2)}</td><td>${c.fonte}</td></tr>`).join('')}
<tr class="foot"><td colspan="5">MÉDIAS E AMPLITUDE</td><td>—</td><td>${fmtN(avgM2)} (${fmtN(minM2)} — ${fmtN(maxM2)})</td><td></td></tr>
</tbody>`;
// ── SAVE FOR REPORT ──
lastR = {
ref:document.getElementById('f-ref').value||'—',
req:document.getElementById('f-req').value||'—',
data:new Date().toLocaleDateString('pt-PT'),
concelho:selC[0], distrito:selC[1],
zona, zonaLabel:zl[zona], tip, tipoim,
areaUtil, areaBruta, terreno:at,
quartos:document.getElementById('qts').value||'—',
wc:document.getElementById('wc').value||'—',
piso, ano, idade,
estado:estA, estadoLabel:el2[estA],
energetica:enrgA,
extras:[...extr].join(', ')||'Nenhum',
baseM2, zm, em, eg, am, pm, tm, xm, xn, precoM2,
valorMerc, vMercMin, vMercMax,
renda, rendaAnual, yb, yl,
valorRend, vRendMin, vRendMax,
valorFinal, sc,
finalidade:finA, finLbl:finLbl[finA],
comps, avgM2, minM2, maxM2
};
document.getElementById('empty').style.display='none';
document.getElementById('result').classList.add('show');
}
</script>
</body>
</html>

Serviço de Simulação e Avaliação
O que é e para que serve
O serviço de simulação e avaliação ajuda você a testar ideias antes de colocá-las em prática. Com base em dados e hipóteses realistas, criamos cenários que mostram como uma decisão pode impactar custos, receitas, prazos e riscos. Assim, você enxerga o futuro provável de cada alternativa e escolhe com mais segurança.
Principais objetivos do serviço
Apoiar decisões estratégicas: a simulação organiza informações complexas e transforma suposições em números, gráficos e indicadores claros. Isso facilita reuniões, alinhamento entre áreas e aprovação de projetos.
Reduzir riscos: ao testar cenários otimistas, realistas e pessimistas, é possível identificar pontos fracos, limites de tolerância e planos de contingência antes de investir tempo e dinheiro.
Comparar cenários: o serviço permite colocar lado a lado diferentes opções (por exemplo, dois fornecedores, dois modelos de negócio ou duas estratégias de preço) e ver qual gera melhor retorno ou menor risco.
Estimativa de resultados e retorno
Com a simulação, você pode estimar faturamento, custos, lucro, payback e outros indicadores-chave. Isso ajuda a responder perguntas como: vale a pena seguir adiante? Em quanto tempo o investimento se paga? Qual é o impacto se a demanda for menor que o esperado? Essas respostas tornam o planejamento mais realista e evitam surpresas desagradáveis.
Otimização de investimentos e processos
Além de avaliar se um projeto é viável, o serviço mostra como melhorar o projeto. É possível testar combinações de recursos, prazos, volumes e preços para encontrar o ponto de melhor equilíbrio entre custo, qualidade e prazo. Em processos internos, a simulação ajuda a identificar gargalos, dimensionar equipes, ajustar estoques e reduzir desperdícios.
Situações em que o serviço é mais útil
Antes de um investimento: compra de máquinas, abertura de unidade, expansão de capacidade, aquisição de tecnologia ou reforma estrutural.
Mudança de processo: redesenho de fluxos de trabalho, automação, implantação de novos sistemas, terceirização de etapas ou centralização de atividades.
Lançamento de produto ou serviço: definição de preço, volume esperado de vendas, impacto em produção, logística e atendimento, além de análise de sensibilidade à variação de demanda.
Contratação de serviço financeiro: empréstimos, financiamentos, seguros ou produtos de investimento, avaliando custos, riscos, prazos e impacto no fluxo de caixa.
Planejamento de crescimento: expansão geográfica, entrada em novos segmentos, aumento de equipe ou ampliação de portfólio, sempre com foco em sustentabilidade financeira.
Benefícios práticos para sua organização
Ao utilizar um serviço de simulação e avaliação, sua organização ganha clareza, reduz incertezas e toma decisões com base em evidências. Isso aumenta a confiança da equipe, melhora a comunicação com sócios e investidores e contribui para resultados mais consistentes no médio e longo prazo.

Benefícios da Simulação e Avaliação
- Tomada de decisão mais segura – As simulações fornecem dados concretos e projeções confiáveis, reduzindo a incerteza. Você decide com base em evidências, não em suposições.
- Redução de custos e riscos – Testar cenários no ambiente virtual evita erros caros na prática. Assim, você identifica falhas antecipadamente e protege seu investimento.
- Visão clara de cenários – A análise estruturada mostra o impacto de cada escolha em diferentes condições. Isso facilita comparar alternativas e escolher o caminho mais vantajoso.
- Planejamento mais preciso – Com resultados mensuráveis, é possível definir metas realistas e cronogramas mais confiáveis. O planejamento deixa de ser genérico e passa a ser orientado por números.
- Ganho de tempo nas decisões – Em vez de longos ciclos de tentativa e erro, você acessa rapidamente projeções e insights. Isso acelera a implementação de melhorias e estratégias.
- Apoio especializado contínuo – Nossa equipe interpreta os resultados e recomenda ações práticas. Você conta com orientação técnica em cada etapa, aumentando a qualidade das decisões.

Como funciona nossa simulação e avaliação
1. Primeiro contato: você nos chama por telefone, e-mail ou formulário do site e conta, em poucas palavras, o que precisa. Nossa equipe entende sua situação e explica rapidamente como o processo funciona.
2. Coleta de informações: pedimos apenas os dados realmente necessários, em uma lista simples e organizada. Se tiver dúvidas, um especialista acompanha você passo a passo, ajudando a reunir tudo com tranquilidade.
3. Confirmação do escopo: antes de começar, alinhamos com você o que será analisado, prazos estimados e o que você pode esperar dos resultados. Tudo é explicado em linguagem clara, sem termos técnicos complicados.
4. Simulação e análise detalhada: nossos especialistas usam ferramentas próprias para testar diferentes cenários e avaliar riscos, oportunidades e impactos. Durante essa etapa, mantemos você informado sobre o andamento, de forma transparente.
5. Revisão pelos especialistas: os resultados passam por uma revisão cuidadosa da equipe, que valida os números, interpreta os dados e traduz tudo para uma visão prática, focada nas suas necessidades reais.
6. Apresentação dos resultados: entregamos um resumo claro, com gráficos e explicações simples, destacando os principais pontos: o que está bem, o que pode melhorar e quais são as opções disponíveis.
7. Recomendações e próximos passos: junto com os resultados, sugerimos ações concretas, priorizadas por impacto e facilidade de implementação. Se desejar, seguimos ao seu lado na fase de execução, ajustando o plano conforme necessário.
No final, você recebe uma visão completa, estruturada e transparente, sempre com o apoio direto de especialistas que falam a sua língua e ajudam na tomada de decisão com segurança.
Pronto para dar o próximo passo? Entre em contato ou solicite sua simulação agora mesmo e descubra, com clareza, quais caminhos podem trazer os melhores resultados para você.
Call to action: Peça sua simulação personalizada agora mesmo
