Привет, Хабр! Я построил простую экономико‑математическую модель жилищного бюджета домохозяйства, подставил в неё актуальные данные по Санкт‑Петербургу на 2026 год и прогнал несколько сценариев. Код выложил на GitHub, а здесь — результаты, графики и все входные данные, чтобы можно было воспроизвести.
GitHub: https://github.com/CheesePunk/Housing-Budget-Model
Входные данные (Санкт‑Петербург, 2026)
Параметр |
Значение |
Источник / обоснование |
|---|---|---|
Площадь |
24 м² |
базовая студия |
Цена м² (вторичка) |
≈ 180 000 ₽ |
ориентир по рынку СПб, 2026 |
Первоначальный взнос |
20% |
стандарт банков |
Ставка ипотеки |
18.7% годовых |
средневзвешенная рыночная на середину октября 2026 |
Срок |
20 лет |
база |
Доход |
128 000 ₽/мес |
средняя зарплата в СПб, июль 2026 |
Содержание (ЖКХ + ремонт + страхование) |
9 000 ₽/мес |
оценка для студии |
Порог θ |
0.45 |
доля платежей в доходе |
Аренда |
900 ₽/м²/мес |
ориентир для студии в СПб |
Инфляция аренды |
6% годовых |
исторический тренд |
Доходность инвестиций |
14% годовых |
депозит / фонд денежного рынка |
Что сразу бросается в глаза: ставка 18.7% — это не «стресс‑тест», это реальность 2026 года. Средняя зарплата 128 тыс. ₽ — тоже реальность. Вопрос в том, выдерживает ли бюджет такое сочетание.
На момент прочтения статьи данные могут оказаться неактуальны, но это не делает модель и саму программу нерабочей, в ваших нуждах вы можете использовать свои данные
Базовый расчёт
Цена студии: 24 × 180 000 = 4 320 000 ₽
Взнос 20%: 864 000 ₽
Кредит: 3 456 000 ₽
Аннуитет при 18.7% на 20 лет: ≈ 54 800 ₽/мес
Содержание: 9 000 ₽/мес
Итого платёж: ≈ 63 800 ₽/мес
Доля в доходе:
Порог θ = 0.45 пробит. Даже при средней петербургской зарплате ипотека на студию 24 м² по рыночной ставке формально неустойчива: платежи занимают почти половину дохода.

(M+R)/Y видно, что кривая почти сразу уходит выше порога θ = 0.45 — бюджет формально неустойчив.Что показывает Монте‑Карло (300 траекторий)
Я прогнал модель со случайным доходом (волатильность 5% в месяц) и случайной ценой м². Вот что получилось:
Метрика |
Среднее |
p10 (пессимист) |
p90 (оптимист) |
|---|---|---|---|
Доля месяцев с (M+R)/Y > θ |
≈ 0.62 |
≈ 0.40 |
≈ 0.82 |
Доля месяцев с дефицитом дохода |
≈ 0.12 |
≈ 0.04 |
≈ 0.22 |
Итоговый капитал, тыс. ₽ |
≈ 3 200 |
≈ 2 100 |
≈ 4 500 |
Расшифровка: в среднем 62% месяцев бюджет выходит за порог устойчивости. В 10% траекторий это происходит в 82% месяцев — то есть человек почти постоянно живёт на грани. Дефицит дохода (когда зарплаты не хватает на платёж + минимум на жизнь) возникает в среднем 12% месяцев, а в плохих сценариях — 22%.

Это не риск, это системная характеристика текущей конъюнктуры.
Покупка vs аренда (на тех же шоках)
Аренда студии 24 м² по 900 ₽/м² = 21 600 ₽/мес. Покупка стоит 63 800 ₽/мес. Разница — 42 200 ₽/мес в пользу аренды. Эти деньги арендатор инвестирует.
Метрика |
Покупка |
Аренда |
|---|---|---|
Среднее итоговое благосостояние, тыс. ₽ |
≈ 3 200 |
≈ 2 800 |
Средняя полезность |
≈ 11 500 |
≈ 13 200 |
Среднее потребление, ₽/мес |
≈ 64 200 |
≈ 106 400 |
Доля траекторий |
Значение |
|---|---|
Покупка богаче аренды |
≈ 0.58 |
Покупка полезнее аренды |
≈ 0.21 |

