Кешбэк Совет Начать

Кто кому должен: как свести переводы к минимуму

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

Почему по каждой трате выходит так много переводов

Возьмём поездку из статьи «Как поделить расходы в поездке». Четверо, четыре траты на 40 100 ₽, каждую оплатил кто-то один:

ТратаСуммаПлатилДелим
Квартира21 000 ₽Аняпо ночам: 6 000, 6 000, 6 000 и 3 000 ₽ у Гены
Бензин6 400 ₽Боряна четверых, по 1 600 ₽
Продукты5 200 ₽Викана четверых, по 1 300 ₽
Ресторан7 500 ₽Генабез Вики, по 2 500 ₽

Если каждый вернёт долг за каждую трату, получится 11 переводов: по три за квартиру, бензин и продукты и два за ресторан. Многие из них идут навстречу друг другу: Аня переводит Боре за бензин, а Боря Ане за квартиру.

Шаг 1. Взаимозачёт внутри каждой пары

Сначала сократим встречные долги. Если Боря должен Ане 6 000 ₽, а Аня Боре 1 600 ₽, достаточно одного перевода на 4 400 ₽.

ПараВстречные долгиПосле зачёта
Аня и БоряБоря → Аня 6 000, Аня → Боря 1 600Боря → Аня 4 400 ₽
Аня и ВикаВика → Аня 6 000, Аня → Вика 1 300Вика → Аня 4 700 ₽
Аня и ГенаГена → Аня 3 000, Аня → Гена 2 500Гена → Аня 500 ₽
Боря и ВикаВика → Боря 1 600, Боря → Вика 1 300Вика → Боря 300 ₽
Боря и ГенаГена → Боря 1 600, Боря → Гена 2 500Боря → Гена 900 ₽
Вика и ГенаГена → Вика 1 300Гена → Вика 1 300 ₽

Осталось 6 переводов. Это уже лучше, но деньги всё ещё ходят по кругу: Боря получает от Вики 300 ₽ и сам переводит Гене 900 ₽.

Шаг 2. Итоговый баланс каждого

Сложим всё, что человек заплатил, и вычтем его долю во всех тратах:

ЗаплатилДоляБаланс
Аня21 000 ₽11 400 ₽+9 600 ₽
Боря6 400 ₽11 400 ₽−5 000 ₽
Вика5 200 ₽8 900 ₽−3 700 ₽
Гена7 500 ₽8 400 ₽−900 ₽

Сумма балансов всегда равна нулю. Если не равна, где-то ошибка в доле или в сумме.

Шаг 3. Должники переводят тем, у кого плюс

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

ПереводСуммаБаланс после перевода
Боря → Аня5 000 ₽Аня +4 600, Боря 0
Вика → Аня3 700 ₽Аня +900, Вика 0
Гена → Аня900 ₽Аня 0, Гена 0

Каждый отдал ровно столько, сколько был должен в итоге. Боря при этом не переводит Гене за ресторан: этот долг уже учтён в его балансе.

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

Пятеро снимали дачу. Балансы после всех трат: Олег +5 000 ₽, Ира +1 000 ₽, Петя −2 000 ₽, Маша −3 000 ₽, Коля −1 000 ₽.

ШагКто → комуСуммаПочему именно такОстаток
1Маша → Олег3 000 ₽самый крупный должник и самый крупный кредиторОлег +2 000
2Петя → Олег2 000 ₽следующий должник, Олегу ещё должны 2 000 ₽Олег 0
3Коля → Ира1 000 ₽остались один должник и один кредиторвсе по нулям

Три перевода на пятерых. Участников с ненулевым балансом пять, значит, переводов не больше четырёх, и здесь хватило трёх.

Ограничения способа

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

Как это сделать в приложении

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

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

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

Вопросы и ответы

Сколько переводов нужно, чтобы рассчитаться?

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

Что если кто-то должен тому, кто ему ничего не платил?

Так и бывает после взаимозачёта. В примере из статьи Гена переводит Ане 900 ₽, хотя за бензин и продукты он был должен Боре и Вике. Сумма, которую отдаёт каждый, от этого не меняется, меняется только адресат.

Можно ли рассчитаться частично?

Да. Частичный перевод уменьшает баланс обоих участников, и остаток долга пересчитывается. В Кешбэк Совете при расчёте можно указать любую сумму в пределах долга.

Общие траты — в одной группе

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