Сокращать срок или платёж — раскрываем черный ящик ипотечного калькулятора

в 4:00, , рубрики: досрочное погашение, ипотечный калькулятор на python, сокращать срок или платеж
Примерно так я представлял себе ипотечный калькулятор.

Примерно так я представлял себе ипотечный калькулятор.

Привет! Меня зовут Зайнулла, я разработчик‑исследователь в InfoWatch и преподаватель в МГТУ им. Баумана. Сегодня расскажу о результатах не совсем типичного для меня исследования.

В статье «Уменьшать срок или платёж, что выгоднее: наглядное сравнение способов досрочного погашения кредита» проделана большая работа и сделаны правильные выводы, но меня смущает, что проведено исследование ипотеки как чёрного ящика, т. е. методом подстановки чисел в ипотечные калькуляторы с последующим сравнением результатов. Говорится о том, что показана математическая равнозначность методов, но сравнение результатов из ипотечных калькуляторов для нескольких частных случаев нельзя назвать доказательством в математическом смысле. Хотелось бы понимать причины равнозначности методов.

В этой статье раскрою почему и в каком смысле «уменьшение срока или платежа» математически эквивалентны, в какой день вносить досрочный платёж и зачем я написал свой ипотечный калькулятор на Python. А бонусом прилагается треш‑история покупки убитой хрущёвки.

С чего всё началось

Думали с женой как лучше сохранить накопления. Напрашивался очевидный вариант — перевести фантики в квадратные метры, но перспектива долгового обязательства на 30 лет вызывала внутренний протест. Различные проплаченные блогеры весьма убедительно рекомендовали срочно купить квартиру в одном из ЖК «Безрадостные коробки», а на другие у нас не было денег. Все эти маркетинговые штуки заставили нас всё‑таки посмотреть несколько ЖК, но без рвения. Посмотрев лучшие из доступных нашему бюджету первичек в Москве, мы поняли, что хрущёвка, которую снимаем рядом с парком и развитой инфраструктурой, нравится нам больше. Но ставка на вторички была пугающая: 16,4% против 4,6% для IT‑ипотеки.

С одной стороны, был вариант покупки квартиры приемлемой площади, но в человейнике, а с другой — покупка маленькой хрущёвки с последующей продажей и покупкой более подходящей вторички. Сравнивая стратегии покупки квартиры мечты появился ряд вопросов.

Какие были вопросы по ипотеке

  • Как математика заложена в ипотечные расчёты?

  • Уменьшать платёж или срок кредита при досрочном погашении? Надо ли чередовать?

  • Есть ли смысл брать ипотеку на более короткий срок или надо брать на максимально возможный? Например, беру ипотеку на 30 лет с обязательным платежом 60 тыс. рублей, но твёрдо намерен платить по 100 тыс. рублей в месяц, будет ли срок погашения ипотеки таким же, как если бы изначально взял ипотеку с обязательным платежом 100 тыс, но на меньший срок? Сложности вопросу добавлял тот факт, что существуют два способа досрочного погашения кредита: сокращение срока выплат и снижение размера ежемесячных платежей. К тому же способы досрочного погашения можно чередовать в произвольном порядке.

Вариант 1

Вариант 2

Начальный срок ипотеки

30 лет

10 лет

Обязательный платеж

60 тыс. рублей

100 тыс. рублей

Планируемый ежемесячный платёж

100 тыс. рублей

100 тыс. рублей

А что было в интернетах? Или почему написал свой калькулятор.

  • База — онлайн калькуляторы. Ипотечный калькулятор от Домклик не позволял выбрать досрочное погашение с уменьшением платежа и с фиксированной общей суммой платежа в месяц. В ипотечном калькуляторе из Тинькофф Журнала можно было вводить фиксированную общую сумму платежей, но при попытке выставить ставку 15% или более вылетала ошибка «Что-то не сходится ¯_(ツ)_/¯». Дальше перебирать онлайн калькуляторы не стал и захотел найти что‑то более фундаментальное.

  • Нашёл статью «Как рассчитываются досрочные платежи по ипотеке? Вывод формул» (далее «математическая статья»). Формулы в ней, конечно, не из rocket science, но мне тяжело было сделать по ним какие‑то практические выводы. И рассказана ли в статье вся необходимая математика?

  • Нашёл калькулятор в Excel‑файле с макросами. Напоминание офисного пакета про опасность запуска VBA воспринял с покорностью и решил поискать что‑то более удобное. И вообще, почему ипотека — это Excel/Google Sheets? Ведь с Python‑кодом работать гораздо приятнее.