Вывод: покупка всё ещё чуть чаще выигрывает по деньгам (58% против 42%) — за счёт роста цены м² и амортизации долга инфляцией. Но по полезности аренда выигрывает с разгромным счётом: 79% траекторий в пользу аренды. Потребление арендатора в среднем на 42 тыс. ₽/мес выше — это разница между «жить нормально» и «жить от зарплаты до зарплаты».
Точка безубыточности
При текущих параметрах:
Метрика |
Значение |
|---|---|
|
≈ 9.8% годовых |
|
≈ −2% годовых |

Чтобы арендатор догнал покупателя по деньгам к концу срока, ему нужна доходность инвестиций ≈ 9.8%. Если у тебя есть доступ к депозиту или фонду денежного рынка под 14% (а в 2026 такие ставки реальны), аренда выгоднее по деньгам. По полезности порог отрицательный — арендатору не нужно ничего инвестировать, чтобы жить лучше; он выигрывает просто за счёт свободного кэша.
Чувствительность к ставке
Вот как меняется картина при снижении ставки (при тех же ценах и доходе):
Ставка |
Аннуитет, ₽/мес |
(M+R)/Y |
Статус |
|---|---|---|---|
18.7% (сейчас) |
≈ 54 800 |
0.498 |
прорыв |
16% |
≈ 48 500 |
0.449 |
на грани |
14% |
≈ 42 800 |
0.404 |
устойчиво |
12% |
≈ 37 600 |
0.364 |
устойчиво |

Чтобы ипотека на студию в СПб стала формально устойчивой при доходе 128 тыс. ₽, ставка должна опуститься ниже ~16%. Пока рынок даёт 18.7% — бюджет на грани или за гранью.
Что это значит на практике
Средняя зарплата не спасает. Даже при 128 тыс. ₽/мес студия 24 м² по рыночной ипотеке 2026 года забирает ~50% дохода. Это выше комфортного порога.
Резерв обязателен. 12% месяцев с дефицитом дохода — это не «чёрный лебедь», это регулярное событие. Без подушки в 6+ месяцев расходов бюджет реально ломается.
Аренда + инвестиции — рациональная стратегия при текущих ставках. Если есть возможность вкладывать разницу под ~14% (а такие инструменты есть), аренда выигрывает и по деньгам, и по качеству жизни.
Покупка имеет смысл при трёх условиях: ставка ниже ~16%, доход выше ~140 тыс. ₽, или готовность жить с долей платежей 50%+ ради владения.
Кратко о том как работает код
Под капотом — один файл на Python. Логика такая:
Задаются параметры — площадь, цена м², ставка, доход, аренда и так далее. Все они вынесены в dataclass‑параметры (
HousingParams,AgentParams,RentParams), поэтому менять их можно либо флагами командной строки, либо прямо в коде.Строится базовая траектория покупки: считается аннуитет, месяц за месяцем уменьшается долг, растёт собственный капитал, пополняется резерв на содержание. На каждом шаге проверяются два условия устойчивости — доля платежей в доходе не выше θ и резерв не ниже φ месяцев расходов.
Доход и цена м² моделируются как случайные процессы: доход — AR(1) с шоком, цена — инфляция или геометрическое броуновское движение. Поэтому один прогон — это одна «случайная вселенная», а Монте‑Карло — это N таких вселенных.
Сравнение с арендой идёт на тех же шоках: арендатор платит аренду, а разницу между аннуитетом и арендой инвестирует. В конце сравниваются итоговое благосостояние и полезность.
Точка безубыточности ищется бисекцией: подбирается такая доходность инвестиций, при которой среднее благосостояние арендатора равно среднему благосостоянию покупателя.
Результаты сохраняются в папку
output/: PNG‑графики, CSV‑таблицы и NPZ с сырыми массивами. Всё воспроизводимо: при одном и том же--seedи одинаковых параметрах числа совпадут.
Кратко как пользоваться
Установка:
pip install numpy pandas matplotlib scipy
Запуск с параметрами (те самые, что в таблице входных данных):
python housing_budget_model.py --mode all --out output --area 24 --price-m2 180000 --down-payment 0.20 --rate 0.187 --years 20 --income 128000 --maintenance 9000 --theta 0.45 --rent-m2 900 --rent-inflation 0.06 --investment-rate 0.14 --n-paths 500 --seed 2026
(здесь пришлось пожертвовать удобством копирования кода в угоду красоте, в статье на GitHub копировать код удобней)
Полный список флаги, все их можно изменить под свои нужды, кратко по ним:
Флаг |
Что означает |
Пример |
|---|---|---|
|
площадь квартиры, м² |
|
|
цена квадратного метра, ₽ |
|
|
доля первоначального взноса (0…1) |
|
|
годовая ставка ипотеки (0…1) |
|
|
срок ипотеки, лет |
|
|
доход, ₽/мес |
|
|
расходы на содержание, ₽/мес |
|
|
порог доли платежей в доходе (0…1) |
|
|
аренда, ₽/м²/мес |
|
|
годовой рост аренды (0…1) |
|
|
годовая доходность инвестиций (0…1) |
|
|
как меняется цена м²: |
|
|
сколько траекторий Монте‑Карло |
|
|
зерно случайности (для воспроизводимости) |
|
|
папка для результатов |
|
В конечном итоге вы получите папку output, в которой будут:
Файл |
Что это |
|---|---|
|
график базового сценария |
|
гистограммы Монте‑Карло |
|
сырые массивы Монте‑Карло |
|
сравнение покупки и аренды |
|
сырые массивы сравнения |
|
точка безубыточности |
|
тепловая карта по ставке и цене |
|
таблица тепловой карты |
|
срез по ставке аренды |
|
таблица среза |
|
сводка ключевых метрик |
Ссылки
GitHub:
https://github.com/CheesePunk/Housing-Budget-Model
Спасибо, что дочитали. Это моя первая статья — буду рад конструктивной критике, особенно по модели и по данным. Стоит понимать, что это лишь упрощённая модель, но провести расчёты с вашими данными она может, на GitHub лежит полная статья со всеми формулами и более подробным объяснением программного кода, так же там вы найдёте полную инструкцию по эксплуатации программы. Надеюсь, статья была вам интересна, спасибо за внимание!
Комментарии (28)

