2009.09

Практика многомерного моделирования

Михаил Ковалев

Демо-пример бюджетной модели  в Hyperion Planning

Аннотация

В статье рассмотрен  сквозной демо-пример, иллюстрирующий возможность построения основных бюджетов БДР, БДДС, ПБ в OEPM-системе Hyperion Planning на базе типовых схем и подходов практики многомерного моделирования. Для построения БДДС использовался прямой метод расчета потока денежных средств на основе коэффициентов инкассации, а также показана возможность планирования дебиторско-кредиторской задолженности (с использованием авансово-кредитных схем) и ее отражения в прогнозном балансе.

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

Современные системы управления бизнеса (BPM, OEPM, CPM – системы) предоставляют практически неограниченные возможности для построения и реализации на их основе решений для бюджетного управления и контроля любого уровня сложности и масштаба. При этом широко используются типовые схемы решений задач многомерного моделирования (реализация которых может сильно отличаться для конкретного приложения в конкретной системе, например, в HyperionPlanning и PlanDesigner, что обусловлено коструктивными особенностями систем).

Рассмотрим простой пример, иллюстрирующий эти возможности применительно к созданию простого приложения - системы бюджетирования на базе Oracle Hyperion Planning.

Следует отметит, что рассматриваемый ниже подход уже был применен в системе PlanDesigner, когда автор в 2004 году имел возможность ознакомиться c ним (подходом), автоматизируя с помощью PlanDesigner бюджетное управление в одном из транспортных холдингов, и использовать его в последующей деятельности.

Бюджетная модель должна удовлетворять ”типовым” стандартным условиям, используемых обычно в процессе бюджетирования:

- горизонт планирования год;

- шаг планирования месяц;

- возможность осуществления планирования в течение ряда лет;

- ситуационный анализ «что-если» (планирование в различных сценариях и поддержка версий данных в бюджетах);

- поддержка метода планирования “снизу вверх”;

- планирование, как в денежных, так и натуральных показателях.

( Соответственно, в модели потребуется использовать не только измерения стандартных типов Hyperion Planning, например, Годы, Период, Сценарии, Версии, но и дополнительные, например, Стоимость.)

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

- планирования потоков денежных средств прямым методом (через коэффициенты инассации) на основе планирования доходов и расходов,

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

- использования полученных данных в Прогнозном балансе (Бюджете по балансовому листу).

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

Логическая схема преобразования информации представлена на рисунке:

Далее давайте рассмотрим логику формирования бюджетов.

Формирование бюджета доходов и расходов

Предположим, что компания производит и продает товары “Прод01″, “Прод02″, “Прод03″.

Есть контрагенты (”Контр01″, “Контр02″, “Контр03″) , которые могут являться и клиентами (например, “Контр01″), и поставщиками (например, “Контр03″).

Для каждого клиента может быть сформирован свой Прайс-лист Например, цену продаж для клиента “Контр01″сформируем следующим образом, как это представлено в экранной форме Planning:

запланированное количество продаж в 2009 году может выглядеть как

а бюджет продаж по всем контрагентам

На основе  плана продаж рассчитывается производственная программа. В нашем случае для производства готовой продукции используются компоненты: “Сырье01″, “Сырье02″, “Матер01″, “Матер02″, потребность в которых для производства единицы изделия в общем случае может задаваться спецификацией типа:

Сырье01

Сырье02

Матер01

Матер02

Прод01

k_11

k_12

k_13

k_14

Прод02

k_21

k_22

k_23

k_24

Прод03

k_31

k_32

k_34

k_34

То есть, для производства 1 единицы “Прод01” требуется k_11 единиц “Сырье01”, k_12 единиц “Сырье02”, k_13 единиц “ Матер 01” и k_14 единиц “ Матер 02”

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

Сырье01

Сырье02

Матер01

Матер02

Прод01

1

1

0

0

Прод02

1

0

1

0

Прод03

1

0

0

1

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

Тогда очень просто вычисляется потребность в количестве сырья и материалов:

“Сырье01″ = 1 * “Прод01″ + 1 * “Прод02″ + 1 * “Прод03″;

“Сырье02″ = 1 * “Прод01″ + 0 * “Прод02″ + 0 * “Прод03″;

“Матер01″ = 0 * “Прод01″ + 1 * “Прод02″ + 0 * “Прод03″;

“Матер02″ = 0 * “Прод01″ + 0 * “Прод02″ + 1 * “Прод03″;

Этот алгоритм может быть ”запрограммирован” в бизнес-правилах.

С помощью бизнес-правила «БДР – 03 Закупки (количество от продаж)» рассчитываем необходимое количество сырья и материалов, например, в соответствии с приведенными выше условиями для производства в январе 10 единиц товара «Прод01» требуется 10 единиц «Сырья01» и 10 единиц «Сырья02»

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

можно рассчитать бюджет закупок в разрезе как конкретного поставщика “Контр03″

так и всех поставщиков

При этом в бизнес правиле «03 Закупки (сумма)», используемом для расчета агрегированных сумм, необходимо предусмотреть расчет цены в агрегированных периодах (YearTotal, Кв1, Кв2, Кв3, Кв4) как сумма за период/количество за период (средневзвешенная цена по периоду).

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

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

Формирование Бюджета Движения Денежных Средств

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

