// KSANET — Calculadoras (hub con 5 herramientas) const { useState, useMemo } = React; const fmtEur = (n) => new Intl.NumberFormat('es-ES', { maximumFractionDigits: 0 }).format(Math.round(n)) + ' €'; const fmtEurDec = (n) => new Intl.NumberFormat('es-ES', { maximumFractionDigits: 2 }).format(n) + ' €'; function calcCuota(capital, tae, plazo) { const i = (tae / 100) / 12; const n = plazo * 12; if (i === 0) return capital / n; return capital * (i * Math.pow(1 + i, n)) / (Math.pow(1 + i, n) - 1); } const TABS = [ { k: 'hipoteca', n: '01', t: 'Cuota e hipoteca', d: 'Estima tu cuota mensual y el ahorro frente a un promotor.' }, { k: 'escrituracion', n: '02', t: 'Costes de escrituración', d: 'Notario, registro, gestoría y AJD al recibir tu vivienda.' }, { k: 'alquilarvscomprar', n: '03', t: 'Comprar vs alquilar', d: 'Compara cuánto te cuesta alquilar y cuánto comprar a 10 años.' }, { k: 'energia', n: '04', t: 'Ahorro energético', d: 'Cuánto ahorras al año con una vivienda de eficiencia A.' }, { k: 'capacidad', n: '05', t: 'Capacidad de compra', d: '¿Qué precio de vivienda puedes asumir con tu sueldo?' }, ]; /* ---------- 01 · HIPOTECA ---------- */ function CalcHipoteca() { const [precio, setPrecio] = useState(312000); const [entrada, setEntrada] = useState(20); const [plazo, setPlazo] = useState(30); const [tae, setTae] = useState(3.2); const r = useMemo(() => { const capital = precio * (1 - entrada / 100); const cuota = calcCuota(capital, tae, plazo); const totalPagado = cuota * plazo * 12; const totalIntereses = totalPagado - capital; const aportar = precio * (entrada / 100); const precioPromotor = precio * 1.18; const ahorro = precioPromotor - precio; return { capital, cuota, totalPagado, totalIntereses, aportar, ahorro, precioPromotor }; }, [precio, entrada, plazo, tae]); return (
Cálculo orientativo. La cuota real depende de la oferta del banco y el perfil del solicitante. KSANET negocia financiación promotora colectiva con condiciones preferentes para socios.
Tu cuota mensual estimada
{fmtEur(r.cuota)}/mes
+ cuota gestora KSANET · 9 € / mes durante la cooperativa
Ahorro vs. promotor privado
Misma vivienda · promotor {fmtEur(r.precioPromotor)}
Cooperativa KSANET {fmtEur(precio)}
Te ahorras {fmtEur(r.ahorro)}
Hablar con un asesor
); } /* ---------- 02 · ESCRITURACIÓN ---------- */ function CalcEscrituracion() { const [precio, setPrecio] = useState(280000); const [hipoteca, setHipoteca] = useState(180000); const [extras, setExtras] = useState(800); const r = useMemo(() => { // Notario: aranceles aprox 0.2% sobre escritura adjudicación (mín 600€, máx 2400€) const notarioAdj = Math.min(2400, Math.max(600, precio * 0.0018)); // Notario hipoteca: pagado por el banco (Ley 5/2019), no se carga al socio // Registro de la propiedad: 0.15% sobre valor (mín 250€, máx 1500€) const registro = Math.min(1500, Math.max(250, precio * 0.0014)); // AJD Madrid 0.75% sobre escritura adjudicación obra nueva cooperativa const ajd = precio * 0.0075; // Gestoría: tarifa media const gestoria = 450; // Otros: copias, certificados, tasaciones complementarias const otros = extras; const total = notarioAdj + registro + ajd + gestoria + otros; const pctSobrePrecio = (total / precio) * 100; return { notarioAdj, registro, ajd, gestoria, otros, total, pctSobrePrecio }; }, [precio, hipoteca, extras]); return (
Comunidad de Madrid · 2026. AJD al 0,75 %. Notario y registro siguen el arancel oficial vigente. Desde la Ley 5/2019, los gastos de la escritura de hipoteca los paga el banco. Cifras orientativas: solicita siempre presupuesto detallado a la notaría y la gestoría asignadas a tu promoción.
Coste total de escrituración
{fmtEur(r.total)}aprox.
{r.pctSobrePrecio.toFixed(2)} % sobre el valor de adjudicación · pago único en notaría
Importante

En el régimen de cooperativa no hay ITP ni IVA al recibir la vivienda: tributa solo por AJD. Es una de las grandes ventajas fiscales del modelo cooperativo frente a la compraventa al promotor.

Pedir presupuesto detallado
); } /* ---------- 03 · COMPRAR VS ALQUILAR ---------- */ function CalcAlquilar() { const [precio, setPrecio] = useState(280000); const [alquiler, setAlquiler] = useState(1200); const [anios, setAnios] = useState(15); const [revAlq, setRevAlq] = useState(2.5); const r = useMemo(() => { // Alquiler total con revalorización anual let totAlq = 0; let mensualAct = alquiler; for (let y = 0; y < anios; y++) { totAlq += mensualAct * 12; mensualAct *= 1 + revAlq / 100; } // Compra: 20% entrada + cuota hipoteca a 30 años + gastos escrituración const entrada = precio * 0.20; const capital = precio * 0.80; const cuota = calcCuota(capital, 3.2, 30); const escrituracion = precio * 0.012; // ~1.2% global aprox const pagadoCompra = entrada + escrituracion + cuota * 12 * anios; // Patrimonio acumulado: amortización + revalorización vivienda const tasaRev = 0.025; const valorViviendaFut = precio * Math.pow(1 + tasaRev, anios); // Capital amortizado (aproximación) const i = 0.032 / 12; const n = 360; const k = anios * 12; const saldoPendiente = capital * (Math.pow(1 + i, n) - Math.pow(1 + i, k)) / (Math.pow(1 + i, n) - 1); const patrimonio = valorViviendaFut - saldoPendiente; const balanceCompra = pagadoCompra - patrimonio; return { totAlq, pagadoCompra, patrimonio, balanceCompra, cuota, mensualAct, entrada, valorViviendaFut, saldoPendiente }; }, [precio, alquiler, anios, revAlq]); const compraGana = r.balanceCompra < r.totAlq; const diferencia = Math.abs(r.totAlq - r.balanceCompra); return (
Modelo simplificado: hipoteca a 30 años al 3,2 %, escrituración estimada ~1,2 % del precio, revalorización vivienda 2,5 %/año. La compra incluye el patrimonio acumulado al final del período.
A {anios} años, {compraGana ? 'comprar' : 'alquilar'} es mejor por
{fmtEur(diferencia)}
{compraGana ? 'Diferencia favorable a la compra en cooperativa' : 'El alquiler resulta menos costoso en este escenario'}
Alquilar
{fmtEur(r.totAlq)}
Total pagado en {anios} años · {fmtEur(r.mensualAct)}/mes al final
Patrimonio al final: 0 €
VS
Comprar (cooperativa)
{fmtEur(r.pagadoCompra)}
Pagos totales · entrada + cuotas + escrituración
Patrimonio: {fmtEur(r.patrimonio)}
); } /* ---------- 04 · AHORRO ENERGÉTICO ---------- */ function CalcEnergia() { const [m2, setM2] = useState(85); const [tipo, setTipo] = useState('antigua'); // antigua / media / actual const [tarifa, setTarifa] = useState(0.16); // €/kWh const r = useMemo(() => { // Consumo estimado kWh/m²/año por tipo const consMap = { antigua: 195, media: 110, actual: 38 }; const consActual = consMap[tipo]; const consNueva = 38; // KSANET certificación A const kwhAhorro = (consActual - consNueva) * m2; const eurAhorroAnual = kwhAhorro * tarifa; const eurAhorro20 = eurAhorroAnual * 20; const co2 = kwhAhorro * 0.31; // kg CO2 por kWh red española return { consActual, consNueva, kwhAhorro, eurAhorroAnual, eurAhorro20, co2 }; }, [m2, tipo, tarifa]); return (
{[ { k: 'antigua', t: 'Anterior 1980', s: 'Letra E–G' }, { k: 'media', t: 'Años 90–10', s: 'Letra C–D' }, { k: 'actual', t: 'Después 2013', s: 'Letra B' }, ].map(o => ( ))}
Estimación basada en consumos medios reales. Las viviendas de KSANET se entregan con certificación energética A (~38 kWh/m²/año), aerotermia, ventilación con recuperación de calor y carpinterías de altas prestaciones.
Ahorro estimado al año
{fmtEur(r.eurAhorroAnual)}/año
{Math.round(r.kwhAhorro)} kWh/año · {Math.round(r.co2)} kg CO₂ evitados
Vivienda actual{r.consActual} kWh/m²
Vivienda KSANET A{r.consNueva} kWh/m²
); } /* ---------- 05 · CAPACIDAD DE COMPRA ---------- */ function CalcCapacidad() { const [ingresos, setIngresos] = useState(2400); // netos mensuales del hogar const [ahorro, setAhorro] = useState(50000); const [otrasDeudas, setOtrasDeudas] = useState(0); const [plazo, setPlazo] = useState(30); const [tae, setTae] = useState(3.2); const r = useMemo(() => { // Banco: cuota máxima = 35% ingresos netos - otras deudas const cuotaMax = (ingresos * 0.35) - otrasDeudas; // Capital máximo a partir de cuota const i = (tae / 100) / 12; const n = plazo * 12; const capitalMax = i === 0 ? cuotaMax * n : cuotaMax * (Math.pow(1 + i, n) - 1) / (i * Math.pow(1 + i, n)); // Gastos compra ~10% sobre precio (en cooperativa baja a ~3-4%) // Asumimos cooperativa: 4% gastos const factor = 1.04; // ahorro disponible para entrada + gastos // ahorro = entrada + gastos = (precio - capitalMax) + (precio*0.04) // ahorro = precio*1.04 - capitalMax → precio = (ahorro + capitalMax) / 1.04 const precioMaxCoop = (ahorro + capitalMax) / factor; const factorPromotor = 1.12; // 10% gastos + IVA dif const precioMaxPromotor = (ahorro + capitalMax) / factorPromotor; const entrada = precioMaxCoop - capitalMax; const pctEntrada = (entrada / precioMaxCoop) * 100; return { cuotaMax, capitalMax, precioMaxCoop, precioMaxPromotor, entrada, pctEntrada }; }, [ingresos, ahorro, otrasDeudas, plazo, tae]); return (
Regla bancaria estándar: la cuota mensual no debe superar el 35 % de los ingresos netos del hogar. La cooperativa requiere menos gastos asociados que la compra al promotor (≈4 % vs ≈12 %), por lo que tu ahorro estira más.
Precio máximo asumible · cooperativa
{fmtEur(r.precioMaxCoop)}
Cuota máxima recomendada: {fmtEur(r.cuotaMax)} / mes
Cooperativa vs promotor
Promotor privado {fmtEur(r.precioMaxPromotor)}
Cooperativa KSANET {fmtEur(r.precioMaxCoop)}
Diferencia de capacidad +{fmtEur(r.precioMaxCoop - r.precioMaxPromotor)}
Buscar promociones a mi alcance
); } /* ---------- HELPERS ---------- */ function CalcSlider({ label, val, min, max, step, value, onChange, minL, maxL }) { return (
{val}
onChange(+e.target.value)}/>
{minL}{maxL}
); } function CalcRow({ lbl, val, accent }) { return (
{lbl} {val}
); } const RENDERS = { hipoteca: { c: CalcHipoteca, h: '¿Cuánto te costaría?', s: 'Estima tu cuota mensual y el ahorro frente a un promotor privado.' }, escrituracion: { c: CalcEscrituracion, h: 'Costes de escrituración', s: 'Notario, registro, AJD y gestoría al recibir tu vivienda.' }, alquilarvscomprar: { c: CalcAlquilar, h: 'Comprar o alquilar', s: '¿Qué te conviene más en tu horizonte temporal?' }, energia: { c: CalcEnergia, h: 'Ahorro energético', s: 'Cuánto bajará tu factura con una vivienda de eficiencia A.' }, capacidad: { c: CalcCapacidad, h: 'Tu capacidad de compra', s: 'Qué precio de vivienda puedes asumir con tu sueldo y ahorro.' }, }; function CalcPage() { useReveal(); const [tab, setTab] = useState(() => { const h = (window.location.hash || '').slice(1); return TABS.some(t => t.k === h) ? h : 'hipoteca'; }); const handleTab = (k) => { setTab(k); history.replaceState(null, '', '#' + k); }; const cur = RENDERS[tab]; const Cmp = cur.c; return ( <>
Calculadoras · 5 herramientas para socios

{cur.s}

{TABS.map(t => ( ))}