Skip to content

Равноценный ежемесячный взнос (EMI)

Равноценный ежемесячный платёж (EMI) представляет собой фиксированную сумму, которую заёмщик обязан выплачивать кредитору в установленный день каждого месяца. Эти платежи используются для погашения как процентов, так и основной суммы долга, что позволяет полностью выплатить кредит в течение определённого периода времени.

Как и в случае с большинством видов кредитов, таких как ипотека на недвижимость, заёмщик осуществляет выплаты кредитору в виде фиксированных периодических платежей в течение нескольких лет. EMI отличается от планов с переменными платежами, где заёмщик может вносить более высокие суммы по своему усмотрению. В планах EMI заёмщикам обычно разрешается вносить только одну фиксированную сумму в месяц.

Описание

Формула для расчета EMI (просроченной задолженности) выглядит следующим образом:

\[ P \,=\,A\cdot\frac{1-\left({1+r}\right)^{-n} }{r} \]

или, что эквивалентно:

\[ A \,=\,P\cdot\frac{r(1 + r)^n}{(1 + r)^n - 1} \]

Где: P - основная сумма займа, A - периодический амортизационный платеж, r - годовая процентная ставка, деленная на 100 (годовая процентная ставка также делится на 12 в случае ежемесячных платежей), и n - общее количество платежей (для кредита на 30 лет с ежемесячными платежами n = 30 × 12 = 360).

Например, если вы берете взаймы в банке 10 000 000 долларов США под 10,5% годовых сроком на 10 лет (т.е. на 120 месяцев), то EMI = $10,000,000 × 0.00875 × (1 + 0.00875)120/((1 + 0.00875)120 – 1) = 134 935 долларов США. т.е. вам придется заплатить 134 935 долларов США в течение 120 месяцев, чтобы погасить всю сумму кредита. Общая сумма, подлежащая выплате, составит 134 935 × 120 долларов США = 16 192 200 долларов США, включая 6 192 200 долларов США в качестве процентов по кредиту.

Реализация

python
def equated_monthly_installments(
    principal: float, rate_per_annum: float, years_to_repay: int
) -> float:
    # (3)!
    if principal <= 0:
        raise Exception("Principal borrowed must be > 0")
    if rate_per_annum < 0:
        raise Exception("Rate of interest must be >= 0")
    if years_to_repay <= 0 or not isinstance(years_to_repay, int):
        raise Exception("Years to repay must be an integer > 0")

    rate_per_month = rate_per_annum / 12 # (1)!
    number_of_payments = years_to_repay * 12 # (2)!

    return (
        principal
        * rate_per_month
        * (1 + rate_per_month) ** number_of_payments
        / ((1 + rate_per_month) ** number_of_payments - 1)
    )
  1. Годовая ставка делится на 12, чтобы получить месячную ставку

  2. Количество лет до погашения умножается на 12, чтобы получить количество платежей, поскольку оплата производится ежемесячно

  3. Формула для расчета суммы амортизации в месяц:
    A = p * r * (1 + r)^n / ((1 + r)^n - 1)
    где p - сумма основного долга, r_- процентная ставка в месяц, а n - количество платежей