Как пропорционально распределить сумму?

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

Распределение скидки на заказ

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

Пример:
1) Товар №1 — цена 1500 руб.
2) Товар №2 — цена 1700 руб.
Итого сумма заказа получается 3200 руб. Допустим, клиенту предоставляется скидка 10%. В данном случае легко посчитать, что скидка в процентах будет одинаковой для каждого товара:
1) Товар №1 — цена со скидкой 1500 — 10% = 1350 руб.
2) Товар №2 — цена со скидкой 1700 — 10% = 1530 руб.
Это лёгкий пример, где никакого распределения не потребовалось. Теперь изменим условия примера. Допустим, скидка на заказ предоставляется не в процентах, а в рублях, — например, 500 руб. Как её учесть в стоимостях товаров? Вот тут уже требуется распределение. Да, можно было бы скидку целиком вписать в один какой-то товар — но это было бы некрасиво; да к тому же не универсально, ведь все товары в заказе могли бы стоить меньше, чем сумма скидки — что ж теперь отрицательную цену делать?! Нет конечно.
Итак распределяем. Очевидно, что первый товар стоит дешевле, значит, и скидку не него надо сделать меньше, чем на второй товар. Считаем сумму заказа, а потом долю стоимости каждого товара в заказе. Полученную долю умножаем на скидку на заказ.
1) Товар №1 1500 * 100 / 3200 = 46,875% — такова доля стоимости первого товар в общем заказе
2) Товар №2 1700 * 100 / 3200 = 53,125%. Проверим, что мы не ошиблись в округлении и не потеряли какой-нибудь доли заказа: 46,875 + 53,125 = 100% — всё верно.
Скидка распределяется согласно полученным долям:
1) 500 * 46,875 / 100 = 234,375. Получилось не очень-то красивое число. Во-первых, суммы допустимо указывать с копейками, а копейки — это только сотые доли. А тут получились тысячных. Во-вторых, в интернет магазине вообще могут не захотеть иметь дела с копейками. Требуется округление. Приводим к скидке 234 руб. Т.е. цена товара с учётом скидки равна 1500 — 234 = 1266 руб.
2) 500 * 53,125 / 100 = 265,625 — аналогично математическим округлением получаем 266 руб. Цена с учётом скидки 1200 — 266 = 934 руб.
Проверим, все ли 500 рублей мы вписали в виде отдельных скидок по товарам: 234 + 266 = 500 — всё верно.

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

Подводные камни

Подвоха два:
1. Округление — не всегда округление скидок по товарам в сумме даёт скидку заказа. С этим авторы многих функций решают путём проверки и учёта разницы в последнем или самом дорогом товаре. Алгоритм моей функции навеян функцией отсюда Распределение суммы прапорционально
2. Не все скидки вообще возможно распределить. Это справедливо, когда требуется учитывать ещё и количество товара — т.е. цена товара никогда не должна быть с точностью больше двух десятичных знаков (т.е. копеек), а в большинстве случаев реальных магазинов — вообще без копеек. Т.е. нужна заданная точность. Невозможно ведь иметь три штуки товара в сумме 1000 руб. — тогда каждый из товаров стоил бы 333,(3) (три в периоде) руб. Вот этот момент вообще нигде не нашёл в сети. Автоматическое распределение алгоритмом, как показан выше вполне может выдать такой неделимый результат. Значит алгоритм требует доработки.

Функция распределения

Мой вариант функции (для языка PHP 7) учитывает количество по каждой позиции и заданную точность. Возвращаемый результат — всегда массив с таким же порядком и количеством элементов, что и входящий массив. А все неразрешимые ситуации генерируют исключение. Таким образом функцию не безопасно использовать обычным образом, — требуется организация перехвата исключения и какая-то реакция на исключительное поведение.
Какие могут быть варианты реакций на неразрешимые распределения? Если распределяется некая скидка по купону, то можно пойти на встречу клиенту и в неразрешимой ситуации накинуть рубль или два к скидке — этого вполне может хватить чтобы подыскать ближайший возможный вариант распределения. Потребуется перебор возможных вариантов.
Если это применение бонусов с личного счёта клиента, то неправильно было бы применить больше, чем есть на счёте — тут наоборот нужно подыскать первый доступный вариант с уменьшением скидки (и не забыть пояснить клиенту, что скидка именно такая по математическим и бухгалтерским причинам).
А если, например, первоначальный взнос клиента по кредиту невозможно равномерно распределить по товарам (для печати чека, например), то тут уже надо запрашивать алгоритм действия у бухгалтерии и руководства.
Варианты всегда есть — нужно просто помнить об исключительных ситуациях и адекватно на них реагировать.
Вот сама функция:

