Calcular Seguro De Vida

Calcular Seguro de Vida: Guía Completa y Calculadora Online :root { –primary-color: #004a99; –secondary-color: #e9ecef; –background-color: #f8f9fa; –card-background: #ffffff; –text-color: #333; –border-color: #dee2e6; –error-color: #dc3545; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(–background-color); color: var(–text-color); margin: 0; padding: 0; line-height: 1.6; } .container { max-width: 1000px; margin: 20px auto; padding: 20px; background-color: var(–card-background); border-radius: 8px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); } header { text-align: center; padding-bottom: 20px; border-bottom: 1px solid var(–border-color); margin-bottom: 30px; } h1, h2, h3 { color: var(–primary-color); } h1 { font-size: 2.5em; margin-bottom: 10px; } h2 { font-size: 1.8em; margin-top: 30px; margin-bottom: 15px; } h3 { font-size: 1.3em; margin-top: 20px; margin-bottom: 10px; } .calculator-section { margin-bottom: 40px; padding: 25px; border: 1px solid var(–border-color); border-radius: 8px; background-color: var(–card-background); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.03); } .calculator-section h2 { margin-top: 0; text-align: center; margin-bottom: 25px; } .loan-calc-container { display: flex; flex-direction: column; gap: 15px; } .input-group { display: flex; flex-direction: column; gap: 5px; } .input-group label { font-weight: bold; color: var(–primary-color); } .input-group input[type="number"], .input-group select { padding: 10px; border: 1px solid var(–border-color); border-radius: 4px; font-size: 1em; box-sizing: border-box; } .input-group input[type="number"]:focus, .input-group select:focus { outline: none; border-color: var(–primary-color); box-shadow: 0 0 0 2px rgba(0, 74, 153, 0.2); } .input-group .helper-text { font-size: 0.85em; color: #6c757d; } .error-message { color: var(–error-color); font-size: 0.85em; margin-top: 5px; min-height: 1.2em; /* Prevent layout shift */ } .button-group { display: flex; gap: 10px; margin-top: 20px; flex-wrap: wrap; /* Allow wrapping on smaller screens */ } .button-group button { padding: 10px 15px; border: none; border-radius: 4px; cursor: pointer; font-size: 1em; font-weight: bold; transition: background-color 0.3s ease; } .btn-calculate { background-color: var(–primary-color); color: white; } .btn-calculate:hover { background-color: #003366; } .btn-reset, .btn-copy { background-color: var(–secondary-color); color: var(–primary-color); border: 1px solid var(–primary-color); } .btn-reset:hover, .btn-copy:hover { background-color: #d3d9e0; } .results-container { margin-top: 30px; padding: 20px; border: 1px solid var(–border-color); border-radius: 8px; background-color: var(–card-background); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.03); } .results-container h3 { margin-top: 0; text-align: center; margin-bottom: 20px; } .primary-result { font-size: 2.2em; font-weight: bold; color: var(–primary-color); text-align: center; margin-bottom: 15px; padding: 15px; background-color: var(–secondary-color); border-radius: 4px; } .intermediate-results { display: flex; flex-wrap: wrap; justify-content: space-around; gap: 15px; margin-bottom: 20px; } .intermediate-results div { text-align: center; padding: 10px; border: 1px dashed var(–border-color); border-radius: 4px; background-color: var(–card-background); flex: 1; min-width: 150px; } .intermediate-results span { display: block; font-size: 1.4em; font-weight: bold; color: var(–primary-color); } .formula-explanation { font-size: 0.9em; color: #6c757d; text-align: center; margin-top: 15px; } .table-container { margin-top: 30px; overflow-x: auto; border: 1px solid var(–border-color); border-radius: 4px; } table { width: 100%; border-collapse: collapse; text-align: left; } th, td { padding: 12px 15px; border: 1px solid var(–border-color); } thead { background-color: var(–primary-color); color: white; } tbody tr:nth-child(even) { background-color: var(–secondary-color); } caption { caption-side: top; font-weight: bold; font-size: 1.1em; color: var(–primary-color); margin-bottom: 10px; text-align: left; } .chart-container { margin-top: 30px; padding: 20px; border: 1px solid var(–border-color); border-radius: 8px; background-color: var(–card-background); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.03); text-align: center; } .chart-container h3 { margin-top: 0; margin-bottom: 20px; } canvas { max-width: 100%; height: auto; } .article-content { margin-top: 40px; padding: 25px; border: 1px solid var(–border-color); border-radius: 8px; background-color: var(–card-background); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.03); } .article-content p { margin-bottom: 15px; } .article-content ul { margin-left: 20px; margin-bottom: 15px; } .article-content li { margin-bottom: 8px; } .article-content a { color: var(–primary-color); text-decoration: none; } .article-content a:hover { text-decoration: underline; } footer { text-align: center; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(–border-color); font-size: 0.9em; color: #6c757d; } /* Responsive adjustments */ @media (max-width: 768px) { h1 { font-size: 2em; } h2 { font-size: 1.5em; } .container { margin: 10px; padding: 15px; } .intermediate-results { flex-direction: column; align-items: center; } .intermediate-results div { width: 80%; } .button-group { justify-content: center; } }

Calcular Seguro de Vida: Tu Guía Completa

Obtén una estimación precisa del costo de tu seguro de vida y comprende los factores que influyen en tu prima.

Calculadora de Seguro de Vida

Ingresa tu edad actual en años.
La cantidad que deseas asegurar (en tu moneda local).
Excelente Bueno Regular Malo
Selecciona tu estado de salud general.
No Sí
Indica si fumas habitualmente.
Por cuántos años deseas la cobertura.

Resultados Estimados

Prima Base Anual
Factor de Riesgo
Costo Anual Ajustado
La prima estimada se calcula multiplicando una prima base (que depende de la edad, cobertura y plazo) por un factor de riesgo (que considera estado de salud y hábitos como fumar).
Desglose Estimado de la Prima Anual por Factores
Factor Valor Impacto Estimado
Edad
Monto de Cobertura
Duración Póliza
Estado de Salud
Fumador

Impacto de Factores Clave en la Prima

Este gráfico muestra cómo diferentes factores de riesgo pueden influir en el costo anual de tu seguro de vida.

¿Qué es el Seguro de Vida?

El seguro de vida es un contrato entre una persona (el asegurado) y una compañía de seguros. A cambio del pago de primas regulares, la compañía se compromete a pagar una suma de dinero predeterminada (el capital asegurado o beneficio por fallecimiento) a los beneficiarios designados por el asegurado en caso de su fallecimiento. Es una herramienta financiera fundamental para proteger económicamente a tus seres queridos ante imprevistos, asegurando que puedan mantener su nivel de vida, cubrir deudas o gastos importantes tras tu ausencia.

Seguro de Vida: Fórmula y Explicación Matemática

Calcular el seguro de vida de forma precisa implica modelos actuariales complejos. Sin embargo, para una estimación general, podemos entender la prima como una función de varios factores clave. La fórmula simplificada que utilizamos en nuestra calculadora es:

Prima Estimada = Prima Base Anual * Factor de Riesgo

Donde:

  • Prima Base Anual: Es el costo inicial del seguro sin considerar factores de riesgo individuales. Depende principalmente del monto de cobertura deseado, la edad del asegurado y la duración de la póliza. A mayor cobertura y mayor plazo, mayor será la prima base. A menor edad, menor será la prima base.
  • Factor de Riesgo: Es un multiplicador que ajusta la prima base según las características individuales del asegurado que aumentan la probabilidad de fallecimiento. Incluye el estado de salud (condiciones médicas preexistentes, historial clínico) y hábitos de vida (como fumar). Un factor de riesgo mayor a 1.0 indica un aumento en la prima.

En nuestra calculadora, desglosamos esto aún más:

Factor de Riesgo = Multiplicador de Salud * Multiplicador de Fumador

La Prima Estimada representa el costo anual aproximado que deberías esperar pagar por tu seguro de vida.

Ejemplos Prácticos de Uso

Imaginemos dos escenarios para entender cómo calcular seguro de vida:

Ejemplo 1: Joven Profesional Saludable

Ana tiene 30 años, no fuma, goza de excelente salud y desea una cobertura de 150,000€ para un plazo de 20 años. Su prima base anual podría ser de 200€. Dado su perfil de bajo riesgo (salud excelente = 1.0, no fumadora = 1.0), su factor de riesgo total es 1.0 * 1.0 = 1.0. Por lo tanto, su prima estimada anual sería 200€ * 1.0 = 200€.

Ejemplo 2: Persona Mayor con Hábitos de Riesgo

Carlos tiene 55 años, es fumador y su estado de salud es regular. Quiere una cobertura de 100,000€ por 15 años. Su prima base anual podría ser de 500€. Su factor de riesgo se calcula: salud regular (1.5) * fumador (1.8) = 2.7. Su prima estimada anual sería 500€ * 2.7 = 1,350€.

Estos ejemplos ilustran cómo la edad, el estado de salud y los hábitos de vida impactan significativamente en el costo del seguro de vida. Utiliza nuestra calculadora de seguro de vida para obtener tu propia estimación.

Cómo Usar Esta Calculadora de Seguro de Vida

Nuestra calculadora de seguro de vida está diseñada para ser intuitiva y fácil de usar:

  1. Ingresa tu Edad: Proporciona tu edad actual en años.
  2. Define el Monto de Cobertura: Indica la cantidad de dinero que deseas que tus beneficiarios reciban en caso de tu fallecimiento.
  3. Evalúa tu Estado de Salud: Selecciona la opción que mejor describa tu condición de salud general (Excelente, Bueno, Regular, Malo).
  4. Indica si Eres Fumador: Elige entre "Sí" o "No". Fumar incrementa considerablemente el riesgo.
  5. Especifica la Duración de la Póliza: Selecciona por cuántos años necesitas la cobertura.
  6. Haz Clic en "Calcular Prima": La calculadora te mostrará una estimación de tu prima anual, junto con valores intermedios clave y un desglose en la tabla.
  7. Utiliza los Botones: Puedes "Restablecer Valores" para empezar de nuevo o "Copiar Resultados" para guardar la información.

Recuerda que esta es una estimación. Para obtener una cotización exacta, deberás contactar a una compañía de seguros y pasar por su proceso de evaluación.

Factores Clave que Afectan los Resultados del Seguro de Vida

El costo de un seguro de vida no es arbitrario; se basa en la evaluación del riesgo que representa el asegurado para la compañía. Los factores más importantes que influyen en tu prima son:

  • Edad: Cuanto más joven seas al contratar el seguro, menor será la prima. El riesgo de fallecimiento aumenta con la edad.
  • Monto de Cobertura: Una suma asegurada mayor implica un mayor pago potencial para la aseguradora, por lo que la prima será más alta.
  • Duración de la Póliza (Plazo): Las pólizas a más largo plazo suelen tener primas más altas que las de corto plazo, ya que cubren un período de vida con mayor riesgo acumulado.
  • Estado de Salud: Condiciones médicas preexistentes, historial de enfermedades graves, obesidad o cualquier condición que aumente el riesgo de mortalidad incrementará el costo.
  • Hábitos de Vida: Fumar es uno de los factores de riesgo más significativos. El consumo de alcohol, drogas o la práctica de deportes de alto riesgo también pueden afectar la prima.
  • Profesión: Ciertas ocupaciones consideradas peligrosas (minería, construcción en altura, etc.) pueden implicar primas más elevadas.
  • Historial Familiar: Antecedentes de enfermedades graves en la familia (como cáncer o enfermedades cardíacas) pueden ser considerados por algunas aseguradoras.

Comprender estos factores te ayudará a tomar decisiones informadas al calcular seguro de vida y elegir la póliza adecuada.

Preguntas Frecuentes (FAQ)

¿Cuál es la diferencia entre seguro de vida temporal y permanente?

El seguro de vida temporal cubre por un período específico (ej. 10, 20, 30 años) y suele ser más económico. El seguro de vida permanente (como el vitalicio) cubre toda la vida del asegurado y a menudo incluye un componente de ahorro o inversión, siendo considerablemente más caro.

¿Puedo cambiar mi póliza de seguro de vida si mi situación cambia?

Depende del tipo de póliza y las cláusulas. Algunas pólizas permanentes permiten ajustes. Si tienes una póliza temporal, es posible que necesites contratar una nueva, lo que podría implicar primas más altas debido a tu edad o cambios en tu salud.

¿Qué pasa si dejo de pagar las primas?

Si no pagas las primas a tiempo, la póliza puede caducar, lo que significa que perderás la cobertura. Dependiendo de la póliza y el tiempo transcurrido, podrías tener un período de gracia para ponerte al día o la opción de convertirla en una póliza pagada (si es permanente).

¿Es necesario un examen médico para calcular seguro de vida?

Para obtener una cotización precisa y la aprobación final, muchas aseguradoras requieren un examen médico, especialmente para montos de cobertura elevados o si existen factores de riesgo. Sin embargo, existen seguros de vida sin examen médico, aunque suelen tener primas más altas o coberturas limitadas.

¿Cómo afecta el COVID-19 al seguro de vida?

Las aseguradoras han ajustado sus criterios de suscripción. Haber padecido COVID-19, especialmente si hubo complicaciones o secuelas, puede influir en tu estado de salud y, por ende, en la prima. Algunas compañías pueden requerir un período de espera antes de aprobar una póliza.

Herramientas Relacionadas y Recursos Internos

© 2023 Tu Empresa Financiera. Todos los derechos reservados.

var chartInstance = null; // Global variable to hold chart instance function getInputValue(id) { var element = document.getElementById(id); if (!element) return null; var value = element.value.trim(); if (value === "") return null; return parseFloat(value); } function setErrorMessage(id, message) { var errorElement = document.getElementById(id); if (errorElement) { errorElement.textContent = message; } } function clearErrorMessages() { setErrorMessage('ageError', "); setErrorMessage('coverageAmountError', "); setErrorMessage('healthStatusError', "); setErrorMessage('smokerError', "); setErrorMessage('policyTermError', "); } function validateInputs() { var age = getInputValue('age'); var coverageAmount = getInputValue('coverageAmount'); var policyTerm = getInputValue('policyTerm'); var isValid = true; if (age === null || isNaN(age) || age 100) { setErrorMessage('ageError', 'Por favor, ingresa una edad válida (1-100).'); isValid = false; } if (coverageAmount === null || isNaN(coverageAmount) || coverageAmount <= 0) { setErrorMessage('coverageAmountError', 'Por favor, ingresa un monto de cobertura válido y positivo.'); isValid = false; } if (policyTerm === null || isNaN(policyTerm) || policyTerm 100) { setErrorMessage('policyTermError', 'Por favor, ingresa una duración válida (1-100 años).'); isValid = false; } return isValid; } function calculateLifeInsurance() { clearErrorMessages(); if (!validateInputs()) { document.getElementById('estimatedPremium').textContent = '–'; document.getElementById('baseAnnualPremium').textContent = '–'; document.getElementById('riskFactor').textContent = '–'; document.getElementById('adjustedAnnualCost').textContent = '–'; updateTable(null, null, null, null, null, null, null, null, null, null, null); updateChart(null, null, null, null, null); return; } var age = getInputValue('age'); var coverageAmount = getInputValue('coverageAmount'); var healthStatusMultiplier = parseFloat(document.getElementById('healthStatus').value); var smokerMultiplier = parseFloat(document.getElementById('smoker').value); var policyTerm = getInputValue('policyTerm'); // Simplified base premium calculation (example logic) // This is a highly simplified model. Real-world calculations are complex. var basePremiumFactor = 1.0; if (age < 30) basePremiumFactor = 0.8; else if (age < 40) basePremiumFactor = 1.0; else if (age < 50) basePremiumFactor = 1.5; else if (age < 60) basePremiumFactor = 2.5; else basePremiumFactor = 4.0; var termFactor = 1.0; if (policyTerm < 10) termFactor = 0.7; else if (policyTerm < 20) termFactor = 1.0; else if (policyTerm < 30) termFactor = 1.5; else termFactor = 2.0; var baseAnnualPremium = (coverageAmount / 1000) * basePremiumFactor * termFactor; var riskFactor = healthStatusMultiplier * smokerMultiplier; var adjustedAnnualCost = baseAnnualPremium * riskFactor; var estimatedPremium = adjustedAnnualCost; // Primary result is the adjusted annual cost document.getElementById('estimatedPremium').textContent = formatCurrency(estimatedPremium); document.getElementById('baseAnnualPremium').textContent = formatCurrency(baseAnnualPremium); document.getElementById('riskFactor').textContent = riskFactor.toFixed(2); document.getElementById('adjustedAnnualCost').textContent = formatCurrency(adjustedAnnualCost); // Update table updateTable(age, coverageAmount, policyTerm, healthStatusMultiplier, smokerMultiplier, baseAnnualPremium, riskFactor, adjustedAnnualCost, estimatedPremium); // Update chart updateChart(baseAnnualPremium, healthStatusMultiplier, smokerMultiplier, age, policyTerm); } function updateTable(age, coverageAmount, policyTerm, healthMultiplier, smokerMultiplier, basePremium, riskFactor, adjustedCost, estimatedPremium) { var tableBody = document.getElementById('resultsTableBody'); if (!tableBody) return; var rows = tableBody.getElementsByTagName('tr'); if (rows.length < 5) return; // Ensure table structure is as expected // Update cells with data rows[0].cells[1].textContent = age !== null ? age : '–'; rows[0].cells[2].textContent = age !== null ? `(${ (age < 30 ? 0.8 : (age < 40 ? 1.0 : (age < 50 ? 1.5 : (age < 60 ? 2.5 : 4.0)))).toFixed(1) })` : '–'; rows[1].cells[1].textContent = coverageAmount !== null ? formatCurrency(coverageAmount) : '–'; rows[1].cells[2].textContent = coverageAmount !== null ? `(${(coverageAmount / 1000).toFixed(1)})` : '–'; // Impact based on coverage amount rows[2].cells[1].textContent = policyTerm !== null ? policyTerm + ' años' : '–'; rows[2].cells[2].textContent = policyTerm !== null ? `(${ (policyTerm < 10 ? 0.7 : (policyTerm < 20 ? 1.0 : (policyTerm < 30 ? 1.5 : 2.0)))).toFixed(1) })` : '–'; rows[3].cells[1].textContent = healthMultiplier !== null ? getHealthStatusText(healthMultiplier) : '–'; rows[3].cells[2].textContent = healthMultiplier !== null ? `(${healthMultiplier.toFixed(1)})` : '–'; rows[4].cells[1].textContent = smokerMultiplier !== null ? (smokerMultiplier === 1.8 ? 'Sí' : 'No') : '–'; rows[4].cells[2].textContent = smokerMultiplier !== null ? `(${smokerMultiplier.toFixed(1)})` : '–'; } function getHealthStatusText(multiplier) { if (multiplier === 1.0) return 'Excelente'; if (multiplier === 1.2) return 'Bueno'; if (multiplier === 1.5) return 'Regular'; if (multiplier === 2.0) return 'Malo'; return '–'; } function formatCurrency(amount) { // Basic currency formatting, adjust locale and currency as needed return new Intl.NumberFormat('es-ES', { style: 'currency', currency: 'EUR' }).format(amount); } function resetCalculator() { document.getElementById('age').value = ''; document.getElementById('coverageAmount').value = ''; document.getElementById('healthStatus').value = '1.0'; document.getElementById('smoker').value = '1.0'; document.getElementById('policyTerm').value = ''; document.getElementById('estimatedPremium').textContent = '–'; document.getElementById('baseAnnualPremium').textContent = '–'; document.getElementById('riskFactor').textContent = '–'; document.getElementById('adjustedAnnualCost').textContent = '–'; clearErrorMessages(); updateTable(null, null, null, null, null, null, null, null, null); updateChart(null, null, null, null, null); if (chartInstance) { chartInstance.destroy(); chartInstance = null; } } function copyResults() { var estimatedPremium = document.getElementById('estimatedPremium').textContent; var baseAnnualPremium = document.getElementById('baseAnnualPremium').textContent; var riskFactor = document.getElementById('riskFactor').textContent; var adjustedAnnualCost = document.getElementById('adjustedAnnualCost').textContent; var age = document.getElementById('age').value || 'N/A'; var coverageAmount = document.getElementById('coverageAmount').value || 'N/A'; var healthStatus = document.getElementById('healthStatus').options[document.getElementById('healthStatus').selectedIndex].text; var smoker = document.getElementById('smoker').options[document.getElementById('smoker').selectedIndex].text; var policyTerm = document.getElementById('policyTerm').value || 'N/A'; var resultsText = "Resultados Estimados Seguro de Vida:\n\n" + "Prima Estimada Anual: " + estimatedPremium + "\n" + "Prima Base Anual: " + baseAnnualPremium + "\n" + "Factor de Riesgo: " + riskFactor + "\n" + "Costo Anual Ajustado: " + adjustedAnnualCost + "\n\n" + "Detalles de Entrada:\n" + "Edad: " + age + "\n" + "Monto de Cobertura: " + (coverageAmount !== 'N/A' ? formatCurrency(parseFloat(coverageAmount)) : 'N/A') + "\n" + "Duración Póliza: " + policyTerm + " años\n" + "Estado de Salud: " + healthStatus + "\n" + "Fumador: " + smoker + "\n\n" + "Nota: Estos son valores estimados y no constituyen una cotización oficial."; navigator.clipboard.writeText(resultsText).then(function() { // Optional: Show a confirmation message var copyButton = document.querySelector('.btn-copy'); var originalText = copyButton.textContent; copyButton.textContent = '¡Copiado!'; setTimeout(function() { copyButton.textContent = originalText; }, 2000); }).catch(function(err) { console.error('Error al copiar resultados: ', err); // Optional: Show an error message }); } function updateChart(basePremium, healthMultiplier, smokerMultiplier, age, policyTerm) { var ctx = document.getElementById('premiumChart').getContext('2d'); // Destroy previous chart instance if it exists if (chartInstance) { chartInstance.destroy(); } // Simplified data generation for demonstration var labels = []; var dataSeries1 = []; // Base Premium Component var dataSeries2 = []; // Risk Factor Component // Example: Show impact of age and term on base premium var agesForChart = [25, 35, 45, 55, 65]; var termsForChart = [10, 20, 30]; // Calculate base premium components for different ages agesForChart.forEach(function(a) { var bpFactor = 1.0; if (a < 30) bpFactor = 0.8; else if (a < 40) bpFactor = 1.0; else if (a < 50) bpFactor = 1.5; else if (a < 60) bpFactor = 2.5; else bpFactor = 4.0; var coverage = getInputValue('coverageAmount') || 100000; // Use current or default coverage var term = policyTerm || 20; // Use current or default term var termF = 1.0; if (term < 10) termF = 0.7; else if (term < 20) termF = 1.0; else if (term < 30) termF = 1.5; else termF = 2.0; dataSeries1.push((coverage / 1000) * bpFactor * termF); labels.push('Edad ' + a); }); // Calculate risk factor impact for a hypothetical scenario // Let's assume a base risk factor of 1.0 and show impact of health/smoker var hypotheticalBaseRisk = 1.0; var healthOptions = [1.0, 1.2, 1.5, 2.0]; // Excelente, Bueno, Regular, Malo var smokerOptions = [1.0, 1.8]; // No, Sí // Example: Show risk factor impact across health statuses for a non-smoker dataSeries2 = healthOptions.map(function(h) { return hypotheticalBaseRisk * h * 1.0; // Assuming non-smoker }); var riskLabels = ['Salud Exc.', 'Salud Bu.', 'Salud Reg.', 'Salud Mal.']; // Combine data if needed, or choose one representation // For simplicity, let's show the impact of health status on the *adjusted* cost var adjustedCosts = healthOptions.map(function(h) { var currentBase = basePremium || 100; // Use calculated or default var currentSmoker = smokerMultiplier || 1.0; return currentBase * h * currentSmoker; }); // Let's refine the chart to show: // Series 1: Base Premium (based on age/term) // Series 2: Adjusted Premium (considering health/smoker) var chartLabels = []; var chartBasePremiumData = []; var chartAdjustedPremiumData = []; var currentCoverage = getInputValue('coverageAmount') || 100000; var currentTerm = policyTerm || 20; var currentHealth = healthMultiplier || 1.0; var currentSmoker = smokerMultiplier || 1.0; // Base Premium calculation factors var bpFactorAge = 1.0; if (age < 30) bpFactorAge = 0.8; else if (age < 40) bpFactorAge = 1.0; else if (age < 50) bpFactorAge = 1.5; else if (age < 60) bpFactorAge = 2.5; else bpFactorAge = 4.0; var termF = 1.0; if (currentTerm < 10) termF = 0.7; else if (currentTerm < 20) termF = 1.0; else if (currentTerm 1.0) { chartLabels.push('Fumador (x1.8)'); chartBasePremiumData.push(calculatedBasePremium); chartAdjustedPremiumData.push(calculatedBasePremium * currentHealth * 1.8); } chartInstance = new Chart(ctx, { type: 'bar', // Use bar chart for comparison data: { labels: chartLabels, datasets: [{ label: 'Prima Base Estimada', data: chartBasePremiumData, backgroundColor: 'rgba(0, 74, 153, 0.5)', // Primary color, semi-transparent borderColor: 'rgba(0, 74, 153, 1)', borderWidth: 1 }, { label: 'Prima Ajustada (Riesgo)', data: chartAdjustedPremiumData, backgroundColor: 'rgba(220, 53, 69, 0.5)', // Error color, semi-transparent borderColor: 'rgba(220, 53, 69, 1)', borderWidth: 1 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { y: { beginAtZero: true, title: { display: true, text: 'Costo Anual Estimado' } } }, plugins: { title: { display: true, text: 'Impacto de Factores de Riesgo en la Prima' }, legend: { position: 'top' } } } }); } // Initial calculation on load if default values are present or to show initial state // calculateLifeInsurance(); // Add Chart.js library dynamically if not present (for older browsers or specific setups) // In a production environment, you'd typically include this in the if (typeof Chart === 'undefined') { var script = document.createElement('script'); script.src = 'https://cdn.jsdelivr.net/npm/chart.js'; script.onload = function() { console.log('Chart.js loaded.'); // Optionally trigger calculation after chart library loads if needed // calculateLifeInsurance(); }; document.head.appendChild(script); } else { // If Chart.js is already available, ensure chart is drawn on load if inputs have values // calculateLifeInsurance(); }

Leave a Comment