Бот статистики букмекерских ставок: данные ЦУПИС в Telegram

Обновлено:
ML Нейросети2 месяца

Бот собирает статистику ставок для букмекерского бизнеса: автоматически выгружает данные с сайта ЦУПИС, считает показатели по игрокам и присылает понятные отчёты в Telegram. Проект мы разработали вместе с партнёром Orbyx на стеке Python и Telegram Bot API — от старта до запуска прошло 2 месяца. Ручные выгрузки и таблицы больше не нужны: активность клиентов, их ставки и результаты видны прямо в мессенджере, а решения принимаются на основе данных.

Бот статистики букмекерских ставок: данные ЦУПИС в Telegram

Задача

Легальные интерактивные ставки в России проходят через ЦУПИС — единый центр учёта переводов. Для букмекерского бизнеса это означает, что ключевые данные о ставках игроков существуют, но живут на стороннем сайте: кабинет ЦУПИС создан для учёта операций, а не для аналитики. Ни сводной статистики по игрокам, ни динамики, ни отчётов в нужном бизнесу разрезе там нет.

Без автоматизации эту задачу в отрасли закрывают вручную: сотрудники заходят в кабинет, выгружают данные, сводят их в таблицах и считают показатели формулами. Такой цикл занимает часы, повторяется регулярно и уязвим к ошибкам — от пропущенной выгрузки до сломанной формулы. Чем больше игроков и операций, тем менее надёжной становится такая аналитика.

К нам пришли с понятной постановкой: автоматизировать сбор данных с ЦУПИС и превратить их в живую статистику — по активности клиентов, их ставкам и результатам, — чтобы оптимизировать бизнес-процессы и принимать решения на основе цифр, а не выборочных наблюдений. Интерфейсом решили сделать Telegram: отчёты должны приходить сами, туда, где команда уже работает.

Данные вне контура бизнеса

Сведения о ставках игроков хранились на стороне ЦУПИС и были доступны только через кабинет. Чтобы получить их для анализа, требовались регулярные ручные выгрузки — медленные и легко забываемые в потоке операционных задач.

Статистика в ручных таблицах

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

Решения без опоры на данные

Активность клиентов, динамика ставок и результаты игр не складывались в целостную картину. Тренды замечали с опозданием, а управленческие решения принимались по отрывочным наблюдениям — без статистики, которой можно доверять.

Что делает система

Сборщик данных ЦУПИС

Ядро проекта: Python-модуль по расписанию авторизуется в кабинете ЦУПИС, обходит нужные разделы и выгружает сведения о ставках. Там, где доступны API-методы, используем их, остальное закрываем аккуратным веб-скрейпингом с контролем темпа запросов. Каждая выгрузка проверяется на полноту: если данные не получены, сборщик повторяет попытку и сообщает об этом администратору.

Нормализация и хранение

Сырые данные из ЦУПИС приводятся к единому формату: типы, даты, суммы, идентификаторы игроков. Дубли отбрасываются, пропуски помечаются, история накапливается в собственном хранилище — статистика считается по всей накопленной базе, а не только по последней выгрузке. Благодаря этому цифры в отчётах воспроизводимы: любой показатель можно пересчитать и проверить.

Статистика по игрокам

По каждому клиенту бот считает агрегаты: количество и суммы ставок, результаты игр, выигрыши и проигрыши, активность по периодам. Показатели рассчитываются на Python по единым правилам, без ручных формул в таблицах — исключены ошибки копирования и разночтения в методике. Срез по любому игроку доступен в пару команд прямо в Telegram.

Отчёты по расписанию

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

Запросы по требованию

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

Выявление трендов

Накопленная история позволяет видеть динамику: как меняется активность игроков, растут или падают объёмы ставок, какие клиенты ведут себя нетипично. Бот подсвечивает ключевые тренды в отчётах — заказчик замечает изменения на ранней стадии и принимает решения на основе данных, а не ощущений. Именно это и было главной целью проекта.

