Отчётность без ручной работы (NDA)
РитейлPython-сервис собирает данные из кассы, склада, CRM и бухгалтерии, считает метрики и присылает готовый отчёт каждое утро. Менеджер больше не сводит цифры вручную.

О проекте
Розничная сеть • Ритейл • Backend + данные • 1,5 месяца
АвтоотчётыНесколько источниковМетрики с тестами
Задача
Каждое утро менеджер выгружал данные из четырёх систем, сводил в Excel и делал отчёт для руководства. Уходило 3–4 часа, легко ломалось, а с новым магазином время росло.
Нужен был сервис, который сам собирает данные из всех источников, считает метрики и присылает готовый отчёт. Без участия человека.
Решение
- Спроектировали архитектуру сервисаРазбили процесс на этапы: получение данных → нормализация → расчёт метрик → формирование отчёта → отправка. Каждый этап — отдельный модуль.
- Разработали сборщики данныхДля каждого источника — свой адаптер. Он забирает данные в своём формате, приводит к единой структуре и складывает в промежуточное хранилище. Ошибка в одном источнике не ломает остальные.
- Настроили расчёт метрикСобрали все формулы в отдельном модуле и покрыли их тестами. Выручка, средний чек, возвраты, остатки, динамика по точкам считаются автоматически.
- Настроили автоматическую отправкуУтром сервис сам собирает данные, готовит отчёт в Excel и PDF и отправляет руководителю и бухгалтерии. Если что-то пошло не так — приходит уведомление в Telegram.
- Запустили и протестировали на реальных данныхПрогнали месяц исторических данных, сверили с прошлыми ручными отчётами — расхождение 0. Затем перевели процесс на автоматический режим.
Как решали сложности
| Что было сложно | Как решали |
|---|---|
| Разные источники данныхКасса давала выгрузку в CSV, склад — через API, бухгалтерия — вообще по email. | Отдельный адаптер на каждый источник, на выходе единый формат |
| Нестабильные APIНекоторые интеграции работают не всегда — сервис должен переживать сбои и не терять данные. | Повторные попытки и уведомление в Telegram при сбое, остальные источники продолжают работать |
| Метрики, которым можно доверятьОшибка в отчёте = неверное решение. Все формулы нужно было перепроверить и зафиксировать в коде. | Формулы в одном модуле с тестами, результат сверяется с ручными отчётами |
| Без участия человекаЗадача — полностью исключить ручной этап. | Запуск по расписанию, готовый отчёт приходит сам |
Технологический стек
PythonPandasRequestsREST APIExcel / PDFTelegram Bot
Что получает клиент
- Отчёт приходит самКаждое утро руководитель получает готовый отчёт без ручной сборки
- Единые цифрыМетрики считаются по одним формулам, расхождений между отчётами нет
- Время на главноеМенеджер занимается задачами, а не выгрузками
Другие кейсы

AIAI-ассистент по базе знаний компании

АвтоматизацияСвязка заявок, CRM и уведомлений

КонтентAI-конвейер производства контента
Похожая задача?
Расскажите, что нужно автоматизировать — предложим варианты и оценим сроки.