FAR POST ANALYTICS

산출 방식

FPA Score 산출 방법

FPA 스코어는 하나의 질문을 0에서 100 사이의 숫자로 압축한 지표입니다. 이 J리그 선수의 기록은 유럽 이적 후보로 볼 만한 선수의 프로필과 얼마나 닮아 있는가.

이 척도는 원점수 총합이 아니라 백분위입니다. FPA 스코어 70은 데이터베이스의 적격 선수 중 약 70%보다 앞선다는 뜻이고, 50이 집단의 한가운데입니다. 원점수를 늘려 쓰지 않고 백분위를 쓰는 이유는 실용적입니다. 시즌 데이터를 갱신해 내부 값이 달라져도 "70"이라는 숫자의 의미는 흔들리지 않기 때문입니다.

점수는 어떻게 만들어지는가

점수는 세 단계를 거쳐 만들어집니다. 구조는 공개합니다. 아무도 따져볼 수 없는 숫자는 신뢰할 가치가 없기 때문입니다. 공개하지 않는 것은 가중치이며, 그 이유는 바로 다음 항목에서 설명합니다.

  1. 190분당 정규화

    득점, 유효슛, 키패스, 성공 패스, 성공 드리블, 태클, 인터셉트, 경합 승리 등 모든 원시 누적 스탯을 90분당 수치로 변환합니다. 가장 먼저, 그리고 가장 크게 작용하는 보정입니다. 500분 뛰고 4골을 넣은 교체 자원과 2,400분 뛰고 9골을 넣은 주전을 가르는 것은 5골의 차이가 아니라, 교체 자원 쪽이 앞서는 효율입니다. 시즌 누적 기록은 출전 기회를 보상하고 로테이션을 처벌하는데, 아직 출전 시간이 실력을 따라오지 못한 선수를 찾겠다는 목적에는 정확히 반대되는 편향입니다. 표본이 일정 수준에 미치지 못한 선수는 아예 평가하지 않습니다. 몇 경기로 계산한 90분당 수치는 신호의 탈을 쓴 잡음이기 때문입니다.

  2. 2비교 집단 내 백분위 변환

    90분당 수치는 그 자체로는 의미가 적습니다. 90분당 태클 2회는 수비형 미드필더에게는 평범하지만 윙어에게는 비범한 숫자입니다. 그래서 각 수치를 같은 포지션 선수들로 이뤄진 비교 집단 안의 백분위로 변환합니다. 모든 지표가 "이 유형의 선수 기준으로 이 기록은 얼마나 드문가"라는 하나의 단위로 표현되는 셈입니다. 포지션 기준 비교는 모델이 득점·도움 순위표로 주저앉는 것도 막아줍니다. 그렇지 않으면 수비수와 후방 미드필더는 아무리 잘해도 영원히 드러나지 않습니다.

  3. 3포지션별 가중 합산

    득점력·창조성·패스·드리블·수비·경합 6개 축의 백분위를, 두 가지 맥락 지표와 함께 하나의 숫자로 합산합니다. 실제로 얼마나 많이 뛰는가, 그리고 얼마나 어린가입니다. 가중치는 균등하지 않고, 포지션마다 다릅니다. 최전방 공격수의 프로필에서 중요한 것과 풀백의 프로필에서 중요한 것은 같지 않기 때문입니다. 또한 선수의 가장 강한 부분에 가장 약한 부분보다 큰 가중치를 둡니다. 영입은 대개 약점이 없다는 사실보다 특정한 강점에 거는 베팅이기 때문입니다.

이 세 단계를 거친 결과를 앞서 설명한 0~100 백분위 척도에 올린 것이, 사이트 전체에 표시되는 숫자입니다.

공개하지 않는 것

지표별 가중치와 포지션별 가중치 세트는 공개하지 않습니다. 이유는 단순하고, 독자적 방법론 운운하며 포장하기보다 그대로 말씀드리는 편이 낫겠습니다. 가중치는 이 모델에서 실제로 공을 들여 도달한 부분이자, 동시에 베끼기가 가장 쉬운 부분입니다. 위에 적은 3단계 구조는 축구 데이터 분석에서 통상적인 방식이므로 공개해도 잃을 것이 없습니다. 가중치는 통상적인 것이 아니고, 그래서 남겨둡니다.

이것이 독자에게 뜻하는 바는 분명하며 짚고 넘어가야 합니다. FPA 스코어는 이 페이지만 보고 독립적으로 재현할 수 없습니다. 여기에 대한 정직한 대응은 아닌 척하는 것이 아니라, 대신 결과로 평가받는 것이라고 생각합니다. 아래 검증 항목이 그 역할을 합니다.

점수가 보지 못하는 것

FPA 스코어는 전적으로 경기 이벤트 데이터로 만들어집니다. 이벤트 데이터에 남지 않는 것은 이 점수에 보이지 않으며, 보이지 않는 것들 가운데 몇 가지는 이적의 성패를 가르는 가장 결정적인 요인입니다.

