Привет, Хабр! Я построил простую экономико‑математическую модель жилищного бюджета домохозяйства, подставил в неё актуальные данные по Санкт‑Петербургу на 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 ₽/мес

Доля в доходе:

63800 / 128000 ≈0.498

Порог θ = 0.45 пробит. Даже при средней петербургской зарплате ипотека на студию 24 м² по рыночной ставке формально неустойчива: платежи занимают почти половину дохода.

Базовая траектория покупки студии 24 м² в СПб при ставке 18.7%. На графике доли платежей (M+R)/Y видно, что кривая почти сразу уходит выше порога θ = 0.45 — бюджет формально неустойчив.
Базовая траектория покупки студии 24 м² в СПб при ставке 18.7%. На графике доли платежей (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%.

Распределение доли месяцев с нарушением порога θ по 300 траекториям Монте-Карло. В среднем 62% месяцев бюджет выходит за порог; в 10% траекторий — более 82% месяцев.
Распределение доли месяцев с нарушением порога θ по 300 траекториям Монте‑Карло. В среднем 62% месяцев бюджет выходит за порог; в 10% траекторий — более 82% месяцев.

Это не риск, это системная характеристика текущей конъюнктуры.

Покупка 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

Сравнение покупки и аренды на одних и тех же шоках дохода и цены. По потреблению арендатор выигрывает с большим отрывом: среднее потребление ≈ 106 тыс. ₽/мес против ≈ 64 тыс. ₽/мес у покупателя.
Сравнение покупки и аренды на одних и тех же шоках дохода и цены. По потреблению арендатор выигрывает с большим отрывом: среднее потребление ≈ 106 тыс. ₽/мес против ≈ 64 тыс. ₽/мес у покупателя.

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

Точка безубыточности

При текущих параметрах:

Метрика

Значение

r^*_{inv}​ (по благосостоянию)

≈ 9.8% годовых

r^{**}_{inv}​ (по полезности)

≈ −2% годовых

Зависимость точки безубыточности  от ставки аренды. При аренде 900 ₽/м²/мес порог ≈ 9.8% годовых; при аренде 1300 ₽/м²/мес он падает до ≈ 2.5%.
Зависимость точки безубыточности r^*_{inv} от ставки аренды. При аренде 900 ₽/м²/мес порог ≈ 9.8% годовых; при аренде 1300 ₽/м²/мес он падает до ≈ 2.5%.

Чтобы арендатор догнал покупателя по деньгам к концу срока, ему нужна доходность инвестиций ≈ 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

устойчиво

Тепловая карта точки безубыточности  по ставке и цене м². Чем выше цена и ниже ставка, тем ниже порог: покупка выигрывает при меньшей доходности инвестиций. При текущих параметрах СПб-2026 (ставка 18.7%, цена 180 тыс. ₽/м²) порог ≈ 9.8% годовых.
Тепловая карта точки безубыточности r^*_{inv} по ставке и цене м². Чем выше цена и ниже ставка, тем ниже порог: покупка выигрывает при меньшей доходности инвестиций. При текущих параметрах СПб-2026 (ставка 18.7%, цена 180 тыс. ₽/м²) порог ≈ 9.8% годовых.

Чтобы ипотека на студию в СПб стала формально устойчивой при доходе 128 тыс. ₽, ставка должна опуститься ниже ~16%. Пока рынок даёт 18.7% — бюджет на грани или за гранью.

Что это значит на практике

  1. Средняя зарплата не спасает. Даже при 128 тыс. ₽/мес студия 24 м² по рыночной ипотеке 2026 года забирает ~50% дохода. Это выше комфортного порога.

  2. Резерв обязателен. 12% месяцев с дефицитом дохода — это не «чёрный лебедь», это регулярное событие. Без подушки в 6+ месяцев расходов бюджет реально ломается.

  3. Аренда + инвестиции — рациональная стратегия при текущих ставках. Если есть возможность вкладывать разницу под ~14% (а такие инструменты есть), аренда выигрывает и по деньгам, и по качеству жизни.

  4. Покупка имеет смысл при трёх условиях: ставка ниже ~16%, доход выше ~140 тыс. ₽, или готовность жить с долей платежей 50%+ ради владения.

Кратко о том как работает код

Под капотом — один файл на Python. Логика такая:

  1. Задаются параметры — площадь, цена м², ставка, доход, аренда и так далее. Все они вынесены в dataclass‑параметры (HousingParams, AgentParams, RentParams), поэтому менять их можно либо флагами командной строки, либо прямо в коде.

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

  3. Доход и цена м² моделируются как случайные процессы: доход — AR(1) с шоком, цена — инфляция или геометрическое броуновское движение. Поэтому один прогон — это одна «случайная вселенная», а Монте‑Карло — это N таких вселенных.

  4. Сравнение с арендой идёт на тех же шоках: арендатор платит аренду, а разницу между аннуитетом и арендой инвестирует. В конце сравниваются итоговое благосостояние и полезность.

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

  6. Результаты сохраняются в папку 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 копировать код удобней)