/** * Метод выполняет пропорциональное распределение суммы в соответствии с заданными коэффициентами распределения. * Также может выполняться проверка полного деления суммы коэффициента на его количество. Например, * при нулевой точности для чётного количества штук товара было неправильно получить нечётную сумму * после распределения, - правильно немного увеличить сумму распределения (в ущерб пропорциональности), * чтобы добиться ровного распределения по количеству. * Используется, например, при распределении скидки равномерно по позициям корзины. * @param float $sum Распределяемая сумма * @param array $arCoefficients Массив коэффициентов распределения, где ключи - определённые значения, * которые также будут возвращены в виде ключей результирующего массива. Значения - массив с ключами: * "sum" - величина коэффициента (сумма, а не цена) * "count" - количество для коэффициента * @param int $precision Точность округления при распределении. Если передать 0, * то все суммы после распределения будут целыми числами * @throws Exception Выбрасывается исключение в случае, * если невозможно ровно распределить по заданным параметрам * @return array Массив, где сохранены ключи исходного массива $arCoefficients, а значения - массив с ключами: * "init" - начальная сумма, равная соответствующему входному коэффициенту * "final" - сумма после распределения */public static function getProportionalSums(float $sum, array $arCoefficients, int $precision) : array{ $arResult = ; /** * @var float Сумма значений всех коэффициентов */ $sumCoefficients = 0.0; /** * @var float Значение максимального коэффициента по модулю */ $maxCoefficient = 0.0; /** * @var mixed Ключ массива для максимального коэффициента по модулю */ $maxCoefficientKey = null; /** * @var float Распределённая сумма */ $allocatedAmount = 0; foreach ($arCoefficients as $keyCoefficient => $coefficient) { if (is_null($maxCoefficientKey)) { $maxCoefficientKey = $keyCoefficient; } $absCoefficient = abs($coefficient); if ($maxCoefficient < $absCoefficient) { $maxCoefficient = $absCoefficient; $maxCoefficientKey = $keyCoefficient; } $sumCoefficients += $coefficient; } if (!empty($sumCoefficients)) { /** * @var float Шаг, который прибавляем в попытках распределить сумму с учётом количества */ $addStep = (0 === $precision) ? 1 : (1 / pow(10, $precision)); foreach ($arCoefficients as $keyCoefficient => $coefficient) { /** * @var boolean Флаг, удалось ли подобрать сумму распределения для текущего коэффициента */ $isOk = false; /** * @var integer Количество попыток подобрать сумму распределения */ $i = 0; // Далее вычисляем сумму распределения с учётом заданного количества do { $result = round(($sum * $coefficient / $sumCoefficients), $precision) + $i * $addStep; // Проверим распределённую сумму коэффициента относительно его количества if (isset($coefficient) && $coefficient > 0) { if (round($result / $coefficient, $precision) != ($result / $coefficient)) { // Не прошли проверку по количеству - ровно по заданному количеству не распределяется } else { $isOk = true; } } else { // Количество не задано, значит не проверяем распределение по количеству $isOk = true; } $i++; if ($i > 100) { // Мы старались долго. Пора признать, что ничего не выйдет throw new Exception( 'Не удалось распределить сумму для коэффициента ' . $keyCoefficient ); } } while (!$isOk); // Если сюда дошли, значит удалось вычислить сумму распределения $arResult = , 'final' => (0 === $precision) ? intval($result) : $result, 'count' => $coefficient ]; $allocatedAmount += $result; } if ($allocatedAmount != $sum) { // Есть погрешности округления, которые надо куда-то впихнуть $tmpRes = $arResult + $sum - $allocatedAmount; if (!isset($arResult) || (isset($arResult) && 1 === $arResult) || (isset($arResult) && $arResult > 0 && (round($tmpRes / $arResult, $precision) == ($tmpRes / $arResult)) ) ) { // Погрешности округления отнесём на коэффициент с максимальным весом $arResult = (0 === $precision) ? intval($tmpRes) : $tmpRes; } else { // Погрешности округления нельзя отнести на коэффициент с максимальным весом // Надо подыскать другой коэффициент $isOk = false; foreach ($arCoefficients as $keyCoefficient => $coefficient) { if ($keyCoefficient != $maxCoefficientKey) { // Пробуем погрешность округления впихнуть в текущий коэффициент $tmpRes = $arResult + $sum - $allocatedAmount; if (!isset($arResult) || (isset($arResult) && 1 === $arResult) || (isset($arResult) && $arResult > 0 && (round($tmpRes / $arResult, $precision) == ($tmpRes / $arResult)) ) ) { // Погрешности округления отнесём на коэффициент с максимальным весом $arResult = (0 === $precision) ? intval($tmpRes) : $tmpRes; $isOk = true; break; } } } if (!$isOk) { throw new Exception('Не удалось распределить погрешность округления'); } } } } return $arResult;}

Проверим на тестовых значениях:

Пример, где всё распределяется без дробной части:

$arProduct = , ];$arResult = getProportionalSums(1000, $arProduct, 0);echo '<pre>';print_r($arResult);echo '</pre>';

Результат:

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

Список статей расхода вводится в справочник Статьи расходов (раздел Финансы – Настройки и справочники).

учет дополнительных расходов

Как будет распределяться сумма дополнительных расходов, определяется тем видом распределения, который указан в статье расхода. Расходы могут быть распределены по направлениям деятельности, на расходы будущих периодов и на себестоимость товаров. О том, как распределять расходы на направление деятельности и на расходы будущих периодов для получения правильных финансовых результатов деятельности компании, см. в разделе «Прочие поступления и расходы».

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

учет дополнительных расходов

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

Различные варианты распределения дополнительных расходов.

Дополнительные расходы Вариант распределения Аналитика расходов
Расходы по доставке по факту поступивших на склад товаров по документу поставки Пропорционально количеству или себестоимости (стоимости товаров в документе поставки) Документ поставки (Поступление товаров и услуг) Расходы регистрируются в документе поставки или отдельным документом
Расходы по доставке товаров по нескольким документам поставки Пропорционально количеству, весу объему или стоимости поступивших товаров Документы поставки (Поступление товаров и услуг) Расходы регистрируются с помощью документа Поступление услуг и прочих активов и автоматически распределяются по документам поставки в соответствии с заданными условиями распределения (вес, объем, количество, стоимость)
Расходы по хранению товаров на конкретном складе Пропорционально количеству или себестоимости товаров Склад Сумма расхода распределяется на себестоимость товарного остатка склада, выбранного в качестве аналитики распределения расходов.

После регистрации статей расходов в справочник Номенклатура нужно ввести список тех дополнительных услуг, которые могут быть оказаны при поступлении товаров. Например, зарегистрировать услугу Доставка товара.

учет дополнительных расходов

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

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

При распределении расходов по конкретному документу поставки в документе Поступление товаров и услуг указывается статья расходов, в соответствии с которой должна распределиться сумма расходов и аналитика расходов. В качестве аналитики расходов указывается тот документ поставки, по поступившим товарам которого необходимо распределить дополнительные расходы. В нашем случае это документ Поступление товаров и услуг, в котором мы оформляли поставку товара «Мука блинная».

Следует отметить, что если для статьи расхода аналитика (документ поставки) не указана, то сумма дополнительных расходов, зарегистрированных за месяц, будет распределена по всем поставкам товаров, которые произошли за этот месяц. Распределение дополнительных расходов происходит автоматически при расчете себестоимости товаров.

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

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

учет дополнительных расходов

Для распределения суммы оказанных услуг пропорционально весу поступивших товаров выполните следующие действия:

  • нажмите на кнопку Распределить на документы поступления;
  • в появившемся диалоговом окне укажите способ распределения Пропорционально весу;
  • используя кнопку Добавить введите в список те документы поставки, на которые надо распределить услуги по доставке;
  • нажмите на кнопку Распределить;
  • с помощью гиперссылки Расшифровать документы по номенклатуре проверьте правильность распределения суммы услуг по доставке пропорционально весу поступивших товаров;
  • Нажмите на кнопку Перенести в документ.

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

учет дополнительных расходов

Атаманов Д.Ю.Финансовый директор Ассоциации торговых компаний «Добрыня», г. Ярославль
Журнал «Маркетинг в России и за рубежом», № 3 за 2003 год

Значение информации о себестоимости продукта

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

Это утверждение видится теоретикам и практикам достаточно бесспорным и является фактически аксиомой управления. Однако очень часто при принятии решения менеджер вынужден просто доверять тем или иным методам получения информации, не задумываясь о том, что разные методы получения информации могут дать различные результаты и, следовательно, повлечь разные или даже диаметрально противоположные решения: повышать или понижать цены, снимать с производства продукцию или, наоборот, увеличивать выпуск и т.п. Правильность решения напрямую зависит от метода получения информации. Некорректный метод сбора данных, будучи правильно примененным, дезинформирует лицо, принимающее решение. Особенно губительны ситуации, когда методы формирования информационной базы для принятия решений отстают от изменений внешней и внутренней среды: в прежних условиях они производили вполне корректную информацию, но в изменившейся среде предоставляют «смертельно опасные» данные для компании. Опасна эта информация именно потому, что если раньше принимаемые на базе ее решения давали вполне приемлемый результат и были эффективными, то менеджмент не задумываясь положит эти данные в основу стратегических и судьбоносных для компании решений. Одной из таких проблем посвящена данная статья.

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

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

В данной статье проведем сравнение двух методов калькуляции себестоимости: традиционного и операционно-ориентированного (ABC — Activity-based costing). Оценим точность вырабатываемой ими информации.

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

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

Существуют различные уровни объектов затрат. Так, для объектов типа «производимый продукт» возможны уровни: единицы продукции, партии продукции, уровень товара и уровень ассортиментной группы. Для объектов типа «покупатель» возможны уровни: заказ, клиент, группа клиентов, канал сбыта1. При формировании системы калькуляции необходимо выбрать точку отсчета (уровень объекта затрат), относительно которой будет проводиться анализ.

Затраты (costs)2 — это экономические элементы, используемые в процессе осуществления деятельности. Затраты представляют собой то, «ЧТО ТРАТИТСЯ». Все они группируются в статьи затрат: заработная плата, социальные выплаты, транспортные расходы, административно-хозяйственные расходы (эксплуатация оргтехники, обслуживание ЭВМ), связь и коммуникации, материальные затраты, налоги в себестоимости, амортизация, арендная плата, финансовые услуги, услуги банковского обслуживания и т.п. Статьи формируются в разрезе финансовой структуры — для каждого центра ответственности используется свой набор статей затрат.

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

Прямые расходы (direct costs) — это расходы, которые можно прямо отождествить с объектом затрат, и само существование объекта затрат является непосредственной причиной возникновения прямых расходов. Если бы не было объекта затрат, то не возникли бы и соответствующие прямые расходы. Чаще всего в качестве прямых расходов выделяют прямые материальные расходы и прямые расходы труда.

Накладные расходы (overhead costs) — это расходы, которые не связаны напрямую с объектами затрат. Этот вид расходов не является прямым следствием существования какого-либо объекта затрат. Причиной накладных расходов является либо группа объектов затрат, либо существование компании в целом. Обычно в качестве накладных расходов выделяют затраты на обслуживание и переналадку оборудования, административные расходы, коммерческие расходы и т.п.

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

Далее сравним два метода оценки себестоимости объектовзатрат: традиционный метод и АВС-анализ.

Традиционное распределение затрат

Традиционный метод калькуляции себестоимости предполагает пути распределения затрат, показанные на рис. 1.

Рис. 1. Пути прохождения затрат в традиционной системе калькуляции

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

Путь 1. Формирование пула накладных расходов.

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

Путь 2. Перенесение стоимостипрямых расходов на объекты затрат.

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

Путь 3. Распределение стоимостинакладных расходов на объекты затрат.

Этот шаг наиболее сложен иявляется как раз предметом критики традиционного метода калькуляции. Данноераспределение может проводиться:

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

Распределение накладных расходов на различные объекты затратдаст полную их себестоимость. Чаще всего это производится пропорционально уровням отдельных показателей,связанных с соответствующими объектами затрат, — факторам распределениянакладных расходов: суммой прямых трудозатрат в человеко-часах,стоимостью прямых трудозатрат в виде фонда оплаты труда основногопроизводственного персонала, затрат машинного времени, объема производства илипродаж и т.п. Каждый раз выбирается фактор, наиболее точно отражающий причинно-следственныесвязи между объектами затрат и возникновением накладных расходов. При этомважным моментом является то, что для одного пула накладных расходов (или дажевсех накладных расходов) выбирается всего один фактор распределения. Этоявляется критическим недостатком традиционной системы калькуляции. Очевидно,что на возникновение накладных расходов (даже в пределах одного пула) влияет неодна характеристика объекта затрат, а некоторая их совокупность. Традиционныйметод калькуляции усредняет это влияние, выбирая фактор с наибольшим весом иигнорируя прочие причины возникновения накладных расходов.

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

Данный тезис видится бесспорным вне зависимости от того, применяется ли система Директ-костинг(direct costing), когда производственные постоянные расходы распределяются на объем реализованной продукции, или Абзорбшн-костинг (absorbtion costing), когда распределение производится на объем произведенной продукции.

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

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

Распределение затрат в АВС-анализе

Обозначенную проблему в состоянии решить иной метод формирования себестоимости. Этот метод носит название операционно-ориентированного учета затрат — АВС (activity-based costing). Он был выработан в западной теории и практике управленческого учета в 80-х годах прошлого века. Популяризаторами его явились знаменитые профессора американских бизнес-школ Робин Купер и Роберт Каплан . С конца 80-х годов этот метод получил значительное распространение в практике управленческого учета. На основе операционно-ориентированной калькуляции себестоимости (ABC) чуть позже возникла своего рода новая философия управления — ABM (activity-based management) — операционно-ориентированное управление . Главным объектом управления в этом подходе признаются не организационно-производственные системы, а операции, выполняемые ими3.

Остановимся подробнее на методе АВС, используя при этом термины и способы изображения, которые применялись выше для описания метода традиционной калькуляции себестоимости.

Введем лишь некоторые специфические термины.

Ресурсы (resources) — это экономические элементы, являющиеся субъектами выполнения операций. Ресурсы — это носители функций, это тот, кто выполняет операции.

В качестве ресурсов чаще всего выступают:

  • персонал;
  • оборудование и транспорт;
  • помещения (земля).

Следует оговориться, что часто под термином «ресурсы» понимаются экономические элементы, участвующие в процессах создания стоимости и переносящие свою стоимость на объекты затрат. Иными словами, ресурсы отождествляются с единицами затрат: оплатой труда, транспортными расходами, арендной платой и т.п. В контексте АВС-анализа этот термин мы будем использовать в значении субъектов операций — активных элементов системы, которые выполняют операции.

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

Операции (activities) — это действия, осуществляемые ресурсами. Операции представляют собой реализованные функции ресурсов. В результате операций создаются или обслуживаются объекты затрат.

В целях АВС-анализа производится следующая классификация операций:

  • основные операции — это операции, которые непосредственно создают объекты затрат и стоимость которых можно прямо отнести на них. Наиболее явными основными операциями являются: снабжение (в разрезе поставщиков, видов сырья), производство (в разрезе производимой продукции), сбыт (в разрезе каналов сбыта, клиентов) и т.д.;
  • обслуживающие операции — это операции, которые обслуживают или создают условия для нормального функционирования ресурсов определенного вида. Ими обычно являются: обеспечение информационными технологиями, операции управления персоналом, ремонт производственного оборудования, бухгалтерский учет и т.п. Стоимость таких операций переносится на обслуживаемые ими ресурсы;
  • управленческие операции — это операции, которые служат целям управления основными и обслуживающими операциями. Они переносят свою стоимость на непосредственно управляемые ими операции. Например, операция «управлять участком в цехе» переносится на стоимость всех операций данного участка. Операция «управлять департаментом» переносится на стоимость всех операций, выполняемых данным департаментом.

Таким образом, в АВС-анализе помимо терминов «затраты» и «объекты затрат» используются также понятия «ресурсы» и «операции». На рис. 2 показаны пути распределения затрат при операционно-ориентированном методе калькуляции.

Рис. 2. Пути прохождения затрат в АВС-анализе4

Остановимся подробнее на каждом пути затрат.

Путь 1. Распределение накладных затрат на ресурсы (рис. 3).

На данном этапе стоимость накладных расходов переносится на стоимость ресурсов. При этом определяется полная текущая стоимость обладания единицей ресурса: стоимость должности, стоимость оборудования и т.п.

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

Рис. 3. Распределение накладных затрат на ресурсы

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

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

Для таких связей используются коэффициенты распределения затрат, называемые «драйверами затрат» (cost drivers). Драйвер затрат есть основной показатель уровня затрат: для арендной платы — это площадь помещения, занимаемая данным сотрудником; для стоимости потраченной электроэнергии — это потребляемая электрическая мощность персонального оборудования сотрудника (с поправкой на время работы) и т.п. Для оценки переносимой стоимости сначала определяется стоимость единицы драйвера затрат: одного квадратного метра, киловатт-часа и т.п. Искомая переносимая сумма получается умножением стоимости единицы драйвера на количество драйвера, потребляемое данным ресурсом.

Путь 2. Отнесение прямых расходов на стоимость объектов затрат.

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

Путь 3. Первичное перенесение стоимости ресурсов на операции (рис. 4).

Данный шаг является достаточно трудоемкой, но крайне важной процедурой. Полная стоимость ресурсов, рассчитанная на пути 1, переносится на операции, которые выполняют соответствующие единицы ресурсов.

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

Рис. 4. Распределение стоимости ресурсов на операции

Перенос стоимости с ресурсов на операции производитсяпропорционально показателям, отражающим степень использования данного ресурса всоответствующей операции. Эти показатели носят название «драйверы ресурсов»(resource driver). Чаще всего в качестве данного драйвера выступает количествовремени, которое затрачивается ресурсом на ту или иную операцию.

Расчет переносимой стоимости производится в несколько этапов:

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

Путь 4. Перераспределение стоимости обслуживающих операций на обслуживаемые ими ресурсы (рис. 5).

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

Обслуживающая операция может переносить свою стоимость в том числе и на ресурс (сотрудника, оборудование), который выполняет данную операцию. Действительно, в реальности, например, специалист по вычислительной технике сам работает на ПК и вынужден обслуживать в том числе и эту ЭВМ. Очевидно, что обратно на «свой» ресурс обслуживающая операция перенесет лишь часть своей стоимости, а остальная распределится на другие ресурсы.

Рис. 5. Перераспределение стоимости операций на ресурсы

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

Путь 5. Распределение стоимости управляющих операций на основные и обслуживающие операции (рис.6).

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

Рис. 6. Распределение стоимости управляющих операций на основные и обслуживающие

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

  • стоимость управляющей операции распределяется поровну между управляемыми операциями;
  • стоимость управляющей операции распределяется пропорционально рабочему времени, затрачиваемого субъектом управления (руководителем), на соответствующие операции;
  • стоимость управляющей операции распределяется пропорционально значимости операций, определяемой экспертным путем.

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

На данном шаге возможны следующие виды перераспределений (рис.6):

  1. Горизонтальный перенос стоимости. Производится распределение управляющей операции на основные или обслуживающие операции того же уровня. На рис. 6 ими являются операция k, операция k1, операция m1.

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

  2. Вертикальный перенос стоимости — вниз (распределение). В данном случае обслуживающая или основная операция в ходе горизонтального перераспределения «получила» часть стоимости от управляющей операции. На рис.6 это горизонтальное распределение операции k на операцию k+1 и операцию m. Видно, что операция m подверглась декомпозиции и на нижнем уровне имеются операции m1, m2, .. mn, которые будут переносить свою стоимость дальше. В этом случае возникает необходимость «спустить» на нижний уровень с операции m стоимость, полученную ей от операции k.

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

  3. Вертикальный перенос стоимости — вверх (консолидация). В данном случае стоимость управленческой операции верхнего уровня (операция k, рис. 6) получается суммированием стоимости операций нижнего уровня (операции k2 и kn). При этом в сумму не попадает стоимость управленческой операции нижнего уровня (операции k1), поскольку ее стоимость уже перераспределилась на операции k2 и kn.

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

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

  • обслуживающие операции обслуживают ресурсы друг друга;
  • обслуживающие операции обслуживают ресурсы, которые выполняют управляющие операции, переносящие свою стоимость на исходные обслуживающие операции.

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

В этих целях строится следующая система линейных уравнений:

A1 – An — переменные — это полная стоимость операций (ресурсов), относительно которых решается система. Это стоимость всех операций, управляющих, основных и обслуживающих, включенных в циклическое перераспределение.

Cn — константы, отражающие внешние данные относительно системы. Это распределение затрат, вытекающее не из операций (ресурсов) набора A1 – An. На практике это есть первоначальная стоимость ресурсов, полученная путем перенесения затрат на операции (путь 2 на рис.1).

Dni — константы, отражающие доли распределения стоимости операции(ресурса) Ai на операцию (ресурс) An. Фактически этот показатель есть отношение количества единиц драйвера операции (ресурса) Ai , потребляемой операцией (ресурсом) An, к общему количеству единиц драйвера операции (ресурса) Ai . Очевидно, что всегда
Dkk = 0, поскольку стоимость операции (ресурса) сама на себя напрямую не перераспределяется.

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

Данное равенство соблюдается при условии, что A1, A2, … Ak — обслуживающие и управляющие операции и все ресурсы, а Аk+1, Ak+1, … An — основные операции.

Путь 6. Перенесение стоимости основных операций на объекты затрат (рис.7).

Рис. 7. Перенесение стоимости основных операций на объекты затрат

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

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

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

На предыдущих шагах были оценены издержки на отдельные видыобъектов затрат: либо только на продукты (единица–партия–товар–группа), либотолько на покупателей (заказ–клиент–группа клиентов–канал сбыта). В реальностине целесообразно ограничиваться расчетом только себестоимости произведенногопродукта или абстрактной стоимости обслуживания клиента. Возникает потребностьв оценке полной себестоимости объектов затрат. В этих целях создаются срезы»покупатели–продукты» или «продукты–покупатели», в которых к себестоимостиобъектов типа «покупатели» прибавляется себестоимость объектов типа «продукт» инаоборот. Итоги этих расчетов используются для оценки рентабельности производства и продажи отдельныхпродуктов, а также производства продукции и продажи ее определенным покупателям.

Полная себестоимость продукта:

Создается срез «продукты–покупатели», в котором к стоимости каждого продукта прибавляются долистоимости обслуживания каждого покупателя пропорционально определеннымпоказателям: доля продаж данного продукта данному покупателю в продажах данномупокупателю, доля рентабельности и т.п.:

где CUp — полная (конечная) себестоимость продукта;

Cp — себестоимость продукта, полученная в ходе шагов 1–6 (рис.1);

Cic — себестоимость обслуживания i-го покупателя, полученная в ходе шагов 1—6 (рис.1);

Dic — доля продаж i-му покупателю данного продукта в общей сумме продаж i-му покупателю.

Полная себестоимость покупателя

Создается срез «покупатели–продукты», в котором к стоимости каждого покупателя прибавляются доли стоимости каждого продукта пропорционально определенным показателям: доля продаж данному покупателю данного продукта в продажах всем клиентам этого продукта, доля рентабельности и т.п.:

где CU c — полная (конечная) себестоимость обслуживания покупателя;

C c — себестоимость обслуживания покупателя, полученная в ходе шагов 1–6 (рис.1);

Cjp — себестоимость j-го продукта, полученная в ходе шагов 1–6 (рис.1);

Djp — доля продаж данному покупателю j-го продукта в общей сумме продаж j-го продукта.

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

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

Положительной стороной традиционного метода следует признать интуитивную понятность и простоту расчетов, не требующих значительных усилий для сбора и обработки информации, тогда как АВС-анализ весьма громоздкий и трудоемкий, на практике требует значительных затрат на внедрение и использование. Кроме того, внедрение его без автоматизации просто невозможно. Именно поэтому на практике нереально применение АВС-анализа без соответствующего программного обеспечения, зачастую не дешевого. Однако инвестиции в совершенствовании учетной системы могут дать серьезное улучшение качества принимаемых решений, которое с лихвой окупят дополнительные затраты.

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

Литература

  1. Друри К. Введение в управленческий и производственный учет: Учебн.пособие для вузов: Пер.с англ. / Под ред. Н.Д.Эриашвилли. — 3-е изд., перераб. и доп. — М.: Аудит, ЮНИТИ, 1998. — 783 с.
  2. Ивлев В.А., Попова Т.В. Что такое функционально-стоимостной анализ // URL http://www.cfin.ru/management/what_is_abc.shtml
  3. Ивлев В.А., Попова Т.В. Концепция контроллинга и функционально-стоимостной анализ // URL http://www.itrealty.ru/analit/control_and_abc.html
  4. Ивлев В.А., Попова Т.В. Методология функционально-стоимостного анализа ABC (ФСА) // URL http://www.citforum.btsau.net.ua/cfin/idef/abc.shtml
  5. Калькуляция затрат по видам деятельности // URL http://www.consulting.ru/main/ias/texts/m5/053_acca.htm
  6. Ковалев С. Функционально-стоимостной анализ бизнес-процессов // URL http://www.componenta.ru/info_kons_7_3_10.php
  7. Малюсо Н. Написание промежуточного отчета // URL http://www.consulting.ru/main/mgmt/texts/m8/103_prosci.shtml
  8. Осипенкова О. Функционально-процессный метод расчета себестоимости как средство повышения эффективности деятельности российских предприятий // URL http://www.gaap.ru/biblio/icar51.htm
  9. Репин В.В. Метод АВС-анализа //URL http://www.devbiz.narod.ru/home/kozloff/Finance/FinMan/ABCRepin.pdf
  10. Сидоренко Д. Пример использования ABC-метода для оценки операций // URL http://www.orientsoft.by/primer.html
  11. Филип Данн. АВС на практике // URL http://www.consulting.ru/main/ias/texts/m11/138_aweb.shtml
  12. Activity Based Costing Implementation Issues Armstrong Laing Group. 2001 // URL http://www.armstronglaing.com/content/abmresources/abmresource.asp
  13. Activity-Based Management. An Overview. CIMA Technical Briefing April 2001 // http://www.cima.org.uk/downloads/tec_briefing_abm.pdf
  14. Cooper, R. Implementing an Activity-Based Costing System. Journal of Cost Management (Spring) pp. 33-42.
  15. Cooper, Robin and Robert S. Kaplan, Profit Priorities From Activity Based Costing, Harvard Business Review, May-June 1991, p.130.
  16. Drury Colin Management and Cost Accounting. Fifth edition. April 2000. 1232pp
  17. Guidebook for Using and Understanding Activity-Based Costing. US Department of Defence // URL http://www.c3i.osd.mil/bpr/bprcd/0201.htm
  18. Introduction to Activity Based Cost Management Armstrong Laing Group. 2001 // URL http://www.armstronglaing.com/content/abmresources/abmresource.asp
  19. Kaplan, Robert S., In Defence of Activity-Based Cost Management, Management Accounting, Nov.1992, p. 58.
  20. Narcyz Roztocki, A Procedure for Smooth Implementation of Activity Based Costing in Small Companies, State University of New York at New Paltz // URL http://www2.newpaltz.edu/~roztockn/virginia99.pdf
  21. Practical Applications of Activity Based Costing Armstrong Laing Group. 2001 // URL http://www.armstronglaing.com/content/abmresources/abmresource.asp
  22. Tad Leahy, The Ivy League of Activity-Based Management. Business Finance. April. 1999 // URL http://www.controllermag.com/archives/Static/wcd00003/wcd0032a.htm
  23. The Emergence of Business Process Management. A report by SCS’s Research Service January 2002.// URL http://www.cscresearchservices.com/process/5D5A56564A56505243.pdf
  24. The Role of ABC In Key Account Management, Armstrong Laing Group. April 2002 // URL http://www.armstronglaing.com/content/abmresources/abmresource.asp
  25. Tony Candy Activity — Based Management: Making The Right Descision, Financial World, April 2002 XXXI // URL http://www.armstronglaing.com/content/abmresources/abmresource.asp

1 Уровень канала сбытаиногда выделяют в отдельный признак классификации объектов затрат. Этообосновано в тех случаях, когда между типами «клиент» и «канал сбыта»существуют связи «один ко многим», то есть один клиент может использоватьразличные каналы сбыта. Чаще всего, однако, такого не происходит, и покупательпользуется только одним способом получения продукта.

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

3 Не следует смешивать два подхода к управлению:операционно-ориентированный (ABM — activity-based management) и процессный (BPM— business-process management) . Несмотря на схожесть терминов, обаподхода делают акценты на различныхаспектах управления.

4 При данной схеме не ставится цель оценить полную стоимость операций, хотя этаинформация является одним из важнейших результатов АВС-анализа и служит основойоперационно-ориентированного управления (ABM). В частности, информация о полнойсебестоимости операций может использоваться при принятии решения о передаче еесторонним подрядчикам, на т.н. «аутсорсинг» (outsourcing). Если поставить такуюцель, то путь 2 не должен иметь место, то есть все затраты обязательно должныпроходить через операции и отражаться на их стоимости. При этом структурафункциональной модели будет иметь некоторые отличия.

Версия для печати

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

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