Software Analytics

Как работает Software Analytics

Software Analytics — информационно-аналитический сервис, который применяет статистические модели к live-данным футбольных матчей и публикует оценку вероятности следующих исходов.

Принцип работы

Сервис непрерывно отслеживает идущие матчи и собирает live-показатели: счёт, время, статистические показатели команд, движение коэффициентов у источника данных.

На основе исторических данных построены статистические модели — они описывают, в каких сочетаниях live-показателей вероятность определённого исхода (гол в окне времени, тотал, исход тайма) выше среднего.

В моменты, когда текущая картина матча соответствует одному из таких сочетаний, сервис публикует сигнал с указанием рассматриваемого исхода и соответствующего коэффициента.

Источник live-данных

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

Для каждого матча собирается: текущий счёт, минута и статус (1-й тайм, перерыв, 2-й тайм, завершён), коэффициенты букмекера по основным рынкам (1×2, тотал, фора), а также командные показатели — удары, удары в створ, угловые, нарушения, владение, карточки.

Перед публикацией сигнала сервис дополнительно запрашивает историю личных встреч (H2H) и расширенную статистику текущего матча. Финальное решение принимается только после того, как все независимые источники подтвердили выполнение условий алгоритма.

Четыре алгоритма

Каждый алгоритм работает в своём временном окне матча и оценивает свой класс исходов. Алгоритмы независимы — один матч может породить сигналы нескольких алгоритмов в разное время.

λLambdaГол в первом тайме

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

ΣSigmaСледующий гол

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

τTauГол во втором тайме

Алгоритм анализирует счёт первого тайма и историческую забивную форму команд для оценки вероятности гола после перерыва.

ΔDeltaГол в концовке

Алгоритм оценивает мотивацию ведущей команды и темп матча в финальной части игры.

Алгоритмы — подробный разбор

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

Точные числовые пороги, веса фильтров и параметры профилей в публичном описании не раскрываются: это конкурентно чувствительная часть метода. Структура — открыта; конкретные значения валидируются через открытые метрики Win Rate и ROI на странице «Результаты», где результат каждого сигнала виден по факту.

λ

Lambda (λ) — гол в первом тайме

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

Фаза матча
Начало первого тайма — фаза, когда live-показатели уже устоялись, но темп игры ещё стабилен.
Условие по счёту
Счёт нулевой (0:0).
Коэффициент
Коэффициент на рынке тотала первого тайма должен находиться в рабочем диапазоне алгоритма.
Дополнительные фильтры
Захват возможен только в первом тайме; лига должна быть открыта для Lambda. Дополнительные фильтры на коэффициент и состояние матча применяются на стороне сервиса.
Финализация
Сигнал финализируется в момент перерыва или начала второго тайма. Сигнал считается сработавшим, если до перерыва команды забили хотя бы один гол; иначе — несработавшим.
Профили
Алгоритм поддерживает несколько профилей, которые различаются предматчевыми соотношениями коэффициентов 1×2 и тотала. Каждый профиль имеет собственную историческую статистику Win Rate и ROI, доступную на странице «Результаты».
Σ

Sigma (Σ) — следующий гол

Алгоритм работает во втором тайме и оценивает вероятность ещё одного забитого гола, когда игра уже результативна.

Фаза матча
Ближе к концу второго тайма — фаза, когда темп игры устоялся и обе команды уже забили.
Условие по счёту
Суммарно в матче забито не менее двух голов.
Коэффициент
Коэффициент на следующий гол должен находиться в умеренном рабочем диапазоне алгоритма.
Дополнительные фильтры
Захват только во втором тайме; исключаются редкие сценарии тотального доминирования по итогам первого тайма; отдельные конфигурации счёта на момент захвата снижают приоритет сигнала.
Финализация
Сигнал финализируется в момент завершения матча. Если после момента захвата команды забили хотя бы один гол — сигнал сработал.
Профили
Базовый сигнал работает без профиля и идёт в архив с пометкой «База». Дополнительно опубликованы несколько профилей — подвыборки матчей с более стабильным историческим Win Rate.
τ

Tau (τ) — тотал матча