Полный список флаги, все их можно изменить под свои нужды, кратко по ним:

Флаг

Что означает

Пример

--area

площадь квартиры, м²

--area 24

--price-m2

цена квадратного метра, ₽

--price-m2 120000

--down-payment

доля первоначального взноса (0…1)

--down-payment 0.20

--rate

годовая ставка ипотеки (0…1)

--rate 0.12

--years

срок ипотеки, лет

--years 20

--income

доход, ₽/мес

--income 80000

--maintenance

расходы на содержание, ₽/мес

--maintenance 7000

--theta

порог доли платежей в доходе (0…1)

--theta 0.45

--rent-m2

аренда, ₽/м²/мес

--rent-m2 700

--rent-inflation

годовой рост аренды (0…1)

--rent-inflation 0.06

--investment-rate

годовая доходность инвестиций (0…1)

--investment-rate 0.08

--price-mode

как меняется цена м²: deterministic или stochastic

--price-mode deterministic

--n-paths

сколько траекторий Монте‑Карло

--n-paths 300

--seed

зерно случайности (для воспроизводимости)

--seed 42

--out

папка для результатов

--out output

В конечном итоге вы получите папку output, в которой будут:

Файл

Что это

01_basic_path.png

график базового сценария

02_mc.png

гистограммы Монте‑Карло

02_mc_stats.npz

сырые массивы Монте‑Карло

03_buy_vs_rent.png

сравнение покупки и аренды

03_compare_stats.npz

сырые массивы сравнения

04_breakeven.csv

точка безубыточности

05_breakeven_grid.png

тепловая карта по ставке и цене

05_breakeven_grid.csv

таблица тепловой карты

06_breakeven_vs_rent.png

срез по ставке аренды

06_breakeven_vs_rent.csv

таблица среза

06_summary.csv

сводка ключевых метрик

Ссылки

  • GitHub: https://github.com/CheesePunk/Housing-Budget-Model

Спасибо, что дочитали. Это моя первая статья — буду рад конструктивной критике, особенно по модели и по данным. Стоит понимать, что это лишь упрощённая модель, но провести расчёты с вашими данными она может, на GitHub лежит полная статья со всеми формулами и более подробным объяснением программного кода, так же там вы найдёте полную инструкцию по эксплуатации программы. Надеюсь, статья была вам интересна, спасибо за внимание!