전술 적응력
선수의 기록은 특정한 시스템, 특정한 지시, 특정한 동료들 안에서 만들어집니다. 점유율이 높은 팀에서 패스 백분위를 쌓은 미드필더가 경기 대부분을 공 없이 보내는 팀에서도 기능할지, 점수는 답하지 못합니다.
멘탈리티와 기질
주전에서 밀렸을 때, 적대적인 원정 관중 앞에서, 또는 6개월간 선발로 나서지 못했을 때 선수가 어떻게 반응하는지는 이벤트 데이터에 없습니다. 영입 부서는 이를 일순위 변수로 다루며, 그것이 옳습니다. 점수는 이 부분을 전혀 다루지 못합니다.
언어와 문화 적응
일본에서 유럽 리그로 가는 것은 이적이기 이전에 이주입니다. 정착, 언어, 가족과의 거리, 낯선 나라에서의 평범한 생활 문제가, 숫자로는 막 시작될 참이던 커리어를 끝낸 사례가 있습니다.
부상 이력과 내구성
점수는 출전 시간은 읽지만, 비어 있는 시간이 왜 비어 있는지는 읽지 못합니다. 띄엄띄엄한 시즌에서 나온 좋은 90분당 기록은 로테이션 자원의 것일 수도, 부상이 반복되는 선수의 것일 수도 있으며 점수는 둘을 구분하지 못합니다.
디비전 간 데이터 수집 격차
현재 데이터 소스는 J1의 수비 세부 지표는 제공하지만 J2·J3는 제공하지 않아, 태클·인터셉트·경합 항목이 비어서 돌아옵니다. 그 결과 J2·J3 선수는 실제 경기력보다 수비 항목 점수가 낮게 나오고, 전체 FPA 스코어도 J1보다 구조적으로 낮게 형성됩니다. 이 격차를 실력 차이로 오해하시게 두기보다 먼저 밝혀두는 편이 낫다고 판단했습니다. 수집 범위가 고르게 될 때까지는 디비전을 가로질러 비교하지 마시고 같은 디비전 안에서 비교하시기 바랍니다.

FPA 스코어는 스크리닝 도구입니다. 이 주장의 크기에 대해 솔직할 필요가 있습니다. 이 지표의 목적은 2천 명 규모의 데이터베이스를 누군가 들여다볼 가치가 있는 후보군으로 좁히는 것이며, 그 이상은 아닙니다. 가치 평가가 아니고, 영입 추천이 아니며, 선수를 직접 보는 일을 대신하지 못합니다. 이 지표가 끌어올린 이름은 모두 작업의 결론이 아니라 시작점입니다.

데이터 출처

선수·스쿼드·경기 기록은 API-Football에서 가져오며 J1·J2·J3를 포함합니다. 현재 데이터셋은 2024 시즌입니다. 상세 지표 엔리치먼트는 현재 1768명 중 489명을 커버합니다. 비교군은 해당 지표의 실측값을 보유한 선수만으로 구성됩니다.

스카우팅 리포트에서 API가 제공하지 않는 마무리 정확도, 기회 창출, 수비 관여량 등을 인용할 때는 Football LAB과 교차 확인합니다. 이 두 출처로 소급되지 않는 숫자는 발행하는 리포트에 넣지 않습니다.

실록 엔진

이 사이트의 리포트 뒤에는 우리가 '실록 엔진'이라 부르는 오프라인 리서치 파이프라인이 있습니다. 이름은 거의 5세기 동안 매일 기록된 조선왕조실록에서 따왔습니다. 이 기록이 가치를 인정받는 이유는 문장이 유려해서가 아니라, 사건을 나중에 기억되는 대로가 아니라 일어난 그대로 적었기 때문입니다. 우리가 스스로에게 요구하는 기준도 같습니다. 모든 평가에는 작성된 날짜와 그 평가를 산출한 산식 버전이 함께 붙고, 사후에 수정하지 않습니다.

  1. 11단계 — 90분당 정규화

    시즌 원시 누적 기록을 90분당 수치로 환산합니다. 원본 파일은 절대 직접 수정하지 않고, 모든 가공 단계는 새 파일로 저장되어 어떤 수치든 그것이 나온 입력값까지 거슬러 추적할 수 있습니다. 평가 대상 시즌 출전 시간이 450분 미만인 선수는 순위 산정에서 아예 제외합니다. 표본이 작을 때의 90분당 수치는 오도할 만큼 불안정하기 때문입니다.

  2. 22단계 — 종합 점수 산출

    90분당 지표를 포지션 내 백분위로 변환한 뒤 하나의 가중 점수(Sillok Score v2)로 합산합니다. 이 점수는 사이트의 다른 곳에 표시되는 FPA Score와는 다른 산식입니다. 산식에는 버전이 매겨지고(현재 버전은 2번째), 모든 수치에는 어떤 버전으로 산출됐는지가 함께 표기되어 서로 다른 버전의 점수가 무심코 비교되는 일이 없도록 합니다. 2번째 버전은 골키퍼를 아예 채점하지 않습니다. 우리가 확보한 세이브·실점 데이터만으로는 동등한 비교가 가능한 종합 지표를 만들 수 없어, 필드 플레이어 지표로 순위를 매기는 대신 의도적으로 제외했습니다. 나이는 표시용으로만 기록하고 계산에서는 의도적으로 제외합니다. 점수가 잠재력과 섞인 것이 아니라 선수가 실제로 해낸 것만을 재도록 하기 위해서입니다.

  3. 33단계 — 이적 성공확률 모델(탐색적)

    선수가 유럽으로 첫 이적한 뒤 자리를 잡을 확률을 추정하는 로지스틱 회귀 모델로, J리그·K리그에서 유럽으로 간 첫 이적 사례를 직접 리서치해 구축한 데이터셋으로 학습했습니다. 우리는 보기 좋은 결과가 나올 때까지 기다리지 않고 현재 상태를 그대로 공개합니다. 113건 표본에서 통계적으로 유의한 변수는 나이 하나뿐이고, 판별력도 약해 AUC는 0.598입니다. 이전 버전은 더 높은 수치를 냈지만, 이는 이적 시점에는 알 수 없었던 정보를 담은 변수 하나가 만든 착시였습니다. 그 변수를 제거하자 수치는 낮아졌지만 정직해졌습니다. 모델을 다시 다루기 전에 데이터셋을 먼저 늘리는 중입니다.

