Начну с контекста. Я играю в EA FC (ранее FIFA) в режиме Clubs (11×11), где каждым виртуальным игроком управляет человек. Сам по себе режим интересный, но мне, как человеку, который любит цифры и аналитику, довольно быстро стало не хватать доступной статистики.
Я пришёл в лигу, у которой уже был свой сайт (я в этой статье опущу тему о том, что я администрировал проект порядка 3 лет). Там статистику собирали вручную: люди пересматривали записи матчей и заносили базовые показатели — голы, ассисты, перехваты, отборы и так далее. На основе этих данных считались различные рейтинги: лучшие игроки, бомбардиры, разрушители и прочее.
Выглядело это примерно так: набор таблиц, где действия сгруппированы по категориям и амплуа.

Почему это не работало
Для меня такой формат оказался неудобным.
Да, данные есть, но:
их сложно сравнивать
сложно анализировать вклад игрока
невозможно понять стиль игры
В какой-то момент (примерно в 2020 году) я задумался, что это можно сделать иначе. Но на тот момент у меня не было опыта разработки — да и сейчас я не считаю себя разработчиком в классическом смысле.
Откуда вообще брались данные
Логичный вопрос: почему всё делалось вручную?
Потому что у EA Sports нет API, который позволял бы получать нужную статистику.
Это ключевое ограничение, которое определило всю архитектуру проекта.
Первый этап: Excel и ручная аналитика
Я начал с простого:
Excel-файлы
публикации во ВКонтакте
разборы матчей и игроков
По сути, это были аналитические отчёты на основе тех же данных, но с попыткой интерпретации.
Уже тогда было понятно: у людей есть запрос на сравнение и оценку игроков, просто инструментов для этого нет.
Метрики: как я попытался уйти от «базовой статистики»
Ключевой идеей проекта была возможность быстрого понимания типажа игрока\команды через его профиль.
Базовые показатели вроде голов, ассистов или перехватов дают очень ограниченное понимание. Они показывают результат, но почти ничего не говорят о процессе: как именно игрок создаёт моменты, насколько он стабилен, какую роль выполняет на поле.
Поэтому следующим шагом стало создание собственных метрик.
Зачем это вообще нужно
Если упростить, я хотел ответить на три вопроса:
насколько игрок эффективен
как он влияет на игру команды
какую роль он выполняет на поле
И стандартных метрик для этого недостаточно.
Примеры метрик
pXA (пасы на ожидаемую голевую передачу)
Эта метрика показывает, сколько передач требуется игроку, чтобы создать момент.
Интерпретация:
чем ниже значение — тем быстрее игрок доводит мяч до опасной стадии
чем выше — тем больше «пустых» передач без создания угрозы
Это позволяет отличать:
игроков, которые реально создают моменты
от тех, кто просто много пасует
Beaten Rate
Метрика отражает, как часто игрок проигрывает единоборства.
Интерпретация:
низкое значение — игрок стабилен и редко проигрывает 1 в 1
высокое — уязвим в обороне
Это особенно важно для защитников и полузащиты, где обычные метрики часто не показывают реальную надёжность.
Коэффициент опасности удара
Показывает, насколько опасные позиции выбирает игрок для ударов.
Интерпретация:
высокий показатель — игрок бьёт из выгодных позиций
низкий — много дальних или неэффективных ударов
Это позволяет разделить:
«объёмных» игроков (много ударов)
и «эффективных» (качественные удары)
Композитные показатели
Отдельные метрики — это только часть картины.
Дальше я начал объединять их в профили:
радары игроков
агрегированные оценки
сравнения по амплуа
Это дало возможность:
быстро понимать профиль игрока
сравнивать игроков между собой
находить сильные и слабые стороны
Практическое применение
Главное, что метрики оказались не просто «для красоты».
Они начали использоваться:
при подборе игроков в команды
при анализе матчей
в скаутинге
в автоматических отчётах
Фактически именно метрики стали основой всей системы. Всё остальное (интерфейс, сайт, визуализация) уже строилось вокруг них.
Важно
Я не пытался сделать «идеальную» модель.
Задача была другой — сделать метрики, которые:
понятны пользователю
полезны на практике
дают больше информации, чем базовая статистика
Первый инструмент: Yandex DataLens
Следующим этапом стало создание более удобного инструмента.
Я использовал Yandex DataLens, чтобы:
агрегировать данные
визуализировать метрики
упростить анализ

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

Следующий шаг — собственный сайт
Логичным продолжением стало создание полноценного сайта.
На тот момент у меня не было опыта:
разработки
настройки серверов
работы с базами данных
Тем не менее, я решил попробовать реализовать всё, что до этого делал вручную.
Архитектура проекта
В итоге получилась следующая структура.
Стек:
Frontend: Next.js
Backend: API routes (Next.js)
База данных: MySQL
ORM: Prisma
Деплой: Docker + облако
Логика:
сбор данных → база
агрегации → API
отображение → интерфейс
Что есть в системе сейчас
На текущий момент это уже не просто набор таблиц, а полноценная платформа:
профили игроков
профили команд
расширенная статистика
сравнение игроков
скаутинг (подбор игроков под стиль)
фентези-лига
То есть проект прошёл путь:
от Excel и постов во ВКонтакте → к самостоятельной аналитической системе
Итог
Я понимаю, что у проекта довольно узкая аудитория.
Но изначально это и не была попытка сделать массовый продукт.
Это была попытка:
решить конкретную проблему
автоматизировать процесс
проверить, можно ли построить систему с нуля
В итоге получилась полноценная аналитическая платформа, которую я продолжаю развивать.
И, пожалуй, самое неожиданное для меня то, что всё это удалось реализовать без классического бэкграунда в разработке.
Сайт проекта
В заключении, мне бы хотелось почитать честные отзывы про сам сайт, а так же готов ответить на различные вопросы. Ну и заодно дать мотивацию людям, что даже без знания базы сейчас можно пробовать сделать то, чего вы так давно хотели!