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

от автора

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

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

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

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

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

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

  • баланс ALM,

  • нормативы ликвидности.

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

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

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

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

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

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

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

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

Здесь будут:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Код,

  • Название,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • специальный справочник Типы значений ALM;

    • специальный справочник Сроки баланса ALM.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


ссылка на оригинал статьи https://habr.com/ru/articles/858204/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *