Настройка no-code приложения ALM (Управление активами и пассивами)

1eef2736712ca984c09386f3df773c36.jpeg

Привет! На связи опять команда «БизнесАнализ» от ПрограмБанка и я, Мария, её руководитель.

Продолжаю цикл статей с примерами использования no-code инструментов хранилища «БизнесАнализ».

В этой статье показываю пример самостоятельной настройки аналитиком бизнес-приложения ALM (управление активами и пассивами) для расчета прогнозного управленческого баланса на базе первички по остаткам и сделкам из АБС.

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

Настройку приложения может выполнять обычный аналитик, прошедший обучение по self-service инструментарию. Для этого не нужен ни ИТ специалист, ни программист.
Как правило у него уже есть финансовая модель в Excel, на которую он и ориентируется при настройке.

Смотрим в свою постановку от методолога банка и ищем там финальные формы с расчетными показателями, это:

Баланс ALM должен выглядеть следующим образом:

ad6dae146ca3bf84918b0c4276838a2d.JPG

Он будет настроен как форма многомерных показателей. Для него нам понадобится:

  1. полный список показателей — строки баланса — в едином реестре показателей;

  2. типы значений — их мы используем для вывода в столбцах баланса значений — Остаток, Объемы выплаты, Процентные доходы и расходы, Маржа и т.д.;

  3. наборы временных корзин — их будем использовать для дополнительного разделения столбца с объемами выплат;

  4. также баланс должен считаться в разрезе валют и видов бизнеса банка — значит нужны такие аналитики.

Также будем считать нормативы ликвидности.

Исходя из требований к финальным показателям (формам баланса и нормативов) структура приложения в объектах self-service будет такой:

84cd6ef5a429d8a62ea68193024c0cd6.png

Здесь будут:

  1. 2 типовых и 3 специальных справочника;

  2. 3 витрины с данными из АБС — остатки на балансовых счетах второго порядка и финансовые потоки по сделкам, 2 витрины с ручным вводом данных по модельным сделкам;

  3. 2 многомерные формы.

1. Создаем приложение ALM Управление активами и пассивами.

b4516f5cba2f0af51373a35a9b3805d3.png

Для создания приложения пользователю достаточно ввести код и название.

Папка с объектами нового бизнес-приложения сразу появляется в общем пользовательском дереве-меню. Теперь можно добавлять в него новые объекты.

Если сравнить с Excel, то это момент создания файла и сохранения его с новым именем.

2. Настраиваем справочники-аналитики

В нашем примере нам нужны 2 аналитики — валюта и вид бизнеса.

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

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

4272685cce553de9e26afbc36629ab60.png

В глобальных справочниках видим — Валюта, Балансовые счета 2-го порядка и Центры финансовой ответственности (ЦФО).

Тогда для ALM мы будем использовать готовый глобальный справочник валют. А справочник видов бизнеса надо будет создать.

Процесс создания типового справочника довольно простой:

  • указываем название справочника — оно в дальнейшем будет использоваться в формулах;

  • добавляем в список все нужные нам атрибуты с их названиями;

  • для каждого атрибута определяем его тип данных (строка\ число\ дата и т.п.), обязательность заполнения, признак уникальности (ключа);

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

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

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

5c160d771c668c97151dd631419b107e.png

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

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

3. Настраиваем специальные справочники

Специальными мы называем справочники фиксированной структуры с встроенной в self-service платформу логикой обработки их данных.

Для настройки приложения ALM будем использовать несколько типов специальных справочников:

типы значений
наборы временных корзин

С созданием специальных справочников все не просто, а прям таки примитивно — тут достаточно только названия — и справочник готов.

Создаем справочник типов значений «Типы значений ALM».

Структура такого справочника всегда одинаковая:

  • Код,

  • Название,

  • Порядковый номер — для сортировки в формах,

  • Формула по умолчанию.

Заполняем его данными.

6e6df6522a8714ac67d22d371dd42d6e.png

Аналогично создаем справочник наборов временных корзин «Сроки баланса ALM».

Структура фиксированная:

  • Код уникальный,

  • Название уникальное,

  • Минимальное количество дней,

  • Максимальное количество дней.

Заполняем справочник теми группами сроков, которые мы хотим видеть в балансе.

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

d4b5f10673b11778c9fde234606aff26.png

4. Добавляем показатели

Для настройки всех self-service приложений в одном хранилище используется единый словарь терминов и типов — единый реестр показателей.

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

944fa69a9e3e369cc7c36d8b32b1eb1f.png

5. Настраиваем базовую структуру многомерного Баланса ALM