В этом случае необходимо задать коэффициенты инкассации, например, для продаж в разрезе клиентов. Контрагент «Контр01» в январе месяце оплачивает 80% стоимости январской поставки товаров, а 20% процентов в следующем месяце. В феврале клиент оплачивает 100% процентов поставленного товара. А за поставку в марте клиент должен в феврале месяце внести предоплату в размере 20%.

Поставки материалов и сырья от поставщика-контрагента «Контр03» оплачиваются в том же самом месяце, что и сами поставки.

Тогда запуская бизнес-правила, в которых суммы начислений конкретного месяца перемножаются на коэффициенты инкассации, в формах «05 БДДС - Поступления»

и «05 БДДС - Выплаты»

в колонке «YearTotal» мы видим суммы поступлений и выплат в каждом месяце (в январе – строка о_Янв, в феврале – строка о_Фев, … ).

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

Формирование Прогнозного Баланса

Остановимся на вопросах построения прогнозного баланса

На основании данных об отгрузках/оплатах и поставках/оплатах вычисляется дебиторско - кредиторская задолженность. Для этого используется авансово - кредитные схемы:

-  кредитная схема используется в случае когда отгрузка или поставка осуществляется раньше оплаты за товар

авансовая схема используется в случае, когда оплата осуществляется раньше отгрузки или поставки товара

Так как в рассматриваемом примере оплата клиентом “Контр01″ за отгруженный в январе месяце товар производится частично в месяц поставки, а частично в следующем (в феврале), то в нашем случае возникает дебиторская задолженность за поставленный товар.

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

В результате выполнения бизнес-правила «06 БДДС ДебитЗадолжПродажи (Кредитная схема)» сформируем данные, представленные в форме «Дебиторская задолженность Продажи (товары отгруженные)».

Дебиторская задолженность в каждом месяце (Янв, Фев, Мар,…) будет равна разности между тем сколько планируется отгрузить в конкретном месяце (строка o_Время; колонки Янв, Фев, Мар) и сколько планируется оплатить в месяце поставки (колонка YearTotal; строки о_Янв (оплата в январе), о_Мар (оплата в марте), … )

В рассматриваемом примере за планируемую поставку товара в марте месяце клиент “Контр01″ вносит в феврале месяце 20% предоплату стоимости поставки товара, то возникает кредиторская задолженность перед клиентом

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

В результате выполнения бизнес-правила «08 БДДС КредитЗадолжПродажи (Авансовая схема)» сформируем данные, представленные в форме «3 Кредиторская задолженность Продажи (авансы полученные)».

Кредиторская задолженность в каждом месяце (Янв, Фев, Мар,…) будет равна разности между тем сколько планируется оплатить в конкретном месяце (строка o_Янв, o_Фев, o_Мар, …; колонка YearTotal) и сколько планируется отгрузить в этом месяце (колонка о_Янв, о_Мар, …; строка o_Время )

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

«2 Дебиторская задолженность Закупки (авансы выданные)»

«4 Кредиторская задолженность Закупки (товары полученные)»

После формирования данных в рассматриваемых разрезах можно построить схему Прогнозного баланса, последовательно формируя и передавая данные в срез многомерного куба (см. колонку “Оборот”) в статьи:

- “Накопленная прибыль”;

- “Денежные средства”

- “Авансы выданные“

- “Товары отгруженные“

- “Товары полученные“

- “Авансы полученные“.

После этого в конце необходимо рассчитать исходящее и входящее сальдо рассматриваемых периодов.

Последовательно выполняя бизнес-правила:

- «10 ПБ Прибыль» , которое передает данные в статью  “Накопленную прибыль

- «10 ПБ Денежные средства» - в статью “Денежные средства”

- «10 ПБ ДебиторскаяЗадолженностьЗакупки» - в статью “Авансы выданные“

- «10 ПБ ДебиторскаяЗадолженностьПродажи» - в статью “Товары отгруженные“

- «10 ПБ КредиторскаяЗадолженностьЗакупки» - в статью “Товары полученные“

- «10 ПБ КредиторскаяЗадолженностьПродажи» - в статью “Авансы полученные“

- «10 ПБ ПБ» - рассчитывает исходящее и входящее сальдо

получаем Прогнозный баланас

или в развернутом виде:

Во-первых, баланс  “сошелся” : “Активы” = “Пассивам”.

Во-вторых, здесь мы видим, что в январе месяце “возникла” дебиторская задолженность в сумме 20 (колонка “Оборот”, строка “Товары отгруженные”), а в феврале она погашена сумма - 20. Что и видно в колонке Сальдо на конец периода. Аналогично и с кредиторской задоженностью при рассчетах с клиентами в фервале она возникла в сумме 60 (колонка “Оборот”, строка “Авансы полученные”), а в мерте она погашена.

Заключение

Таким образом, в статье рассмотрен ряд приемов, используемых для построения основных бюджетов БДР, БДДС, ПБ. Продемонстрирована возможность их использования в OEPM-системе Hyperion Planning, а именно проиллюстрирован метод расчета потока денежных средств на основе коэффициентов инкассации, а также показана возможность планирования дебиторско-кредиторскую задолженность и отображения ее в Прогнозном балансе.

С уважением,

М.Ковалев

Сентябрь 2009 г.