Построен не набор разрозненных таблиц со стрессовыми коэффициентами, а единый расчётный контур, который проводит макроэкономический шок до финансового результата и достаточности капитала банка. Макросценарии хранятся отдельно от банковского портфеля, а расчётные правила связывают их по сценарию и году, применяют индивидуальные чувствительности портфелей и последовательно рассчитывают вероятность дефолта, ожидаемые потери, чистый процентный доход, прибыль и активы, взвешенные по риску.
Принципиально важно, что исходные шоки и расчётные результаты не смешаны в одной таблице. В кубе stress_macro находятся отклонения макрофакторов от базового прогноза. Куб stress_book хранит исходные параметры шести портфельных книг и рассчитывает их состояние под стрессом. Одно и то же правило обслуживает три сценария и три года прогноза, поэтому изменение макрошока не требует переписывать формулы или вручную собирать новый файл.
Результат представляет собой прозрачную цепочку:
макроэкономический фактор → чувствительность портфеля → стрессовая вероятность дефолта → потери и процентный доход → прибыль и активы, взвешенные по риску → достаточность капитала.
Каждое звено этой цепочки можно проверить на уровне отдельной портфельной книги, сценария и года, а затем свернуть до банка. На стенде поштучно сверены 270 расчётных ячеек; расхождений с независимым расчётом не выявлено.
Расчёт охватывает три сценария: базовый (BASE), неблагоприятный (ADVERSE) и кризисный (SEVERE). Горизонт включает стартовую точку Y0, три прогнозных года Y1, Y2, Y3 и отдельный накопленный узел CUM3 для суммирования потоков за три года.
По каждой из шести портфельных книг на стартовую дату загружаются:
ead);pd_base);lgd);rw);nii_margin);opex).После загрузки движок рассчитывает по каждому портфелю, сценарию и прогнозному году пять показателей:
| Расчётный показатель | Что определяется |
|---|---|
Стрессовая вероятность дефолта (pd_stress) | Как меняется кредитный риск портфеля под влиянием ВВП и безработицы. |
Ожидаемые потери (el) | Денежный объём кредитных потерь с учётом экспозиции, стрессовой вероятности дефолта и доли потерь при дефолте. |
Чистый процентный доход (nii) | Процентный доход портфеля с учётом сжатия маржи при шоке ключевой ставки. |
Активы, взвешенные по риску (rwa) | Изменение знаменателя норматива капитала вследствие ухудшения вероятности дефолта. |
Прибыль до налога (profit) | Чистый процентный доход за вычетом операционных расходов и ожидаемых потерь. |
В куб макросценариев загружены шесть факторов. Базовый сценарий по определению содержит нулевые отклонения. Для неблагоприятного и кризисного сценариев фактические траектории имеют следующий вид:
| Макрофактор | Неблагоприятный сценарий: Y1 / Y2 / Y3 | Кризисный сценарий: Y1 / Y2 / Y3 |
|---|---|---|
| ВВП | −3,5 / −5,0 / −4,0 % | −7,0 / −10,0 / −8,5 % |
| Безработица | +2,0 / +3,0 / +2,4 п.п. | +4,5 / +6,2 / +5,2 п.п. |
| Ключевая ставка | +6,0 / +4,0 / +2,0 п.п. | +11,0 / +8,0 / +4,0 п.п. |
| Курс доллара к рублю | +25 / +32 / +28 % | +55 / +68 / +60 % |
| Цена нефти | −30 / −35 / −25 % | −55 / −62 / −48 % |
| Недвижимость | −15 / −22 / −20 % | −32 / −45 / −40 % |
В подтверждённом расчёте ВВП и безработица влияют на вероятность дефолта, а ключевая ставка — на чистый процентный доход. Курс доллара, цена нефти и недвижимость загружены, доступны в книге и участвуют в представлении сценария, но в расчёт потерь и дохода не включены.
На уровне банка решение формирует накопленные за три года ожидаемые потери, чистый процентный доход и прибыль, берёт активы, взвешенные по риску, на конец третьего года и рассчитывает итоговую достаточность капитала из стартового капитала и годовой прибыли после налога.
Расчётный контур состоит из четырёх справочников, двух кубов и одной рабочей книги.
| Бизнес-объект | Техническое имя | Фактический состав и назначение |
|---|---|---|
| Портфели банка | st_portfolio | 9 элементов. Исходные данные и расчёт ведутся по 6 портфельным книгам; остальные элементы обеспечивают иерархическое сворачивание до укрупнённых портфелей и банка. Для элементов хранятся чувствительности к ВВП, безработице и ключевой ставке. |
| Сценарии стресс-теста | st_scenario | 3 элемента: BASE, ADVERSE, SEVERE. Для каждого элемента хранится вид сценария. |
| Горизонт прогноза | st_horizon | 5 элементов: Y0, Y1, Y2, Y3, CUM3. Стартовая точка Y0 отделена от накопленного узла CUM3, который объединяет только три прогнозных года. |
| Макроэкономические факторы | st_factor | 6 элементов: ВВП, безработица, ключевая ставка, курс доллара к рублю, цена нефти и недвижимость. Для каждого фактора задана единица измерения. |
Чувствительности различаются по портфельным книгам. Корпоративные портфели сильнее реагируют на ВВП: коэффициенты находятся в диапазоне от −14 до −18. Розничные портфели сильнее зависят от безработицы: коэффициенты находятся в диапазоне от +18 до +22. Для портфеля ценных бумаг чувствительность к ключевой ставке составляет −1,6.
| Бизнес-объект | Техническое имя | Измерения и показатели | Фактический объём |
|---|---|---|---|
| Макросценарии | stress_macro | Сценарий × макрофактор × год; один показатель shock_pct — отклонение от базового прогноза. | 54 адреса: 3 сценария × 6 факторов × 3 года. |
| Портфель под стрессом | stress_book | Портфель × сценарий × горизонт; 11 показателей, из которых 6 загружаются и 5 рассчитываются. | 108 загруженных адресов на Y0: 6 портфелей × 3 сценария × 6 исходных показателей. |
В stress_book загружаются ead, pd_base, lgd, rw, nii_margin и opex. Движок рассчитывает pd_stress, el, nii, rwa и profit.
Связь двух кубов выполняется непосредственно расчётным правилом. Например, шок ВВП читается конструкцией:
shock_pct[st_factor = "GDP" from stress_macro]
Сценарий и год не перечисляются в этой ссылке повторно: движок берёт их из текущего адреса stress_book. Благодаря этому одно правило применяется ко всем трём сценариям и всем трём прогнозным годам.
Всего установлено 9 правил: пять правил расчёта на базовом уровне и четыре отдельных правила сворачивания для ожидаемых потерь, чистого процентного дохода, прибыли и активов, взвешенных по риску.
Расчёт выполняется как последовательность финансово понятных шагов.
| Шаг | Бизнесовый смысл |
|---|---|
| 1. Выбор сценария и года | Для текущего сочетания портфеля, сценария и года определяется набор макроэкономических отклонений. В базовом сценарии отклонения равны нулю. |
| 2. Чтение макрошоков | Правила stress_book получают значения ВВП, безработицы и ключевой ставки из stress_macro. Исходные шоки не копируются вручную в портфельный куб. |
| 3. Применение чувствительностей | К шокам применяются коэффициенты конкретной портфельной книги. Поэтому корпоративный, розничный и портфель ценных бумаг реагируют по-разному. |
| 4. Расчёт стрессовой вероятности дефолта | Базовая вероятность дефолта умножается на единицу плюс влияние шока ВВП и влияние шока безработицы. В базовом сценарии стрессовая вероятность точно равна базовой. |
| 5. Расчёт ожидаемых потерь | Экспозиция умножается на стрессовую вероятность дефолта и долю потерь при дефолте. |
| 6. Расчёт чистого процентного дохода | Экспозиция умножается на чистую процентную маржу, скорректированную на чувствительность портфеля к шоку ключевой ставки. |
| 7. Пересчёт активов, взвешенных по риску | Базовая риск-взвешенная экспозиция увеличивается на половину относительного ухудшения вероятности дефолта. Это реализованная приближённая оценка миграции кредитного качества. |
| 8. Расчёт прибыли до налога | Из чистого процентного дохода вычитаются операционные расходы и ожидаемые потери. |
| 9. Сворачивание до банка | Потоки суммируются по портфелям и трём прогнозным годам. Запасы не суммируются по времени: активы, взвешенные по риску, для итогового расчёта берутся на Y3. |
| 10. Расчёт достаточности капитала | К стартовому основному капиталу прибавляется годовая прибыль: положительная прибыль — после налога, убыток — в полном размере. Полученная величина делится на активы, взвешенные по риску, на конец третьего года. |
Формулы в деловой записи выглядят следующим образом:
Стрессовая вероятность дефолта =
базовая вероятность дефолта ×
(1 + чувствительность к ВВП × шок ВВП
+ чувствительность к безработице × шок безработицы)
Ожидаемые потери =
экспозиция × стрессовая вероятность дефолта × доля потерь при дефолте
Чистый процентный доход =
экспозиция × чистая процентная маржа ×
(1 + чувствительность к ставке × шок ключевой ставки)
Активы, взвешенные по риску =
экспозиция × коэффициент риска ×
(1 + 0,5 × относительное ухудшение вероятности дефолта)
Прибыль до налога =
чистый процентный доход − операционные расходы − ожидаемые потери
Расчёт использует допущение статического баланса: состав и объём портфеля на прогнозном горизонте не меняются, меняются только параметры риска и доходности. Убыток одного года не сокращает экспозицию следующего года, а рост активов, взвешенных по риску, не ограничивает выдачи через лимиты капитала.
| Показатель | Бизнесовое название | Как формируется и как используется |
|---|---|---|
ead | Экспозиция на момент дефолта | Стартовый объём требований по портфелю. В подтверждённом расчёте остаётся постоянным на всём горизонте. |
pd_base | Базовая вероятность дефолта | Исходная вероятность дефолта портфеля без стрессового отклонения. |
pd_stress | Стрессовая вероятность дефолта | Базовая вероятность, скорректированная на шоки ВВП и безработицы через чувствительности портфеля. |
lgd | Доля потерь при дефолте | Часть экспозиции, которая будет потеряна при наступлении дефолта. |
el | Ожидаемые потери | Экспозиция × стрессовая вероятность дефолта × доля потерь при дефолте. Поток суммируется за три года. |
nii_margin | Чистая процентная маржа | Исходная доходность портфеля до применения шока ключевой ставки. |
nii | Чистый процентный доход | Процентный доход с учётом чувствительности маржи к шоку ставки. Поток суммируется за три года. |
rw | Коэффициент риска | Исходный коэффициент, используемый для расчёта риск-взвешенной экспозиции. |
rwa | Активы, взвешенные по риску | Экспозиция × коэффициент риска с поправкой на относительное ухудшение вероятности дефолта. Для итогового норматива берётся значение на Y3. |
opex | Операционные расходы | Загружаемая сумма расходов портфельной книги. |
profit | Прибыль до налога | Чистый процентный доход минус операционные расходы и ожидаемые потери. Поток суммируется за три года. |
| Достаточность основного капитала | Отношение основного капитала к активам, взвешенным по риску | Рассчитывается после чтения из движка прибыли по годам и активов, взвешенных по риску, на Y3; отдельной мерой куба не является. |
| Истощение капитала | Изменение достаточности к стартовой точке | Конечная достаточность минус исходные 11,97 %, в процентных пунктах. |
Стартовая точка банка:
| Показатель | Значение |
|---|---|
| Экспозиция | 84 000 млн ₽ |
| Активы, взвешенные по риску | 55 150 млн ₽ |
| Основной капитал | 6 600 млн ₽ |
| Достаточность основного капитала | 11,97 % |
Результат расчёта за три года:
| Сценарий | Ожидаемые потери, млн ₽ | Чистый процентный доход, млн ₽ | Прибыль до налога, млн ₽ | Активы, взвешенные по риску, на Y3, млн ₽ | Достаточность капитала на конец |
|---|---|---|---|---|---|
| Базовый | 2 079,5 | 10 287,0 | 2 552,5 | 55 150,0 | 15,67 % |
| Неблагоприятный | 3 873,1 | 9 942,7 | 414,7 | 76 582,8 | 9,05 % |
| Кризисный | 5 818,2 | 9 627,2 | −1 846,0 | 100 998,2 | 4,71 % |
В неблагоприятном сценарии достаточность снижается относительно стартовой точки на 2,92 п.п., в кризисном — на 7,26 п.п. Кризис действует одновременно через числитель и знаменатель: ожидаемые потери возрастают примерно в 2,8 раза к базовому сценарию, а активы, взвешенные по риску, увеличиваются почти вдвое. Одновременно чистый процентный доход сокращается с 10 287,0 до 9 627,2 млн ₽, и трёхлетний финансовый результат становится отрицательным.
Рабочая книга «Стресс-тестирование банка» содержит четыре листа. Все листы формируются из двух кубов и используют одни и те же справочники сценария, горизонта и портфеля.
| Лист | Источник и срез | Что видит финансовый директор |
|---|---|---|
| Кризисный сценарий | stress_book, фильтр SEVERE; строки — иерархия портфелей, столбцы — годы и показатели el, nii, profit. | Как кризисный сценарий распределяет потери, доход и прибыль между портфельными книгами и годами; где именно возникает основной удар по результату. |
| Неблагоприятный сценарий | stress_book, фильтр ADVERSE; та же структура показателей. | Сопоставимый разрез умеренного стресса и возможность сравнить его с кризисным сценарием без перестройки отчёта. |
| Параметры риска и RWA | stress_book, фиксированный горизонт Y2; строки — портфели и сценарии, показатели — pd_base, pd_stress, rwa. | Переход от базовой вероятности дефолта к стрессовой и влияние этого перехода на активы, взвешенные по риску, по каждой портфельной книге. |
| Макросценарии | stress_macro; строки — факторы и сценарии, столбцы — годы и shock_pct. | Полную траекторию шести макрофакторов по каждому сценарию, включая три фактора, которые пока используются только как сценарная информация. |
Для рассчитанных показателей применяются парные правила. Первое правило считает листовые значения по отдельному портфелю, сценарию и году. Второе правило с областью действия «агрегация» сворачивает листовые значения по иерархии. Такая пара установлена для ожидаемых потерь, чистого процентного дохода, прибыли и активов, взвешенных по риску. Без отдельного правила агрегации результаты расчётных правил не появились бы на уровне укрупнённого портфеля и банка.
Стрессовая вероятность дефолта намеренно не суммируется до банка: вероятность нельзя получать сложением процентов разных портфелей. Витрина показывает её на уровне портфельных книг.
Иерархия времени также учитывает экономический смысл показателей. Узел CUM3 объединяет Y1, Y2 и Y3 и используется для потоков — ожидаемых потерь, чистого процентного дохода и прибыли. Стартовая точка Y0 находится в отдельной ветви и не попадает в трёхлетний итог. Для запасов, прежде всего активов, взвешенных по риску, итоговое значение читается на конкретную дату Y3, а не как сумма трёх годовых остатков.
Банковский свод формируется тем же способом: для потоков читается пересечение уровня банка и CUM3, для активов, взвешенных по риску, — уровень банка и Y3. Достаточность капитала затем рассчитывается из этих проверенных компонентов.
Первое — весь стресс-тест объясним от исходного фактора до капитала. Финансовый директор может начать с траектории ВВП, безработицы или ключевой ставки, увидеть чувствительность конкретной портфельной книги, затем перейти к вероятности дефолта, потерям, доходу, прибыли и активам, взвешенным по риску. Итог не возникает как непрозрачное число в отдельном файле.
Второе — сценарные допущения отделены от банковских данных. Макрошоки находятся в stress_macro, параметры портфелей — в stress_book. Один набор сценариев можно применять ко всем портфелям, а изменение траектории фактора автоматически передаётся в расчёт без ручного копирования коэффициентов.
Третье — портфели реагируют неодинаково. Корпоративные книги сильнее зависят от ВВП, розничные — от безработицы, портфель ценных бумаг — от ключевой ставки. Поэтому результат можно анализировать не только на уровне банка, но и по источникам уязвимости.
Четвёртое — потоки и запасы не смешиваются в итогах. Потери, доход и прибыль суммируются за три года, а активы, взвешенные по риску, берутся на конец третьего года. Стартовая точка не попадает в накопленный итог. Это исключает внешне правдоподобную, но экономически неверную сумму трёх годовых остатков.
Пятое — расчёт проверен независимо. Для каждого из пяти вычисляемых показателей прочитаны результаты движка и сопоставлены с отдельным расчётом: по 54 ячейки для стрессовой вероятности дефолта, ожидаемых потерь, чистого процентного дохода, активов, взвешенных по риску, и прибыли. Всего сверено 270 расчётных ячеек. Дополнительно проверены банковские своды по всем трём сценариям. Расхождений не выявлено; стендовый прогон завершён без замечаний.
Шестое — границы подтверждённого результата зафиксированы прямо. В расчётную трансмиссию входят ВВП, безработица и ключевая ставка. Курс доллара, цена нефти и недвижимость загружены и показаны в сценарной витрине, но не влияют на потери и доход. Баланс остаётся статическим, обратная связь через сокращение портфеля или капитальные лимиты не реализована. Итоговая достаточность капитала рассчитывается из результатов движка внешним расчётным шагом, а не отдельным правилом куба.
В приложенных материалах также описано расширение до 18 справочников и 9 кубов и подготовлен детерминированный набор входных данных. Однако в самом проекте расширения прямо указано, что его формулы не отправлялись на живой стенд. Поэтому этот масштаб, 168 170 входных адресов и результаты расширенного расчёта в настоящий клиентский кейс не включены как построенный функционал. Здесь заявляется только тот контур, для которого представлены код сборки, стендовый результат, книга и поячеечная сверка.
Мы построили связанный расчётный контур стресс-тестирования банка. Макроэкономические сценарии и банковские портфели разделены: в одном кубе хранятся траектории шести макрофакторов, во втором — исходные параметры шести портфельных книг и расчётные показатели. Правила автоматически читают шок нужного фактора по сценарию и году и проводят его через вероятность дефолта, потери, процентный доход, прибыль и активы, взвешенные по риску.
В контуре используются три сценария — базовый, неблагоприятный и кризисный — и три прогнозных года. На стартовую дату банк имеет экспозицию 84 000 млн ₽, активы, взвешенные по риску, 55 150 млн ₽ и основной капитал 6 600 млн ₽; исходная достаточность составляет 11,97 %.
В базовом сценарии накопленные за три года ожидаемые потери составляют 2 079,5 млн ₽, прибыль до налога — 2 552,5 млн ₽, а достаточность капитала на конец горизонта — 15,67 %. В неблагоприятном сценарии потери возрастают до 3 873,1 млн ₽, активы, взвешенные по риску, — до 76 582,8 млн ₽, а достаточность снижается до 9,05 %.
Кризисный сценарий показывает одновременный удар по прибыли и нормативному знаменателю. Ожидаемые потери достигают 5 818,2 млн ₽, чистый процентный доход сокращается до 9 627,2 млн ₽, трёхлетний результат становится отрицательным — минус 1 846,0 млн ₽, а активы, взвешенные по риску, возрастают до 100 998,2 млн ₽. Достаточность основного капитала снижается до 4,71 %, то есть на 7,26 процентного пункта относительно стартовой точки.
Для анализа подготовлена рабочая книга из четырёх листов: кризисный и неблагоприятный сценарии, параметры риска и активы, взвешенные по риску, а также полная таблица макросценариев. Пользователь может перейти от банковского итога к отдельной портфельной книге и конкретному году и увидеть, за счёт какого фактора сформировалось изменение результата.
Расчёт проверен поштучно: 270 вычисленных ячеек совпали с независимым пересчётом, банковские своды сошлись по всем трём сценариям. При этом границы результата не скрываются: курс доллара, нефть и недвижимость пока показаны как сценарные факторы, но не включены в трансмиссию; баланс остаётся статическим, а итоговая достаточность капитала рассчитывается из проверенных компонентов после чтения результатов движка.