Calculadora De Amortizacion

Calculadora de Amortización – Calcula tus Pagos y Saldo :root { –primary-color: #004a99; –success-color: #28a745; –background-color: #f8f9fa; –text-color: #333; –border-color: #ccc; –card-background: #fff; –shadow: 0 2px 10px rgba(0, 0, 0, 0.1); } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(–background-color); color: var(–text-color); line-height: 1.6; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: center; } .container { width: 100%; max-width: 980px; margin: 20px auto; padding: 20px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); } header { background-color: var(–primary-color); color: white; padding: 15px 0; text-align: center; width: 100%; margin-bottom: 20px; border-radius: 8px 8px 0 0; } header h1 { margin: 0; font-size: 2em; } h2, h3 { color: var(–primary-color); margin-top: 30px; margin-bottom: 15px; border-bottom: 2px solid var(–primary-color); padding-bottom: 5px; } .loan-calc-container { background-color: var(–card-background); padding: 25px; border-radius: 8px; box-shadow: var(–shadow); margin-bottom: 30px; } .input-group { margin-bottom: 20px; display: flex; flex-direction: column; } .input-group label { display: block; margin-bottom: 8px; font-weight: bold; color: var(–primary-color); } .input-group input[type="number"], .input-group input[type="text"], .input-group select { width: calc(100% – 20px); padding: 12px; border: 1px solid var(–border-color); border-radius: 5px; font-size: 1em; box-sizing: border-box; } .input-group input[type="number"]:focus, .input-group input[type="text"]:focus, .input-group select:focus { outline: none; border-color: var(–primary-color); box-shadow: 0 0 0 3px rgba(0, 74, 153, 0.2); } .input-group .helper-text { font-size: 0.85em; color: #666; margin-top: 5px; } .input-group .error-message { color: red; font-size: 0.8em; margin-top: 5px; display: none; /* Hidden by default */ } .button-group { display: flex; justify-content: space-between; margin-top: 25px; flex-wrap: wrap; gap: 10px; } .button-group button { padding: 12px 20px; border: none; border-radius: 5px; 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 { background-color: #6c757d; color: white; } .btn-reset:hover { background-color: #5a6268; } .btn-copy { background-color: var(–success-color); color: white; } .btn-copy:hover { background-color: #218838; } .results-container { background-color: var(–primary-color); color: white; padding: 25px; border-radius: 8px; margin-top: 30px; box-shadow: var(–shadow); text-align: center; } .results-container h3 { color: white; margin-top: 0; border-bottom: 1px solid white; padding-bottom: 10px; } .main-result { font-size: 2.5em; font-weight: bold; margin: 10px 0 20px 0; padding: 10px; background-color: rgba(255, 255, 255, 0.1); border-radius: 5px; display: inline-block; } .intermediate-results { display: flex; justify-content: space-around; flex-wrap: wrap; gap: 15px; margin-top: 20px; } .intermediate-results div { padding: 10px; border-radius: 5px; background-color: rgba(255, 255, 255, 0.1); text-align: center; flex-basis: 30%; min-width: 120px; } .intermediate-results span { display: block; font-size: 1.3em; font-weight: bold; } .formula-explanation { font-size: 0.9em; margin-top: 20px; padding: 10px; border-left: 3px solid var(–success-color); background-color: rgba(40, 167, 69, 0.05); text-align: left; } .chart-container { margin-top: 30px; padding: 25px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); } .chart-container h3 { text-align: center; margin-top: 0; } table { width: 100%; border-collapse: collapse; margin-top: 20px; } th, td { padding: 12px 15px; border: 1px solid var(–border-color); text-align: right; } thead th { background-color: var(–primary-color); color: white; font-weight: bold; } tbody tr:nth-child(odd) { background-color: #f2f2f2; } caption { font-size: 1.1em; font-weight: bold; color: var(–primary-color); margin-bottom: 15px; caption-side: top; text-align: center; } canvas { max-width: 100%; height: auto; display: block; margin: 20px auto 0 auto; } .article-section { width: 100%; margin-top: 30px; padding: 25px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); } .article-section p, .article-section li { margin-bottom: 15px; } .article-section ul, .article-section ol { margin-left: 20px; margin-bottom: 15px; } .article-section a { color: var(–primary-color); text-decoration: none; font-weight: bold; } .article-section a:hover { text-decoration: underline; } .faq-item { margin-bottom: 15px; border-bottom: 1px dashed var(–border-color); padding-bottom: 10px; } .faq-item:last-child { border-bottom: none; } .faq-question { font-weight: bold; color: var(–primary-color); cursor: pointer; display: block; position: relative; padding-left: 25px; } .faq-question::before { content: '+'; position: absolute; left: 0; font-weight: bold; color: var(–primary-color); font-size: 1.2em; } .faq-answer { margin-top: 10px; padding-left: 15px; display: none; /* Hidden by default */ } .faq-item.active .faq-answer { display: block; } .faq-item.active .faq-question::before { content: '-'; } #related-tools ul { list-style: none; padding: 0; } #related-tools li { margin-bottom: 10px; } footer { text-align: center; padding: 20px; margin-top: 30px; font-size: 0.9em; color: #666; width: 100%; } /* Responsive adjustments */ @media (max-width: 768px) { .container { margin: 10px auto; padding: 15px; } header h1 { font-size: 1.8em; } .results-container, .loan-calc-container, .chart-container, .article-section { padding: 20px; } .intermediate-results div { flex-basis: 100%; } .button-group button { width: 100%; } }

Calculadora de Amortización

Calculadora de Amortización

Ingrese el monto total del préstamo o inversión.
Ingrese la cantidad fija que pagará en cada período.
Ej: 5% anual sería 0.05 si es anual, o 0.05/12 si es mensual.
Anual Semestral Trimestral Mensual Quincenal Semanal Seleccione la frecuencia con la que realiza los pagos.
Ingrese el número del primer período para iniciar el cálculo (generalmente 1).

Resultados de Amortización

Fórmula Simplificada: El cálculo se basa en la adición del interés generado en el período actual al saldo pendiente y luego la deducción del pago fijo. El interés se calcula sobre el saldo pendiente del período anterior.
Total Pagado:
0
Interés Total:
0
Períodos Restantes:
0

Gráfico de Amortización

Representación visual del saldo pendiente y el interés pagado a lo largo del tiempo.

Tabla de Amortización Detallada

Período Pago Interés Principal Saldo Pendiente

Detalle de cada pago, cuánto se destina a interés y cuánto al principal, y el saldo restante.

¿Qué es la Amortización?

La amortización es un concepto financiero fundamental que se refiere al proceso de saldar una deuda o activo a través de pagos regulares a lo largo del tiempo. En el contexto de un préstamo, la amortización implica el pago tanto del capital (monto principal) como de los intereses acumulados. Para una inversión o un activo, la amortización representa la distribución sistemática de su costo a lo largo de su vida útil esperada. Una calculadora de amortización es una herramienta esencial para visualizar y planificar estos procesos, permitiendo a individuos y empresas entender cómo sus pagos afectan el saldo pendiente y el costo total de una deuda.

¿Quién Debería Usar una Calculadora de Amortización?

Esta calculadora es útil para una amplia gama de usuarios:

  • Prestatarios: Cualquier persona que haya solicitado un préstamo (hipotecario, automotriz, personal, estudiantil) para comprender cómo funcionan sus pagos, cuánto interés pagarán en total y cuánto tiempo les tomará saldar la deuda.
  • Inversores: Quienes buscan entender la depreciación de un activo o cómo una inversión genera flujos de efectivo para recuperar el costo inicial.
  • Planificadores Financieros: Profesionales que ayudan a sus clientes a tomar decisiones informadas sobre deudas e inversiones.
  • Empresas: Para gestionar pasivos, planificar flujos de efectivo y evaluar la rentabilidad de inversiones a largo plazo.

Mitos Comunes sobre la Amortización

  • Mito: Todos los pagos se destinan al principal al principio. Realidad: En la mayoría de los préstamos a plazo, los primeros pagos cubren una mayor proporción de intereses.
  • Mito: La amortización es solo para deudas. Realidad: También se aplica a la depreciación de activos intangibles y la distribución del costo de activos tangibles.
  • Mito: Los pagos fijos significan que el interés y el principal pagados son constantes. Realidad: Con pagos fijos, la proporción de interés disminuye y la de principal aumenta con el tiempo.

Fórmula de Amortización y Explicación Matemática

La fórmula para determinar el pago periódico fijo en un préstamo o anualidad con pagos iguales se deriva de la fórmula del valor presente de una anualidad ordinaria. Para una calculadora de amortización, a menudo se utiliza esta fórmula para encontrar el pago P, dado el principal (PV), la tasa de interés por período (r) y el número total de períodos (n):

Fórmula del Pago Periódico (P):

P = PV * [ r(1 + r)^n ] / [ (1 + r)^n – 1]

Donde:

  • PV (Valor Presente): El monto principal inicial del préstamo o inversión.
  • r (Tasa de Interés por Período): La tasa de interés aplicable a cada período de pago.
  • n (Número Total de Períodos): La duración total del préstamo o inversión en términos de períodos de pago.

Una vez que se conoce el pago periódico fijo (P), la tabla de amortización se construye iterativamente:

  1. Interés del Período = Saldo Pendiente Anterior * r
  2. Pago al Principal = P – Interés del Período
  3. Nuevo Saldo Pendiente = Saldo Pendiente Anterior – Pago al Principal

Variables Clave en la Amortización

Variable Significado Unidad Rango Típico
PV (Principal) Monto inicial del préstamo o inversión. Moneda (ej. EUR, USD) ≥ 0
P (Pago Periódico) Monto fijo pagado en cada período. Moneda (ej. EUR, USD) ≥ 0
r (Tasa de Interés por Período) Tasa de interés efectiva para un ciclo de pago. Decimal (ej. 0.05 para 5%) 0 a 1 (o más, en casos extremos)
n (Número Total de Períodos) Cantidad total de ciclos de pago. Unidad de tiempo (meses, años, etc.) ≥ 1
I (Interés Pagado) Porción del pago destinada a intereses. Moneda (ej. EUR, USD) ≥ 0
Amort. Principal Porción del pago destinada a reducir el principal. Moneda (ej. EUR, USD) ≥ 0
Saldo Pendiente Monto de deuda restante. Moneda (ej. EUR, USD) ≥ 0

Ejemplos Prácticos de Uso de la Calculadora de Amortización

Ejemplo 1: Préstamo Hipotecario

Una pareja compra una casa y obtiene una hipoteca de $200,000. Acuerdan pagos mensuales fijos de $1,100. La tasa de interés anual es del 6%, lo que se traduce en una tasa mensual de 0.06 / 12 = 0.005. Utilizan la calculadora de amortización para ver cuánto tardarán en pagar y el costo total.

  • Monto Inicial (Principal): $200,000
  • Pago Periódico Fijo: $1,100
  • Tasa de Interés por Período (Mensual): 0.005
  • Frecuencia de Pago: Mensual
  • Período Inicial: 1

Al ingresar estos datos, la calculadora determinaría que se necesitarían aproximadamente 389 meses (unos 32 años y 5 meses) para saldar la hipoteca, y el interés total pagado ascendería a unos $227,100. El pago total sería $427,100.

Ejemplo 2: Préstamo para Automóvil

Alguien compra un coche nuevo por $30,000. El préstamo tiene una tasa de interés anual del 8% (tasa mensual de 0.08 / 12 ≈ 0.006667). Eligen un plan de pago mensual fijo de $600.

  • Monto Inicial (Principal): $30,000
  • Pago Periódico Fijo: $600
  • Tasa de Interés por Período (Mensual): 0.006667
  • Frecuencia de Pago: Mensual
  • Período Inicial: 1

La calculadora de amortización muestra que este préstamo se saldaría en aproximadamente 58 meses (casi 5 años). El interés total pagado sería alrededor de $4,800, sumando un costo total de $34,800.

Cómo Usar Esta Calculadora de Amortización

Nuestra herramienta está diseñada para ser intuitiva y fácil de usar. Siga estos pasos:

  1. Ingrese el Monto Inicial (Principal): Escriba la cantidad total del préstamo o la inversión inicial.
  2. Introduzca el Pago Periódico Fijo: Si conoce la cantidad fija que pagará regularmente, ingrésela aquí. Si no, puede usar la fórmula del pago para calcularlo primero (o usar una calculadora de pago de préstamos separada).
  3. Especifique la Tasa de Interés por Período: Es crucial ingresar la tasa de interés correcta para el período de pago. Si tiene una tasa anual, divídala por la frecuencia de pago (ej. tasa anual / 12 para pagos mensuales).
  4. Seleccione la Frecuencia de Pago: Elija si sus pagos son anuales, mensuales, quincenales, etc.
  5. Indique el Período Inicial: Generalmente es '1', pero puede ajustarse si está analizando una parte específica de un préstamo ya existente.
  6. Haga Clic en "Calcular Amortización": La calculadora procesará los datos y mostrará los resultados.

Interpretación de los Resultados

Los resultados le mostrarán:

  • Pago Periódico Fijo: La cantidad constante que pagará.
  • Interés Total Pagado: La suma de todos los intereses abonados durante la vida del préstamo.
  • Períodos Restantes: El número total de pagos necesarios para saldar la deuda.
  • Tabla de Amortización: Un desglose detallado de cada pago, mostrando cuánto va al interés y cuánto al principal, junto con el saldo restante después de cada pago.
  • Gráfico de Amortización: Una representación visual que ilustra la disminución del saldo y la evolución del pago de intereses frente al principal.

Utilice esta información para tomar decisiones financieras informadas, como comparar diferentes opciones de préstamos o ajustar sus planes de pago para saldar deudas más rápidamente.

Factores Clave que Afectan los Resultados de Amortización

Varios elementos influyen significativamente en el proceso de amortización y en los resultados finales:

  1. Tasa de Interés (r): Una tasa de interés más alta incrementa la porción de interés en cada pago y aumenta el costo total del préstamo. Es uno de los factores más críticos.
  2. Monto Principal (PV): Un principal mayor requerirá pagos más grandes o un plazo más largo, y resultará en un mayor interés total pagado.
  3. Plazo del Préstamo (n): Un plazo más largo significa pagos periódicos más bajos, pero un interés total significativamente mayor. Un plazo más corto tiene el efecto contrario.
  4. Frecuencia de Pago: Pagar más frecuentemente (ej. quincenal en lugar de mensual) puede reducir ligeramente el interés total pagado debido a que el principal se reduce más rápido, aunque el pago total anual puede ser similar o mayor.
  5. Cargos y Comisiones Adicionales: Las comisiones de apertura, seguros obligatorios u otros cargos pueden aumentar el costo efectivo del préstamo, aunque no siempre se reflejen directamente en la tabla de amortización estándar.
  6. Pagos Adicionales: Realizar pagos extra al principal puede acortar drásticamente el plazo del préstamo y reducir considerablemente el interés total pagado.
  7. Inflación: Aunque no afecta directamente el cálculo de la calculadora de amortización, la inflación reduce el valor real del dinero con el tiempo. Esto significa que los pagos futuros, que parecen grandes hoy, podrían ser más manejables en términos de poder adquisitivo si la inflación es alta.
  8. Impuestos: Dependiendo de la jurisdicción y el tipo de préstamo (ej. hipotecario), los intereses pagados pueden ser deducibles de impuestos, lo que reduce el costo neto de la deuda.

Preguntas Frecuentes (FAQ) sobre Amortización

¿Cuál es la diferencia entre amortización y liquidación total?

La amortización es el proceso de pagar una deuda gradualmente a lo largo del tiempo mediante pagos regulares. La liquidación total se refiere a pagar el saldo completo de la deuda de una sola vez, a menudo antes de la fecha de vencimiento final.

¿Puede la calculadora de amortización calcular el pago si no conozco el monto del pago periódico?

No directamente. Esta calculadora asume que el pago periódico fijo es un dato de entrada. Para calcular el pago fijo, necesitaría usar la fórmula de cálculo de pago de anualidades, que requiere el principal, la tasa y el número total de períodos.

¿Qué sucede si el pago periódico es demasiado bajo para cubrir los intereses?

Si el pago periódico es menor que el interés generado en ese período, el saldo pendiente de la deuda aumentará en lugar de disminuir. Esto se conoce como amortización negativa y es común en ciertos tipos de préstamos (ej. algunos préstamos estudiantiles diferidos o préstamos con pagos variables).

¿Cómo afecta hacer pagos adicionales al principal?

Realizar pagos adicionales directamente al principal reduce el saldo pendiente más rápidamente. Esto significa que se generarán menos intereses en los períodos futuros, acortando el plazo total del préstamo y disminuyendo significativamente el interés total pagado.

¿Es la amortización siempre lineal?

No, la amortización de un préstamo con pagos fijos no es lineal en términos de la proporción de interés y principal. Los primeros pagos tienen una mayor proporción de interés, mientras que los últimos pagos tienen una mayor proporción de principal. La suma total pagada cada período sí es fija.

¿Qué es la "tasa de interés por período" y cómo la calculo?

Es la tasa de interés aplicada a un ciclo de pago específico. Si tiene una tasa de interés anual nominal, debe dividirla por el número de períodos de pago en un año. Por ejemplo, una tasa anual del 12% con pagos mensuales tiene una tasa por período de 12% / 12 = 1% (o 0.01 en decimal).

¿Puede esta calculadora manejar préstamos variables?

No, esta calculadora está diseñada para préstamos con pagos periódicos fijos y tasas de interés constantes por período. No puede modelar préstamos con tasas de interés variables o pagos que cambian de forma impredecible.

¿Qué significa el "saldo pendiente" en la tabla de amortización?

El saldo pendiente es la cantidad total de deuda que aún debe pagarse después de realizar un pago específico. Comienza con el monto principal inicial y disminuye con cada pago que incluye una porción para el principal.

© 2023 Su Empresa Financiera. Todos los derechos reservados.

var principalInput = document.getElementById('principal'); var periodPaymentInput = document.getElementById('periodPayment'); var rateInput = document.getElementById('rate'); var paymentFrequencyInput = document.getElementById('paymentFrequency'); var initialPeriodInput = document.getElementById('initialPeriod'); var principalError = document.getElementById('principalError'); var periodPaymentError = document.getElementById('periodPaymentError'); var rateError = document.getElementById('rateError'); var initialPeriodError = document.getElementById('initialPeriodError'); var mainResultDisplay = document.getElementById('mainResult'); var totalPaidDisplay = document.getElementById('totalPaid'); var totalInterestDisplay = document.getElementById('totalInterest'); var remainingPeriodsDisplay = document.getElementById('remainingPeriods'); var resultsContainer = document.getElementById('resultsContainer'); var amortizationTableBody = document.getElementById('amortizationTableBody'); var amortizationChartCanvas = document.getElementById('amortizationChartCanvas'); var ctx = amortizationChartCanvas.getContext('2d'); var myChart = null; // Variable para almacenar la instancia del gráfico function formatCurrency(value) { return Number(value).toLocaleString('es-ES', { style: 'currency', currency: 'EUR' }); // Ajustar moneda según necesidad } function formatDecimal(value) { return Number(value).toFixed(4); } function formatPeriods(value) { return Math.round(value); } function validateInput(inputElement, errorElement, minValue = null, maxValue = null) { var value = parseFloat(inputElement.value); var isValid = true; errorElement.style.display = 'none'; errorElement.textContent = "; inputElement.style.borderColor = '#ccc'; if (isNaN(value) || inputElement.value.trim() === ") { errorElement.textContent = 'Este campo es obligatorio.'; errorElement.style.display = 'block'; inputElement.style.borderColor = 'red'; isValid = false; } else if (minValue !== null && value maxValue) { errorElement.textContent = 'El valor excede el máximo permitido.'; errorElement.style.display = 'block'; inputElement.style.borderColor = 'red'; isValid = false; } return isValid; } function calculateAmortization() { var principal = parseFloat(principalInput.value); var periodPayment = parseFloat(periodPaymentInput.value); var rate = parseFloat(rateInput.value); var paymentFrequency = parseInt(paymentFrequencyInput.value); var initialPeriod = parseInt(initialPeriodInput.value); var principalIsValid = validateInput(principalInput, principalError, 0); var periodPaymentIsValid = validateInput(periodPaymentInput, periodPaymentError, 0); var rateIsValid = validateInput(rateInput, rateError, 0, 1); // Tasa entre 0 y 1 var initialPeriodIsValid = validateInput(initialPeriodInput, initialPeriodError, 1); if (!principalIsValid || !periodPaymentIsValid || !rateIsValid || !initialPeriodIsValid) { resultsContainer.style.display = 'none'; return; } // Asegurarse de que el pago periódico sea suficiente para cubrir el interés inicial var initialInterest = principal * rate; if (periodPayment 0.005) { // Continuar mientras haya saldo (con un pequeño margen para evitar bucles infinitos) var interestForPeriod = balance * rate; var principalForPeriod = periodPayment – interestForPeriod; // Ajuste final si el pago principal calculado es mayor que el saldo restante if (principalForPeriod > balance) { principalForPeriod = balance; periodPayment = interestForPeriod + principalForPeriod; // Ajustar pago si es el último } balance -= principalForPeriod; totalInterestPaid += interestForPeriod; totalPaid += periodPayment; // Sumar el pago real del período periods++; amortizationSchedule.push({ period: initialPeriod + periods – 1, payment: periodPayment, interest: interestForPeriod, principal: principalForPeriod, balance: balance 10000) { // Límite arbitrario de períodos console.error("Demasiados períodos calculados, posible problema en los datos de entrada."); resultsContainer.style.display = 'none'; return; } } // Calcular el número de pagos si no se usa el bucle while // Esta parte es más compleja si el pago es fijo y se quiere saber N // Para esta calculadora, asumimos que el bucle while ya nos da N // Si quisiéramos calcular N: // var n = -Math.log(1 – (principal * rate) / periodPayment) / Math.log(1 + rate); // totalInterestPaid = (periodPayment * n) – principal; mainResultDisplay.textContent = formatPeriods(periods); // Mostrar número de períodos totalPaidDisplay.textContent = formatCurrency(totalPaid); totalInterestDisplay.textContent = formatCurrency(totalInterestPaid); remainingPeriodsDisplay.textContent = formatPeriods(periods); // En este modelo, "restantes" es el total de períodos calculados resultsContainer.style.display = 'block'; populateTable(amortizationSchedule); updateChart(amortizationSchedule); } function populateTable(schedule) { amortizationTableBody.innerHTML = "; // Limpiar tabla existente for (var i = 0; i maxPoints) { var step = Math.floor(labels.length / maxPoints); labels = labels.filter(function(_, index) { return index % step === 0; }); principalData = principalData.filter(function(_, index) { return index % step === 0; }); interestData = interestData.filter(function(_, index) { return index % step === 0; }); balanceData = balanceData.filter(function(_, index) { return index % step === 0; }); // Asegurarse de incluir el último punto if (labels.length === 0 || labels[labels.length – 1] !== 'Período ' + schedule[schedule.length – 1].period) { labels.push('Período ' + schedule[schedule.length – 1].period); principalData.push(schedule[schedule.length – 1].principal); interestData.push(schedule[schedule.length – 1].interest); balanceData.push(schedule[schedule.length – 1].balance); } } myChart = new Chart(ctx, { type: 'line', data: { labels: labels, datasets: [{ label: 'Pago Principal', data: principalData, borderColor: 'var(–primary-color)', backgroundColor: 'rgba(0, 74, 153, 0.2)', fill: false, tension: 0.1 }, { label: 'Pago Interés', data: interestData, borderColor: 'var(–success-color)', backgroundColor: 'rgba(40, 167, 69, 0.2)', fill: false, tension: 0.1 }, { label: 'Saldo Pendiente', data: balanceData, borderColor: '#ffc107', // Amarillo backgroundColor: 'rgba(255, 193, 7, 0.2)', fill: false, tension: 0.1 }] }, options: { responsive: true, maintainAspectRatio: true, scales: { y: { beginAtZero: true, ticks: { callback: function(value) { return formatCurrency(value); } } } }, plugins: { tooltip: { callbacks: { label: function(context) { var label = context.dataset.label || "; if (label) { label += ': '; } if (context.parsed.y !== null) { label += formatCurrency(context.parsed.y); } return label; } } } } } }); } function resetCalculator() { principalInput.value = '10000'; periodPaymentInput.value = '200'; rateInput.value = '0.05'; paymentFrequencyInput.value = '12'; // Mensual por defecto initialPeriodInput.value = '1'; principalError.style.display = 'none'; periodPaymentError.style.display = 'none'; rateError.style.display = 'none'; initialPeriodError.style.display = 'none'; principalInput.style.borderColor = '#ccc'; periodPaymentInput.style.borderColor = '#ccc'; rateInput.style.borderColor = '#ccc'; initialPeriodInput.style.borderColor = '#ccc'; resultsContainer.style.display = 'none'; if (myChart) { myChart.destroy(); myChart = null; } amortizationTableBody.innerHTML = "; } function copyResults() { var principal = principalInput.value; var periodPayment = periodPaymentInput.value; var rate = rateInput.value; var paymentFrequency = paymentFrequencyInput.options[paymentFrequencyInput.selectedIndex].text; var initialPeriod = initialPeriodInput.value; var totalPaid = totalPaidDisplay.textContent; var totalInterest = totalInterestDisplay.textContent; var remainingPeriods = remainingPeriodsDisplay.textContent; var mainResultText = mainResultDisplay.textContent; // Períodos calculados var resultsText = "— Resumen de Amortización —\n\n"; resultsText += "Supuestos Clave:\n"; resultsText += "- Monto Inicial (Principal): " + formatCurrency(principal) + "\n"; resultsText += "- Pago Periódico Fijo: " + formatCurrency(periodPayment) + "\n"; resultsText += "- Tasa de Interés por Período: " + formatDecimal(rate) + " (" + paymentFrequency + ")\n"; resultsText += "- Período Inicial: " + initialPeriod + "\n\n"; resultsText += "Resultados Principales:\n"; resultsText += "- Períodos Totales Calculados: " + mainResultText + "\n"; resultsText += "- Monto Total Pagado: " + totalPaid + "\n"; resultsText += "- Interés Total Pagado: " + totalInterest + "\n"; var tempTextArea = document.createElement("textarea"); tempTextArea.value = resultsText; document.body.appendChild(tempTextArea); tempTextArea.select(); try { document.execCommand("copy"); alert("Resultados copiados al portapapeles."); } catch (err) { console.error("Error al copiar resultados: ", err); alert("No se pudieron copiar los resultados."); } document.body.removeChild(tempTextArea); } // Event listeners for real-time updates (optional, but good UX) principalInput.addEventListener('input', calculateAmortization); periodPaymentInput.addEventListener('input', calculateAmortization); rateInput.addEventListener('input', calculateAmortization); paymentFrequencyInput.addEventListener('change', calculateAmortization); initialPeriodInput.addEventListener('input', calculateAmortization); // Initial calculation on page load calculateAmortization(); // FAQ toggles var faqQuestions = document.querySelectorAll('.faq-question'); faqQuestions.forEach(function(question) { question.addEventListener('click', function() { var faqItem = this.parentElement; faqItem.classList.toggle('active'); }); });

Leave a Comment