SABSUS

ПЕРЕРАСЧЁТ ПЕРИОДИЧЕСКОЙ УСЛУГИ

Смена тарифа в середине периода: как проверить перерасчёт

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

Редакция SABSUS · · Источники проверены 9 октября

Сначала выберите действие, затем формулу

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

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

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

Две строки объясняют изменение лучше одной суммы

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

Stripe описывает prorations именно как перерасчёт при изменении подписки. При этом отрицательная корректировка не означает автоматического возврата денег, а положительная сама по себе не означает немедленного выставления к оплате. Stripe: prorations.

Разделите результат вычисления, подготовленный документ, фактическую оплату и момент изменения услуги. Клиент может согласовать предложение, но платёж потребует дополнительного действия. Либо по действующим условиям начисление попадёт в следующий документ. Эти варианты должны быть видны сотруднику до подтверждения.

Учебный пример: повышение, затем снижение тарифа

Все суммы и условия вымышлены. Сентябрьский период начинается 1 сентября 2026 года в 00:00 UTC и заканчивается 1 октября в 00:00 UTC. Для примера используется цена за календарный день: 30 дней, без налогов, скидок, валютной конвертации и платы за фактическое потребление. Дата следующего периода сохраняется.

Исходный тариф стоит 3 000 рублей за этот период и уже оплачен. Новый тариф за полный тот же период стоит 4 800. Изменение действует с 11 сентября 00:00: первые 10 дней относятся к прежнему тарифу, оставшиеся 20 — к новому.

Уменьшение старого начисления: −3 000 × 20 / 30 = −2 000. Новое начисление: 4 800 × 20 / 30 = 3 200. Чистая доплата: −2 000 + 3 200 = 1 200. Итог начислений за сентябрь после первого изменения: 3 000 + 1 200 = 4 200.

Независимая проверка по использованным временным участкам даёт тот же результат: 3 000 × 10 / 30 + 4 800 × 20 / 30 = 1 000 + 3 200 = 4 200. Нельзя начислять полные 4 800 поверх исходных 3 000, если выбран именно этот сценарий сохранения периода.

Теперь с 21 сентября 00:00 клиент выбирает тариф 3 600. До конца остаётся 10 дней. На этом участке действует тариф 4 800, поэтому уменьшение равно −4 800 × 10 / 30 = −1 600. Начисление новых условий: 3 600 × 10 / 30 = 1 200. Корректировка: −400.

Итоговая сумма периода: 3 000 + 1 200 − 400 = 3 800. Проверка трёх непересекающихся участков: 1 000 за первые десять дней + 1 600 за вторые + 1 200 за последние = 3 800. Второе изменение пересчитывает только оставшийся участок, а не отменяет первый переход целиком.

Если исходные 3 000 и доплата 1 200 уже получены, денежные поступления составляют 4 200. Корректировка −400 сама по себе не уменьшает их. В учебном варианте, где она остаётся кредитом для будущего расчёта, отдельно видны начисления 3 800, поступления 4 200 и кредит 400. Фактический возврат был бы самостоятельной подтверждённой денежной операцией.

Зафиксируйте точность времени и округление

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

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

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

Предпросмотр должен относиться к одной версии

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

Stripe позволяет предварительно просмотреть изменения подписки; такой просмотр ещё не создаёт счёт. Документация также связывает воспроизводимость перерасчёта с одинаковой датой proration при просмотре и применении изменения. Stripe: create preview invoice.

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

Неоплаченный период требует отдельной ветви

Сначала проверьте исходный документ и его состояние. Stripe предупреждает: расчёт может исходить из предположения, что прежний счёт будет оплачен, и создать кредит за время, которое клиент ещё не оплатил. Поэтому механическое применение того же сценария к долгу способно дать нежелательный результат. Stripe: unpaid invoices.

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

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

Данные и приёмочные проверки

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

Проверьте следующие сценарии:

  1. Переход 11 сентября создаёт −2 000 и +3 200, чистая сумма +1 200.
  2. Переход 21 сентября использует текущий тариф 4 800 и даёт −400.
  3. Три участка периода дают 3 800 без пересечений и пробелов.
  4. Кредит 400 не изображает несуществующий денежный возврат.
  5. Изменение на границе периода не пересчитывает уже закончившееся время.
  6. Разный часовой пояс не сдвигает согласованный момент незаметно.
  7. Неоплаченная база вызывает предусмотренную отдельную проверку.
  8. Устаревший просмотр нельзя применить как актуальное согласие.
  9. Повтор запроса сохраняет одну корректировку.
  10. Неудачная оплата оставляет объяснимый статус нового уровня услуги.

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

Частые вопросы

Нужно брать разницу месячных цен целиком?

Только если это соответствует выбранным условиям. В рассмотренной модели разница относится лишь к оставшейся доле сохранённого периода.

Отрицательная сумма автоматически возвращается на карту?

Нет такого общего правила. Сначала определяется вид корректировки и её применение; возврат денег подтверждается отдельной операцией.

Можно перенести изменение на следующий месяц?

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

Источники

Проверено 9 октября 2026 года. Дневная модель и суммы учебные; налоговые и правовые последствия определяются отдельно.