Мониторинг сборщика

Служебный контур, без которого автоматический сбор данных быстро деградирует: бот следит за успешностью выгрузок, свежестью данных и ошибками авторизации. Если ЦУПИС изменил разметку или сессия слетела, администратор получает уведомление в Telegram раньше, чем в отчётах появятся пропуски. Так система остаётся достоверной без ежедневного присмотра.

Технологический стек

Python

Основной язык проекта: на нём написаны и сборщик данных, и расчёт статистики, и сам бот. Экосистема Python закрывает все три задачи штатными средствами — HTTP-клиенты и инструменты скрейпинга, библиотеки обработки данных, обёртки Telegram Bot API. Один стек означает меньше стыков, проще сопровождение и быстрее разработку — проект уложился в 2 месяца.

Telegram Bot API

Интерфейс доставки аналитики. Заказчику не нужны отдельное приложение и веб-кабинет: отчёты и ответы на запросы приходят в мессенджер, которым команда и так пользуется каждый день. Bot API даёт готовую инфраструктуру — авторизацию по аккаунтам, доставку сообщений, команды и форматирование, — поэтому весь интерфейсный слой свёлся к логике, а не к разработке клиента.

Web Scraping + Cupis API

Двухканальный сбор данных. Там, где ЦУПИС предоставляет программный доступ, бот работает через API — это быстрее и стабильнее. Данные, недоступные через API, добираются веб-скрейпингом с авторизацией и контролем темпа запросов. Слой сбора изолирован от остальной системы: изменения на стороне источника локализуются в одном модуле и не задевают расчёты.

Data Analysis + Statistics Calculation

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

PythonTelegram Bot APIWeb ScrapingCupis APIData AnalysisStatistics Calculation

Как шла разработка

Погружение в задачу

Готово

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

Разведка источника

Готово

Исследовали кабинет ЦУПИС как источник: авторизация, структура разделов, форматы данных, доступные API-методы и места, где без скрейпинга не обойтись. По итогам выбрали двухканальную схему сбора и заложили ограничения по темпу запросов, чтобы работать с источником бережно.

Сборщик и хранилище

Готово

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

Расчётное ядро

Готово

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

Бот и отчёты

Готово

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

Боевой запуск

Готово

Запустили систему на реальных данных, в первые недели наблюдали за стабильностью сбора и точностью цифр, донастроили мониторинг и уведомления об ошибках. Через 2 месяца после старта проекта бот полностью взял на себя рутину сбора и подсчёта статистики.

Результаты

От старта проекта до рабочего бота прошло 2 месяца. Букмекерский бизнес получил инструмент, который автоматически выгружает данные о ставках из ЦУПИС, считает статистику по игрокам и присылает готовые отчёты в Telegram. Ручной цикл — выгрузка, таблицы, формулы, сверка — больше не нужен: мониторинг активности клиентов не требует усилий, а цифры в отчётах считаются по единой методике.

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

2 месяца

от старта проекта до запуска бота

Ручные выгрузки не нужны

сбор данных с ЦУПИС полностью автоматический

7 модулей

от сборщика данных до трендов

Python + Telegram

весь стек — от сбора до доставки

Партнёрский проект

Orbyx — наш партнёр по этому проекту, поэтому кейс публичный: рассказываем его открыто и с деталями. Партнёр вёл коммуникацию с заказчиком и формулировал требования со стороны бизнеса, а вся инженерия — сборщик данных ЦУПИС, расчётное ядро и Telegram-бот — выполнена нашей командой полного цикла.

Разделение ролей сработало на результат: пока обсуждались бизнес-метрики, техническая часть уже строилась — и проект уложился в 2 месяца.

Вопросы о проекте

Обсудим похожий проект?

Расскажите о задачах вашего бизнеса — предложим архитектуру и оценим сроки

Разработка чат-ботов