엔진을 쓰지 않는 영역

스카우팅 리포트 #010은 실록 엔진의 수치, 즉 Sillok Score v2 산식의 점수를 처음으로 사용한 발행 리포트입니다. 이 사이트의 다른 리포트는 위에서 설명한 대로 J리그 공식 기록과 Football LAB을 교차 확인해 작성됩니다. 엔진은 별도의 데이터셋으로 돌아가며, 어떤 선수를 자세히 들여다볼 가치가 있는지 가려내는 리서치 도구 역할을 합니다. 이 둘은 의도적으로 분리해 둡니다. 엔진의 산출값이 발행 리포트에 반영될 때는 해당 리포트에 그 사실과 산식 버전, 계산일을 명시합니다. 그 밖의 경우에 엔진을 우리가 발행하는 판정의 출처인 것처럼 내세우는 것은 실제보다 과장하는 일이 됩니다.

판정을 읽는 법

트랙 레코드 페이지에서 선수마다 두 개의 서로 다른 레이블이 붙는데, 각각 다른 질문에 답합니다. verdict(판정)는 글을 쓴 시점의 우리 판단입니다. status(상태)는 그 이후에 실제로 일어난 일을 나중에 기록한 것입니다. 하나를 다른 하나로 읽으면 우리가 얼마나 자주 맞았는지에 대해 오해를 하게 됩니다.

우리의 판단 — 발행 시점에 고정
WATCH는 지금 스카우트가 주목할 가치가 있다고 우리가 판단했다는 뜻입니다. MONITOR는 더 약한 판정입니다. 프로필은 흥미롭지만 표본 크기나 역할 변화 등 아직 해소되지 않은 실질적인 부분이 있다는 뜻입니다. 둘 다 이적이 실제로 일어난다는 예측은 아니며, 발행 이후에 수정되는 일도 없습니다.
그 다음에 일어난 일 — 나중에 기록
REALIZED는 선수가 유럽으로 이적했고, 우리 리포트가 그 발표보다 앞섰다는 뜻입니다. CASE_STUDY는 같은 이적이 일어났지만 우리 리포트가 발표일과 같거나 그 이후에 나와서, 소식을 앞서 예측한 게 아니라 뒤따랐다는 뜻입니다. TRACKING은 아직 이적이 일어나지 않아 항목이 계속 열려 있다는 뜻입니다. NOT_BORNE_OUT은 검증 기간이 끝날 때까지 이적이 없었다는 뜻입니다. REALIZED와 CASE_STUDY를 구분하는 이유는, 둘을 합쳐버리면 우리가 글을 쓸 당시 이미 공개돼 있던 이적까지 우리 공으로 돌릴 수 있게 되기 때문입니다.

가장 최근 업데이트 기준으로, 우리가 기록한 결과의 대다수는 실제로 예측이 적중한 판정이 아니라 사례 연구(case study)입니다. 실제보다 좋아 보이는 기록을 내세우기보다, 이 사실을 그대로 드러내는 편을 택합니다.

이 지표는 어떻게 검증하는가

현실과 대조하지 않는 평가 모델은 소수점이 붙은 의견에 지나지 않습니다. 저희가 내놓는 모든 스카우팅 판정에는 날짜가 붙고, 그 뒤 선수에게 실제로 무슨 일이 있었는지를 추적합니다. 성사된 이적, 끝내 성사되지 않은 이적, 그리고 틀린 판정까지 함께 기록합니다. 이 기록이 FPA 스코어가 실재하는 무언가를 측정하고 있는지 가늠할 유일하게 의미 있는 시험이며, 바로 그 이유로 공개해 두고 있습니다.

트랙 레코드 보기 →