Итак, в самом начале мы рассматривали форму будущего баланса ALM.

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

  • Добавляем в строки формы показатели баланса и выстраиваем их в иерархию.

  • Для столбцов выбираем аналитики:

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

  • В параметры формы выбираем аналитики Валюта и Вид бизнеса.

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

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

138113e2faf022affa090a76a502f0b7.png

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

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

Дальше можно переходить к настройке источников данных и формул для расчета.

6. Настраиваем витрины сбора данных

Для загрузки данных из внешних источников используем self-service витрины, в которых отдельно на каждую операционную дату загружаются\ заводятся и дальше хранятся исходные данные.

Для приложения ALM сначала мы сделаем витрины с загрузкой данных из ПрограмБанк.АБС.
Для связи между нашим хранилищем и этой внешней базой данных есть преднастроенный бизнес-словарь, в котором в виде иерархического списка бизнес-терминов представлен по сути список сущностей и атрибутов логической модели данных АБС.

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

Из АБС будем загружать данные в следующие витрины:

  • Остатки на балансовых счетах 2-го порядка;

  • Финансовые потоки по сделкам привлечения;

  • Финансовые потоки по сделкам размещения.

Как настроить витрину:

  • вводим код и название витрины;

  • определяем способ ее заполнения данными — в нашем случае это «бизнес-словарь»;

  • добавляем показатели из бизнес-словаря или единого репозитория, часть настроек показателей при этом заполняется автоматически;

  • при необходимости можно скорректировать названия показателей;

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

  • признак обязательности заполнения;

  • признак уникальности (ключи);

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

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

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

68325882c4d5ff9b2ccd57e8b8cd6abf.png

Кроме загружаемых витрин нам понадобятся витрины с ручным вводом данных о прогнозируемых сделках по привлечению и размещению. Они нам нужны для расчета прогнозной части баланса ALM.
Настраиваются эти витрины так же, только способ заполнения витрины указываем как «ручной ввод», а показатели добавляются не из бизнес-словаря, а из единого репозитория показателей.
В них так же добавляем рассчитываемые показатели Статья баланса и Корзина сроков.

7. Настраиваем формулы для формы Баланса ALM

Переходим к самому интересному и трудоемкому — формулам расчета показателей. 

Штатный self-service функционал настройки многомерных форм позволяет указывать для показателей разные алгоритмы расчета для разных значений специальных справочников в контексте.
Это значит, что для одного показателя в каждом столбце для типа значений или набора временных корзин мы сможем указать свою формулу расчета.

Посмотрим настройку формул на примере показателя «Корпоративные клиенты до востребования» по порядку вывода значений в столбцах баланса:

2c781d2e7de944df895c6bbaf9688993.png

Для типов значений «Остаток» и «Сроки» используется одна и та же формула

СуммЕсли("Привлечение#Остаток в эквиваленте")

При этом функция сама отбирает для суммирования только те строки витрины Привлечение, в которых:

  • операционная дата витрины совпадает с операционной датой баланса;

  • значение показателя Вид бизнеса совпадает с видом бизнеса из параметров баланса;

  • в столбце Статья баланса выведен показатель баланса, для которого и считается формула — то есть  «Корпоративные клиенты до востребования».

Для типа значений Сроки, который еще и развернут по наборам временных корзин, в фильтр добавляется еще и конкретная временная корзина.

Тип значений »% Д/Р (руб)» и «Трансферт. % Д/Р (руб)» считаются по аналогичной формуле, только с суммой по другим показателям витрины

СуммЕсли("Привлечение#Начисленные %")

СуммЕсли("Привлечение#Начисленные трансфертные %")

Формулы получаются довольно универсальными, поэтому их можно копировать в другие показатели ветки Обязательства.

У функций СуммЕсли есть и встроенный бонус — ячейки с этими функциями при просмотре в готовой форме могут быть детализированы до записей исходной витрины, которые в итоге участвовали в расчете.

bd9c6e08e8bcd2386c3ad2b0cdf11bf9.jpg

Остальные типы значений считаются друг из друга уже

Маржа, руб: "% Д/Р (руб)"-"Трансферт. % Д/Р (руб)"

Средняя процентная ставка, %: "% Д/Р (руб)"*365*100/("Остаток"*15)

Средняя трансфертная ставка, %: "Трансферт. % Д/Р (руб)"*365*100/("Остаток"*15)

Процентная маржа, %: "Ср. проц.ставка (%)"-"Ср. трансферт. ставка (%)"

Учитывая, что эти типы значений рассчитываются совершенно одинаково для всех показателей баланса, формулу их расчета можно один раз указать в специальном справочнике типов значений в поле Формула по умолчанию. Либо просто использовать копирования формул между показателями.

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