Алгоритм работает в самом начале второго тайма (HT-захват) и оценивает вероятный общий тотал матча — сколько голов будет к финальному свистку.

Фаза матча
Первые минуты второго тайма — сразу после перерыва, пока второй тайм ещё не дал голов.
Условие по счёту
Малорезультативный первый тайм без значительного перевеса; во втором тайме голов ещё не было.
Коэффициент
Коэффициент на выбранную линию тотала должен находиться в рабочем диапазоне алгоритма.
Дополнительные фильтры
Линия тотала выбирается букмекером из стандартного диапазона; учитывается история личных встреч с устойчиво высоким средним тоталом; матч должен идти без удалений на момент захвата.
Финализация
Сигнал финализируется в момент завершения матча. На целых тоталах при точном совпадении фактического тотала с линией сигнал помечается как возврат (push) и не учитывается ни в Win Rate, ни в ROI.
Профили
Алгоритм поддерживает несколько профилей, выделяющих под-выборки с особенно стабильным историческим Win Rate. На странице «Результаты» доступна разбивка по профилям.
Δ

Delta (Δ) — гол в концовке

Алгоритм работает в концовке матча и оценивает вероятность ещё одного забитого гола, когда лидер счёта уже сложился.

Фаза матча
Финальная часть матча — фаза, когда расстановка по счёту устоялась и до конца игры остаётся около двадцати минут.
Условие по счёту
В матче есть лидер счёта (не ничья).
Коэффициент
Коэффициент на следующий гол должен находиться в умеренном рабочем диапазоне алгоритма.
Дополнительные фильтры
Захват только во втором тайме; лидер счёта не должен быть железным фаворитом — его вероятность победы должна находиться в умеренном диапазоне; требуется достаточная история личных встреч; матч должен идти без удалений на момент захвата.
Финализация
Сигнал финализируется в момент завершения матча. Если после захвата кто-либо из команд забил гол — сигнал сработал.
Профили
Профилей у Delta нет: стратегия принимает решение целиком на основании композиции условий, без под-классификации.

Сравнительная таблица

Сводка ключевых характеристик четырёх алгоритмов в одной таблице — фаза матча, тайм, рынок и наличие профилей. Точные числовые параметры опущены намеренно (см. примечание выше).

АлгоритмФаза матчаТаймРынокПрофили
λ LambdaНачало 1Т1-йТБ 0.5 первого тайманесколько
Σ SigmaКонец 2Т2-йСледующий голбаза + несколько
τ TauНачало 2Т2-йТотал матчанесколько
Δ DeltaКонцовка матча2-йСледующий гол

Что такое профили

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

При публикации сигнала сервис указывает совпавший профиль (например, П1, П2 и так далее — по числу профилей у конкретного алгоритма). Это позволяет пользователю понимать, насколько типичная для данного алгоритма картина наблюдается в текущем матче.

Метрики качества

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

Win Rate (WR)

Доля сработавших сигналов из всех завершённых. Базовая мера точности алгоритма.

ROI

Средняя доходность при условной флэт-ставке. В отличие от WR учитывает не только частоту попаданий, но и величину коэффициентов.

Coverage

Доля сигналов с полным набором live-статистики, доступным для последующего разбора. Чем выше — тем надёжнее статистические выводы.

Push (возврат) — на каких сигналах применяется

Возврат (push) — это случай, когда фактический исход на целом тотале точно совпадает с линией. На рынке ставок это означает возврат ставки без выигрыша и без проигрыша.

В Software Analytics возврат применяется только в алгоритме Tau и только на целых тоталах матча: 1.0 (ровно один гол суммарно) и 2.0 (ровно два гола). На дробных тоталах (0.5, 1.5, 2.5) возврат невозможен по определению — линия не может совпасть с целым числом голов.

При расчёте ROI и Win Rate сигналы со статусом возврата исключаются как из числителя, так и из знаменателя — они не влияют ни на доходность, ни на точность алгоритма. В архиве и в таблицах такие сигналы помечены буквой P.

Как мы рассчитываем Win Rate и ROI

Все цифры на странице «Результаты» считаются по простой и проверяемой формуле — без сглаживания и без bayesian-коррекции.

