🐞 [fix] рейтинг менеджеров больше не "проваливается" на смене сезона
Каждый январь и июль лидеры рейтинга падали на десятки, а то и сотни позиций, а через две-три недели возвращались обратно. В первом мире в июле нынешний топ-50 просел со среднего 27-го места до 70-го, а кто-то улетал за 500-е.
Дело было не в обнулении. С началом нового сезона очки прошлых сезонов дешевеют — так и задумано, и работает это у всех одинаково. А вот бонусы за призовые места в чемпионатах приходили вразнобой: чемпионаты финишируют в разное время, потом бонус две недели ждал очереди, и выдача растягивалась на пять еженедельных обновлений. Кто-то получал компенсацию сразу, кто-то через месяц — и всё это время рейтинг показывал неправду.
Что изменилось:
✔️ бонус за чемпионат всегда идёт в зачёт следующего сезона, когда бы чемпионат ни завершился;
✔️ двухнедельная пауза убрана — итоги давно подводит автоматика, пересчётов не бывает;
✔️ все бонусы за сезон включаются разом, в первое обновление нового сезона — ровно тогда же, когда дешевеют старые очки.
Заодно разобрались, почему 22 августа обновление вовсе не состоялось. Ошибок нигде не было: расчёт не сломался, он просто не начался — защита от повторного запуска ставилась ровно на сутки, и расписание тоже суточное, так что субботний запуск иногда упирался в ещё не снятую защиту. Так молча потерялись две субботы, 17 января и 22 августа. Теперь день обновления решает не расписание, а журнал расчётов: пропущенная суббота досчитывается на следующий день, а по журналу сразу видно, дошёл ли расчёт до конца.
Рейтинг менеджеров стал работать точнее, быстрее и без пропусков. Ваше место будет означать то, что оно означает — и в январе, и в июле🥇
Каждый январь и июль лидеры рейтинга падали на десятки, а то и сотни позиций, а через две-три недели возвращались обратно. В первом мире в июле нынешний топ-50 просел со среднего 27-го места до 70-го, а кто-то улетал за 500-е.
Дело было не в обнулении. С началом нового сезона очки прошлых сезонов дешевеют — так и задумано, и работает это у всех одинаково. А вот бонусы за призовые места в чемпионатах приходили вразнобой: чемпионаты финишируют в разное время, потом бонус две недели ждал очереди, и выдача растягивалась на пять еженедельных обновлений. Кто-то получал компенсацию сразу, кто-то через месяц — и всё это время рейтинг показывал неправду.
Что изменилось:
Заодно разобрались, почему 22 августа обновление вовсе не состоялось. Ошибок нигде не было: расчёт не сломался, он просто не начался — защита от повторного запуска ставилась ровно на сутки, и расписание тоже суточное, так что субботний запуск иногда упирался в ещё не снятую защиту. Так молча потерялись две субботы, 17 января и 22 августа. Теперь день обновления решает не расписание, а журнал расчётов: пропущенная суббота досчитывается на следующий день, а по журналу сразу видно, дошёл ли расчёт до конца.
Рейтинг менеджеров стал работать точнее, быстрее и без пропусков. Ваше место будет означать то, что оно означает — и в январе, и в июле
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝15🏆6👍3
Скаутинг - это про изучение футболиста и поиск бриллиантов, а не про нажимание кнопок по кругу. Чем меньше времени уходит на второе, тем больше остаётся на главное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤6🤝3👌1
За наводки благодарим Roenich и Electronik. Такой список — с примерами и скринами — экономит нам полдня поисков, так что сообщайте и о небольших неудобствах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤🔥5❤3👎1
На старте сезона автокалендарь раскладывает всё расписание федерации: туры чемпионатов, суперкубок, стыки и отдельные дни под национальный кубок. Календарь давно работает как надо, а вот сам кубок держался за него не всегда.
Ручные кубки (там, где стадии формирует президент федерации) почти поголовно шли мимо: стартовали за два-три месяца до своих дат, а дальше играли, как получится. Автоматика тоже могла уйти с календаря: если под стадию не хватало дней, она ставила матчи на ближайшие свободные даты подряд.
Что теперь в 1 мире, 2 мире, ЖФЛ и Ретро-00х:
ЛФЛ и Ретро пока живут по прежним правилам: там календарь строится иначе.
Теперь о предпосылках. Кубковые дни в календаре разнесены по сезону не случайно — это дозированная нагрузка на составы. Но встречался и другой сценарий: ранние стадии кубка прогонялись в темпе «матч раз в два-три дня». Клубы низших лиг набирали лишнюю усталость, а топ-клубы федерации закрывали кубок досрочно и подходили к этапу лиги еврокубков со свободным календарём и свежим составом — пока соседи, честно игравшие по расписанию, выходили на те же матчи с нормальной сезонной нагрузкой. Календарь один на всех — в этом и есть fair play
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎5🤬3🐳2❤1😡1
Разработчик АИ и служба поддержки сегодня открывают шампанское (и глубоко выдыхают), потому что сотни (а может и тысячи) заявок по теме "вот матч на TM, а где он в АИ?" наконец позади
Вся наша архитектура реальных данных была построена на Soccerway, который сначала ушёл, потом переродился в мегакосячный ScoreBar, а затем всё же закончил свои мучения в интернете.
"Живи Футболом" за этот год прошёл следующий путь:
🔴 критическая зависимость от Soccerway
🟡 фундамент на Scorebar, активная подстраховка от ТМ
🟢 (сейчас) собственная архитектура, принимающая данные из любого источника, с возможностью подключения новых
Проект полностью справился с уходом базы Soccerway. Позади титанический объём невидимой глазу работы, а для вас — постоянный микроконтроллинг "а все ли данные добавлены в АИ?". Теперь: все с Transfermarkt, все с SoccerDonna и в дальнейшем они будут обновляться сами без "пинков" ЦОЗа и лишних кликов, потому что мы больше не зависим от API ScoreBar, а управляем данными сами. Сезон 26/27 пройдёт гораздо комфортнее, чем сезон 25/26.
Спасибо, что доверяли! Спасибо, что ждали. Дальше вместо "латания дыр" систему АИ ждёт развитие и расширение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👏15👍3🤝2✍1🔥1
dave
В АИ у каждого сезона в статистике игрока название лиги было ссылкой на внешний портал. Теперь она ведёт на нашу внутреннюю страницу с турнирными таблицами этого сезона: клуб игрока подсвечен, основная таблица сверху, плей-офф и стыки свёрнуты под отдельную ссылку, у сезона видно, идёт он или уже завершён.
Главное отличие от привычных таблиц - мы собираем их сами из матчей, которые знает проект, а не переписываем откуда-то. Очки считаем просто: 3 за победу, 1 за ничью, порядок - очки, разница мячей, забитые. Снятые очки и особые правила федераций не учитываем. И ровно по этим же таблицам считается реальный скилл клубов и проверяются условия талантов - то есть вы видите те самые данные, по которым игра принимает решения о ваших игроках.
Отсюда и польза для всех: если таблица расходится с официальной, значит в базе не хватает матча или затесался дубль. Сообщите в ЦОЗ со ссылкой на страницу - это чинится быстро, и вместе с таблицей поправится скилл.
Таблицы обновляются каждую ночь и помогают следить не только за АИ, но и реальным футболом
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤5🔥3😱1
Раньше в дни сборных список бассейна редел: уехавшие из него пропадали, и отметить, кого отправлять на сеанс, получалось только вечером, после их возвращения.
Теперь сборники остаются в списке с пометкой «сборная» — отмечайте их и расставляйте приоритеты в любое время. Окно сборных закрывается вечером, а сеанс идёт ночью => в очередь они попадают наравне со всеми. Заодно поправили: вызов в сборную больше не сбрасывает игроков, выставленных в бассейн вручную.
За нежелание терпеть неудобство благодарим менеджера Roenich 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3😁2👾1
Год назад по просьбе менеджеров мы разрешили продавать и покупать игроков прямо во время аренды: торги проходят на ТО, а игрок доигрывает срок у арендатора и только потом едет к новому владельцу.
Вскрылся нелогичный побочный эффект. Арендатор просит вернуть игрока досрочно, а компенсацию за неотработанный срок игра списывала с нового владельца - хотя бонус за аренду получил продавец. Покупатель оказывался перед выбором: доплатить за чужую аренду или ждать её окончания.
Что теперь:
Действующие аренды, где владелец уже сменился, привели к тому же правилу.
Вы купили игрока, а не чужие обязательства - так и должно быть. За активную позицию благодарим менеджера twistal3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤3🤔1
В разделе «баланс» каждая операция с банком - взяли кредит, положили депозит, вернули обратно - ложилась в таблицу нерегулярных доходов и расходов как обычная статья. Кредит на 100 млн, отданный через три дня, рисовал клубу 200 млн «оборота», а призовые, трансферы и налоги на его фоне становились почти не видны. Реальную картину сезона по такой таблице было не прочитать.
Что теперь:
Баланс должен отвечать на вопрос «куда ушли деньги», а не «сколько раз они съездили в банк и обратно». За предложение и наглядный скрин благодарим менеджера kote398
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥10👌1
На форуме менеджеры давно и по делу критиковали расчёт базовой цели. Тезисы простые: «ты за счёт опытных стариков сможешь и места высокие занимать, и денег зарабатывать» или «возрастным составом проще побеждать, а система требует от молодого состава больше». Оба верные.
Почему изначально считали по номиналам: сумма номиналов - это капитализация клуба. Она честно связана с расходами (зарплата - фиксированный процент от номинала), учитывает всю обойму, а не только 11 лучших, и мешала «погребам» - клубам, которые скупают сотни молодых игроков и ждут иксов на перепродаже.
Но со временем минусы перевесили:
1. номинал - это цена игрока на годы вперёд. Молодой футболист при равной силе стоит дороже ветерана, потому что впереди долгая карьера. Спонсор же ставит задачу на один сезон, а в этом сезоне они равны => молодые составы получали завышенные цели, возрастные - заниженные;
2. каждый запасной входил в цель по полной стоимости, хотя играет 20-30% времени => система подталкивала к короткой обойме из 11 звёзд, а мы хотим видеть реалистичные команды на 18+ игроков;
3. с «погребами» теперь работают базовые контракты и зарплаты игрокам без аренд, вешать эту задачу ещё и на спонсора незачем;
4. благодаря скаут-скиллу силу игрока мы сегодня считаем гораздо точнее, чем когда спонсоры появились.
На истории прошлых сезонов проверили: сила предсказывает итоговое место не хуже номиналов, а спорных целей заметно меньше.
Что теперь:
Первой на новый расчёт перейдёт ЛФЛ (неделя спонсоров 1 октября), остальные миры - в январе. Цели прошлых сезонов остаются как есть.
Спонсор должен оценивать, на что состав способен здесь и сейчас, а не сколько он будет стоить через пять лет. Так честнее и к молодым составам, и к ветеранам
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍11❤3 1
По вечерам бот мог задуматься на несколько минут, и «матч начнётся через 10 минут» порой прилетало уже после стартового свистка. Нашли причину и пофиксили отправку: очередь больше не встаёт, даже если сеть по пути к Telegram сбоит.
За трое суток после правки ни одного зависания и ни одного потерянного уведомления, типичная доставка - 5 секунд. Заодно ушли и редкие дубли.
Уведомление имеет смысл только вовремя - за 10 минут до матча, а не после него. За настойчивую заботу о телеграме благодарим президентов RUKENT и Roenich
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4❤🔥3🤝1
Тема узкая: до коллекторов доходят единицы, просроченный на дату закрытия кредит - это уже форс-мажор. Но правила должны выполняться дословно даже там, куда почти никто не заглядывает.
Разбирали такой случай и нашли расхождение. По правилам коллекторы сначала продают заложенных игроков и лишь затем, если денег не хватило, берутся за остальную команду. На практике коллектор считал недостачу по текущему бюджету и мог в один день выставить и залог, и «добавку» из состава.
Что улучшили:
Поблажек должникам тут нет, коллектор своё возьмёт. Просто теперь он делает это ровно так, как написано в правилах
Please open Telegram to view this post
VIEW IN TELEGRAM
🤨7👍3❤2
dave
Причина была не там, где её искали. Проверяющая не тормозила: до неё заявка ещё должна доехать, а перед человеком её смотрит автоматика — ищет клонов по реальным прототипам, датам рождения и совпадениям ФИО. Вот она и упиралась: на каждую заявку уходило по пять секунд, потому что сверять приходилось со всей базой игроков проекта, а это почти два миллиона профилей.
Пока заявок было по полторы сотни в день, этого никто не замечал. Но за последние месяцы мы подняли кол-во привязок клубов к реальным командам с 12 до 28 тысяч => автозаполнение Академии стало находить куда больше настоящих юниоров и в отдельные дни подавало по 2400 заявок. Вход захлебнулся, очередь доросла до 7825.
Что изменилось:
Растущая база — это хорошо, но она вскрывает узкие места, о которых раньше можно было не думать. Теперь заявка попадает на модерацию быстрее и уже сегодня проверка будет продолжена
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🔥5👍3
Часть матчей попала в базу от источников, которые давно перестали их обновлять. Матч сыгран, данные у вас на руках, а в АИ он висит «не сыгран» — и ввод по нему закрыт.
Теперь такие матчи закрываются сами: через три дня после игры статус становится «сыгран», а поматчевый ввод открывается. Разово это разблокировало 4 429 матчей в 127 турнирах — низшие дивизионы, женские и юношеские лиги. Счёт у них остался неизвестным: вместо ноликов в АИ стоит «?:?». Достанем его позже из новых источников, а вбить минуты, голы и передачи можно уже сейчас.
АИ и держится на том, что менеджеры знают о своих игроках больше любого парсера
Please open Telegram to view this post
VIEW IN TELEGRAM
Календари в мире разные: Бразилия играет сезон в пределах года, Европа — с осени до весны. Из-за этого футболист, уехавший из бразильского клуба в январе, продолжал числиться в его заявке весь оставшийся сезон, и в АИ ему записывались нули за матчи, которые он физически не мог сыграть. Дальше эти чужие матчи попадали в один расчёт с играми нового клуба и разбавляли оценку => сильная лига весила меньше, чем заслуживала.
Поправили: сезон клуба, который игрок покинул и не провёл в нём ни минуты, больше не считается пропущенными матчами. У бразильца Rayan из «Борнмута» реалскилл сразу прибавил почти 12 пунктов, и он такой не один — пересчёт задел всех, кто переезжал между разными календарями.
Отдельно приятно закрыть «висяк»: раньше на такие обращения мы честно отвечали, что до конца сезона ничего не поделать. Теперь поделать можно. За подробное описание благодарим менеджера Partes
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👏3❤2
dave
Летом автосостав дважды становился умнее: сначала он начал ставить игроков по прокачке, а не по номинальному амплуа, потом — грамотно выбирать, кого снять под лимит легионеров. Оба раза уходили грубые промахи. Теперь очередь дошла до тонких.
Менеджер Nottingemmm показал случай: в кубковом матче на опорной зоне вышел игрок со скиллом 96, а на скамейке остался другой — со скиллом 133 и тем же основным амплуа. Автосостав смотрит, под какую позицию игрок прокачан, и относит его строго к одной. У оставшегося в запасе прокачка под левого защитника оказалась сильнее прокачки под опорника меньше чем на процент — и в подбор на опорную зону он не попадал вовсе. Формально не профильный.
Теперь у этой границы есть допуск: если позиция прокачана почти так же хорошо, как лучшая, игрок профильный и на неё тоже. Дальше решает скилл.
Автосостав мы доводим итерациями, и каждая снимает ошибку тоньше предыдущей: сначала кого вообще ставить, потом кого снимать под лимит, теперь — доли процента в прокачке. Чем реже вы вспоминаете, что он вообще есть, тем лучше он работает
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤6
Заявку в АИ можно было заполнить, нажать отправку и остаться ни с чем: данные сохранялись, но на проверку не уходили, а форма об этом молчала. Вопрос «почему заявка не на проверке» приходил в ЦОЗ регулярно.
Теперь форма отвечает за себя:
Заодно сняли ограничение, из-за которого статистика по свежим сезонам упиралась в наш календарь: если у источника матчей больше, чем знаем мы, заявка всё равно дойдёт до проверки, а модератор сверит её с вашей ссылкой.
Сбор реальной статистики — работа кропотливая, и мешать ей может только нехватка данных, но никак не наш интерфейс. За подробный разбор с примерами благодарим менеджера Nikolka24
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍4❤1
У футболиста может быть несколько утверждённых фотографий, и тренер клуба листает их прямо в карточке игрока: выбрал подходящую, применил. В "я/мы" у своего персонажа этой возможности не было. Права на смену фото везде считались по тренеру клуба, а в режиме менеджер - это сам футболист, командой руководит другой человек. Оставался обходной путь: отправлять фото на модерацию заново.
Поправили: фотографию своего персонажа переключает его владелец, выбирая из тех, что уже прошли проверку. Заодно убрали из карточки кнопку удаления фото - у менеджеров она всё равно упиралась в отказ, удаление осталось за администрацией.
За настойчивость благодарим менеджера SpartMoscow - тему он поднимал не первый раз 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🤝3👍2🕊1
Каждый турнир входит в рейтинг менеджеров со своим весом: чем выше уровень, тем "дороже" в нём игра. Список этих весов пополнялся вручную и за календарём не поспевал — а турнир, которого в списке нет, расчёт просто пропускает.
Менеджер Pikachu заметил, что пять матчей его клуба в Лиге Конференций CAF в рейтинг не попали, и написал в ЦОЗ. Проверили — турнир молодой, веса у него не было.
Чинить точечно смысла не было, поэтому прошли по всем официальным турнирам всех игровых миров. Без веса оказались 92 турнира: континентальные лиги конференций, клубный ЧМ, олимпийские отборы, молодёжные первенства, лиги наций, почти весь официальный календарь ЖФЛ и ЛФЛ, ретро. Каждому выставили вес по единой лестнице — уровень континента и уровень турнира — и пересчитали матчи с начала года. В рейтинг вернулись 8536 игр.
Заодно поправили вес стадий: «этап лиги» — та самая швейцарка, на которую перешли континентальные турниры — весил вдвое меньше группового этапа, хотя по сути им и является. Теперь сравнялись.
Рейтинг должен отражать то, что происходит на поле, а не то, что успели внести в список
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4🤔3
После недавнего обновления привязок клубов фильтр перестал находить предложения - выдача была пустой при любых настройках. Поправили => галочка снова отбирает только тех игроков, за покупку которых ваш клуб получит кэшбек. Заодно починили такой же фильтр на ТО - проверить его можно будет с открытием ближайшего окна.
Первым ошибку заметил менеджер vadimpvs
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
ЖФ Dev.tweets
🟢 [feature] 16 150 новых ТМ-привязок клубов — в Академию попадут игроки всех юношеских составов
Каждый клуб на ЖФ связан со своим прототипом из реального футбола. По этим привязкам Академия находит настоящих юных футболистов, а проверка заявок подтверждает…
Каждый клуб на ЖФ связан со своим прототипом из реального футбола. По этим привязкам Академия находит настоящих юных футболистов, а проверка заявок подтверждает…
❤4👍2 2
dave
Знакомая история: заявка собрана верно, источник в порядке, но в позиции промахнулись - выбрали LD вместо RD. Раньше проверяющий мог только отклонить, а менеджеру приходилось подавать заново и ждать очередь второй раз.
Теперь проверяющий правит позицию сам, если источник называет её точно. Лишнюю вторую позицию, которой в источнике нет, он тоже снимает вместо отказа. О правке вы узнаете из письма об одобрении - там появится строка «уточнена позиция: было => стало». Если источник даёт только линию (защитник, полузащитник), правила прежние: позицию из линии выбираете сами, а дополнительную без подтверждения указывать нельзя. То же самое работает и для ручных заявок в ДО.
Заодно взяли на заметку: для испанских клубов lapreferente.com признан одним из самых достоверных источников сразу после официального сайта клуба, и при проверке он теперь в приоритете.
За оба предложения благодарим менеджера Malorn - меньше повторных заявок у вас, меньше повторных проверок у нас
Please open Telegram to view this post
VIEW IN TELEGRAM
Lapreferente
CD Torreperogil y Baeza CF, vencedores de la jornada en División de Honor Andaluza :: Fútbol de Andalucía ::
División Honor Andaluza Gr.2 Senior - Todo el :: Fútbol de Andalucía. Resultados, Clasificaciones, Calendario, Equipos, Jugadores, Árbitros, Estadísticas, Datos Históricos...
👍21🤝5❤3