Для группирующих показателей дальше используем функцию СуммНиже (), которая просто суммирует все нижестоящие значения.


Для расчета показателя «Разрыв» используем формулу с обращением к другим показателям:

"Активы” - "Обязательства”

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

("Типы значений ALM" = 'Сроки' и "Сроки баланса ALM"<>'Без срока') и  ("Разрыв" < 0)

7f014305cd1264641db1500dfa2dd3cb.JPG

8. Настраиваем многомерную форму для расчета нормативов

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

Посмотрим, как она может выглядеть:

  1. по строкам — иерархия показателей — иерархический список нормативов и их составляющих, из которых потом рассчитывается финальное значение;

  2. для столбцов понадобится новый список типов значений;

  3. те ячейки, которые могут быть вычислены на основании данных из Баланса ALM или на основании других ячеек этой же формы, мы сделаем формульными, остальные — ручной ввод (они в нашем шаблоне оранжевые).

6dfd68c80b106996e88928f0332405e0.JPG

Итак, настраиваем (мы уже умеем) новый специальный справочник типов значений — Типы значения для Нормативов, в который добавляем значения, соответствующие столбцам новой формы:

a4c4196482ae826e35cfe9db34c7741b.png

Создаем новую форму Нормативы, в ней:

  • указываем следующие аналитики:

    • в параметры — так же как и в Балансе — Валюта и Вид бизнеса;

    • в столбцы — Типы значений для Нормативов;

  • заводим иерархию показателей в соответствии с шаблоном.

Для расчета фактических значений составляющих нормативов ЦБ в нашем приложении пока недостаточно данных, поэтому им оставляем ручной ввод. Сами нормативы ЦБ будут рассчитываться из своих составляющих по стандартным формулам, например:

Лам/("Овм" -0.5*"Овм*")*100

Для расчета нормативов ALM данных баланса вполне достаточно, поэтому они полностью формульные. Таким образом, например, будет считаться у нас показатель Мгновенная ликвидность:

БалансALM#Активы[["Типы значений ALM":='Сроки', "Сроки баланса ALM":='До востребования']]
/(
БалансALM#Обязательства[["Типы значений ALM":='Сроки', "Сроки баланса ALM":='До востребования']] –
‘БалансALM#Корпоративные клиенты до востребования’[["Типы значений ALM":='Сроки', "Сроки баланса ALM":='До востребования']] * 0.3 –
'БалансALM#Физические лица до востребования'[["Типы значений ALM":='Сроки', "Сроки баланса ALM":='1 день']] * 0.3
)*100

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

Смотрим что получилось:

25242f415fbff6519fa6619ab866613f.png

На данном этапе первую версию нашего приложения ALM можно считать готовой. Она несложная, но это вполне реалистичная база для дальнейшего наращивания функционала.
Настройка приложения заняла у нас около 2-х рабочих часов.

С его помощью пользователь может рассчитать Баланс ALM и Нормативы ликвидности на базе первички по остаткам и сделкам из АБС. Приложение автоматизирует построение как частных баланса и нормативов в разрезе валют и видов бизнеса, так и их агрегированных по всем валютам и бизнесам версий, в том числе единый агрегированный ALM-баланс банка.

Что можно будет ещё добавить в это no-code приложение для управления активами и пассивами в коммерческом банке:

  • Можно добавить любые дополнительные аналитики в многомерные формы — филиалы, центры финансовой ответственности, точки продаж, группы клиентов и т.п.

  • Можно добавить аллокации расходов и доходов.

  • Можно добавить расчет трансфертных доходов и расходов, маржи.

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

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

Вместе с этой статьей мы с вами прошли все шаги по настройке своего собственного финансового приложения и познакомились с некоторыми возможностями self-service инструментов платформы «ПрограмБанк.БизнесАнализ». 

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

Вот список направлений, в которых применение такого инструментария точно эффективно:

  • Сбор, выверка и обогащение первичных данных из учетных систем

  • Ведение классификаторов

  • Управленческий учет

  • Планирование и бюджетирование

  • Бюджетный контроль расходов и платежей

  • Аллокация расходов и расчет себестоимости

  • Трансфертное ценообразование

  • Функционально-стоимостной анализ

  • Консолидированная финансовая и управленческая отчетность

  • Аналитические витрины

  • Моделирование и стресс-тестирование

Буду рада, если вы поделитесь своим мнением о подобном self-service инструментарии или идеями по другим возможным областям его применения!

Другие статьи по этой же теме:

© Habrahabr.ru