Win Rate — это доля сработавших сигналов от общего числа завершённых: WR = W ÷ (W + L). Возвраты (P) не учитываются ни в числителе, ни в знаменателе. Pending-сигналы (ещё не финализированные) тоже исключаются — пока матч идёт, сигнал не влияет на статистику.

ROI — это доходность при условной флэт-ставке в 1 единицу на каждый сигнал. Для сработавшего сигнала возврат равен взятому коэффициенту; для не сработавшего — нулю. ROI = (сумма всех возвратов − число сигналов) ÷ число сигналов. Возвраты дают возврат = 1, что эквивалентно их исключению.

Пример: 100 завершённых сигналов, из них 60 сработали по среднему коэффициенту 1.65 — это Win Rate 60%. ROI = (60 × 1.65 + 40 × 0 − 100) ÷ 100 = −1%. Положительный Win Rate ещё не гарантирует положительный ROI: разница в среднем коэффициенте может перевесить точность.

Агрегация по периодам (неделя / месяц / всё время) использует то же определение. Все значения на странице — это сырые наблюдённые частоты, чтобы пользователь сам мог оценить степень неопределённости по объёму выборки.

Жизненный цикл сигнала

Каждый сигнал проходит четыре стадии — от появления до фиксации результата.

1
Захват

Алгоритм обнаруживает совпадение текущей картины матча со статистическим паттерном и публикует сигнал с указанием коэффициента.

2
Отслеживание

Пока сигнал активен, сервис фиксирует изменение коэффициента и сохраняет пиковое значение.

3
Финализация

После окончания матча или закрытия временного окна сигнала сервис фиксирует, наступил ли рассматриваемый исход.

4
Результат

Сигнал помечается как сработавший (W), не сработавший (L) или возврат (P, для отдельных случаев на целых тоталах).

Какие лиги исключены и почему

Часть лиг и турниров автоматически исключена из работы алгоритмов. Основные причины: отсутствие полной статистики у поставщика данных (нет ударов и угловых), малый исторический объём выборки, нестабильное движение live-коэффициентов или административное закрытие из-за систематически низкой предсказуемости.

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

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

Как мы избегаем overfitting

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

Out-of-sample валидация. Параметры каждого алгоритма (окна минут, пороги коэффициентов, фильтры по счёту) подбираются на одной части исторических данных и проверяются на другой, которую алгоритм не «видел» при подборе. Только если показатели на out-of-sample выборке сопоставимы с in-sample — параметры закрепляются.

Минимальный объём выборки. Профили считаются устойчивыми только при наборе нескольких сотен сигналов. До этого порога профиль помечается как «недостаточно данных», и пользователь видит только базовый Win Rate алгоритма.

Регулярная перекалибровка. Примерно раз в три месяца статистика по каждому алгоритму пересматривается. Если на свежей выборке наблюдается систематическое расхождение с историческими ожиданиями — параметры пересматриваются или алгоритм временно ставится на паузу.

Ограничения метода

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

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

Bookmaker margin. Букмекер закладывает в коэффициент маржу (overround). Это означает, что даже на справедливо оценённой вероятности 50/50 коэффициент в среднем ниже теоретически справедливого 2.00. Поэтому положительный Win Rate не равен положительному ROI.

Volatility на коротких периодах. Win Rate за неделю может заметно отличаться от Win Rate за всё время. Это нормальная статистическая флуктуация — оценивать качество алгоритма имеет смысл на выборках в несколько сотен сигналов и больше.

Покрытие. Алгоритмы рассчитаны на турниры с регулярными командами и достаточной историей статистики. Товарищеские матчи, юношеские турниры и нестандартные форматы (например, турниры на нейтральном поле без зрителей) исключаются автоматически.

Глоссарий терминов

Краткие определения ключевых терминов, которые встречаются в сервисе и на странице «Результаты».

