КАЗНАЧЕЙСТВО И РИСКИP1L2

Процентное начисление: day-count, даты и округление

Как выбор базы ACT/360 или 30E/360 меняет расчёт синтетического процентного потока, где проходит граница периода и почему настройки продукта нельзя выводить из одной формулы.

Ревизия 1 Общие понятия Частичное покрытие Контекст: CTX-GENERAL документальная опора: недостаточно данных
Справочный материал. Контракты данных, архитектурные решения и ограничения применения. Источники приведены в материалах, где используются внешние основания.

Формула - только часть условий#

Для простого начисления можно записать ориентир:

interest = principal × annual_rate × day_count_fraction
day_count_fraction = counted_days / year_denominator

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

ACT/360 и 30E/360 дают разные числа#

В этом независимом примере период полуоткрытый: начальная дата входит, конечная не входит. Для 2026-01-01 - 2026-01-31 база ACT/360 считает 30 календарных дней. При основной сумме 100 000 минимальных единиц валюты и годовой ставке 0.05 получается:

100000 × 0.05 × 30 / 360 = 416.666...

При явно выбранном округлении half-up до целой минимальной единицы результат равен 417. Это эталон нашей синтетической модели; это не результат SAP runtime.

Для 2026-01-31 - 2026-03-01 ACT/360 считает фактические 29 дней. В варианте 30E/360 день 31 заменяется на 30, а каждый месяц моделируется как 30 дней; выбранная здесь формула даёт 31 день. Разница появляется из-за day-count convention, а не из-за изменения основной суммы или ставки.

SAP Help описывает несколько методов подсчёта дней; в частности, SAP ERP различает 360 и 360E. Правила 31-го числа и включения границы периода могут отличаться. Слово «30/360» само по себе недостаточно, чтобы восстановить конкретную реализацию. Смотрите описание SAP ERP и сравнение методов в SAP Support Content; их применимость также зависит от продукта и редакции.

Что фиксировать для воспроизводимости#

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

При изменении ставки или дат создают новую ревизию условий и пересчитывают поток по ним. Уже проведённый бухгалтерский факт нельзя молча заменить новым ожидаемым результатом: нужны отдельные события изменения/сторно и проверка связи между ревизиями. Техническая схема такого потока разобрана в материале о Cash Management и TRM; правила подготовки независимых проверок собраны в практикуме.

Границы примера#

Локальная модель использует простое начисление, две явно названные базы, период [start, end) и округление до целых минимальных единиц. В ней нет графиков платежей, праздничного календаря, переноса рабочих дат, плавающих ставок, кривых дисконтирования, капитализации или проводок. Перед сравнением с SAP-системой нужно установить точный продукт, версию, тип расчёта, настройки включения границ и масштаб округления.

Источники и документация

  1. SAP ERP: Interest Calculation Method ↗
  2. SAP Support Content: Interest Calculation Methods ↗

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