Деньги не должны теряться
В пул-расчётах на N победителей обнаружился классический враг — number в JavaScript: бесконечная дробь, накопленная погрешность, потеря доверия пользователей. Не критичный баг, хуже — систематическая ненадёжность.
Выход не в аккуратности разработчиков, а в архитектуре: единая утилита на decimal.js как доменный примитив, decimal(12,4) на уровне БД, форматирование до двух знаков строго в UI. Атомарные транзакции: активация и списание либо оба, либо никакой. Финансовая точность стала свойством системы.