Fórmula para pago de intereses de meses anteriores y saldo - Amortización inversa

Estoy tratando de resolver un problema que tengo en el que un sistema calculó incorrectamente los pagos adicionales de un préstamo durante un par de meses, lo que resultó en que el nuevo saldo actual fuera incorrecto. Quiero arreglar el saldo, pero necesito encontrar una forma de determinar cuál era el saldo inicial original, ya que no se registró en ninguna parte.

Conozco las fórmulas para la amortización normal, pero necesito poder averiguar el reverso con la siguiente información:

  • Saldo actual
  • Tasa de interés
  • Mensualidad
  • Pago de capital adicional si se utiliza.
  • No se conoce el número de pagos ni la duración del préstamo.

Entonces, sabiendo eso, y si tuviera que crear una hoja de cálculo de amortización, ¿cómo obtendría los dos meses anteriores?

Fórmula actual para la amortización regular.

Tasa de Interés = (X.XX/100)/12

Nuevo Saldo = Saldo Actual + ((Pago Mínimo - (Saldo Actual * Tasa de Interés)) + Pago Adicional)

Necesito el reverso del anterior. Intenté restar los valores del Saldo actual y repetirlo un par de veces: me acerco a lo que puede ser el saldo original, pero está fuera de un par de decimales de interés.

Actualización: a continuación se muestra un conjunto de números de ejemplo que utiliza el programa de amortización normal que funciona, y el nuevo conjunto de números para determinar el saldo original. Sin embargo, como puedes ver, estoy fuera. Sin pago adicional en el ejemplo a continuación.

Dirección mensual normal:

Saldo inicial: $5000

Tasa de interés: 5%

Pago Mensual: $300

Después de 3 Pagos Automáticos el total es: $4,159.01 (Este número es correcto y ha sido verificado en hoja de cálculo).

$Int = (5.0/100)/12;
$Months = 1;
$NewBalance = 5000;
while($autoMonths <= 3){
    $NewBalance = $NewBalance - ((300 - ($NewBalance * $Int)));
    $Months++;
}

Ahora al revés:

Saldo inicial: $4,159.01

Tasa de interés: 5%

Pago Mensual: $300

3 Auto Pagos ATRÁS, el total es: $5,003.49

$prevBalance = 4159.01;
$prevMonths = 1;
while($prevMonths <= 3){
    $prevBalance = $prevBalance + ((300 - ($prevBalance * $Int)));
    $prevMonths++;
}
Creo que tienes un signo equivocado en tu fórmula. Obviamente, si el monto de su pago aumenta, su nuevo saldo debería disminuir. Creo que debería ser NB = OB - (P - OB × R). Entonces NB = OB (1 + R) - P, entonces OB = (NB + P) / (1 + R). [Nota, P es Pago Mínimo + Pago Adicional.]
Necesitaría el momento y la cantidad de los pagos de capital adicionales.
Sí, esto supone que los pagos adicionales se realizan al mismo tiempo que los pagos regulares y que ambos se realizan en la fecha de vencimiento.
Probaré su fórmula prl, la que estamos usando funciona y coincide con los resultados de amortización de cada mes continuo. Todo esto se hace en un horario regular. Tengo el pago adicional también. Voy a actualizar mi pregunta con algunos números de ejemplo basados ​​en lo que estaba pensando originalmente, luego probaré el ajuste de fórmula de prl.

Respuestas (1)

Dado

s = principal
r = periodic rate
d = periodic payment

el saldo brestante en el mes xes

b = (d + (1 + r)^x (r s - d))/r

Aplicando tus figuras

s = 5000
r = 5.0/100/12
d = 300

x = 3
b = (d + (1 + r)^x (r s - d))/r = 4159.01

Valor inicial, hace tres meses

x = 0
b = (d + (1 + r)^x (r s - d))/r = 5000

O, en su código

$Int = (5.0/100)/12;
$Months = 1;
$NewBalance = 5000;
while($Months <= 3){
    $NewBalance = ($NewBalance * (1 + $Int)) - 300;
    $Months++;
}

$prevBalance = 4159.01;
$prevMonths = 1;
while($prevMonths <= 3){
    $prevBalance = ($prevBalance + 300) / (1 + $Int);
    $prevMonths++;
}
¡¡Esto parece funcionar!! Necesita hacer más verificación y necesita agregar un pago adicional en algunos casos al capital.
Espera, ¿por qué funcionaría la fórmula inicial? Debe aplicar en alguna parte de esa fórmula cuántas veces retrocede.
¿Quieres decir b = (d + (1 + r)^x (r s - d))/r? Es la solución a esta ecuación en diferencia : b(x + 1) = b(x)*(1 + r) - ddada b(0) = s. Resuelto aquí usando Wolfram Alpha. Explicación de YouTube aquí .
Me refiero a donde tienes x = 0 y la misma fórmula regresa a 5000. El ciclo de código funciona, pero tengo curiosidad sobre la fórmula, ya que necesitarías ingresar el nuevo saldo en algún lugar y decirle que retroceda 3 para llegar a 5000. Entonces asignando 4159.01 a s y -3 a x o algo así. Aunque no es gran cosa.
@TravisJohnston La fórmula se calcula a partir del principal sy le indica el saldo en cualquier mes x. Si le sirve de ayuda, si solo tiene el saldo by d, ry xpuede obtener el capital de s = ((1 + r)^-x (b r + d ((1 + r)^x - 1)))/r. O simplemente puede retroceder como en su código.