Autochthon
27.10.2026 17:45Раньше крестьянин ставил себе сруб за один сезон и жил. Сейчас же Государственно Образующие Индивидуумы вынуждены батрачить на бетонную конуру пока вперед ногами не вынесут. Причем производительность труда со времен крестьянских срубов выросла в сотни если не в тысячи раз.

avshkol
27.10.2026 17:45Если ему разрешали рубить лес бесплатно (это сибирский крестьянин или крайние северные губернии, где расчистка леса/рубка дороги - уже полезное дело, а бревна как побочный продукт), то да. Но если лес принадлежал барину, то всё же требовались некие сбережения... Разумеется, не стоившие 50% урожая за 20 лет...

Cekory
27.10.2026 17:45Вы и сейчас можете купить себе сруб за символическую цену в какой-нибудь полузаброшенной деревеньке и жить. Вообще никаких проблем.

WLMike
27.10.2026 17:45Да сейчас легко можно купить сруб в жопе мира за сущие копейки, но почему-то большинству подавай крупные города

AndronNSK
27.10.2026 17:45Считать выгодность конуры 24 метра при ставке 19%. Что может быть бесмысленнее.
Я ожидал расчёт нормальной квартиры по льготной ставке, с учётом меблировки и ремонта, а не эти глупости.

chees_punk Автор
27.10.2026 17:45Здравствуйте, здесь представлена именно что модель, в которую вы самостоятельно можете подставить свои собственные данные и рассчитать выгодность конуры своей мечты

corw
27.10.2026 17:45Разница — 42 200 ₽/мес в пользу аренды. Эти деньги арендатор инвестирует.
Дальше читать не стал.

Dmitry_604
27.10.2026 17:45А что не так? Типа в РФ нельзя инвестировать? Все отберут?
Начиная с 99го все относительно предсказуемо, да есть скачки курса, но рублёвые ставки даже перекрывают девальвацию. А это уже 30 лет почти.. По своему опыту ~20 лет тоже вполне ок, в разы лучше валюты под подушкой, ну активы надо выбирать аккуратно, да.

