Взаиморасчёты экспедитора: почему таблица перестаёт работать
Таблица держит расчёты, пока сделок мало и они простые. Ломается она не в день роста оборота, а на конкретных ситуациях: частичная оплата, аванс, платёж сразу по трём счетам, чужая валюта. Где именно и почему.
Расчёты экспедитора двусторонние по своей природе
У перевозчика с собственным парком денежная картина односторонняя: клиент должен за рейс. У экспедитора по каждой перевозке две встречные цепочки — с заказчиком, которому вы выставляете счёт, и с подрядчиками, которым платите сами. На мультимодальном маршруте подрядчиков несколько: свой этап у автоперевозчика до порта, своё — у морской линии, своё — у терминала.
Отсюда первое требование, которого таблица обычно не выдерживает: по одной перевозке должно быть видно и то, что вам должны, и то, что должны вы. Не в двух разных файлах, а в одном месте — иначе маржа по рейсу считается вручную и задним числом.
Пять ситуаций, на которых таблица ломается
Дело не в количестве строк. Excel прекрасно держит десятки тысяч строк — ломается не он, а модель «одна строка = одна сделка».
1. Частичная оплата
Клиент платит не по счёту, а «сколько получилось». Строка счёта перестаёт иметь одно состояние: она не оплачена и не не оплачена, у неё есть остаток. Появляется колонка «оплачено», которую надо править руками при каждом поступлении, и первый источник расхождений: остаток посчитан на прошлой неделе.
2. Один платёж по нескольким счетам
Заказчик закрывает переводом три счёта сразу, а иногда — два счёта целиком и третий наполовину. Теперь связь «платёж — счёт» перестаёт быть однозначной: это отношение «многие ко многим», которое в плоской таблице выражается только комментарием в примечании. Именно здесь начинается вопрос «мы вообще с ними в расчёте?», на который нет быстрого ответа.
Такое сопоставление платежей и счетов называется разнесением, и оно принципиально: без него сумма долга контрагента считается вычитанием оборотов и теряет смысл при первом же авансе.
3. Аванс и переплата
Клиент заплатил больше, чем должен, или заплатил до счёта. Формально долг отрицательный — то есть теперь должны вы. В таблице это выглядит как ошибка знака, и её «исправляют»: удаляют минус, ставят ноль, дописывают примечание. Так теряются деньги, которые вы уже получили, но ещё не отработали.
4. Валюта
Ставка перевозчика в евро, счёт клиенту в рублях, платёж прошёл по курсу дня операции. Дальше начинается самое неприятное: сумма долга зависит от того, по какому курсу её пересчитывать. Если курс не сохранён вместе с операцией, через полгода объяснить происхождение цифры невозможно — а объяснять придётся и клиенту, и аудитору.
Правило, которое стоит соблюдать независимо от инструмента: в записи об операции хранятся сумма и её собственная валюта, а курс фиксируется на дату документа и сохраняется рядом. Пересчёт к базовой валюте — задача отчёта, а не первичной записи.
5. Черновик, который посчитался как факт
Счёт согласован устно, строка внесена, оплата ещё не пришла. Через неделю сделка изменилась, а строка осталась. В таблице нет разницы между «намерением» и «учтённым документом», поэтому итог внизу — это всегда смесь того, что произошло, с тем, что предполагалось.
Долг измеряется возрастом, а не суммой
Общая цифра дебиторки говорит на удивление мало. «Нам должны 4 млн» — это может быть нормальным рабочим состоянием, а может быть предбанкротным, и различает их только возраст долга.
Стандартный способ смотреть — разложить непогашенные счета по корзинам просрочки:
| Корзина | Как читать |
|---|---|
| Срок не наступил | Не просрочка, нормальное состояние |
| 1–30 дней | Свежий долг в пределах рабочей нормы |
| 31–60 дней | Пора напомнить |
| 61–90 дней | Нужна активная работа: звонки, претензии |
| 90+ дней | Проблемная задолженность |
Важная тонкость, которую путают чаще всего: корзина определяется просрочкой (сегодня минус дата оплаты по счёту), а не возрастом счёта. Счёт, выставленный три месяца назад с отсрочкой в сто дней, не просрочен.
DSO и что он показывает
DSO (Days Sales Outstanding) — средневзвешенный по сумме срок оплаты дебиторских счетов за последние 90 дней: чем крупнее счёт, тем сильнее он влияет на среднее.
DSO = Σ(сумма счёта × дней до оплаты) / Σ(сумма счёта)
Универсального «хорошего» значения у DSO нет: срок зависит от отсрочек в ваших договорах и от того, из каких клиентов собран портфель. Поэтому измеряют не попадание во внешний ориентир, а сдвиг относительно собственного прошлого периода: вырос показатель квартал к кварталу или снизился.
Что нужно требовать от замены таблицы
Это функциональные требования, а не описание конкретного продукта: они полезны независимо от того, какой инструмент вы в итоге выберете.
- Разнесение платежей по счетам — связь «многие ко многим» с остатком по каждому документу.
- Разделение черновика и учтённой операции. Пока документ не подтверждён, он не должен влиять на балансы.
- Баланс контрагента с однозначным знаком и понятной трактовкой аванса.
- Валюта операции и курс на дату документа, сохранённые вместе с суммой.
- Привязка денег к перевозке — иначе маржа по рейсу считается вручную.
- Отчёт по старению долга с корзинами и крупнейшими должниками.
- Разграничение видимости. Заказчик не должен видеть, сколько вы платите подрядчику по его же перевозке: это ваша коммерческая граница.
Седьмой пункт стоит проверять придирчиво. Расходные операции по перевозке попадают в ту же связку, что и доходные, и при неаккуратной выдаче данных клиенту вместе с его счётом уезжают название перевозчика и статья расхода. В таблице эта граница держится тем, что файл никому не показывают, — то есть не держится вовсе.
Когда переезжать
Разумный триггер — не оборот и не число сотрудников, а три наблюдаемых признака:
- на вопрос о состоянии расчётов с контрагентом уходит больше минуты;
- сумма дебиторки в файле и в реальности расходятся, и никто не помнит почему;
- маржа по конкретной перевозке считается отдельным разбором, а не смотрится.
Если совпал один — это ещё не повод. Если совпали все три, дальше расхождения накапливаются быстрее, чем их успевают разбирать. Как устроена эта механика — счета, платежи, разнесение, балансы и старение долга — разобрано на странице финансов и взаиморасчётов.
Коротко
Расчёты экспедитора двусторонние, поэтому модель «строка = сделка» ломается раньше, чем кажется: на частичной оплате, на платеже по нескольким счетам, на авансе, на валюте и на неотличимом от факта черновике. Долг оценивается по возрасту, а не по общей сумме, а DSO имеет смысл только в сравнении с самим собой. Минимальный набор требований к любой замене таблицы — разнесение, разделение черновика и учёта, курс на дату документа, привязка к перевозке и разграничение видимости.
Как это устроено в системе — заявки, этапы перевозки, документы и взаиморасчёты с обеими сторонами: посмотреть возможности