Сигнал
Опубликованная алгоритмом запись с указанием матча, момента захвата, выбранного рынка и коэффициента. Сигнал имеет временное окно валидности и в момент завершения матча получает статус W (сработал), L (не сработал) или P (возврат).
Профиль
Категория предматчевых условий, в которых алгоритм исторически демонстрирует разный Win Rate. Профиль определяется до начала матча на основе соотношения коэффициентов 1×2 и тотала. Часть алгоритмов поддерживает профили; перечень и статистика по каждому из них публикуются на странице «Результаты».
Пик коэффициента (live coef peak)
Максимальное значение коэффициента, наблюдавшееся в окне активности сигнала. Используется в архиве как дополнительная метрика — насколько движение линии шло в пользу выбранного исхода.
Push (возврат)
Случай, когда фактический исход на целом тотале точно совпадает с линией. Применяется только в Tau на тоталах 1.0 и 2.0. В расчётах ROI и Win Rate возвраты исключаются.
Win Rate (WR)
Доля сработавших сигналов от общего числа завершённых: WR = W ÷ (W + L). Базовая мера точности алгоритма.
ROI
Доходность при условной флэт-ставке в 1 единицу на каждый сигнал. ROI = (сумма всех возвратов − число сигналов) ÷ число сигналов. Учитывает не только частоту попаданий, но и величину коэффициентов.
Trimmed mean (тримминг среднего)
Среднее значение выборки после отсечения экстремальных краёв. В Tau применяется к среднему тоталу личных встреч и помогает отсечь бимодальные и редко-забивные истории встреч, в которых обычное среднее искажено выбросами.
H2H (личные встречи)
Статистика предыдущих матчей двух команд между собой. В Tau и Delta используется как фильтр перед публикацией сигнала: алгоритм требует достаточного количества встреч и заданных свойств их тоталов.
Заблокированная лига
Турнир, исключённый из работы конкретного алгоритма. Причины — отсутствие полной live-статистики, малый исторический объём выборки, нестабильное движение коэффициентов или административное закрытие.
Окно захвата
Фаза матча, в течение которой алгоритм может опубликовать сигнал. У каждого алгоритма — своя фаза: Lambda работает в начале первого тайма, Tau — в начале второго, Sigma — ближе к концу второго, Delta — в концовке матча.

Часто задаваемые вопросы

Это букмекерский сервис?

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

Можно ли заработать на этих сигналах?

Сервис не гарантирует прибыли. Все опубликованные Win Rate и ROI — это исторически наблюдённая статистика, а не обещание будущей доходности. Положительный исторический ROI не означает, что следующая серия сигналов будет прибыльной.

Почему ROI у некоторых алгоритмов отрицательный?

Это нормальная ситуация для серии из ограниченного числа сигналов. Маржа букмекера делает рынок слегка отрицательным «по умолчанию», и любой алгоритм должен явно её перекрыть. На коротких выборках возможна и отрицательная флуктуация — мы публикуем цифры как есть, без сглаживания.

Сколько сигналов в день?

В среднем по всем четырём алгоритмам — порядка 5-30 сигналов в сутки, в зависимости от насыщенности футбольного календаря. В будни и в межсезонье — меньше; в выходные с большим количеством матчей — больше.

Как часто обновляются результаты?

Страница «Результаты» обновляется в реальном времени по мере финализации сигналов — то есть в момент завершения матчей и закрытия временных окон. Изменения в Win Rate и ROI отражаются в течение нескольких минут после события.

Что такое профиль и нужно ли в нём разбираться?

Профиль — это категория предматчевых условий (соотношение коэффициентов 1×2 и тотала), в которых алгоритм исторически показывает разный Win Rate. Знать профиль необязательно — базовый сигнал работает и без него. Профили публикуются как дополнительная информация для пользователей, которые хотят отфильтровать сигналы по историческим под-выборкам.

На каких устройствах работает сервис?

Software Analytics — это веб-приложение (PWA), которое работает в любом современном браузере. Его можно установить как приложение на iPhone (Safari → Поделиться → На экран «Домой») и на Android (Chrome → Установить). Push-уведомления о новых сигналах поддерживаются в большинстве браузеров, кроме старых версий iOS.

Что сервис не делает

  • не принимает ставки и не выступает посредником при их размещении;
  • не является финансовым или инвестиционным советником;
  • не гарантирует наступления спрогнозированного исхода — прогноз является вероятностной оценкой;
  • не несёт ответственности за решения, принятые пользователем на основе опубликованной информации.