Код ипотечного калькулятора на Python

За основу взял довольно простой калькулятор. Формула в нём была такая же, как в математической статье, что вселило надежду на верность как статьи, так и кода.

С моей версией калькулятора желающие могут ознакомиться в репозитории GitHub или зеркале в GitFlic. В readme описаны примеры использования и приведена ссылка для запуска в браузере: можно ничего не скачивать и не устанавливать, но время ожидания запуска зависит от нагрузки на сервере. Код калькулятора не представляет ценности для повышения навыков Python‑разработки и опубликован для желающих более детально разобраться в расчётах ипотеки или адаптировать код для своих экспериментов.

Сокращать срок или платеж?

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

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

Рассмотрим один месяц. Наш платёж можно разделить на 2 части: уплата процентов и снижение тела долга. Процентная часть считается следующим образом:

m_{p}=d cdot frac{r_m}{100%}=d cdot frac{r_y}{12cdot 100%}

где m_p — сколько денег в уплату процентов мы должны заплатить, d — остаток долга, r_m — месячная ставка по ипотеке в процентах, r_y — годовая ставка в процентах. В этой формуле вообще не участвуют сумма обязательного платежа и срок кредита. Всё что мы заплатим сверх процентной части, пойдёт в уплату основного долга.

Тоже самое в виде фрагмента кода из калькулятора:

# часть в уплату процентов
interest_payment = remaining_debt * monthly_interest_rate

# часть в сокращение тела долга
principal_payment = data.actual_monthly_payment - interest_payment
# data.actual_monthly_payment - это фактический платёж

т. е. здесь даже не участвует сумма обязательного платежа! Сумма обязательного платежа нужна только для проверки того, что фактический платёж не меньше обязательного.

Рассмотрим на картинке два варианта ипотеки. В варианте 1 мы берём ипотеку на 10 лет, с обязательным платежом 100 тыс. рублей. В варианте 2 берём ипотеку на 30 лет, с обязательным платежом 60 тыс. рублей, но планируем каждый месяц платить те же 100 тыс. рублей, как в варианте 1.

Составляющие ипотечного платежа.

Составляющие ипотечного платежа.

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

Во втором месяце процентные части снова одинаковые, т.к. в первом месяце в вариантах 1 и 2 мы одинаково сократили тело долга. Но в варианте 2 в первом месяце мы могли выбрать сокращение срока (вариант 2а на картинке) или сокращение платежа (вариант 2б). Тело долга во втором месяце во всех вариантах мы снова сокращаем одинаково, т.к. общая сумма платежа одинаковая и часть на выплату процентов также совпадает в вариантах 1, 2а и 2б. Три варианта отличаются только соотношением обязательной и добровольной частей, идущих в сокращения тела долга.

В каждом следующем месяце при одинаковом суммарном платеже (тело долга + досрочный платеж) долг будет сокращаться одинаково во всех вариантах. Уплачиваемые проценты тоже будут одинаковые, т.к. долг во всех вариантах снижается одинаково. Меняться будет только соотношение между обязательным платежом и досрочным погашением. А если каждый месяц во всех вариантах мы сокращаем долг одинаково, то и сокращение долга до нуля наступит во всех вариантах в один и тот же месяц.

На срок окончания кредита влияют только фактические платежи. А начальный срок кредита и выбор вариантов досрочного погашения влияют только на величину обязательного платежа.

Если у вас хватает финансовой дисциплины платить фиксированную сумму, несмотря на снижение обязательного платежа, то я рекомендую снижать платеж. Потому что так вы уменьшаете финансовые риски: в случае необходимости вы можете некоторое время платить меньшую сумму. При уменьшении платежей срок фактической выплаты кредита и переплата, конечно, увеличатся, но лучше иметь возможность некоторое время платить меньше.

Иногда реальность отличается от теории и надо проверять, берёт ли банк штрафы за досрочное погашение.

В какой день вносить досрочный платёж?

В банке нам сказали, что досрочный платёж лучше вносить «день в день». Но оказалось, что досрочный платёж лучше вносить как можно раньше. За каждый день использования кредитных денег начисляются проценты, поэтому чем раньше мы внесём досрочный платеж, тем меньше процентов будет начислено. На сэкономленные деньги можно, например, заводить вторую заявку «день в день».

Скрытый текст