Комментарии (28)


  1. avshkol
    27.10.2026 17:45

    Для придания модели некой [трагичной] реалистичности хорошо бы добавить параметры:

    • Сколько вам сейчас лет

    • Сколько планируете прожить

    • Во сколько не сможете работать

    • Во сколько начнёте получать пенсию

    • какую долю от зп составит пенсия

    • какую минимальную сумму нужно иметь на проживание на пенсии, за вычетом стоимости аренды или ипотеки

    • положительный эффект между двумя вариантами (аренда/ипотека) направить на сбережения, распределить сбережения равными долями между остатком лет от невозможности работать до конца жизни

    Что касается риска уменьшения дохода в отдельные месяцы, то нужно задать долю сбережений, откладываемую на фин.подушку, либо стоимость кредита (но сейчас это облегчается наличием кредитных карт с беспроцентным сроком 3-6 месяцев)


    1. chees_punk Автор
      27.10.2026 17:45

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


      1. avshkol
        27.10.2026 17:45

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


        1. chees_punk Автор
          27.10.2026 17:45

          Да, я это понял и не писал свой ответ в агрессивной форме. Я воспринял ваш комментарий как иронию, а не как предложение по улучшению модели, надеюсь что я правильно это понял


  1. Autochthon
    27.10.2026 17:45

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


    1. avshkol
      27.10.2026 17:45

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


    1. Cekory
      27.10.2026 17:45

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


      1. pkokoshnikov
        27.10.2026 17:45

        Да причём уже и мебелеррванную


        1. InsiderCrush
          27.10.2026 17:45

          а в иных деревеньках еще и сами доплатят


    1. WLMike
      27.10.2026 17:45

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


  1. AndronNSK
    27.10.2026 17:45

    Считать выгодность конуры 24 метра при ставке 19%. Что может быть бесмысленнее.

    Я ожидал расчёт нормальной квартиры по льготной ставке, с учётом меблировки и ремонта, а не эти глупости.


    1. chees_punk Автор
      27.10.2026 17:45

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


    1. Dmitry_604
      27.10.2026 17:45

      Вы про какие льготы сейчас в Питере?


      1. AndronNSK
        27.10.2026 17:45

        За детей.


  1. corw
    27.10.2026 17:45

    Разница — 42 200 ₽/мес в пользу аренды. Эти деньги арендатор инвестирует.

    Дальше читать не стал.


    1. Dmitry_604
      27.10.2026 17:45

      А что не так? Типа в РФ нельзя инвестировать? Все отберут?

      Начиная с 99го все относительно предсказуемо, да есть скачки курса, но рублёвые ставки даже перекрывают девальвацию. А это уже 30 лет почти.. По своему опыту ~20 лет тоже вполне ок, в разы лучше валюты под подушкой, ну активы надо выбирать аккуратно, да.


  1. max9
    27.10.2026 17:45

    Площадь

    24 м²

    базовая студия

    Цена м² (вторичка)

    ≈ 180 000 ₽

    ориентир по рынку СПб, 2026


    и сразу нет. студии продают в гетто и которого не уедешь и не приедешь (с) один Пелевин, а а вторичка таки внутри ЦКАД


  1. Cekory
    27.10.2026 17:45

    Вы не учитываете, что даже если в реальном выражении ваш доход не будет расти, то в номинальном почти наверняка вырастет. Хотя бы на те 6% в год, которые вы заложили на аренду. Собственно говоря, расти будет все, кроме платежа по ипотеке.

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


    1. Antoto
      27.10.2026 17:45

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

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

      В этом и есть смысл статьи. Написана статья полностью нейронкой, поэтому понять зачем эти тысячи графиков крайне сложно. Но тем не менее ипотека не всегда выигрывает и сейчас как раз этот период.


  1. Ingref
    27.10.2026 17:45

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

    В общем, идея здравая, но её бы доработать.


    1. dmchmk
      27.10.2026 17:45

      это не «стресс‑тест», это реальность 2026 года!

      (откуда мать вашу тут вообще взялась идея вставить "стресс-тест", я не понимаю??)


    1. Dmitry_604
      27.10.2026 17:45

      Так в топку конских процентов больше подбрасывается чем 42К.


    1. RKrop
      27.10.2026 17:45

       если деньги на аренду по сути сжигаются в печке

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


  1. Saskatoon
    27.10.2026 17:45

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


  1. achekalin
    27.10.2026 17:45

    Я правильно понимаю, что в функции compare_buy_vs_rent() (тут) покупатель одновременно:

    • инвестирует весь остаток дохода после ипотеки и содержания;

    • учитывает этот же остаток как деньги на потребление.

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

    Получается, что модель создаёт накопления без соответствующего сокращения потребления.


  1. Waltasar
    27.10.2026 17:45

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

    И ещё, во всём этом не увидел важный параметр- учитывается ли рост зарплаты?


  1. jinn50k
    27.10.2026 17:45

    Я проводил такие же расчеты, наш автор-аналитик забыл, что мы живем в реальном мире и наблюдается некоторая волатильность и нестабильность не только дохода, но и конкретной цены аренды конкретной квартиры. А еще, вы не забыли, что каждый переезд сопровождается расходами на мувинг и комиссиями риелторам? Плюс еще добавляем субъективное ощущение надёжности человеком, который ощущая, что его не выпнут завтра на мороз из жилья больше сил направляет на зарабатывание денег и больше рискует.

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

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

    А, еще чуть не забыл, все эти расчеты имеют смысл опять же при ситуации, когда вы планируете прожить в этой местности существенное количество времени, хотя бы от 5 лет.
    Средний срок закрытия ипотеки в РФ в 22 году составлял 4.4 года, в 26 году 9.3 лет.
    Но если мы выкидываем из статистики льготную ипотеку то картина меняется: согласно ВТБ срок сократился с 6.25 лет до 3.08 года


  1. Fedorkov
    27.10.2026 17:45

    1. Такие модели гораздо удобнее делать в экселе, тогда любые изменения в формулах и предпосылках сразу будут перед глазами. Да, вместо Монте-Карло придётся руками перебрать несколько сценариев, но для понимания ситуации всё равно важнее видеть, как именно те или иные факторы влияют на результат, а не просто иметь несколько гауссиан.

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

    3. Если в России типичная доходность от сдачи жилья - в районе 5%, а коммерческой недвижимости - 10%, то в любом случае гораздо выгоднее жильё снимать, а разницу (сколько вы не потратили на ипотеку) вкладывать в какой-нибудь БПИФ коммерческой недвижимости. Этот перекос вызван коллективной травмой из 90-х, когда квартира оказалась единственным общедоступным защитным активом; так что теперь желающий купить квартиру вынужден конкурировать со всеми, кто готов продать себя банку в анальное рабство на 30 лет. Имхо, этот фактор с лихвой перекрывает любые соображения про "свой уголок" и т. п.

    4. Государство буквально задрало ставку, чтобы вы пока подождали с крупными покупками. Если у нас, по выражению Костина, часть продукции улетает куда-то, то инфляцию можно сдержать, только уменьшив потребление где-то в другом месте.