max9
27.10.2026 17:45Площадь
24 м²
базовая студия
Цена м² (вторичка)
≈ 180 000 ₽
ориентир по рынку СПб, 2026
и сразу нет. студии продают в гетто и которого не уедешь и не приедешь (с) один Пелевин, а а вторичка таки внутри ЦКАД

Cekory
27.10.2026 17:45Вы не учитываете, что даже если в реальном выражении ваш доход не будет расти, то в номинальном почти наверняка вырастет. Хотя бы на те 6% в год, которые вы заложили на аренду. Собственно говоря, расти будет все, кроме платежа по ипотеке.
P. S. Да и ставка скорее всего снизится в какой-то момент, можно будет рефинансироваться под низкий процент. И это опять будет фиксированный платеж навсегда.

Antoto
27.10.2026 17:45Платеж по ипотеки не будет расти только потому что ваш капитал будет перетекать в бетон. Условно в начале у вас в бетоне 20% вложенных собственных денег и 80 кредитных, а к концу ипотеки 99 против 1 (я взял условно без расчета конкретного срока). В этом и есть смысл аннуитетного платежа: он рассчитывается так, чтобы платеж был константой, но это не является какой-то маной небесной, которая фиксирует ваши расходы на 30 лет.
Если отнимать от аренды сумму дохода от капитала, который вместо бетона ушел на другие активы, например, на вклад, то с нынешними ценами на жилье эта разница может даже стать отрицательной.
В этом и есть смысл статьи. Написана статья полностью нейронкой, поэтому понять зачем эти тысячи графиков крайне сложно. Но тем не менее ипотека не всегда выигрывает и сейчас как раз этот период.

Ingref
27.10.2026 17:45Странно, что ещё никто не написал, поэтому напишу я. Из-за того, что статья написана нейронкой, читается очень туго. Хотя сам код, пусть и навайбкоженный, наверняка полезен. Но не очень понятно, почему инвестирование 42к считается выгодным, если деньги на аренду по сути сжигаются в печке. В то время как при ипотеке эти деньги идут на выкуп жилья.
В общем, идея здравая, но её бы доработать.

dmchmk
27.10.2026 17:45это не «стресс‑тест», это реальность 2026 года!
(откуда мать вашу тут вообще взялась идея вставить "стресс-тест", я не понимаю??)

RKrop
27.10.2026 17:45если деньги на аренду по сути сжигаются в печке
По такой логике и проценты за кредит - это тоже деньги, которые сжигаются в печке. А по сути ипотека и аренда — это просто две альтернативные модели, каждая из которых имеет свои плюсы и свои минусы, и может быть более выгодной в разные моменты времени и для разных людей в зависимости от их жизненных сценариев.

Saskatoon
27.10.2026 17:45Хотел попробовать подменить цифры в параметрах и посмотреть на свой случай, но модель считает что то совсем левое. Я не разобрался, надо комментарии в код для особенно тупых :)

achekalin
27.10.2026 17:45Я правильно понимаю, что в функции
compare_buy_vs_rent()(тут) покупатель одновременно:инвестирует весь остаток дохода после ипотеки и содержания;
учитывает этот же остаток как деньги на потребление.
Арендатор тоже инвестирует разницу расходов, сохраняя её в расчётном потреблении. Кроме того, схемы инвестирования покупателя и арендатора различаются.
Получается, что модель создаёт накопления без соответствующего сокращения потребления.

Waltasar
27.10.2026 17:45По моему очень сложно. Много факторов и допущений. Как интересный опыт- автор, попробуй запустить модель на данных 2006 года и сравнить с реальными, сойдётся ли?
И ещё, во всём этом не увидел важный параметр- учитывается ли рост зарплаты?

