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