Например, текущий обязательный платеж 60 тыс. рублей, платить каждый месяц планируем 100 тыс. рублей, ставка 20%, дата обязательного платежа 25-е число каждого месяца, зарплата поступает 10-го и 25-го числа каждого месяца. Тогда 10-го числа, необходимо внести досрочное погашение 40 тыс. рублей. Из этих 40 тыс. в уплату процентов спишется 40 000 cdot 20%/(100%cdot 12cdot2) approx 333,33 рубля, потому что 2 недели мы пользовались деньгами банка, а в тело долга оставшиеся 39 666,67. Приложение покажет, что новый обязательный платёж составит 59 333,89 (сократился на 39 666,67 cdot 20%/(100%cdot 12) approx 661,11). Заводим ещё одну заявку на досрочное погашение на 25-е число на сумму 60 000 - 59 333,89=661,11.

Итого к 25-му числу за счёт досрочных погашений мы сократили тело долга не на 40 тыс. рублей, как при платеже «день в день», а на 39 666,67 + 661,11=40 332,78, но суммарно заплатили те же 100 тыс. рублей.

Для расчётов нам не нужны сложные формулы, для второй заявки достаточно посчитать разницу между старым и новым обязательными платежами из банковского приложения.

Трэш‑история покупки квартиры

С математикой, кодом и логикой погашения разобрались. А теперь расскажу, к чему же в итоге привели все расчеты. От ЖК «Безрадостные коробки» удалось отмахнуться, и мы купили вторичку, самую подходящую нам по параметрам, учитывая наши финансовые возможности.

Квартиру брали у деда, несколько десятков лет сидевшего в местах не столь отдаленных, которые он называл «командировками». Квартира ему досталась по наследству. Про «командировки» узнали через банковскую проверку, а риелтор со стороны продавца «тоже только вчера узнала, уже поругала продавца и хотела нам сегодня сообщить». Банк против сделки не возражал. Наверное, из‑за обязательных страховок, в т.ч. страхования титула. На первой встрече с риелтором и собственником заметил, что от собственника доносился шлейф перегара. На последующих этапах сделки оказалось, что справку из наркодиспансера он предоставить не может, т.к. были задержания в нетрезвом виде. Поэтому на сделку продавец пришёл со справкой, что в этот день алкоголя у него в крови не обнаружено. Для этого перед сделкой пришлось неделю не пить.

Вот он - предмет гордости начинающих ипотечников!

Вот он — предмет гордости начинающих ипотечников!

Если погуглить картинки «убитая хрущевка», то попадаются варианты даже получше. Так что у нас, можно сказать, был канон ушатанности.

В квартире были жильцы (коллектив иностранных специалистов), которые снимали квартиру по цене выше рынка и готовы были снимать дальше, даже заплатили один раз за остаток месяца, но испарились после предложения подписать договор аренды. Совсем без жильцов мы не остались, но тараканы не платили аренду и, к счастью, они тоже покинули жильё после полного демонтажа. Вместе с демонтажом исчез и запах. А квартира с ободранными стенами и без пола стала выглядеть даже лучше.

Хорошо, что жильцы съехали, т.к. не оставили нам соблазна исправить только видимые косяки проводки.

Скрытый текст
Креативный подвод электричества в ванную.

Креативный подвод электричества в ванную.
Работает — не трожь! От своего рода тоже распределительной коробки влево уходит провод на розетку.

Работает — не трожь! От своего рода тоже распределительной коробки влево уходит провод на розетку.

Половина розеток вообще не работала, а те, что работали — сделали сами жильцы показанным выше методом. Также они несколько раз красили стены в комнатах. Предыдущий собственник не прикладывал ни малейших усилий для улучшения условий в квартире, но арендную плату повышал несколько раз.

Сейчас делается капитальный ремонт.

На одной из предыдущих стадий ремонта.

На одной из предыдущих стадий ремонта.

Выводы

  • Ипотеку лучше брать на максимальный срок, но платить так, как если бы брали на более короткий. В этом варианте вы выплатите ипотеку в тот же срок, но будет возможность при необходимости платить меньше.

  • Лучше снижать обязательный платёж, но продолжать платить столько же. Так вы выплатите ипотеку в тот же срок, но будет возможность при необходимости платить меньше. Этот вывод повторяет вывод в статье, на которую ссылался вначале, но приведено математическое объяснение вместо исследования чёрного ящика.

  • Если банк позволяет, то досрочный платёж лучше вносить как можно раньше, а не «день в день», как могут рекомендовать в банке. Для сэкономленных денег можно заводить вторую заявку «день в день» чтобы быстрее сокращать тело долга.

  • Калькулятор на Python позволяет ускорить перебор вариантов выплаты ипотеки и разобраться в устройстве ипотечных платежей. А также гикам могут быть актуальны и другие возможности, перечисленные в readme репозитория.

Автор: Zaynulla

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js