jinn50k
27.10.2026 17:45Я проводил такие же расчеты, наш автор-аналитик забыл, что мы живем в реальном мире и наблюдается некоторая волатильность и нестабильность не только дохода, но и конкретной цены аренды конкретной квартиры. А еще, вы не забыли, что каждый переезд сопровождается расходами на мувинг и комиссиями риелторам? Плюс еще добавляем субъективное ощущение надёжности человеком, который ощущая, что его не выпнут завтра на мороз из жилья больше сил направляет на зарабатывание денег и больше рискует.
В общем, на практике выходит, что аренда имеет смысл только тогда, когда платеж по аренде ниже ипотечного и только до тех пор, пока человек не накопит первоначальный взнос до того уровня, чтобы его платеж в месяц на максимальный срок составлял не более трети дохода, лучше четверти.
Что касается баланса между инвестициями и вашими долгами, воспринимайте все ваши долги как плечевые займы на ваши инвестиции, если оно себя окупает то это имеет смысл, если нет, нужно не инвестировать, а погашать свои долги.А, еще чуть не забыл, все эти расчеты имеют смысл опять же при ситуации, когда вы планируете прожить в этой местности существенное количество времени, хотя бы от 5 лет.
Средний срок закрытия ипотеки в РФ в 22 году составлял 4.4 года, в 26 году 9.3 лет.
Но если мы выкидываем из статистики льготную ипотеку то картина меняется: согласно ВТБ срок сократился с 6.25 лет до 3.08 года

Fedorkov
27.10.2026 17:45Такие модели гораздо удобнее делать в экселе, тогда любые изменения в формулах и предпосылках сразу будут перед глазами. Да, вместо Монте-Карло придётся руками перебрать несколько сценариев, но для понимания ситуации всё равно важнее видеть, как именно те или иные факторы влияют на результат, а не просто иметь несколько гауссиан.
В качестве исходных переменных удобнее задавать отдельно инфляцию (общую для всех расчётов) и реальную доходность инвестиций (при условии, что у вас не банковский вклад, а что-то защищённое от инфляции). Тогда можно отдельно посмотреть, как инфляция влияет на расклады, и в будущем будет удобнее обновлять модель. И ещё я для себя сделал отдельную табличку со всеми суммами в реальном выражении (в ценах 2025 года), чтобы оценить масштаб будущих сумм.
Если в России типичная доходность от сдачи жилья - в районе 5%, а коммерческой недвижимости - 10%, то в любом случае гораздо выгоднее жильё снимать, а разницу (сколько вы не потратили на ипотеку) вкладывать в какой-нибудь БПИФ коммерческой недвижимости. Этот перекос вызван коллективной травмой из 90-х, когда квартира оказалась единственным общедоступным защитным активом; так что теперь желающий купить квартиру вынужден конкурировать со всеми, кто готов продать себя банку в анальное рабство на 30 лет. Имхо, этот фактор с лихвой перекрывает любые соображения про "свой уголок" и т. п.
Государство буквально задрало ставку, чтобы вы пока подождали с крупными покупками. Если у нас, по выражению Костина, часть продукции улетает куда-то, то инфляцию можно сдержать, только уменьшив потребление где-то в другом месте.
avshkol
Для придания модели некой [трагичной] реалистичности хорошо бы добавить параметры:
Сколько вам сейчас лет
Сколько планируете прожить
Во сколько не сможете работать
Во сколько начнёте получать пенсию
какую долю от зп составит пенсия
какую минимальную сумму нужно иметь на проживание на пенсии, за вычетом стоимости аренды или ипотеки
положительный эффект между двумя вариантами (аренда/ипотека) направить на сбережения, распределить сбережения равными долями между остатком лет от невозможности работать до конца жизни
Что касается риска уменьшения дохода в отдельные месяцы, то нужно задать долю сбережений, откладываемую на фин.подушку, либо стоимость кредита (но сейчас это облегчается наличием кредитных карт с беспроцентным сроком 3-6 месяцев)
chees_punk Автор
Здравствуйте, обязательно в конце своей жизни внесу столь полезные по своей сути изменения.
avshkol
Перечитал свой комментарий, хотел бы уточнить, что я имел в виду не Ваш лично возраст и т.п., а вопросы пользователю модели, который вводит в неё свои данные...
chees_punk Автор
Да, я это понял и не писал свой ответ в агрессивной форме. Я воспринял ваш комментарий как иронию, а не как предложение по улучшению модели, надеюсь что я правильно это понял