pablogrois Claude Fable 5 commited on
Commit
a798829
·
1 Parent(s): fd8ce11

Ejes de ataque: reportes pre/post partido + scatter equipos + artefactos 28 ligas

Browse files

- reports/ejes.py: ejes_pre (predicción por eje vs norma, gen propia × concesión
rival) y ejes_post (firma del partido: ejes vs norma, esperado-vs-real del
modelo, variables que más se movieron)
- ejes_data.py: acceso a artefactos (dev dir → bundle vendor/data/ejes → Azure)
- API /api/ejes/{options,profiles} + sección 5 'Ejes ataque/defensa' (scatter
SVG interactivo) en Equipos y variables
- artefactos bundleados: 28 ligas 25-26, modelo global AUC 0.98, validación
predictor: acierto direccional 58% (63.8% en flechas grandes)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitignore +3 -0
  2. scripts/upload_ejes_artifacts.py +55 -0
  3. src/racing_reports/api/routes_ejes.py +24 -0
  4. src/racing_reports/api/routes_reports.py +3 -2
  5. src/racing_reports/ejes_data.py +261 -0
  6. src/racing_reports/reports/ejes.py +201 -0
  7. src/racing_reports/runner.py +25 -5
  8. src/racing_reports/web/app.py +2 -0
  9. src/racing_reports/web/templates/home.html +142 -2
  10. vendor/data/ejes/_index.json +30 -0
  11. vendor/data/ejes/austrian-bundesliga/25-26/ejes_definition.json +1 -0
  12. vendor/data/ejes/austrian-bundesliga/25-26/match_team_ejes.parquet +3 -0
  13. vendor/data/ejes/austrian-bundesliga/25-26/match_team_vars.parquet +3 -0
  14. vendor/data/ejes/austrian-bundesliga/25-26/predictor.json +1 -0
  15. vendor/data/ejes/austrian-bundesliga/25-26/scales.json +1 -0
  16. vendor/data/ejes/austrian-bundesliga/25-26/team_profiles.parquet +3 -0
  17. vendor/data/ejes/belgian-challenger-pro-league/25-26/ejes_definition.json +1 -0
  18. vendor/data/ejes/belgian-challenger-pro-league/25-26/match_team_ejes.parquet +3 -0
  19. vendor/data/ejes/belgian-challenger-pro-league/25-26/match_team_vars.parquet +3 -0
  20. vendor/data/ejes/belgian-challenger-pro-league/25-26/predictor.json +1 -0
  21. vendor/data/ejes/belgian-challenger-pro-league/25-26/scales.json +1 -0
  22. vendor/data/ejes/belgian-challenger-pro-league/25-26/team_profiles.parquet +3 -0
  23. vendor/data/ejes/brack-super-league/25-26/ejes_definition.json +1 -0
  24. vendor/data/ejes/brack-super-league/25-26/match_team_ejes.parquet +3 -0
  25. vendor/data/ejes/brack-super-league/25-26/match_team_vars.parquet +3 -0
  26. vendor/data/ejes/brack-super-league/25-26/predictor.json +1 -0
  27. vendor/data/ejes/brack-super-league/25-26/scales.json +1 -0
  28. vendor/data/ejes/brack-super-league/25-26/team_profiles.parquet +3 -0
  29. vendor/data/ejes/chile-primera/26/ejes_definition.json +1 -0
  30. vendor/data/ejes/chile-primera/26/match_team_ejes.parquet +3 -0
  31. vendor/data/ejes/chile-primera/26/match_team_vars.parquet +3 -0
  32. vendor/data/ejes/chile-primera/26/predictor.json +1 -0
  33. vendor/data/ejes/chile-primera/26/scales.json +1 -0
  34. vendor/data/ejes/chile-primera/26/team_profiles.parquet +3 -0
  35. vendor/data/ejes/croatia-prva-hnl/25-26/ejes_definition.json +1 -0
  36. vendor/data/ejes/croatia-prva-hnl/25-26/match_team_ejes.parquet +3 -0
  37. vendor/data/ejes/croatia-prva-hnl/25-26/match_team_vars.parquet +3 -0
  38. vendor/data/ejes/croatia-prva-hnl/25-26/predictor.json +1 -0
  39. vendor/data/ejes/croatia-prva-hnl/25-26/scales.json +1 -0
  40. vendor/data/ejes/croatia-prva-hnl/25-26/team_profiles.parquet +3 -0
  41. vendor/data/ejes/danish-superligaen/25-26/ejes_definition.json +1 -0
  42. vendor/data/ejes/danish-superligaen/25-26/match_team_ejes.parquet +3 -0
  43. vendor/data/ejes/danish-superligaen/25-26/match_team_vars.parquet +3 -0
  44. vendor/data/ejes/danish-superligaen/25-26/predictor.json +1 -0
  45. vendor/data/ejes/danish-superligaen/25-26/scales.json +1 -0
  46. vendor/data/ejes/danish-superligaen/25-26/team_profiles.parquet +3 -0
  47. vendor/data/ejes/dutch-eerste-divisie/25-26/ejes_definition.json +1 -0
  48. vendor/data/ejes/dutch-eerste-divisie/25-26/match_team_ejes.parquet +3 -0
  49. vendor/data/ejes/dutch-eerste-divisie/25-26/match_team_vars.parquet +3 -0
  50. vendor/data/ejes/dutch-eerste-divisie/25-26/predictor.json +1 -0
.gitignore CHANGED
@@ -40,3 +40,6 @@ vendor/data/processed/
40
  !vendor/data/modeling/model_peligro_pasillo__*.txt
41
  !vendor/data/modeling/team_features_latest.parquet
42
  !vendor/data/modeling/matchup_feat_cols.json
 
 
 
 
40
  !vendor/data/modeling/model_peligro_pasillo__*.txt
41
  !vendor/data/modeling/team_features_latest.parquet
42
  !vendor/data/modeling/matchup_feat_cols.json
43
+
44
+ # Artefactos de ejes bundleados (chicos, patrón CORE artifacts)
45
+ !vendor/data/ejes/**/*.parquet
scripts/upload_ejes_artifacts.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Sube los artefactos de EJES a Azure (report_artifacts root) para que el Space los consuma.
2
+
3
+ Recorre data/analysis/next_goal/artifacts/ejes/<slug>/<season>/* del repo Racing y sube cada
4
+ archivo a ``{azure_report_artifacts_root}/ejes/...``. Chicos (~11MB total).
5
+
6
+ Uso: python scripts/upload_ejes_artifacts.py [--source ../data/analysis/next_goal/artifacts/ejes] [--overwrite]
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import argparse
12
+ import sys
13
+ from pathlib import Path
14
+
15
+ sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
16
+
17
+ from racing_reports.config import DEFAULT_SETTINGS
18
+ from racing_reports.datastore import DataStore, _azure_credential # noqa: F401
19
+ from azure.storage.filedatalake import DataLakeServiceClient
20
+
21
+ DEFAULT_SOURCE = Path(__file__).resolve().parents[2] / "data" / "analysis" / "next_goal" / "artifacts" / "ejes"
22
+
23
+
24
+ def main() -> None:
25
+ ap = argparse.ArgumentParser()
26
+ ap.add_argument("--source", type=Path, default=DEFAULT_SOURCE)
27
+ ap.add_argument("--overwrite", action="store_true")
28
+ args = ap.parse_args()
29
+
30
+ src: Path = args.source
31
+ if not src.is_dir():
32
+ raise SystemExit(f"No existe {src}")
33
+ fs = DataStore()._filesystem_client()
34
+ root = DEFAULT_SETTINGS.azure_report_artifacts_root.strip("/")
35
+ files = [p for p in src.rglob("*") if p.is_file() and not p.name.startswith("_")]
36
+ print(f"{len(files)} archivos → {root}/ejes/")
37
+ subidos = saltados = 0
38
+ for p in files:
39
+ rel = p.relative_to(src).as_posix()
40
+ remote = f"{root}/ejes/{rel}"
41
+ fc = fs.get_file_client(remote)
42
+ if not args.overwrite:
43
+ try:
44
+ fc.get_file_properties()
45
+ saltados += 1
46
+ continue
47
+ except Exception:
48
+ pass
49
+ fc.upload_data(p.read_bytes(), overwrite=True)
50
+ subidos += 1
51
+ print(f"subidos: {subidos} | ya estaban: {saltados}")
52
+
53
+
54
+ if __name__ == "__main__":
55
+ main()
src/racing_reports/api/routes_ejes.py ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Endpoints de la sección "Ejes ataque/defensa" (scatter interactivo de equipos)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from fastapi import APIRouter, Depends, HTTPException
6
+
7
+ from racing_reports import ejes_data
8
+ from racing_reports.api.deps import require_auth
9
+
10
+ router = APIRouter(prefix="/api/ejes")
11
+
12
+
13
+ @router.get("/options", dependencies=[Depends(require_auth)])
14
+ def options() -> dict:
15
+ """Ligas/temporadas con artefactos de ejes + labels de los ejes."""
16
+ return {"leagues": ejes_data.available(), "ejes": ejes_data.EJE_LABELS}
17
+
18
+
19
+ @router.get("/profiles", dependencies=[Depends(require_auth)])
20
+ def profiles(league: str, season: str) -> dict:
21
+ try:
22
+ return ejes_data.profiles_payload(league, season)
23
+ except FileNotFoundError as exc:
24
+ raise HTTPException(status_code=404, detail=f"Sin artefactos de ejes: {exc}")
src/racing_reports/api/routes_reports.py CHANGED
@@ -14,7 +14,8 @@ from racing_reports.runner import ReportRunner
14
 
15
  router = APIRouter(prefix="/api/reports")
16
 
17
- SUPPORTED_REPORTS = {"pre_match", "block_zscore", "post_match", "triple_multitag", "triple_centros", "recuperaciones"} # post_match requiere NN
 
18
 
19
 
20
  @router.get(
@@ -61,7 +62,7 @@ def run(report_type: str, payload: RunRequest) -> RunResponse:
61
  if not payload.team_a:
62
  raise HTTPException(status_code=400, detail="Elegí al menos un equipo (A).")
63
  # pre/post necesitan los dos equipos (local + visitante); los de equipo permiten 1.
64
- if report_type in ("pre_match", "post_match") and not payload.team_b:
65
  raise HTTPException(status_code=400, detail="Para previo/post-partido elegí local y visitante.")
66
  if report_type == "post_match" and not payload.match_id and not payload.match_date:
67
  raise HTTPException(
 
14
 
15
  router = APIRouter(prefix="/api/reports")
16
 
17
+ SUPPORTED_REPORTS = {"pre_match", "block_zscore", "post_match", "triple_multitag", "triple_centros",
18
+ "recuperaciones", "ejes_pre", "ejes_post"} # post_match requiere NN
19
 
20
 
21
  @router.get(
 
62
  if not payload.team_a:
63
  raise HTTPException(status_code=400, detail="Elegí al menos un equipo (A).")
64
  # pre/post necesitan los dos equipos (local + visitante); los de equipo permiten 1.
65
+ if report_type in ("pre_match", "post_match", "ejes_pre", "ejes_post") and not payload.team_b:
66
  raise HTTPException(status_code=400, detail="Para previo/post-partido elegí local y visitante.")
67
  if report_type == "post_match" and not payload.match_id and not payload.match_date:
68
  raise HTTPException(
src/racing_reports/ejes_data.py ADDED
@@ -0,0 +1,261 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Acceso y lógica de los artefactos de EJES de ataque (por liga-temporada).
2
+
3
+ Los artefactos (chicos, ~KB-MB) se generan offline con scripts/ejes_build_artifacts.py del
4
+ repo Racing y viven en Azure bajo ``{report_artifacts_root}/ejes/<slug>/<season>/``:
5
+
6
+ team_profiles.parquet equipo × eje × lado(gen/con): mix_z + real/esperado en eje-alto
7
+ match_team_ejes.parquet matchId × equipo: medias de eje + tiros real/esperado + goles + fecha
8
+ match_team_vars.parquet matchId × equipo: medias de variables (drill-down "qué se movió")
9
+ scales.json σ partido-a-partido, medias/σ de liga, normas por equipo (gen y con)
10
+ predictor.json por eje: coefs {gen, con, intercept} (gen propia + concesión rival)
11
+
12
+ En dev, ``EJES_ARTIFACTS_DIR`` apunta al directorio local y evita Azure.
13
+ """
14
+
15
+ from __future__ import annotations
16
+
17
+ import json
18
+ import os
19
+ import time
20
+ from functools import lru_cache
21
+ from pathlib import Path
22
+
23
+ import pandas as pd
24
+
25
+ from racing_reports.config import DEFAULT_SETTINGS
26
+ from racing_reports.datastore import DataStore
27
+
28
+ EJE_LABELS = {
29
+ "verticalidad": "Verticalidad",
30
+ "elaboracion": "Elaboración",
31
+ "individual": "Juego individual",
32
+ "rotura_lineas": "Rotura de líneas",
33
+ "amplitud_centro": "Amplitud / centros",
34
+ "profundidad_espalda": "Profundidad / espalda",
35
+ "robo_alto": "Robo alto",
36
+ "aereo_segunda": "Aéreo / 2ª jugada",
37
+ }
38
+ EJES = list(EJE_LABELS)
39
+
40
+ _AVAIL_CACHE: dict[str, object] = {"ts": 0.0, "value": None}
41
+ _AVAIL_TTL = 1800.0
42
+
43
+
44
+ def _slug(league: str) -> str:
45
+ return "".join(c.lower() if c.isalnum() else "-" for c in league).strip("-")
46
+
47
+
48
+ def _local_dir() -> Path | None:
49
+ raw = os.getenv("EJES_ARTIFACTS_DIR")
50
+ return Path(raw).expanduser() if raw else None
51
+
52
+
53
+ def _bundled_dir() -> Path:
54
+ from racing_reports import vendor_env
55
+ return vendor_env.DATA_DIR / "ejes"
56
+
57
+
58
+ def _path(league: str, season: str, fname: str) -> Path:
59
+ """Orden: dir local de dev (env) → bundle del repo (vendor/data/ejes) → Azure."""
60
+ rel = f"ejes/{_slug(league)}/{season}/{fname}"
61
+ local = _local_dir()
62
+ if local is not None:
63
+ p = local / _slug(league) / season / fname
64
+ if p.exists():
65
+ return p
66
+ raise FileNotFoundError(f"No existe el artefacto local: {p}")
67
+ bundled = _bundled_dir() / _slug(league) / season / fname
68
+ if bundled.exists():
69
+ return bundled
70
+ return DataStore().sync_artifact(rel)
71
+
72
+
73
+ @lru_cache(maxsize=64)
74
+ def _scales(league: str, season: str) -> dict:
75
+ return json.loads(_path(league, season, "scales.json").read_text(encoding="utf-8"))
76
+
77
+
78
+ @lru_cache(maxsize=64)
79
+ def _predictor(league: str, season: str) -> dict:
80
+ return json.loads(_path(league, season, "predictor.json").read_text(encoding="utf-8"))
81
+
82
+
83
+ @lru_cache(maxsize=32)
84
+ def _match_ejes(league: str, season: str) -> pd.DataFrame:
85
+ return pd.read_parquet(_path(league, season, "match_team_ejes.parquet"))
86
+
87
+
88
+ @lru_cache(maxsize=32)
89
+ def _match_vars(league: str, season: str) -> pd.DataFrame:
90
+ return pd.read_parquet(_path(league, season, "match_team_vars.parquet"))
91
+
92
+
93
+ @lru_cache(maxsize=32)
94
+ def _profiles(league: str, season: str) -> pd.DataFrame:
95
+ return pd.read_parquet(_path(league, season, "team_profiles.parquet"))
96
+
97
+
98
+ def available() -> dict[str, list[str]]:
99
+ """{liga: [temporadas]} con artefactos de ejes. Local si EJES_ARTIFACTS_DIR; si no, Azure."""
100
+ def _scan(base: Path) -> dict[str, list[str]]:
101
+ idx = {}
102
+ idx_path = base / "_index.json"
103
+ if idx_path.exists():
104
+ idx = json.loads(idx_path.read_text(encoding="utf-8"))
105
+ out: dict[str, list[str]] = {}
106
+ for p in sorted(base.glob("*/*/team_profiles.parquet")):
107
+ slug = p.parent.parent.name
108
+ out.setdefault(idx.get(slug, slug), []).append(p.parent.name)
109
+ return out
110
+
111
+ local = _local_dir()
112
+ if local is not None:
113
+ return _scan(local)
114
+ bundled = _bundled_dir()
115
+ if bundled.is_dir():
116
+ out = _scan(bundled)
117
+ if out:
118
+ return out
119
+ now = time.time()
120
+ if _AVAIL_CACHE["value"] is not None and now - float(_AVAIL_CACHE["ts"]) < _AVAIL_TTL:
121
+ return _AVAIL_CACHE["value"] # type: ignore[return-value]
122
+ root = f"{DEFAULT_SETTINGS.azure_report_artifacts_root}/ejes".strip("/")
123
+ found: dict[str, list[str]] = {}
124
+ try:
125
+ fs = DataStore()._filesystem_client()
126
+ for p in fs.get_paths(path=root, recursive=True):
127
+ name = getattr(p, "name", "") or ""
128
+ if not name.endswith("team_profiles.parquet"):
129
+ continue
130
+ parts = name[len(root):].strip("/").split("/")
131
+ if len(parts) >= 3:
132
+ found.setdefault(parts[0], []).append(parts[1])
133
+ except Exception:
134
+ pass
135
+ _AVAIL_CACHE["value"] = found
136
+ _AVAIL_CACHE["ts"] = now
137
+ return found
138
+
139
+
140
+ def teams(league: str, season: str) -> list[str]:
141
+ return sorted(_profiles(league, season)["equipo"].unique())
142
+
143
+
144
+ def _eje_z(scales: dict, eje_col: str, value: float) -> float:
145
+ mu = scales["eje_match_mean"].get(eje_col, 0.0)
146
+ sd = scales["eje_match_std"].get(eje_col, 1.0) or 1.0
147
+ return (value - mu) / sd
148
+
149
+
150
+ def pre_prediction(league: str, season: str, home: str, away: str) -> dict:
151
+ """Para cada equipo: por eje, su norma y la predicción del partido (crece/decrece)."""
152
+ sc = _scales(league, season)
153
+ pred = _predictor(league, season)
154
+ out = []
155
+ for team, rival in [(home, away), (away, home)]:
156
+ gen = sc["team_eje_norm_gen"].get(team)
157
+ con = sc["team_eje_norm_con"].get(rival)
158
+ if gen is None or con is None:
159
+ raise ValueError(f"Sin perfil de ejes para {team if gen is None else rival} "
160
+ f"en {league} {season}")
161
+ rows = []
162
+ for eje in EJES:
163
+ ec = f"eje_{eje}"
164
+ c = pred.get(eje)
165
+ norma = gen.get(ec, 0.0)
166
+ if c is None:
167
+ p = norma
168
+ else:
169
+ p = c["intercept"] + c["gen"] * norma + c["con"] * con.get(ec, 0.0)
170
+ sigma = sc["eje_sigma"].get(ec, 1.0) or 1.0
171
+ rows.append(dict(
172
+ eje=eje, label=EJE_LABELS[eje],
173
+ norma_z=round(_eje_z(sc, ec, norma), 2),
174
+ pred_z=round(_eje_z(sc, ec, p), 2),
175
+ delta_sigma=round((p - norma) / sigma, 2),
176
+ ))
177
+ out.append(dict(team=team, rival=rival, rows=rows))
178
+ return {"league": league, "season": season, "teams": out}
179
+
180
+
181
+ def _resolve_match(mt: pd.DataFrame, home: str, away: str,
182
+ match_id: str | None, match_date: str | None) -> pd.DataFrame:
183
+ pair = mt[((mt["team"] == home) & (mt["rival"] == away)) |
184
+ ((mt["team"] == away) & (mt["rival"] == home))]
185
+ if match_id:
186
+ got = pair[pair["matchId"] == str(match_id)]
187
+ if len(got):
188
+ return got
189
+ if match_date and "fecha" in pair.columns:
190
+ got = pair[pair["fecha"].astype(str).str.startswith(str(match_date)[:10])]
191
+ if len(got):
192
+ return got
193
+ if pair.empty:
194
+ raise ValueError(f"No hay partidos {home} vs {away} en los artefactos.")
195
+ if "fecha" in pair.columns:
196
+ last = pair["fecha"].astype(str).max()
197
+ return pair[pair["fecha"].astype(str) == last]
198
+ return pair[pair["matchId"] == pair["matchId"].iloc[-1]]
199
+
200
+
201
+ def post_signature(league: str, season: str, home: str, away: str,
202
+ match_id: str | None = None, match_date: str | None = None,
203
+ top_movers: int = 8) -> dict:
204
+ """Firma de ataque del partido: ejes vs norma, ejecución esperado-vs-real, variables movidas."""
205
+ sc = _scales(league, season)
206
+ mt = _match_ejes(league, season)
207
+ mv = _match_vars(league, season)
208
+ rows_match = _resolve_match(mt, home, away, match_id, match_date)
209
+ mid = rows_match["matchId"].iloc[0]
210
+ fecha = str(rows_match["fecha"].iloc[0]) if "fecha" in rows_match.columns else ""
211
+
212
+ teams_out = []
213
+ for _, r in rows_match.iterrows():
214
+ team = r["team"]
215
+ norm = sc["team_eje_norm_gen"].get(team, {})
216
+ ejes_rows = []
217
+ for eje in EJES:
218
+ ec = f"eje_{eje}"
219
+ hoy, norma = float(r[ec]), float(norm.get(ec, 0.0))
220
+ sigma = sc["eje_sigma"].get(ec, 1.0) or 1.0
221
+ ejes_rows.append(dict(
222
+ eje=eje, label=EJE_LABELS[eje],
223
+ partido_z=round(_eje_z(sc, ec, hoy), 2),
224
+ norma_z=round(_eje_z(sc, ec, norma), 2),
225
+ dev_sigma=round((hoy - norma) / sigma, 2),
226
+ ))
227
+ movers = []
228
+ vrow = mv[(mv["matchId"] == mid) & (mv["team"] == team)]
229
+ if len(vrow):
230
+ vrow = vrow.iloc[0]
231
+ vnorm = sc["team_var_norm"].get(team, {})
232
+ for var, sigma in sc["var_sigma"].items():
233
+ if var not in vrow or not sigma:
234
+ continue
235
+ hoy_v = float(vrow[var])
236
+ norma_v = float(vnorm.get(var, 0.0))
237
+ movers.append(dict(variable=var, hoy=round(hoy_v, 2), norma=round(norma_v, 2),
238
+ dev_sigma=round((hoy_v - norma_v) / sigma, 2)))
239
+ movers.sort(key=lambda d: -abs(d["dev_sigma"]))
240
+ movers = movers[:top_movers]
241
+ teams_out.append(dict(
242
+ team=team, rival=r["rival"], n_seq=int(r["n_seq"]),
243
+ tiros_real=int(r["tiros_real"]), tiros_esperados=round(float(r["tiros_esp"]), 1),
244
+ goles=int(r["goles"]), ejes=ejes_rows, movers=movers,
245
+ ))
246
+ return {"league": league, "season": season, "match_id": mid, "fecha": fecha,
247
+ "teams": teams_out}
248
+
249
+
250
+ def profiles_payload(league: str, season: str) -> dict:
251
+ """Payload para el scatter interactivo: por equipo × lado × eje: mix_z y dif (pp vs liga)."""
252
+ df = _profiles(league, season)
253
+ out: dict[str, dict] = {}
254
+ for _, r in df.iterrows():
255
+ eq = out.setdefault(r["equipo"], {"gen": {}, "con": {}})
256
+ dif = (r["real"] - r["liga_real"]) if pd.notna(r["real"]) else None
257
+ eq[r["lado"]][r["eje"]] = {
258
+ "z": float(r["mix_z"]),
259
+ "dif": round(float(dif), 1) if dif is not None else None,
260
+ }
261
+ return {"league": league, "season": season, "ejes": EJE_LABELS, "teams": out}
src/racing_reports/reports/ejes.py ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Reportes de EJES de ataque: previo (qué ejes crecen/decrecen) y post (firma del partido).
2
+
3
+ Ambos consumen SOLO los artefactos chicos de ejes (ejes_data) — no bajan el preprocessed.
4
+ Devuelven ReportBundle con figura matplotlib + HTML autocontenido (estilo oscuro de la app).
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ from pathlib import Path
10
+
11
+ import matplotlib
12
+ matplotlib.use("Agg")
13
+ import matplotlib.pyplot as plt
14
+
15
+ from racing_reports import ejes_data
16
+ from racing_reports.reports.bundle import FigureArtifact, ReportBundle
17
+ from racing_reports.reports.common import png_to_data_uri, save_figure
18
+
19
+ BG, FG, MUT = "#10141a", "#e5e7eb", "#9ca3af"
20
+ UP, DOWN, DOT = "#34d399", "#f87171", "#facc15"
21
+
22
+
23
+ def _style_axes(ax):
24
+ ax.set_facecolor(BG)
25
+ for s in ax.spines.values():
26
+ s.set_color("#374151")
27
+ ax.tick_params(colors=MUT, labelsize=9)
28
+ ax.axvline(0, color="#4b5563", lw=1, ls="--")
29
+
30
+
31
+ def _html_shell(title: str, subtitle: str, body: str) -> str:
32
+ return f"""<!doctype html><html lang="es"><head><meta charset="utf-8">
33
+ <title>{title}</title><style>
34
+ body{{background:{BG};color:{FG};font-family:-apple-system,'Segoe UI',Roboto,sans-serif;
35
+ margin:0;padding:24px;max-width:1100px;margin:auto}}
36
+ h1{{font-size:22px;color:#4ade80;margin:0 0 4px}} h2{{font-size:16px;margin:24px 0 8px;color:#a7f3d0}}
37
+ p.sub{{color:{MUT};font-size:13px;margin:0 0 18px}}
38
+ table{{border-collapse:collapse;width:100%;font-size:12.5px;margin:8px 0 18px}}
39
+ th,td{{padding:5px 9px;border-bottom:1px solid #1f2937;text-align:left}}
40
+ th{{color:{MUT};text-transform:uppercase;font-size:10px;letter-spacing:.05em}}
41
+ td.pos{{color:{UP}}} td.neg{{color:{DOWN}}}
42
+ img{{max-width:100%;border-radius:12px;margin:6px 0 14px}}
43
+ .note{{color:{MUT};font-size:11.5px}}
44
+ .grid{{display:grid;grid-template-columns:1fr 1fr;gap:24px}}
45
+ @media(max-width:800px){{.grid{{grid-template-columns:1fr}}}}
46
+ </style></head><body><h1>{title}</h1><p class="sub">{subtitle}</p>{body}</body></html>"""
47
+
48
+
49
+ def _cls(v: float) -> str:
50
+ return "pos" if v > 0 else ("neg" if v < 0 else "")
51
+
52
+
53
+ # ────────────────────────── PREVIO ──────────────────────────
54
+
55
+ def _fig_pre(pred: dict):
56
+ fig, axes = plt.subplots(1, 2, figsize=(12.5, 5.2), sharex=True)
57
+ fig.patch.set_facecolor(BG)
58
+ for ax, tinfo in zip(axes, pred["teams"]):
59
+ _style_axes(ax)
60
+ rows = tinfo["rows"]
61
+ ys = range(len(rows))
62
+ for y, r in zip(ys, rows):
63
+ a, b = r["norma_z"], r["pred_z"]
64
+ color = UP if b >= a else DOWN
65
+ ax.plot([a, b], [y, y], color=color, lw=3, solid_capstyle="round", zorder=2)
66
+ ax.scatter([a], [y], color=DOT, s=42, zorder=3)
67
+ ax.scatter([b], [y], color=color, s=64, zorder=3,
68
+ marker=">" if b >= a else "<")
69
+ ax.set_yticks(list(ys))
70
+ ax.set_yticklabels([r["label"] for r in rows], color=FG, fontsize=10)
71
+ ax.invert_yaxis()
72
+ ax.set_title(f"{tinfo['team']} (vs {tinfo['rival']})", color=FG, fontsize=12)
73
+ ax.set_xlabel("z vs liga (medias de partido)", color=MUT, fontsize=9)
74
+ fig.suptitle("Ejes de ataque esperados — punto amarillo = su norma, flecha = predicción del partido",
75
+ color=FG, fontsize=11, y=1.0)
76
+ fig.tight_layout()
77
+ return fig
78
+
79
+
80
+ def generate_pre(out_path: Path, league: str, season: str,
81
+ home_name: str, away_name: str) -> ReportBundle:
82
+ pred = ejes_data.pre_prediction(league, season, home_name, away_name)
83
+ out_dir = out_path.parent
84
+ fig = _fig_pre(pred)
85
+ png, svg = save_figure(fig, out_dir, "ejes_pre_prediccion")
86
+ plt.close(fig)
87
+
88
+ tables = []
89
+ for tinfo in pred["teams"]:
90
+ rows = "".join(
91
+ f"<tr><td>{r['label']}</td><td>{r['norma_z']:+.2f}</td>"
92
+ f"<td>{r['pred_z']:+.2f}</td>"
93
+ f"<td class='{_cls(r['delta_sigma'])}'>{r['delta_sigma']:+.2f}σ</td></tr>"
94
+ for r in sorted(tinfo["rows"], key=lambda x: -abs(x["delta_sigma"]))
95
+ )
96
+ tables.append(
97
+ f"<div><h2>{tinfo['team']}</h2>"
98
+ f"<table><tr><th>eje</th><th>su norma (z)</th><th>predicción (z)</th>"
99
+ f"<th>Δ esperado</th></tr>{rows}</table></div>"
100
+ )
101
+ body = (
102
+ f"<img src='{png_to_data_uri(png)}' alt='ejes previstos'>"
103
+ f"<div class='grid'>{''.join(tables)}</div>"
104
+ "<p class='note'>Predicción = generación propia × concesión del rival (regresión por eje, "
105
+ "leave-one-match-out). Δ en σ partido-a-partido: ±1σ = variación normal entre partidos. "
106
+ "El rival moldea sobre todo la elaboración y la rotura de líneas; robo alto y profundidad "
107
+ "son más oportunistas (menos predecibles).</p>"
108
+ )
109
+ html = _html_shell(
110
+ f"Ejes de ataque — previo: {home_name} vs {away_name}",
111
+ f"{league} {season} · qué dimensiones de ataque se esperan crecer/decrecer vs la norma de cada equipo",
112
+ body,
113
+ )
114
+ out_path.write_text(html, encoding="utf-8")
115
+ return ReportBundle(
116
+ report_type="ejes_pre", html_path=out_path,
117
+ figures=[FigureArtifact(name="ejes_pre_prediccion", title="Ejes esperados del partido",
118
+ section="Ejes de ataque", png_path=png, svg_path=svg)],
119
+ meta={"league": league, "season": season},
120
+ )
121
+
122
+
123
+ # ────────────────────────── POST ──────────────────────────
124
+
125
+ def _fig_post(sig: dict):
126
+ fig, axes = plt.subplots(1, 2, figsize=(12.5, 5.2), sharex=True)
127
+ fig.patch.set_facecolor(BG)
128
+ for ax, tinfo in zip(axes, sig["teams"]):
129
+ _style_axes(ax)
130
+ rows = tinfo["ejes"]
131
+ ys = range(len(rows))
132
+ vals = [r["dev_sigma"] for r in rows]
133
+ ax.barh(list(ys), vals, color=[UP if v >= 0 else DOWN for v in vals], height=0.55)
134
+ ax.set_yticks(list(ys))
135
+ ax.set_yticklabels([r["label"] for r in rows], color=FG, fontsize=10)
136
+ ax.invert_yaxis()
137
+ ax.set_title(f"{tinfo['team']} — {tinfo['tiros_real']} tiros "
138
+ f"(esp. {tinfo['tiros_esperados']}) · {tinfo['goles']} gol(es)",
139
+ color=FG, fontsize=11)
140
+ ax.set_xlabel("desvío vs su norma (σ partido-a-partido)", color=MUT, fontsize=9)
141
+ fig.suptitle("Firma de ataque del partido — qué usó de más (verde) y de menos (rojo) cada equipo",
142
+ color=FG, fontsize=11, y=1.0)
143
+ fig.tight_layout()
144
+ return fig
145
+
146
+
147
+ def generate_post(out_path: Path, league: str, season: str, home_name: str, away_name: str,
148
+ match_id: str | None = None, match_date: str | None = None) -> ReportBundle:
149
+ sig = ejes_data.post_signature(league, season, home_name, away_name,
150
+ match_id=match_id, match_date=match_date)
151
+ out_dir = out_path.parent
152
+ fig = _fig_post(sig)
153
+ png, svg = save_figure(fig, out_dir, "ejes_post_firma")
154
+ plt.close(fig)
155
+
156
+ blocks = []
157
+ for tinfo in sig["teams"]:
158
+ dif = tinfo["tiros_real"] - tinfo["tiros_esperados"]
159
+ ejec = (f"<p>Ejecución del día: <b>{tinfo['tiros_real']} tiros</b> vs "
160
+ f"{tinfo['tiros_esperados']} esperados por el modelo según sus jugadas "
161
+ f"(<span style='color:{UP if dif >= 0 else DOWN}'>{dif:+.1f}</span>) · "
162
+ f"{tinfo['goles']} gol(es) · {tinfo['n_seq']} secuencias.</p>")
163
+ ejes_rows = "".join(
164
+ f"<tr><td>{r['label']}</td><td>{r['partido_z']:+.2f}</td>"
165
+ f"<td>{r['norma_z']:+.2f}</td>"
166
+ f"<td class='{_cls(r['dev_sigma'])}'>{r['dev_sigma']:+.2f}σ</td></tr>"
167
+ for r in sorted(tinfo["ejes"], key=lambda x: -abs(x["dev_sigma"]))
168
+ )
169
+ movers_rows = "".join(
170
+ f"<tr><td><code>{m['variable']}</code></td><td>{m['hoy']}</td>"
171
+ f"<td>{m['norma']}</td>"
172
+ f"<td class='{_cls(m['dev_sigma'])}'>{m['dev_sigma']:+.1f}σ</td></tr>"
173
+ for m in tinfo["movers"]
174
+ )
175
+ blocks.append(
176
+ f"<div><h2>{tinfo['team']}</h2>{ejec}"
177
+ f"<table><tr><th>eje</th><th>partido (z)</th><th>su norma (z)</th><th>desvío</th></tr>"
178
+ f"{ejes_rows}</table>"
179
+ f"<h2 style='font-size:13px'>Variables que más se movieron</h2>"
180
+ f"<table><tr><th>variable</th><th>hoy</th><th>norma</th><th>desvío</th></tr>"
181
+ f"{movers_rows}</table></div>"
182
+ )
183
+ body = (
184
+ f"<img src='{png_to_data_uri(png)}' alt='firma del partido'>"
185
+ f"<div class='grid'>{''.join(blocks)}</div>"
186
+ "<p class='note'>Desvíos en σ partido-a-partido (±1σ = partido normal, ±2σ = inusual). "
187
+ "«Esperados» = suma de P(tiro) del modelo neutral sobre las jugadas reales del equipo: "
188
+ "positivo = sobre-ejecutó sus jugadas, negativo = las desperdició.</p>"
189
+ )
190
+ html = _html_shell(
191
+ f"Firma de ataque — {home_name} vs {away_name}" + (f" ({sig['fecha'][:10]})" if sig["fecha"] else ""),
192
+ f"{league} {season} · qué caracterizó el ataque de cada equipo vs su propia norma",
193
+ body,
194
+ )
195
+ out_path.write_text(html, encoding="utf-8")
196
+ return ReportBundle(
197
+ report_type="ejes_post", html_path=out_path,
198
+ figures=[FigureArtifact(name="ejes_post_firma", title="Firma de ataque del partido",
199
+ section="Ejes de ataque", png_path=png, svg_path=svg)],
200
+ meta={"league": league, "season": season, "match_id": sig["match_id"], "fecha": sig["fecha"]},
201
+ )
src/racing_reports/runner.py CHANGED
@@ -13,11 +13,12 @@ from racing_reports.config import DEFAULT_SETTINGS, Settings
13
  from racing_reports.datastore import DataStore
14
  from racing_reports.match_index import MatchIndex
15
  from racing_reports.models import ReportRequest, ReportResult
16
- from racing_reports.reports import block_zscore, post_match, pre_match, recuperaciones, triple_multitag
17
  from racing_reports.reports.bundle import ReportBundle
18
  from racing_reports.utils import git_commit, slugify, utc_now_iso, write_json
19
 
20
- VALID_REPORTS = {"pre_match", "post_match", "block_zscore", "triple_multitag", "triple_centros", "recuperaciones"}
 
21
 
22
 
23
  def _norm(text: str) -> str:
@@ -73,7 +74,8 @@ class ReportRunner:
73
  # post_match siempre corre el pre_match del mismo partido antes.
74
  if "post_match" in seen and "pre_match" not in seen:
75
  seen = ["pre_match"] + seen
76
- order = {"pre_match": 0, "block_zscore": 1, "triple_multitag": 2, "triple_centros": 3, "recuperaciones": 4, "post_match": 5}
 
77
  return sorted(dict.fromkeys(seen), key=lambda r: order[r])
78
 
79
  def run(self, request: ReportRequest) -> ReportResult:
@@ -98,10 +100,10 @@ class ReportRunner:
98
  home_name = match["home_team"]
99
  away_name = match["away_team"]
100
  match_date = match["date"]
101
- elif "post_match" in report_types:
102
  # Partido reciente sin matchId en el dataset: usamos lo que mandó el front
103
  # (local/visitante/fecha). El matchId real se resuelve más abajo desde el
104
- # preprocessed, una vez descargado.
105
  home_name = request.home_team
106
  away_name = request.away_team
107
  match_date = request.match_date or None
@@ -197,6 +199,24 @@ class ReportRunner:
197
  venue_a=flt.get("venue_a", flt.get("venue", "both")),
198
  venue_b=flt.get("venue_b", flt.get("venue", "both")),
199
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
  elif report_type == "post_match":
201
  # Si el partido no traía matchId (reciente, no está en el dataset),
202
  # lo resolvemos del preprocessed ya descargado por local/visitante/fecha.
 
13
  from racing_reports.datastore import DataStore
14
  from racing_reports.match_index import MatchIndex
15
  from racing_reports.models import ReportRequest, ReportResult
16
+ from racing_reports.reports import block_zscore, ejes, post_match, pre_match, recuperaciones, triple_multitag
17
  from racing_reports.reports.bundle import ReportBundle
18
  from racing_reports.utils import git_commit, slugify, utc_now_iso, write_json
19
 
20
+ VALID_REPORTS = {"pre_match", "post_match", "block_zscore", "triple_multitag", "triple_centros",
21
+ "recuperaciones", "ejes_pre", "ejes_post"}
22
 
23
 
24
  def _norm(text: str) -> str:
 
74
  # post_match siempre corre el pre_match del mismo partido antes.
75
  if "post_match" in seen and "pre_match" not in seen:
76
  seen = ["pre_match"] + seen
77
+ order = {"pre_match": 0, "block_zscore": 1, "triple_multitag": 2, "triple_centros": 3,
78
+ "recuperaciones": 4, "post_match": 5, "ejes_pre": 6, "ejes_post": 7}
79
  return sorted(dict.fromkeys(seen), key=lambda r: order[r])
80
 
81
  def run(self, request: ReportRequest) -> ReportResult:
 
100
  home_name = match["home_team"]
101
  away_name = match["away_team"]
102
  match_date = match["date"]
103
+ elif {"post_match", "ejes_post"} & set(report_types):
104
  # Partido reciente sin matchId en el dataset: usamos lo que mandó el front
105
  # (local/visitante/fecha). El matchId real se resuelve más abajo desde el
106
+ # preprocessed (post_match) o desde los artefactos de ejes (ejes_post).
107
  home_name = request.home_team
108
  away_name = request.away_team
109
  match_date = request.match_date or None
 
199
  venue_a=flt.get("venue_a", flt.get("venue", "both")),
200
  venue_b=flt.get("venue_b", flt.get("venue", "both")),
201
  )
202
+ elif report_type == "ejes_pre":
203
+ result = ejes.generate_pre(
204
+ out_path=out_path,
205
+ league=request.league,
206
+ season=str(request.season),
207
+ home_name=home_name,
208
+ away_name=away_name,
209
+ )
210
+ elif report_type == "ejes_post":
211
+ result = ejes.generate_post(
212
+ out_path=out_path,
213
+ league=request.league,
214
+ season=str(request.season),
215
+ home_name=home_name,
216
+ away_name=away_name,
217
+ match_id=request.match_id or None,
218
+ match_date=match_date,
219
+ )
220
  elif report_type == "post_match":
221
  # Si el partido no traía matchId (reciente, no está en el dataset),
222
  # lo resolvemos del preprocessed ya descargado por local/visitante/fecha.
src/racing_reports/web/app.py CHANGED
@@ -17,6 +17,7 @@ from racing_reports.api.routes_jobs import router as api_jobs_router
17
  from racing_reports.api.routes_meta import router as api_meta_router
18
  from racing_reports.api.routes_reports import router as api_reports_router
19
  from racing_reports.api.routes_team_vars import router as api_team_vars_router
 
20
  from racing_reports.config import DEFAULT_SETTINGS
21
  from racing_reports.datastore import DataStore
22
  from racing_reports.match_index import MatchIndex
@@ -41,6 +42,7 @@ app.include_router(api_meta_router)
41
  app.include_router(api_reports_router)
42
  app.include_router(api_jobs_router)
43
  app.include_router(api_team_vars_router)
 
44
 
45
  # Estado en memoria (single container en HF Space). Re-export para retrocompat.
46
  Job = jobs_mod.Job
 
17
  from racing_reports.api.routes_meta import router as api_meta_router
18
  from racing_reports.api.routes_reports import router as api_reports_router
19
  from racing_reports.api.routes_team_vars import router as api_team_vars_router
20
+ from racing_reports.api.routes_ejes import router as api_ejes_router
21
  from racing_reports.config import DEFAULT_SETTINGS
22
  from racing_reports.datastore import DataStore
23
  from racing_reports.match_index import MatchIndex
 
42
  app.include_router(api_reports_router)
43
  app.include_router(api_jobs_router)
44
  app.include_router(api_team_vars_router)
45
+ app.include_router(api_ejes_router)
46
 
47
  # Estado en memoria (single container en HF Space). Re-export para retrocompat.
48
  Job = jobs_mod.Job
src/racing_reports/web/templates/home.html CHANGED
@@ -199,6 +199,19 @@
199
  </div>
200
  </template>
201
  </article>
 
 
 
 
 
 
 
 
 
 
 
 
 
202
  </section>
203
  </div>
204
  </template>
@@ -439,6 +452,55 @@
439
  </table>
440
  </div>
441
  </section>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
442
  </div>
443
  </template>
444
 
@@ -549,6 +611,10 @@
549
  tvpLeague:'', tvpSeason:'', tvpSeasons:[], tvpTeam:'', tvpTeams:[], tvpScope:'liga',
550
  tvpVars:[''], tvpResult:null, tvpLoading:false, tvpError:'', tvpZmax:3, tvpShowMean:false, tvpShowBest:false,
551
  tvsScope:'all', tvsResult:null, tvsLoading:false, tvsError:'',
 
 
 
 
552
 
553
  async init() { await this.loadLeagues(); await this.loadSeasons(false); await this.loadTeams(); this._refreshHealth(); },
554
  async _getJSON(u){ const r=await fetch(u); if(!r.ok) throw new Error((await r.json().catch(()=>({detail:r.statusText}))).detail); return r.json(); },
@@ -578,6 +644,7 @@
578
  this.tvpOnLeague();
579
  this.tvLoaded = true;
580
  } catch(e){ this.tvError = 'No se pudieron cargar las opciones: '+e; }
 
581
  },
582
  tvpPct(z){ const m=this.tvpZmax||3; const c=Math.max(-m,Math.min(m,z)); return 50 + c/m*50; },
583
  tvpAddVar(){ this.tvpVars.push(''); },
@@ -711,7 +778,7 @@
711
  async onSeasonChange(){ await this.loadTeams(); },
712
 
713
  async _refreshHealth(){ try{ const r=await fetch('/api/health'); if(r.ok){ this.preprocessedCached=!!(await r.json()).preprocessed_cached; } }catch(_e){} },
714
- reportTitle(id){ return ({pre_match:'Reporte previo (head-to-head)',block_zscore:'Bloques (z-score)',triple_multitag:'Triple Análisis (Multi-Tag)',triple_centros:'Triple Análisis (Centros)',recuperaciones:'Recuperaciones',post_match:'Reporte post-partido'})[id]||id; },
715
  visibleFigures(rt,figs){ return this.onlyFigure ? figs.filter(f=>f.name===this.onlyFigure) : figs; },
716
  async toggleCatalog(id){
717
  const r=this.reports[id]; r.catalogOpen=!r.catalogOpen;
@@ -720,7 +787,7 @@
720
  async runFull(id){ await this.runOne(id, null); },
721
  async runOne(id, figName){
722
  if (!this.teamA){ alert('Elegí el Equipo A.'); return; }
723
- const isMatch = (id==='pre_match');
724
  if (isMatch && !this.teamB){ alert('Elegí local y visitante.'); return; }
725
  const teamB = isMatch ? this.teamB : (this.compareTwo ? this.teamB : '');
726
  if (teamB && teamB===this.teamA){ alert('A y B deben ser distintos.'); return; }
@@ -751,6 +818,79 @@
751
  },
752
  _pmErr(m){ this.postMatchMsg=m; this.postMatchMsgError=true; },
753
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
754
  async _post(id, body, figName, title){
755
  let resp;
756
  try { resp=await fetch(`/api/reports/${id}/run`,{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify(body)}); }
 
199
  </div>
200
  </template>
201
  </article>
202
+
203
+ <article class="bg-ink-700 border border-ink-600 rounded-2xl p-5">
204
+ <h3 class="font-semibold">Ejes de ataque — previo</h3>
205
+ <p class="text-xs text-gray-400 mt-1 mb-3">Qué dimensiones de ataque (verticalidad, elaboración, 1v1, rotura de líneas, profundidad…) se espera que crezcan o decrezcan para cada equipo vs su norma, según la generación propia y la concesión del rival.</p>
206
+ <button @click="runFull('ejes_pre')" class="bg-racing-500 hover:bg-racing-600 text-racing-900 font-semibold px-4 py-2 rounded-lg text-sm">Generar ejes previo</button>
207
+ </article>
208
+
209
+ <article class="bg-ink-700 border border-ink-600 rounded-2xl p-5">
210
+ <h3 class="font-semibold">Ejes de ataque — post-partido (firma)</h3>
211
+ <p class="text-xs text-gray-400 mt-1 mb-3">Del último cruce jugado entre <strong x-text="teamA||'A'"></strong> y <strong x-text="teamB||'B'"></strong>: qué ejes usó de más/menos cada equipo vs su norma, ejecución del día (tiros reales vs esperados por el modelo) y las variables que más se movieron.</p>
212
+ <button @click="ejRunPost()" class="bg-racing-500 hover:bg-racing-600 text-racing-900 font-semibold px-4 py-2 rounded-lg text-sm">Generar firma del partido</button>
213
+ <p class="text-xs mt-2" :class="ejPostMsgError ? 'text-red-300' : 'text-gray-400'" x-text="ejPostMsg"></p>
214
+ </article>
215
  </section>
216
  </div>
217
  </template>
 
452
  </table>
453
  </div>
454
  </section>
455
+
456
+ <!-- ---- Ejes ataque/defensa (scatter interactivo) ---- -->
457
+ <section class="bg-ink-700 border border-ink-600 rounded-2xl p-5 mt-2">
458
+ <h2 class="text-lg font-semibold text-racing-500 mb-1">5. Ejes ataque/defensa</h2>
459
+ <p class="text-xs text-gray-400 mb-3">Los 8 ejes de ataque por equipo: qué GENERA cada uno y qué CONCEDE, en identidad (z vs su liga) o rendimiento (pp de tiro vs liga en jugadas de ese eje). Hover = equipo y valores.</p>
460
+ <div class="flex flex-wrap items-end gap-3 mb-3">
461
+ <div>
462
+ <label class="block text-xs text-gray-400 mb-1">Liga</label>
463
+ <select x-model="ejLeague" @change="ejOnLeague()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
464
+ <template x-for="l in ejLeagueList" :key="l"><option :value="l" x-text="l"></option></template>
465
+ </select>
466
+ </div>
467
+ <div>
468
+ <label class="block text-xs text-gray-400 mb-1">Temporada</label>
469
+ <select x-model="ejSeason" @change="ejLoad()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
470
+ <template x-for="s in ejSeasons" :key="s"><option :value="s" x-text="s"></option></template>
471
+ </select>
472
+ </div>
473
+ <div>
474
+ <label class="block text-xs text-gray-400 mb-1">Eje X</label>
475
+ <select x-model="ejX" @change="ejDraw()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
476
+ <template x-for="(lbl,k) in ejLabels" :key="k"><option :value="k" x-text="lbl"></option></template>
477
+ </select>
478
+ </div>
479
+ <div>
480
+ <label class="block text-xs text-gray-400 mb-1">Eje Y</label>
481
+ <select x-model="ejY" @change="ejDraw()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
482
+ <template x-for="(lbl,k) in ejLabels" :key="k"><option :value="k" x-text="lbl"></option></template>
483
+ </select>
484
+ </div>
485
+ <div>
486
+ <label class="block text-xs text-gray-400 mb-1">Lado</label>
487
+ <select x-model="ejLado" @change="ejDraw()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
488
+ <option value="gen">Generación</option><option value="con">Concesión</option>
489
+ </select>
490
+ </div>
491
+ <div>
492
+ <label class="block text-xs text-gray-400 mb-1">Métrica</label>
493
+ <select x-model="ejMet" @change="ejDraw()" class="bg-ink-800 border border-ink-600 rounded-lg px-3 py-2 text-sm">
494
+ <option value="z">Identidad (z)</option><option value="dif">Rendimiento (pp vs liga)</option>
495
+ </select>
496
+ </div>
497
+ </div>
498
+ <p class="text-xs text-red-300 mb-2" x-show="ejError" x-text="ejError"></p>
499
+ <div id="ejwrap" style="position:relative">
500
+ <svg id="ejsvg" width="100%" height="440" viewBox="0 0 980 440"></svg>
501
+ <div id="ejtip" style="position:absolute;display:none;pointer-events:none;background:#1f2937;border:1px solid #4b5563;border-radius:8px;padding:6px 10px;font-size:12px;max-width:230px;z-index:10"></div>
502
+ </div>
503
+ </section>
504
  </div>
505
  </template>
506
 
 
611
  tvpLeague:'', tvpSeason:'', tvpSeasons:[], tvpTeam:'', tvpTeams:[], tvpScope:'liga',
612
  tvpVars:[''], tvpResult:null, tvpLoading:false, tvpError:'', tvpZmax:3, tvpShowMean:false, tvpShowBest:false,
613
  tvsScope:'all', tvsResult:null, tvsLoading:false, tvsError:'',
614
+ // Ejes ataque/defensa (scatter)
615
+ ejLeagues:{}, ejLeagueList:[], ejLeague:'', ejSeason:'', ejSeasons:[], ejLabels:{},
616
+ ejX:'elaboracion', ejY:'verticalidad', ejLado:'gen', ejMet:'z', ejData:null, ejError:'', ejLoaded:false,
617
+ ejPostMsg:'', ejPostMsgError:false,
618
 
619
  async init() { await this.loadLeagues(); await this.loadSeasons(false); await this.loadTeams(); this._refreshHealth(); },
620
  async _getJSON(u){ const r=await fetch(u); if(!r.ok) throw new Error((await r.json().catch(()=>({detail:r.statusText}))).detail); return r.json(); },
 
644
  this.tvpOnLeague();
645
  this.tvLoaded = true;
646
  } catch(e){ this.tvError = 'No se pudieron cargar las opciones: '+e; }
647
+ this.ejInit();
648
  },
649
  tvpPct(z){ const m=this.tvpZmax||3; const c=Math.max(-m,Math.min(m,z)); return 50 + c/m*50; },
650
  tvpAddVar(){ this.tvpVars.push(''); },
 
778
  async onSeasonChange(){ await this.loadTeams(); },
779
 
780
  async _refreshHealth(){ try{ const r=await fetch('/api/health'); if(r.ok){ this.preprocessedCached=!!(await r.json()).preprocessed_cached; } }catch(_e){} },
781
+ reportTitle(id){ return ({pre_match:'Reporte previo (head-to-head)',block_zscore:'Bloques (z-score)',triple_multitag:'Triple Análisis (Multi-Tag)',triple_centros:'Triple Análisis (Centros)',recuperaciones:'Recuperaciones',post_match:'Reporte post-partido',ejes_pre:'Ejes de ataque — previo',ejes_post:'Ejes de ataque — firma del partido'})[id]||id; },
782
  visibleFigures(rt,figs){ return this.onlyFigure ? figs.filter(f=>f.name===this.onlyFigure) : figs; },
783
  async toggleCatalog(id){
784
  const r=this.reports[id]; r.catalogOpen=!r.catalogOpen;
 
787
  async runFull(id){ await this.runOne(id, null); },
788
  async runOne(id, figName){
789
  if (!this.teamA){ alert('Elegí el Equipo A.'); return; }
790
+ const isMatch = (id==='pre_match' || id==='ejes_pre');
791
  if (isMatch && !this.teamB){ alert('Elegí local y visitante.'); return; }
792
  const teamB = isMatch ? this.teamB : (this.compareTwo ? this.teamB : '');
793
  if (teamB && teamB===this.teamA){ alert('A y B deben ser distintos.'); return; }
 
818
  },
819
  _pmErr(m){ this.postMatchMsg=m; this.postMatchMsgError=true; },
820
 
821
+ async ejRunPost(){
822
+ this.ejPostMsg=''; this.ejPostMsgError=false;
823
+ if (!this.teamA||!this.teamB){ this.ejPostMsg='Elegí los dos equipos.'; this.ejPostMsgError=true; return; }
824
+ if (this.teamA===this.teamB){ this.ejPostMsg='A y B deben ser distintos.'; this.ejPostMsgError=true; return; }
825
+ this.ejPostMsg='Usa el último cruce jugado entre ambos (según artefactos de ejes).';
826
+ await this._post('ejes_post', { league:this.league, season:this.season, team_a:this.teamA, team_b:this.teamB, filters:{}, only:[] }, null, `Ejes — firma: ${this.teamA} vs ${this.teamB}`);
827
+ },
828
+ async ejInit(){
829
+ if (this.ejLoaded) return;
830
+ try {
831
+ const o = await this._getJSON('/api/ejes/options');
832
+ this.ejLeagues = o.leagues||{}; this.ejLabels = o.ejes||{};
833
+ this.ejLeagueList = Object.keys(this.ejLeagues).sort();
834
+ if (!this.ejLeagueList.length){ this.ejError='No hay artefactos de ejes disponibles.'; return; }
835
+ this.ejLeague = this.ejLeagueList.find(l=>l.toLowerCase().includes('segunda')) || this.ejLeagueList[0];
836
+ this.ejLoaded = true;
837
+ this.ejOnLeague();
838
+ } catch(e){ this.ejError='Error cargando ejes: '+e; }
839
+ },
840
+ ejOnLeague(){
841
+ this.ejSeasons = (this.ejLeagues[this.ejLeague]||[]).slice().sort().reverse();
842
+ this.ejSeason = this.ejSeasons[0]||'';
843
+ this.ejLoad();
844
+ },
845
+ async ejLoad(){
846
+ this.ejError=''; this.ejData=null;
847
+ if (!this.ejLeague||!this.ejSeason) return;
848
+ try {
849
+ this.ejData = await this._getJSON(`/api/ejes/profiles?league=${encodeURIComponent(this.ejLeague)}&season=${encodeURIComponent(this.ejSeason)}`);
850
+ await this.$nextTick(); this.ejDraw();
851
+ } catch(e){ this.ejError='Error: '+e; }
852
+ },
853
+ ejDraw(){
854
+ const svg=document.getElementById('ejsvg'), tip=document.getElementById('ejtip'), wrap=document.getElementById('ejwrap');
855
+ if (!svg||!this.ejData) return;
856
+ svg.innerHTML='';
857
+ const NS='http://www.w3.org/2000/svg', W=980, H=440, M={l:56,r:20,t:14,b:46};
858
+ const met=this.ejMet, lado=this.ejLado, ex=this.ejX, ey=this.ejY, labels=this.ejLabels;
859
+ const pts=Object.entries(this.ejData.teams).map(([team,d])=>{
860
+ const a=(d[lado]||{})[ex]||{}, b=(d[lado]||{})[ey]||{};
861
+ return {team, x:a[met], y:b[met]};
862
+ }).filter(p=>p.x!=null&&p.y!=null);
863
+ if (!pts.length) return;
864
+ const ext=Math.max(...pts.map(p=>Math.max(Math.abs(p.x),Math.abs(p.y))))*1.15||1;
865
+ const X=v=>M.l+((v+ext)/(2*ext))*(W-M.l-M.r), Y=v=>H-M.b-((v+ext)/(2*ext))*(H-M.t-M.b);
866
+ const el=(tag,attrs)=>{const e=document.createElementNS(NS,tag);for(const k in attrs)e.setAttribute(k,attrs[k]);svg.appendChild(e);return e;};
867
+ el('line',{x1:M.l,y1:Y(0),x2:W-M.r,y2:Y(0),stroke:'#4b5563','stroke-dasharray':'4 4'});
868
+ el('line',{x1:X(0),y1:M.t,x2:X(0),y2:H-M.b,stroke:'#4b5563','stroke-dasharray':'4 4'});
869
+ const unit = met==='z'?'':'pp';
870
+ const tx1=el('text',{x:W-M.r,y:Y(0)-8,'font-size':'12','text-anchor':'end',fill:'#9ca3af'}); tx1.textContent=(labels[ex]||ex)+' alto →';
871
+ const ty1=el('text',{x:X(0)+6,y:M.t+12,'font-size':'12',fill:'#9ca3af'}); ty1.textContent='↑ '+(labels[ey]||ey)+' alto';
872
+ [-1,-0.5,0.5,1].forEach(f=>{
873
+ const v=+(f*ext).toFixed(1);
874
+ const a=el('text',{x:X(v),y:H-M.b+16,'font-size':'11','text-anchor':'middle',fill:'#6b7280'}); a.textContent=v+unit;
875
+ const b=el('text',{x:M.l-8,y:Y(v)+4,'font-size':'11','text-anchor':'end',fill:'#6b7280'}); b.textContent=v+unit;
876
+ });
877
+ pts.forEach(pt=>{
878
+ const racing = pt.team==='Racing de Santander';
879
+ const c=el('circle',{cx:X(pt.x),cy:Y(pt.y),r:racing?8:6,fill:racing?'#f59e0b':'#9ca3af','fill-opacity':racing?1:0.7,stroke:'#111827','stroke-width':1});
880
+ c.style.cursor='pointer';
881
+ if (racing){ const l=el('text',{x:X(pt.x)+11,y:Y(pt.y)+4,'font-size':'12','font-weight':'600',fill:'#e5e7eb'}); l.textContent='Racing'; }
882
+ c.addEventListener('mousemove',ev=>{
883
+ const r=wrap.getBoundingClientRect();
884
+ tip.style.display='block';
885
+ tip.style.left=Math.min(ev.clientX-r.left+14,r.width-240)+'px';
886
+ tip.style.top=(ev.clientY-r.top+10)+'px';
887
+ const fx=met==='z'?pt.x.toFixed(2):pt.x.toFixed(1)+'pp', fy=met==='z'?pt.y.toFixed(2):pt.y.toFixed(1)+'pp';
888
+ tip.innerHTML='<b>'+pt.team+'</b><br>'+(labels[ex]||ex)+': '+fx+'<br>'+(labels[ey]||ey)+': '+fy;
889
+ c.setAttribute('r',racing?10:8);
890
+ });
891
+ c.addEventListener('mouseleave',()=>{ tip.style.display='none'; c.setAttribute('r',racing?8:6); });
892
+ });
893
+ },
894
  async _post(id, body, figName, title){
895
  let resp;
896
  try { resp=await fetch(`/api/reports/${id}/run`,{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify(body)}); }
vendor/data/ejes/_index.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "english-football-league---championship": "English Football League - Championship",
3
+ "uefa-conference-league": "UEFA Conference League",
4
+ "danish-superligaen": "Danish Superligaen",
5
+ "english-premier-league": "English Premier League",
6
+ "spanish-segunda-division": "Spanish Segunda Division",
7
+ "french-ligue-1": "French Ligue 1",
8
+ "belgian-challenger-pro-league": "Belgian Challenger Pro League",
9
+ "serbian-super-liga": "Serbian Super Liga",
10
+ "chile-primera": "Chile Primera",
11
+ "spanish-la-liga": "Spanish La Liga",
12
+ "norwegian-eliteserien": "Norwegian Eliteserien",
13
+ "polish-ekstraklasa": "Polish Ekstraklasa",
14
+ "swedish-allsvenskan": "Swedish Allsvenskan",
15
+ "italian-serie-a": "Italian Serie A",
16
+ "german-bundesliga": "German Bundesliga",
17
+ "liga-profesional-argentina": "Liga Profesional Argentina",
18
+ "dutch-eredivisie": "Dutch Eredivisie",
19
+ "croatia-prva-hnl": "Croatia Prva HNL",
20
+ "uefa-champions-league": "UEFA Champions League",
21
+ "french-ligue-2": "French Ligue 2",
22
+ "uefa-europa-league": "UEFA Europa League",
23
+ "ecuador-liga-pro": "Ecuador Liga Pro",
24
+ "brack-super-league": "Brack Super League",
25
+ "portuguese-primeira-liga": "Portuguese Primeira Liga",
26
+ "dutch-eerste-divisie": "Dutch Eerste Divisie",
27
+ "italian-serie-b": "Italian Serie B",
28
+ "german-bundesliga-zwei": "German Bundesliga Zwei",
29
+ "austrian-bundesliga": "Austrian Bundesliga"
30
+ }
vendor/data/ejes/austrian-bundesliga/25-26/ejes_definition.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
vendor/data/ejes/austrian-bundesliga/25-26/match_team_ejes.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:34ac9709b1400fa0f71928e8538614ea303347633aa3836934bd6af16f0c57a0
3
+ size 50362
vendor/data/ejes/austrian-bundesliga/25-26/match_team_vars.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:369d7898e2b3bfea976781f4c9157f5e1ee61f0f787961eec669b47e88f66b0d
3
+ size 188615
vendor/data/ejes/austrian-bundesliga/25-26/predictor.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": {"gen": 0.8698, "con": 0.7797, "intercept": 0.0142}, "elaboracion": {"gen": 0.8787, "con": 0.8584, "intercept": 0.0001}, "individual": {"gen": 0.8901, "con": 0.5205, "intercept": 0.0002}, "rotura_lineas": {"gen": 0.7177, "con": 0.8074, "intercept": -0.0006}, "amplitud_centro": {"gen": 0.7346, "con": 0.7682, "intercept": -0.0003}, "profundidad_espalda": {"gen": 0.5978, "con": 0.8096, "intercept": -0.0008}, "robo_alto": {"gen": 0.8745, "con": 0.7521, "intercept": 0.0036}, "aereo_segunda": {"gen": 0.8563, "con": 0.803, "intercept": 0.0004}}
vendor/data/ejes/austrian-bundesliga/25-26/scales.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"var_sigma": {"atk_l": 2.2706, "atk_w": 1.2243, "ball_distance": 44.4577, "behind_line_ok": 0.023, "broke_last_line": 0.0154, "broke_second_last": 0.041, "cross_pvadded_max": 0.0013, "dang_runs": 0.0682, "deep_completions": 0.1132, "def_h": 3.0438, "dribbles_box": 0.0098, "dribbles_last_third": 0.0221, "duration_s": 18.4642, "hold_max": 1.5917, "hold_mean": 1.0796, "hold_min": 1.0543, "line_breaks": 0.221, "max_x": 3.9481, "n_centros": 0.0456, "n_events": 1.725, "n_involved": 0.1619, "n_passes": 0.5913, "opt_quality_mean": 0.1432, "paredes": 0.0976, "pass_options_mean": 1.5337, "passes_behind_line": 0.0388, "pct_adentro": 0.0381, "pct_afuera": 0.0364, "pct_cortos": 0.0458, "pct_headpass": 0.0156, "pct_largos": 0.0471, "pct_launch": 0.0374, "pct_layoff": 0.0051, "pct_medios": 0.0381, "pct_switch": 0.0044, "pct_through": 0.0041, "pct_verticales": 0.0575, "pelotazos_espalda": 0.0338, "press_final": 0.4181, "press_media": 0.2789, "prog_x": 2.5661, "start_x": 4.5257, "starts_from_dispossess": 0.0161, "takeons_ok": 0.0195, "tempo": 0.0397, "transition_speed": 0.6923, "verticalidad_media": 0.0731}, "eje_sigma": {"eje_verticalidad": 0.1181, "eje_elaboracion": 0.1026, "eje_individual": 0.0618, "eje_rotura_lineas": 0.064, "eje_amplitud_centro": 0.0577, "eje_profundidad_espalda": 0.0861, "eje_robo_alto": 0.0959, "eje_aereo_segunda": 0.069}, "eje_match_mean": {"eje_verticalidad": -0.0219, "eje_elaboracion": -0.0002, "eje_individual": -0.0006, "eje_rotura_lineas": 0.0012, "eje_amplitud_centro": 0.0005, "eje_profundidad_espalda": 0.002, "eje_robo_alto": -0.0058, "eje_aereo_segunda": -0.0007}, "eje_match_std": {"eje_verticalidad": 0.1337, "eje_elaboracion": 0.1181, "eje_individual": 0.0709, "eje_rotura_lineas": 0.0679, "eje_amplitud_centro": 0.061, "eje_profundidad_espalda": 0.0894, "eje_robo_alto": 0.1101, "eje_aereo_segunda": 0.0777}, "team_var_norm": {"Austria Wien": {"atk_l": 37.247, "atk_w": 32.686, "ball_distance": 95.8914, "behind_line_ok": 0.0588, "broke_last_line": 0.0385, "broke_second_last": 0.1505, "cross_pvadded_max": 0.0006, "dang_runs": 0.1003, "deep_completions": 0.3634, "def_h": 29.9407, "dribbles_box": 0.0129, "dribbles_last_third": 0.0537, "duration_s": 23.1901, "hold_max": 9.295, "hold_mean": 5.7404, "hold_min": 3.6356, "line_breaks": 0.4531, "max_x": 69.8701, "n_centros": 0.1382, "n_events": 5.158, "n_involved": 1.8105, "n_passes": 2.7692, "opt_quality_mean": 0.0356, "paredes": 0.2203, "pass_options_mean": 8.9608, "passes_behind_line": 0.1417, "pct_adentro": 0.5338, "pct_afuera": 0.3929, "pct_cortos": 0.3773, "pct_headpass": 0.051, "pct_largos": 0.2148, "pct_launch": 0.1055, "pct_layoff": 0.0081, "pct_medios": 0.3364, "pct_switch": 0.0038, "pct_through": 0.0024, "pct_verticales": 0.5019, "pelotazos_espalda": 0.1037, "press_final": 2.5633, "press_media": 1.9129, "prog_x": 24.159, "start_x": 46.5474, "starts_from_dispossess": 0.0354, "takeons_ok": 0.0416, "tempo": 0.3993, "transition_speed": 3.7005, "verticalidad_media": 0.3542}, "Blau-Weiß Linz": {"atk_l": 40.3425, "atk_w": 32.0728, "ball_distance": 95.329, "behind_line_ok": 0.0407, "broke_last_line": 0.0209, "broke_second_last": 0.1355, "cross_pvadded_max": 0.0007, "dang_runs": 0.0886, "deep_completions": 0.3024, "def_h": 31.1582, "dribbles_box": 0.0061, "dribbles_last_third": 0.0382, "duration_s": 23.8606, "hold_max": 9.6337, "hold_mean": 5.5424, "hold_min": 3.3149, "line_breaks": 0.4172, "max_x": 68.1032, "n_centros": 0.1065, "n_events": 5.1708, "n_involved": 1.8724, "n_passes": 2.6514, "opt_quality_mean": 0.0319, "paredes": 0.1892, "pass_options_mean": 8.7267, "passes_behind_line": 0.1273, "pct_adentro": 0.5311, "pct_afuera": 0.3883, "pct_cortos": 0.3636, "pct_headpass": 0.053, "pct_largos": 0.2152, "pct_launch": 0.1207, "pct_layoff": 0.0104, "pct_medios": 0.3414, "pct_switch": 0.004, "pct_through": 0.0022, "pct_verticales": 0.5002, "pelotazos_espalda": 0.0979, "press_final": 2.5448, "press_media": 1.9086, "prog_x": 24.2207, "start_x": 45.1211, "starts_from_dispossess": 0.0421, "takeons_ok": 0.0362, "tempo": 0.4309, "transition_speed": 4.1346, "verticalidad_media": 0.3545}, "Grazer AK": {"atk_l": 40.2141, "atk_w": 32.9616, "ball_distance": 98.1642, "behind_line_ok": 0.0507, "broke_last_line": 0.0238, "broke_second_last": 0.1241, "cross_pvadded_max": 0.0003, "dang_runs": 0.1149, "deep_completions": 0.2145, "def_h": 32.8187, "dribbles_box": 0.0077, "dribbles_last_third": 0.0413, "duration_s": 23.4329, "hold_max": 10.3087, "hold_mean": 6.4454, "hold_min": 4.2461, "line_breaks": 0.4437, "max_x": 66.4975, "n_centros": 0.0956, "n_events": 4.9511, "n_involved": 1.7903, "n_passes": 2.5623, "opt_quality_mean": -0.0602, "paredes": 0.1616, "pass_options_mean": 8.6827, "passes_behind_line": 0.145, "pct_adentro": 0.5227, "pct_afuera": 0.3887, "pct_cortos": 0.3186, "pct_headpass": 0.0532, "pct_largos": 0.2686, "pct_launch": 0.1167, "pct_layoff": 0.0118, "pct_medios": 0.325, "pct_switch": 0.0053, "pct_through": 0.003, "pct_verticales": 0.5119, "pelotazos_espalda": 0.1131, "press_final": 2.4958, "press_media": 1.8163, "prog_x": 25.7852, "start_x": 41.848, "starts_from_dispossess": 0.0338, "takeons_ok": 0.0375, "tempo": 0.3873, "transition_speed": 4.142, "verticalidad_media": 0.3695}, "Hartberg": {"atk_l": 40.9458, "atk_w": 32.2481, "ball_distance": 94.8591, "behind_line_ok": 0.0527, "broke_last_line": 0.0221, "broke_second_last": 0.1256, "cross_pvadded_max": 0.0007, "dang_runs": 0.0981, "deep_completions": 0.2012, "def_h": 35.3189, "dribbles_box": 0.0091, "dribbles_last_third": 0.0426, "duration_s": 28.7856, "hold_max": 10.7828, "hold_mean": 6.949, "hold_min": 4.7359, "line_breaks": 0.4465, "max_x": 63.3581, "n_centros": 0.0694, "n_events": 5.277, "n_involved": 1.6715, "n_passes": 2.5464, "opt_quality_mean": -0.1231, "paredes": 0.1739, "pass_options_mean": 8.8033, "passes_behind_line": 0.1367, "pct_adentro": 0.4849, "pct_afuera": 0.4285, "pct_cortos": 0.3245, "pct_headpass": 0.0411, "pct_largos": 0.2704, "pct_launch": 0.1133, "pct_layoff": 0.0106, "pct_medios": 0.3197, "pct_switch": 0.0068, "pct_through": 0.003, "pct_verticales": 0.5487, "pelotazos_espalda": 0.1058, "press_final": 2.6448, "press_media": 1.8088, "prog_x": 27.5093, "start_x": 37.1227, "starts_from_dispossess": 0.0421, "takeons_ok": 0.038, "tempo": 0.3486, "transition_speed": 4.1107, "verticalidad_media": 0.4257}, "LASK": {"atk_l": 41.2851, "atk_w": 32.9391, "ball_distance": 128.0927, "behind_line_ok": 0.0561, "broke_last_line": 0.0327, "broke_second_last": 0.1543, "cross_pvadded_max": 0.0016, "dang_runs": 0.1747, "deep_completions": 0.3753, "def_h": 31.0286, "dribbles_box": 0.0128, "dribbles_last_third": 0.0554, "duration_s": 32.9366, "hold_max": 10.1356, "hold_mean": 6.0665, "hold_min": 3.8436, "line_breaks": 0.5511, "max_x": 68.8257, "n_centros": 0.1395, "n_events": 5.9959, "n_involved": 1.8257, "n_passes": 2.9937, "opt_quality_mean": 0.076, "paredes": 0.232, "pass_options_mean": 8.9176, "passes_behind_line": 0.1284, "pct_adentro": 0.514, "pct_afuera": 0.3894, "pct_cortos": 0.35, "pct_headpass": 0.0425, "pct_largos": 0.21, "pct_launch": 0.0799, "pct_layoff": 0.0084, "pct_medios": 0.3444, "pct_switch": 0.0057, "pct_through": 0.0036, "pct_verticales": 0.4663, "pelotazos_espalda": 0.0923, "press_final": 2.5412, "press_media": 1.8247, "prog_x": 25.0972, "start_x": 44.8983, "starts_from_dispossess": 0.0402, "takeons_ok": 0.0577, "tempo": 0.353, "transition_speed": 3.3731, "verticalidad_media": 0.3412}, "Rapid": {"atk_l": 41.5174, "atk_w": 32.1031, "ball_distance": 141.9981, "behind_line_ok": 0.05, "broke_last_line": 0.024, "broke_second_last": 0.1525, "cross_pvadded_max": 0.0013, "dang_runs": 0.1577, "deep_completions": 0.2972, "def_h": 30.8785, "dribbles_box": 0.0139, "dribbles_last_third": 0.0612, "duration_s": 29.5006, "hold_max": 10.5411, "hold_mean": 6.2131, "hold_min": 3.8774, "line_breaks": 0.684, "max_x": 68.8984, "n_centros": 0.1429, "n_events": 6.0217, "n_involved": 1.9196, "n_passes": 3.3233, "opt_quality_mean": 0.0602, "paredes": 0.2988, "pass_options_mean": 9.0017, "passes_behind_line": 0.1311, "pct_adentro": 0.5146, "pct_afuera": 0.4005, "pct_cortos": 0.3702, "pct_headpass": 0.0482, "pct_largos": 0.1975, "pct_launch": 0.0816, "pct_layoff": 0.01, "pct_medios": 0.3486, "pct_switch": 0.0043, "pct_through": 0.0033, "pct_verticales": 0.4505, "pelotazos_espalda": 0.0937, "press_final": 2.603, "press_media": 1.8846, "prog_x": 24.9013, "start_x": 44.9249, "starts_from_dispossess": 0.0455, "takeons_ok": 0.0588, "tempo": 0.3932, "transition_speed": 3.3221, "verticalidad_media": 0.2935}, "Rheindorf Altach": {"atk_l": 39.4675, "atk_w": 31.7876, "ball_distance": 96.4901, "behind_line_ok": 0.0442, "broke_last_line": 0.0224, "broke_second_last": 0.1538, "cross_pvadded_max": 0.0008, "dang_runs": 0.105, "deep_completions": 0.2442, "def_h": 32.1346, "dribbles_box": 0.0104, "dribbles_last_third": 0.0438, "duration_s": 33.3833, "hold_max": 9.9646, "hold_mean": 6.1328, "hold_min": 4.0123, "line_breaks": 0.4756, "max_x": 67.0237, "n_centros": 0.1018, "n_events": 6.0242, "n_involved": 1.7962, "n_passes": 2.7682, "opt_quality_mean": -0.0168, "paredes": 0.207, "pass_options_mean": 8.7443, "passes_behind_line": 0.1371, "pct_adentro": 0.5031, "pct_afuera": 0.4164, "pct_cortos": 0.3587, "pct_headpass": 0.0558, "pct_largos": 0.232, "pct_launch": 0.1228, "pct_layoff": 0.0113, "pct_medios": 0.33, "pct_switch": 0.0058, "pct_through": 0.0014, "pct_verticales": 0.504, "pelotazos_espalda": 0.1091, "press_final": 2.423, "press_media": 1.8048, "prog_x": 24.8434, "start_x": 43.2419, "starts_from_dispossess": 0.0376, "takeons_ok": 0.0406, "tempo": 0.3904, "transition_speed": 3.7629, "verticalidad_media": 0.3538}, "Ried": {"atk_l": 38.9549, "atk_w": 32.3391, "ball_distance": 85.088, "behind_line_ok": 0.0501, "broke_last_line": 0.0276, "broke_second_last": 0.127, "cross_pvadded_max": 0.001, "dang_runs": 0.0733, "deep_completions": 0.2673, "def_h": 29.5834, "dribbles_box": 0.0098, "dribbles_last_third": 0.0581, "duration_s": 21.8472, "hold_max": 11.7491, "hold_mean": 7.7604, "hold_min": 5.4566, "line_breaks": 0.4445, "max_x": 68.8824, "n_centros": 0.0974, "n_events": 4.8076, "n_involved": 1.7582, "n_passes": 2.4681, "opt_quality_mean": 0.0981, "paredes": 0.1307, "pass_options_mean": 8.5107, "passes_behind_line": 0.1205, "pct_adentro": 0.5328, "pct_afuera": 0.3765, "pct_cortos": 0.3386, "pct_headpass": 0.0604, "pct_largos": 0.2558, "pct_launch": 0.1117, "pct_layoff": 0.0072, "pct_medios": 0.3173, "pct_switch": 0.0073, "pct_through": 0.0047, "pct_verticales": 0.5036, "pelotazos_espalda": 0.0936, "press_final": 2.4642, "press_media": 1.8193, "prog_x": 24.0286, "start_x": 46.0996, "starts_from_dispossess": 0.0416, "takeons_ok": 0.0509, "tempo": 0.3592, "transition_speed": 3.6727, "verticalidad_media": 0.3676}, "Salzburg": {"atk_l": 39.2285, "atk_w": 32.0684, "ball_distance": 131.7378, "behind_line_ok": 0.0494, "broke_last_line": 0.0308, "broke_second_last": 0.1669, "cross_pvadded_max": 0.0017, "dang_runs": 0.1174, "deep_completions": 0.3746, "def_h": 30.1495, "dribbles_box": 0.0165, "dribbles_last_third": 0.078, "duration_s": 22.8739, "hold_max": 8.86, "hold_mean": 5.2821, "hold_min": 3.2415, "line_breaks": 0.6184, "max_x": 69.0844, "n_centros": 0.1169, "n_events": 5.4983, "n_involved": 1.926, "n_passes": 3.3505, "opt_quality_mean": 0.112, "paredes": 0.3006, "pass_options_mean": 8.9275, "passes_behind_line": 0.1135, "pct_adentro": 0.5313, "pct_afuera": 0.388, "pct_cortos": 0.4335, "pct_headpass": 0.0382, "pct_largos": 0.1608, "pct_launch": 0.0677, "pct_layoff": 0.0099, "pct_medios": 0.3259, "pct_switch": 0.004, "pct_through": 0.0042, "pct_verticales": 0.4583, "pelotazos_espalda": 0.0722, "press_final": 2.7401, "press_media": 1.9344, "prog_x": 23.1434, "start_x": 46.906, "starts_from_dispossess": 0.0484, "takeons_ok": 0.0615, "tempo": 0.3852, "transition_speed": 3.0373, "verticalidad_media": 0.2968}, "Sturm Graz": {"atk_l": 36.3699, "atk_w": 32.3511, "ball_distance": 91.0502, "behind_line_ok": 0.051, "broke_last_line": 0.0259, "broke_second_last": 0.162, "cross_pvadded_max": 0.0015, "dang_runs": 0.1131, "deep_completions": 0.3484, "def_h": 29.1157, "dribbles_box": 0.0178, "dribbles_last_third": 0.0769, "duration_s": 20.4032, "hold_max": 9.5345, "hold_mean": 6.0523, "hold_min": 4.0559, "line_breaks": 0.4662, "max_x": 70.1849, "n_centros": 0.1193, "n_events": 4.8627, "n_involved": 1.8065, "n_passes": 2.6476, "opt_quality_mean": 0.0896, "paredes": 0.2027, "pass_options_mean": 8.8573, "passes_behind_line": 0.1187, "pct_adentro": 0.5315, "pct_afuera": 0.3776, "pct_cortos": 0.3846, "pct_headpass": 0.0449, "pct_largos": 0.2107, "pct_launch": 0.0849, "pct_layoff": 0.0109, "pct_medios": 0.3148, "pct_switch": 0.0022, "pct_through": 0.0031, "pct_verticales": 0.4816, "pelotazos_espalda": 0.0821, "press_final": 2.6735, "press_media": 1.9529, "prog_x": 24.1674, "start_x": 47.5494, "starts_from_dispossess": 0.0416, "takeons_ok": 0.0565, "tempo": 0.3991, "transition_speed": 3.7804, "verticalidad_media": 0.3456}, "WSG Tirol": {"atk_l": 40.0213, "atk_w": 32.019, "ball_distance": 96.3509, "behind_line_ok": 0.0423, "broke_last_line": 0.0179, "broke_second_last": 0.1501, "cross_pvadded_max": 0.0008, "dang_runs": 0.0978, "deep_completions": 0.2368, "def_h": 31.3692, "dribbles_box": 0.0077, "dribbles_last_third": 0.0466, "duration_s": 21.532, "hold_max": 10.6256, "hold_mean": 6.7855, "hold_min": 4.4376, "line_breaks": 0.4576, "max_x": 67.0537, "n_centros": 0.101, "n_events": 4.8154, "n_involved": 1.8301, "n_passes": 2.5913, "opt_quality_mean": 0.0194, "paredes": 0.1677, "pass_options_mean": 8.6004, "passes_behind_line": 0.1213, "pct_adentro": 0.5455, "pct_afuera": 0.3705, "pct_cortos": 0.3451, "pct_headpass": 0.0612, "pct_largos": 0.2378, "pct_launch": 0.1137, "pct_layoff": 0.0107, "pct_medios": 0.3352, "pct_switch": 0.0068, "pct_through": 0.0036, "pct_verticales": 0.4902, "pelotazos_espalda": 0.0993, "press_final": 2.5085, "press_media": 1.8154, "prog_x": 23.1411, "start_x": 45.3298, "starts_from_dispossess": 0.0368, "takeons_ok": 0.0364, "tempo": 0.3957, "transition_speed": 3.8002, "verticalidad_media": 0.3514}, "Wolfsberger AC": {"atk_l": 41.192, "atk_w": 32.9606, "ball_distance": 118.7524, "behind_line_ok": 0.0584, "broke_last_line": 0.0234, "broke_second_last": 0.1606, "cross_pvadded_max": 0.0009, "dang_runs": 0.1349, "deep_completions": 0.3315, "def_h": 31.9163, "dribbles_box": 0.0093, "dribbles_last_third": 0.0415, "duration_s": 25.9303, "hold_max": 9.9586, "hold_mean": 5.9875, "hold_min": 3.7005, "line_breaks": 0.5378, "max_x": 68.2962, "n_centros": 0.1089, "n_events": 5.5011, "n_involved": 1.8751, "n_passes": 3.0365, "opt_quality_mean": -0.0127, "paredes": 0.2402, "pass_options_mean": 8.5688, "passes_behind_line": 0.1457, "pct_adentro": 0.534, "pct_afuera": 0.394, "pct_cortos": 0.3343, "pct_headpass": 0.0417, "pct_largos": 0.2253, "pct_launch": 0.0923, "pct_layoff": 0.0112, "pct_medios": 0.3695, "pct_switch": 0.0062, "pct_through": 0.003, "pct_verticales": 0.4906, "pelotazos_espalda": 0.11, "press_final": 2.4757, "press_media": 1.8019, "prog_x": 26.2267, "start_x": 42.9304, "starts_from_dispossess": 0.0396, "takeons_ok": 0.0429, "tempo": 0.3935, "transition_speed": 3.8297, "verticalidad_media": 0.3405}}, "team_eje_norm_gen": {"Austria Wien": {"eje_verticalidad": -0.0177, "eje_elaboracion": 0.0116, "eje_individual": -0.0068, "eje_rotura_lineas": 0.0135, "eje_amplitud_centro": 0.0197, "eje_profundidad_espalda": 0.0476, "eje_robo_alto": 0.0223, "eje_aereo_segunda": -0.0029}, "Blau-Weiß Linz": {"eje_verticalidad": -0.0028, "eje_elaboracion": -0.0189, "eje_individual": -0.0478, "eje_rotura_lineas": -0.0297, "eje_amplitud_centro": -0.0164, "eje_profundidad_espalda": -0.0086, "eje_robo_alto": 0.0124, "eje_aereo_segunda": 0.0341}, "Grazer AK": {"eje_verticalidad": 0.0465, "eje_elaboracion": -0.0674, "eje_individual": -0.0305, "eje_rotura_lineas": -0.0251, "eje_amplitud_centro": -0.0191, "eje_profundidad_espalda": -0.0027, "eje_robo_alto": -0.0708, "eje_aereo_segunda": 0.0372}, "Hartberg": {"eje_verticalidad": 0.0993, "eje_elaboracion": -0.0555, "eje_individual": -0.0314, "eje_rotura_lineas": -0.0262, "eje_amplitud_centro": -0.0003, "eje_profundidad_espalda": -0.0172, "eje_robo_alto": -0.1389, "eje_aereo_segunda": 0.0014}, "LASK": {"eje_verticalidad": -0.0708, "eje_elaboracion": 0.0234, "eje_individual": 0.0383, "eje_rotura_lineas": 0.0263, "eje_amplitud_centro": 0.0303, "eje_profundidad_espalda": 0.0296, "eje_robo_alto": 0.0033, "eje_aereo_segunda": -0.0498}, "Rapid": {"eje_verticalidad": -0.1135, "eje_elaboracion": 0.0874, "eje_individual": 0.042, "eje_rotura_lineas": 0.0269, "eje_amplitud_centro": 0.0348, "eje_profundidad_espalda": -0.0011, "eje_robo_alto": 0.0173, "eje_aereo_segunda": -0.0273}, "Rheindorf Altach": {"eje_verticalidad": -0.0043, "eje_elaboracion": 0.0016, "eje_individual": -0.0219, "eje_rotura_lineas": -0.0124, "eje_amplitud_centro": 0.0157, "eje_profundidad_espalda": -0.0086, "eje_robo_alto": -0.0346, "eje_aereo_segunda": 0.0476}, "Ried": {"eje_verticalidad": 0.0145, "eje_elaboracion": -0.0755, "eje_individual": -0.008, "eje_rotura_lineas": -0.008, "eje_amplitud_centro": -0.0152, "eje_profundidad_espalda": -0.0189, "eje_robo_alto": 0.0295, "eje_aereo_segunda": 0.019}, "Salzburg": {"eje_verticalidad": -0.1426, "eje_elaboracion": 0.127, "eje_individual": 0.0543, "eje_rotura_lineas": 0.0433, "eje_amplitud_centro": -0.0055, "eje_profundidad_espalda": -0.0055, "eje_robo_alto": 0.0621, "eje_aereo_segunda": -0.0652}, "Sturm Graz": {"eje_verticalidad": -0.0395, "eje_elaboracion": -0.0024, "eje_individual": 0.0493, "eje_rotura_lineas": 0.0066, "eje_amplitud_centro": -0.0241, "eje_profundidad_espalda": -0.0009, "eje_robo_alto": 0.0568, "eje_aereo_segunda": -0.0246}, "WSG Tirol": {"eje_verticalidad": -0.0089, "eje_elaboracion": -0.0465, "eje_individual": -0.0321, "eje_rotura_lineas": -0.012, "eje_amplitud_centro": -0.0201, "eje_profundidad_espalda": -0.0327, "eje_robo_alto": 0.0028, "eje_aereo_segunda": 0.0432}, "Wolfsberger AC": {"eje_verticalidad": -0.0203, "eje_elaboracion": 0.0144, "eje_individual": -0.0139, "eje_rotura_lineas": 0.0107, "eje_amplitud_centro": 0.0057, "eje_profundidad_espalda": 0.0442, "eje_robo_alto": -0.0354, "eje_aereo_segunda": -0.02}}, "team_eje_norm_con": {"Austria Wien": {"eje_verticalidad": -0.0239, "eje_elaboracion": 0.0268, "eje_individual": 0.0092, "eje_rotura_lineas": -0.0036, "eje_amplitud_centro": -0.0231, "eje_profundidad_espalda": -0.0253, "eje_robo_alto": -0.0593, "eje_aereo_segunda": -0.0105}, "Blau-Weiß Linz": {"eje_verticalidad": 0.0105, "eje_elaboracion": -0.017, "eje_individual": -0.0059, "eje_rotura_lineas": -0.0179, "eje_amplitud_centro": -0.0295, "eje_profundidad_espalda": -0.0107, "eje_robo_alto": 0.0003, "eje_aereo_segunda": 0.0337}, "Grazer AK": {"eje_verticalidad": -0.0044, "eje_elaboracion": -0.0095, "eje_individual": -0.0306, "eje_rotura_lineas": -0.0187, "eje_amplitud_centro": 0.0067, "eje_profundidad_espalda": 0.0015, "eje_robo_alto": 0.0139, "eje_aereo_segunda": 0.0236}, "Hartberg": {"eje_verticalidad": -0.1528, "eje_elaboracion": 0.1432, "eje_individual": 0.0429, "eje_rotura_lineas": 0.0668, "eje_amplitud_centro": 0.061, "eje_profundidad_espalda": 0.1009, "eje_robo_alto": 0.0981, "eje_aereo_segunda": -0.0786}, "LASK": {"eje_verticalidad": -0.0583, "eje_elaboracion": 0.0429, "eje_individual": -0.0034, "eje_rotura_lineas": 0.0262, "eje_amplitud_centro": 0.0068, "eje_profundidad_espalda": 0.0189, "eje_robo_alto": 0.0036, "eje_aereo_segunda": -0.0408}, "Rapid": {"eje_verticalidad": -0.0182, "eje_elaboracion": -0.001, "eje_individual": -0.0053, "eje_rotura_lineas": 0.0174, "eje_amplitud_centro": -0.0055, "eje_profundidad_espalda": 0.0079, "eje_robo_alto": -0.0211, "eje_aereo_segunda": -0.0008}, "Rheindorf Altach": {"eje_verticalidad": 0.013, "eje_elaboracion": -0.057, "eje_individual": 0.0056, "eje_rotura_lineas": -0.0279, "eje_amplitud_centro": 0.0006, "eje_profundidad_espalda": 0.0212, "eje_robo_alto": 0.0106, "eje_aereo_segunda": 0.0153}, "Ried": {"eje_verticalidad": 0.0104, "eje_elaboracion": -0.0453, "eje_individual": -0.0006, "eje_rotura_lineas": -0.0161, "eje_amplitud_centro": -0.0011, "eje_profundidad_espalda": -0.0012, "eje_robo_alto": -0.018, "eje_aereo_segunda": 0.0303}, "Salzburg": {"eje_verticalidad": 0.0184, "eje_elaboracion": -0.0499, "eje_individual": -0.0167, "eje_rotura_lineas": -0.0182, "eje_amplitud_centro": -0.0074, "eje_profundidad_espalda": -0.0265, "eje_robo_alto": -0.0592, "eje_aereo_segunda": 0.009}, "Sturm Graz": {"eje_verticalidad": 0.0475, "eje_elaboracion": -0.0673, "eje_individual": 0.001, "eje_rotura_lineas": -0.0246, "eje_amplitud_centro": -0.0011, "eje_profundidad_espalda": -0.0324, "eje_robo_alto": -0.0528, "eje_aereo_segunda": 0.0263}, "WSG Tirol": {"eje_verticalidad": -0.067, "eje_elaboracion": 0.0289, "eje_individual": -0.0234, "eje_rotura_lineas": 0.0196, "eje_amplitud_centro": 0.0064, "eje_profundidad_espalda": -0.015, "eje_robo_alto": 0.0153, "eje_aereo_segunda": 0.0025}, "Wolfsberger AC": {"eje_verticalidad": -0.0402, "eje_elaboracion": 0.0072, "eje_individual": 0.0199, "eje_rotura_lineas": 0.0122, "eje_amplitud_centro": -0.0069, "eje_profundidad_espalda": -0.0141, "eje_robo_alto": 0.0011, "eje_aereo_segunda": -0.0201}}}
vendor/data/ejes/austrian-bundesliga/25-26/team_profiles.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1784b7725e7c99c700c598a05c435111093633695beb78b206a076c9b86dedff
3
+ size 8157
vendor/data/ejes/belgian-challenger-pro-league/25-26/ejes_definition.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
vendor/data/ejes/belgian-challenger-pro-league/25-26/match_team_ejes.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4cfab575bd22847b5ff6a5b97be3c5479d525e1bcf91cb4d8ce62ee364669212
3
+ size 67505
vendor/data/ejes/belgian-challenger-pro-league/25-26/match_team_vars.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2061185f9c5c4ce62dfed0afa9b3bc3b4be377c0b5684d646c30dec3e7e883e9
3
+ size 249583
vendor/data/ejes/belgian-challenger-pro-league/25-26/predictor.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": {"gen": 0.9531, "con": 0.4901, "intercept": 0.013}, "elaboracion": {"gen": -0.1909, "con": -0.2175, "intercept": 0.5071}, "individual": {"gen": -0.1567, "con": -0.172, "intercept": 0.3343}, "rotura_lineas": {"gen": 0.9102, "con": 0.7676, "intercept": 0.0}, "amplitud_centro": {"gen": -0.1782, "con": -0.2534, "intercept": 0.2314}, "profundidad_espalda": {"gen": -0.1951, "con": -0.3453, "intercept": 0.223}, "robo_alto": {"gen": 0.8256, "con": 0.7802, "intercept": 0.0057}, "aereo_segunda": {"gen": 0.9255, "con": 0.6728, "intercept": 0.0007}}
vendor/data/ejes/belgian-challenger-pro-league/25-26/scales.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"var_sigma": {"atk_l": 1.7236, "atk_w": 1.3367, "ball_distance": 45.3685, "behind_line_ok": 0.029, "broke_last_line": 0.0186, "broke_second_last": 0.0467, "cross_pvadded_max": 0.0158, "dang_runs": 0.0845, "deep_completions": 8.084, "def_h": 2.9379, "dribbles_box": 0.3954, "dribbles_last_third": 1.7019, "duration_s": 410.166, "hold_max": 27.4279, "hold_mean": 0.8223, "hold_min": 0.8067, "line_breaks": 0.2539, "max_x": 4.8193, "n_centros": 2.6303, "n_events": 128.7672, "n_involved": 0.1519, "n_passes": 71.4463, "opt_quality_mean": 0.1382, "paredes": 7.4493, "pass_options_mean": 1.9819, "passes_behind_line": 0.0477, "pct_adentro": 0.0333, "pct_afuera": 0.0318, "pct_cortos": 0.0526, "pct_headpass": 0.014, "pct_largos": 0.0441, "pct_launch": 0.0311, "pct_layoff": 0.0052, "pct_medios": 0.0427, "pct_switch": 0.0047, "pct_through": 0.0035, "pct_verticales": 0.0483, "pelotazos_espalda": 0.0383, "press_final": 0.4256, "press_media": 0.2962, "prog_x": 5.9722, "start_x": 5.5229, "starts_from_dispossess": 0.0171, "takeons_ok": 1.343, "tempo": 0.0393, "transition_speed": 0.6974, "verticalidad_media": 0.0573}, "eje_sigma": {"eje_verticalidad": 0.105, "eje_elaboracion": 4.8283, "eje_individual": 3.6518, "eje_rotura_lineas": 0.0663, "eje_amplitud_centro": 2.1898, "eje_profundidad_espalda": 1.9536, "eje_robo_alto": 0.1165, "eje_aereo_segunda": 0.0651}, "eje_match_mean": {"eje_verticalidad": -0.0293, "eje_elaboracion": 0.36, "eje_individual": 0.2516, "eje_rotura_lineas": -0.0001, "eje_amplitud_centro": 0.1616, "eje_profundidad_espalda": 0.1448, "eje_robo_alto": -0.0094, "eje_aereo_segunda": -0.0011}, "eje_match_std": {"eje_verticalidad": 0.1307, "eje_elaboracion": 4.8926, "eje_individual": 3.7017, "eje_rotura_lineas": 0.0752, "eje_amplitud_centro": 2.2192, "eje_profundidad_espalda": 1.9796, "eje_robo_alto": 0.1263, "eje_aereo_segunda": 0.0749}, "team_var_norm": {"Anderlecht II": {"atk_l": 42.7023, "atk_w": 33.6565, "ball_distance": 108.4924, "behind_line_ok": 0.039, "broke_last_line": 0.0329, "broke_second_last": 0.1626, "cross_pvadded_max": 0.0007, "dang_runs": 0.1557, "deep_completions": 0.3214, "def_h": 33.0482, "dribbles_box": 0.0086, "dribbles_last_third": 0.0596, "duration_s": 21.3761, "hold_max": 9.6916, "hold_mean": 5.5692, "hold_min": 3.1803, "line_breaks": 0.5548, "max_x": 66.6222, "n_centros": 0.1146, "n_events": 5.1205, "n_involved": 1.7985, "n_passes": 3.1867, "opt_quality_mean": 0.0335, "paredes": 0.2571, "pass_options_mean": 8.3246, "passes_behind_line": 0.1044, "pct_adentro": 0.5025, "pct_afuera": 0.3977, "pct_cortos": 0.3868, "pct_headpass": 0.0251, "pct_largos": 0.1748, "pct_launch": 0.0722, "pct_layoff": 0.0103, "pct_medios": 0.3397, "pct_switch": 0.0043, "pct_through": 0.0031, "pct_verticales": 0.4433, "pelotazos_espalda": 0.0788, "press_final": 2.4448, "press_media": 1.7429, "prog_x": 24.205, "start_x": 43.9027, "starts_from_dispossess": 0.0428, "takeons_ok": 0.0503, "tempo": 0.3429, "transition_speed": 3.0991, "verticalidad_media": 0.2968}, "Beerschot": {"atk_l": 42.0656, "atk_w": 32.7335, "ball_distance": 132.7431, "behind_line_ok": 0.0659, "broke_last_line": 0.0359, "broke_second_last": 0.1651, "cross_pvadded_max": 0.0019, "dang_runs": 0.1623, "deep_completions": 0.432, "def_h": 29.485, "dribbles_box": 0.0135, "dribbles_last_third": 0.0638, "duration_s": 38.6316, "hold_max": 10.2034, "hold_mean": 5.4474, "hold_min": 3.1964, "line_breaks": 0.7118, "max_x": 70.6205, "n_centros": 0.1534, "n_events": 6.8399, "n_involved": 1.9132, "n_passes": 3.3892, "opt_quality_mean": 0.1204, "paredes": 0.2979, "pass_options_mean": 8.9905, "passes_behind_line": 0.1352, "pct_adentro": 0.5198, "pct_afuera": 0.3892, "pct_cortos": 0.4038, "pct_headpass": 0.0434, "pct_largos": 0.179, "pct_launch": 0.0746, "pct_layoff": 0.0103, "pct_medios": 0.3271, "pct_switch": 0.0026, "pct_through": 0.0026, "pct_verticales": 0.4541, "pelotazos_espalda": 0.0905, "press_final": 2.4449, "press_media": 1.803, "prog_x": 24.2624, "start_x": 47.5923, "starts_from_dispossess": 0.044, "takeons_ok": 0.0482, "tempo": 0.3688, "transition_speed": 3.0466, "verticalidad_media": 0.292}, "Beveren": {"atk_l": 41.0241, "atk_w": 33.3067, "ball_distance": 122.413, "behind_line_ok": 0.0808, "broke_last_line": 0.048, "broke_second_last": 0.1845, "cross_pvadded_max": 0.0016, "dang_runs": 0.1393, "deep_completions": 0.466, "def_h": 29.3237, "dribbles_box": 0.0103, "dribbles_last_third": 0.0567, "duration_s": 28.2254, "hold_max": 8.6793, "hold_mean": 4.8505, "hold_min": 2.7619, "line_breaks": 0.6345, "max_x": 71.179, "n_centros": 0.1604, "n_events": 5.8005, "n_involved": 1.9507, "n_passes": 3.3716, "opt_quality_mean": 0.093, "paredes": 0.3283, "pass_options_mean": 8.6394, "passes_behind_line": 0.1482, "pct_adentro": 0.5238, "pct_afuera": 0.3987, "pct_cortos": 0.3809, "pct_headpass": 0.0528, "pct_largos": 0.1811, "pct_launch": 0.0836, "pct_layoff": 0.0098, "pct_medios": 0.362, "pct_switch": 0.0053, "pct_through": 0.0026, "pct_verticales": 0.4627, "pelotazos_espalda": 0.1065, "press_final": 2.3571, "press_media": 1.8452, "prog_x": 23.8641, "start_x": 48.3481, "starts_from_dispossess": 0.0423, "takeons_ok": 0.0468, "tempo": 0.3802, "transition_speed": 3.2266, "verticalidad_media": 0.305}, "Club Brugge II": {"atk_l": 44.162, "atk_w": 33.1305, "ball_distance": 147.6823, "behind_line_ok": 0.0541, "broke_last_line": 0.0352, "broke_second_last": 0.1646, "cross_pvadded_max": 0.0007, "dang_runs": 0.171, "deep_completions": 0.3324, "def_h": 33.8166, "dribbles_box": 0.0116, "dribbles_last_third": 0.0631, "duration_s": 34.7632, "hold_max": 9.2318, "hold_mean": 4.9813, "hold_min": 2.6801, "line_breaks": 0.6448, "max_x": 64.8806, "n_centros": 0.1024, "n_events": 6.5448, "n_involved": 1.9336, "n_passes": 3.7212, "opt_quality_mean": -0.0205, "paredes": 0.3756, "pass_options_mean": 8.8121, "passes_behind_line": 0.1158, "pct_adentro": 0.5125, "pct_afuera": 0.3976, "pct_cortos": 0.4346, "pct_headpass": 0.0362, "pct_largos": 0.1508, "pct_launch": 0.0581, "pct_layoff": 0.0114, "pct_medios": 0.3251, "pct_switch": 0.0044, "pct_through": 0.0026, "pct_verticales": 0.4396, "pelotazos_espalda": 0.0749, "press_final": 2.434, "press_media": 1.8098, "prog_x": 24.3783, "start_x": 41.5743, "starts_from_dispossess": 0.0428, "takeons_ok": 0.0608, "tempo": 0.3505, "transition_speed": 2.9031, "verticalidad_media": 0.293}, "Eupen": {"atk_l": 41.2861, "atk_w": 33.2173, "ball_distance": 143.9648, "behind_line_ok": 0.0603, "broke_last_line": 0.0322, "broke_second_last": 0.14, "cross_pvadded_max": 0.0054, "dang_runs": 0.1731, "deep_completions": 4.1136, "def_h": 33.6418, "dribbles_box": 0.069, "dribbles_last_third": 0.3257, "duration_s": 200.8216, "hold_max": 11.6946, "hold_mean": 5.6515, "hold_min": 3.3081, "line_breaks": 0.6267, "max_x": 65.5531, "n_centros": 1.0627, "n_events": 58.6838, "n_involved": 1.914, "n_passes": 34.4793, "opt_quality_mean": -0.0468, "paredes": 3.9103, "pass_options_mean": 8.661, "passes_behind_line": 0.1352, "pct_adentro": 0.5129, "pct_afuera": 0.4048, "pct_cortos": 0.3855, "pct_headpass": 0.0474, "pct_largos": 0.1885, "pct_launch": 0.0874, "pct_layoff": 0.013, "pct_medios": 0.3453, "pct_switch": 0.0034, "pct_through": 0.0026, "pct_verticales": 0.4774, "pelotazos_espalda": 0.0985, "press_final": 2.5297, "press_media": 1.8093, "prog_x": 26.4393, "start_x": 40.2952, "starts_from_dispossess": 0.0384, "takeons_ok": 0.287, "tempo": 0.3612, "transition_speed": 3.0764, "verticalidad_media": 0.3318}, "Francs Borains": {"atk_l": 41.514, "atk_w": 32.453, "ball_distance": 99.395, "behind_line_ok": 0.0491, "broke_last_line": 0.0293, "broke_second_last": 0.1348, "cross_pvadded_max": 0.0009, "dang_runs": 0.1231, "deep_completions": 0.3149, "def_h": 31.8689, "dribbles_box": 0.0068, "dribbles_last_third": 0.0436, "duration_s": 22.832, "hold_max": 8.9889, "hold_mean": 5.2805, "hold_min": 3.1411, "line_breaks": 0.512, "max_x": 67.4857, "n_centros": 0.1434, "n_events": 5.0785, "n_involved": 1.8496, "n_passes": 2.8164, "opt_quality_mean": 0.0405, "paredes": 0.2249, "pass_options_mean": 8.8496, "passes_behind_line": 0.1101, "pct_adentro": 0.5087, "pct_afuera": 0.3955, "pct_cortos": 0.4125, "pct_headpass": 0.0506, "pct_largos": 0.1864, "pct_launch": 0.091, "pct_layoff": 0.0119, "pct_medios": 0.306, "pct_switch": 0.0027, "pct_through": 0.0028, "pct_verticales": 0.4912, "pelotazos_espalda": 0.0777, "press_final": 2.4829, "press_media": 1.9075, "prog_x": 23.9258, "start_x": 44.6318, "starts_from_dispossess": 0.0488, "takeons_ok": 0.0428, "tempo": 0.3932, "transition_speed": 3.7052, "verticalidad_media": 0.3595}, "Genk II": {"atk_l": 43.4091, "atk_w": 33.2013, "ball_distance": 132.6249, "behind_line_ok": 0.0577, "broke_last_line": 0.0305, "broke_second_last": 0.1619, "cross_pvadded_max": 0.0013, "dang_runs": 0.1497, "deep_completions": 0.3047, "def_h": 33.6594, "dribbles_box": 0.0157, "dribbles_last_third": 0.0744, "duration_s": 32.5447, "hold_max": 10.0733, "hold_mean": 5.4793, "hold_min": 3.0274, "line_breaks": 0.5921, "max_x": 65.5494, "n_centros": 0.1036, "n_events": 6.1324, "n_involved": 1.8419, "n_passes": 3.3311, "opt_quality_mean": -0.0034, "paredes": 0.295, "pass_options_mean": 9.037, "passes_behind_line": 0.1225, "pct_adentro": 0.4893, "pct_afuera": 0.4155, "pct_cortos": 0.3732, "pct_headpass": 0.0311, "pct_largos": 0.1645, "pct_launch": 0.0679, "pct_layoff": 0.0099, "pct_medios": 0.368, "pct_switch": 0.0038, "pct_through": 0.0035, "pct_verticales": 0.4403, "pelotazos_espalda": 0.0862, "press_final": 2.6084, "press_media": 1.8353, "prog_x": 24.8843, "start_x": 41.9394, "starts_from_dispossess": 0.0473, "takeons_ok": 0.0746, "tempo": 0.3442, "transition_speed": 3.0561, "verticalidad_media": 0.2966}, "Gent II": {"atk_l": 41.7624, "atk_w": 32.2808, "ball_distance": 149.3387, "behind_line_ok": 0.0532, "broke_last_line": 0.035, "broke_second_last": 0.1945, "cross_pvadded_max": 0.0007, "dang_runs": 0.1451, "deep_completions": 0.3367, "def_h": 32.2867, "dribbles_box": 0.0089, "dribbles_last_third": 0.0544, "duration_s": 13.2771, "hold_max": 8.7088, "hold_mean": 4.8438, "hold_min": 2.6242, "line_breaks": 0.8061, "max_x": 66.1935, "n_centros": 0.0923, "n_events": 4.9849, "n_involved": 1.9343, "n_passes": 3.845, "opt_quality_mean": 0.0191, "paredes": 0.402, "pass_options_mean": 9.0581, "passes_behind_line": 0.1207, "pct_adentro": 0.5149, "pct_afuera": 0.3979, "pct_cortos": 0.4521, "pct_headpass": 0.031, "pct_largos": 0.1475, "pct_launch": 0.0635, "pct_layoff": 0.0118, "pct_medios": 0.3148, "pct_switch": 0.0045, "pct_through": 0.0025, "pct_verticales": 0.4174, "pelotazos_espalda": 0.0892, "press_final": 2.7271, "press_media": 2.0007, "prog_x": 22.855, "start_x": 44.6312, "starts_from_dispossess": 0.0481, "takeons_ok": 0.0507, "tempo": 0.3756, "transition_speed": 2.7206, "verticalidad_media": 0.2474}, "Kortrijk": {"atk_l": 43.5605, "atk_w": 33.7216, "ball_distance": 95.2631, "behind_line_ok": 0.0476, "broke_last_line": 0.0355, "broke_second_last": 0.1465, "cross_pvadded_max": 0.0014, "dang_runs": 0.1479, "deep_completions": 0.3544, "def_h": 30.4878, "dribbles_box": 0.0126, "dribbles_last_third": 0.058, "duration_s": 35.5824, "hold_max": 9.2574, "hold_mean": 5.5852, "hold_min": 3.3717, "line_breaks": 0.5453, "max_x": 68.8767, "n_centros": 0.1434, "n_events": 6.2775, "n_involved": 1.8281, "n_passes": 2.8543, "opt_quality_mean": 0.0733, "paredes": 0.2063, "pass_options_mean": 8.7037, "passes_behind_line": 0.1116, "pct_adentro": 0.54, "pct_afuera": 0.3711, "pct_cortos": 0.3921, "pct_headpass": 0.049, "pct_largos": 0.1961, "pct_launch": 0.0836, "pct_layoff": 0.0087, "pct_medios": 0.3241, "pct_switch": 0.006, "pct_through": 0.0038, "pct_verticales": 0.4743, "pelotazos_espalda": 0.0792, "press_final": 2.4428, "press_media": 1.8601, "prog_x": 23.2068, "start_x": 46.9456, "starts_from_dispossess": 0.0473, "takeons_ok": 0.0503, "tempo": 0.3756, "transition_speed": 3.5697, "verticalidad_media": 0.3395}, "Lierse SK": {"atk_l": 42.1223, "atk_w": 32.8715, "ball_distance": 97.8209, "behind_line_ok": 0.0481, "broke_last_line": 0.0259, "broke_second_last": 0.1459, "cross_pvadded_max": 0.0013, "dang_runs": 0.1267, "deep_completions": 0.3098, "def_h": 31.8162, "dribbles_box": 0.0098, "dribbles_last_third": 0.0637, "duration_s": 33.9616, "hold_max": 10.3114, "hold_mean": 5.938, "hold_min": 3.4401, "line_breaks": 0.4807, "max_x": 66.8774, "n_centros": 0.1211, "n_events": 6.1301, "n_involved": 1.8072, "n_passes": 2.9127, "opt_quality_mean": 0.004, "paredes": 0.2363, "pass_options_mean": 8.1575, "passes_behind_line": 0.1095, "pct_adentro": 0.527, "pct_afuera": 0.3893, "pct_cortos": 0.3835, "pct_headpass": 0.0539, "pct_largos": 0.1943, "pct_launch": 0.0848, "pct_layoff": 0.0109, "pct_medios": 0.3391, "pct_switch": 0.003, "pct_through": 0.0024, "pct_verticales": 0.4971, "pelotazos_espalda": 0.0791, "press_final": 2.3644, "press_media": 1.7755, "prog_x": 24.5163, "start_x": 43.2991, "starts_from_dispossess": 0.0436, "takeons_ok": 0.0481, "tempo": 0.3822, "transition_speed": 3.8771, "verticalidad_media": 0.3607}, "Liège": {"atk_l": 44.2965, "atk_w": 34.1653, "ball_distance": 119.7471, "behind_line_ok": 0.0513, "broke_last_line": 0.0343, "broke_second_last": 0.1416, "cross_pvadded_max": 0.0046, "dang_runs": 0.17, "deep_completions": 3.7874, "def_h": 31.9325, "dribbles_box": 0.1921, "dribbles_last_third": 0.933, "duration_s": 196.089, "hold_max": 11.1615, "hold_mean": 5.4194, "hold_min": 3.0601, "line_breaks": 0.5182, "max_x": 69.4685, "n_centros": 1.4151, "n_events": 61.8827, "n_involved": 1.8517, "n_passes": 33.2507, "opt_quality_mean": 0.018, "paredes": 3.5776, "pass_options_mean": 8.443, "passes_behind_line": 0.1223, "pct_adentro": 0.5067, "pct_afuera": 0.4052, "pct_cortos": 0.3932, "pct_headpass": 0.0462, "pct_largos": 0.2032, "pct_launch": 0.0806, "pct_layoff": 0.0104, "pct_medios": 0.3167, "pct_switch": 0.0068, "pct_through": 0.0022, "pct_verticales": 0.4753, "pelotazos_espalda": 0.0963, "press_final": 2.2958, "press_media": 1.6661, "prog_x": 28.5441, "start_x": 41.837, "starts_from_dispossess": 0.036, "takeons_ok": 0.5617, "tempo": 0.3793, "transition_speed": 3.8322, "verticalidad_media": 0.3432}, "Lokeren": {"atk_l": 41.6753, "atk_w": 32.9383, "ball_distance": 114.6654, "behind_line_ok": 0.0519, "broke_last_line": 0.0378, "broke_second_last": 0.1478, "cross_pvadded_max": 0.0012, "dang_runs": 0.1852, "deep_completions": 0.3777, "def_h": 30.3535, "dribbles_box": 0.0101, "dribbles_last_third": 0.0549, "duration_s": 27.2507, "hold_max": 9.9458, "hold_mean": 5.8119, "hold_min": 3.4874, "line_breaks": 0.4988, "max_x": 69.1177, "n_centros": 0.1448, "n_events": 5.4704, "n_involved": 1.8222, "n_passes": 3.0185, "opt_quality_mean": 0.1096, "paredes": 0.2751, "pass_options_mean": 9.0033, "passes_behind_line": 0.1122, "pct_adentro": 0.5227, "pct_afuera": 0.3866, "pct_cortos": 0.3817, "pct_headpass": 0.0396, "pct_largos": 0.1826, "pct_launch": 0.0863, "pct_layoff": 0.009, "pct_medios": 0.346, "pct_switch": 0.0045, "pct_through": 0.002, "pct_verticales": 0.4616, "pelotazos_espalda": 0.078, "press_final": 2.446, "press_media": 1.8837, "prog_x": 23.6324, "start_x": 46.7383, "starts_from_dispossess": 0.0442, "takeons_ok": 0.0349, "tempo": 0.3666, "transition_speed": 3.1511, "verticalidad_media": 0.3215}, "Lommel": {"atk_l": 40.4236, "atk_w": 32.9588, "ball_distance": 145.5206, "behind_line_ok": 0.069, "broke_last_line": 0.0333, "broke_second_last": 0.1828, "cross_pvadded_max": 0.0012, "dang_runs": 0.1753, "deep_completions": 0.4156, "def_h": 31.2309, "dribbles_box": 0.0113, "dribbles_last_third": 0.0564, "duration_s": 50.0875, "hold_max": 27.1252, "hold_mean": 5.339, "hold_min": 3.1094, "line_breaks": 0.7645, "max_x": 69.0498, "n_centros": 0.1305, "n_events": 6.4798, "n_involved": 2.0312, "n_passes": 3.6517, "opt_quality_mean": 0.0406, "paredes": 0.3232, "pass_options_mean": 8.2109, "passes_behind_line": 0.1479, "pct_adentro": 0.5191, "pct_afuera": 0.4043, "pct_cortos": 0.4003, "pct_headpass": 0.0485, "pct_largos": 0.1814, "pct_launch": 0.0717, "pct_layoff": 0.0133, "pct_medios": 0.3426, "pct_switch": 0.0045, "pct_through": 0.0017, "pct_verticales": 0.4706, "pelotazos_espalda": 0.1014, "press_final": 2.3953, "press_media": 1.7672, "prog_x": 25.1036, "start_x": 45.3203, "starts_from_dispossess": 0.046, "takeons_ok": 0.0456, "tempo": 0.3966, "transition_speed": 3.4375, "verticalidad_media": 0.313}, "Olympic Charleroi": {"atk_l": 43.3373, "atk_w": 32.8301, "ball_distance": 117.0654, "behind_line_ok": 0.0482, "broke_last_line": 0.02, "broke_second_last": 0.14, "cross_pvadded_max": 0.0009, "dang_runs": 0.1221, "deep_completions": 0.2858, "def_h": 32.3939, "dribbles_box": 0.0081, "dribbles_last_third": 0.0492, "duration_s": 34.4007, "hold_max": 9.7202, "hold_mean": 5.6716, "hold_min": 3.388, "line_breaks": 0.5785, "max_x": 66.2159, "n_centros": 0.1223, "n_events": 6.233, "n_involved": 1.837, "n_passes": 3.0139, "opt_quality_mean": -0.0241, "paredes": 0.2505, "pass_options_mean": 8.7328, "passes_behind_line": 0.1256, "pct_adentro": 0.5084, "pct_afuera": 0.4043, "pct_cortos": 0.4054, "pct_headpass": 0.0474, "pct_largos": 0.2089, "pct_launch": 0.0973, "pct_layoff": 0.0152, "pct_medios": 0.2994, "pct_switch": 0.0059, "pct_through": 0.0014, "pct_verticales": 0.4963, "pelotazos_espalda": 0.0964, "press_final": 2.3912, "press_media": 1.7622, "prog_x": 24.3065, "start_x": 42.942, "starts_from_dispossess": 0.0408, "takeons_ok": 0.0476, "tempo": 0.3739, "transition_speed": 3.4394, "verticalidad_media": 0.3514}, "Patro Eisden": {"atk_l": 40.7889, "atk_w": 31.0971, "ball_distance": 69.4859, "behind_line_ok": 0.0522, "broke_last_line": 0.019, "broke_second_last": 0.1131, "cross_pvadded_max": 0.0018, "dang_runs": 0.0696, "deep_completions": 0.2626, "def_h": 29.1936, "dribbles_box": 0.0132, "dribbles_last_third": 0.0613, "duration_s": 15.0711, "hold_max": 10.6945, "hold_mean": 7.2828, "hold_min": 5.0543, "line_breaks": 0.2825, "max_x": 70.1495, "n_centros": 0.119, "n_events": 3.7661, "n_involved": 1.5966, "n_passes": 1.9794, "opt_quality_mean": 0.1028, "paredes": 0.1008, "pass_options_mean": 8.4335, "passes_behind_line": 0.1436, "pct_adentro": 0.5086, "pct_afuera": 0.3836, "pct_cortos": 0.286, "pct_headpass": 0.0647, "pct_largos": 0.2893, "pct_launch": 0.1263, "pct_layoff": 0.0069, "pct_medios": 0.3176, "pct_switch": 0.0099, "pct_through": 0.0011, "pct_verticales": 0.5376, "pelotazos_espalda": 0.1189, "press_final": 2.5623, "press_media": 1.7991, "prog_x": 25.5681, "start_x": 46.1599, "starts_from_dispossess": 0.0434, "takeons_ok": 0.0381, "tempo": 0.3051, "transition_speed": 3.8294, "verticalidad_media": 0.4438}, "RWDM Brussels": {"atk_l": 44.5889, "atk_w": 32.7814, "ball_distance": 126.3501, "behind_line_ok": 0.0557, "broke_last_line": 0.0334, "broke_second_last": 0.1499, "cross_pvadded_max": 0.0108, "dang_runs": 0.1531, "deep_completions": 3.2993, "def_h": 33.9682, "dribbles_box": 0.2305, "dribbles_last_third": 0.9096, "duration_s": 208.0172, "hold_max": 12.2753, "hold_mean": 5.3627, "hold_min": 2.9605, "line_breaks": 0.6851, "max_x": 65.5213, "n_centros": 1.1851, "n_events": 60.7024, "n_involved": 1.8167, "n_passes": 32.9945, "opt_quality_mean": -0.039, "paredes": 2.7825, "pass_options_mean": 8.6849, "passes_behind_line": 0.1248, "pct_adentro": 0.4861, "pct_afuera": 0.4266, "pct_cortos": 0.4077, "pct_headpass": 0.0337, "pct_largos": 0.1904, "pct_launch": 0.0928, "pct_layoff": 0.0106, "pct_medios": 0.3157, "pct_switch": 0.0064, "pct_through": 0.0029, "pct_verticales": 0.4534, "pelotazos_espalda": 0.0945, "press_final": 2.4507, "press_media": 1.7771, "prog_x": 27.0312, "start_x": 39.9094, "starts_from_dispossess": 0.0442, "takeons_ok": 0.8729, "tempo": 0.3455, "transition_speed": 3.1456, "verticalidad_media": 0.2988}, "Seraing": {"atk_l": 42.2413, "atk_w": 32.7421, "ball_distance": 98.6247, "behind_line_ok": 0.0606, "broke_last_line": 0.0223, "broke_second_last": 0.1165, "cross_pvadded_max": 0.0009, "dang_runs": 0.1247, "deep_completions": 0.2551, "def_h": 32.4281, "dribbles_box": 0.0112, "dribbles_last_third": 0.061, "duration_s": 19.018, "hold_max": 9.7375, "hold_mean": 6.1973, "hold_min": 4.0815, "line_breaks": 0.4699, "max_x": 67.664, "n_centros": 0.1124, "n_events": 4.4732, "n_involved": 1.7262, "n_passes": 2.4728, "opt_quality_mean": -0.0353, "paredes": 0.1765, "pass_options_mean": 8.8384, "passes_behind_line": 0.1774, "pct_adentro": 0.492, "pct_afuera": 0.4009, "pct_cortos": 0.2993, "pct_headpass": 0.0406, "pct_largos": 0.2587, "pct_launch": 0.1084, "pct_layoff": 0.0078, "pct_medios": 0.3354, "pct_switch": 0.0043, "pct_through": 0.0015, "pct_verticales": 0.5002, "pelotazos_espalda": 0.148, "press_final": 2.5008, "press_media": 1.812, "prog_x": 26.6399, "start_x": 42.569, "starts_from_dispossess": 0.051, "takeons_ok": 0.0493, "tempo": 0.3332, "transition_speed": 3.7335, "verticalidad_media": 0.3755}}, "team_eje_norm_gen": {"Anderlecht II": {"eje_verticalidad": -0.0891, "eje_elaboracion": -0.0068, "eje_individual": -0.0012, "eje_rotura_lineas": 0.0093, "eje_amplitud_centro": -0.0126, "eje_profundidad_espalda": -0.0522, "eje_robo_alto": -0.0156, "eje_aereo_segunda": -0.0589}, "Beerschot": {"eje_verticalidad": -0.0817, "eje_elaboracion": 0.0326, "eje_individual": 0.0132, "eje_rotura_lineas": 0.0288, "eje_amplitud_centro": 0.0002, "eje_profundidad_espalda": 0.0344, "eje_robo_alto": 0.0557, "eje_aereo_segunda": -0.0171}, "Beveren": {"eje_verticalidad": -0.0555, "eje_elaboracion": 0.0191, "eje_individual": -0.0083, "eje_rotura_lineas": 0.0497, "eje_amplitud_centro": 0.0332, "eje_profundidad_espalda": 0.0811, "eje_robo_alto": 0.0657, "eje_aereo_segunda": 0.0127}, "Club Brugge II": {"eje_verticalidad": -0.1206, "eje_elaboracion": 0.084, "eje_individual": 0.0231, "eje_rotura_lineas": 0.0204, "eje_amplitud_centro": -0.0221, "eje_profundidad_espalda": -0.0291, "eje_robo_alto": -0.0589, "eje_aereo_segunda": -0.0481}, "Eupen": {"eje_verticalidad": -0.0335, "eje_elaboracion": 2.216, "eje_individual": 0.6012, "eje_rotura_lineas": -0.0018, "eje_amplitud_centro": 0.776, "eje_profundidad_espalda": 0.9321, "eje_robo_alto": -0.0932, "eje_aereo_segunda": 0.0254}, "Francs Borains": {"eje_verticalidad": 0.0105, "eje_elaboracion": -0.0109, "eje_individual": -0.036, "eje_rotura_lineas": -0.0207, "eje_amplitud_centro": -0.0013, "eje_profundidad_espalda": -0.0402, "eje_robo_alto": 0.0124, "eje_aereo_segunda": 0.0304}, "Genk II": {"eje_verticalidad": -0.1028, "eje_elaboracion": 0.0059, "eje_individual": 0.0494, "eje_rotura_lineas": 0.0121, "eje_amplitud_centro": -0.0081, "eje_profundidad_espalda": -0.0177, "eje_robo_alto": -0.0411, "eje_aereo_segunda": -0.0545}, "Gent II": {"eje_verticalidad": -0.1686, "eje_elaboracion": 0.0954, "eje_individual": -0.0078, "eje_rotura_lineas": 0.0563, "eje_amplitud_centro": -0.0295, "eje_profundidad_espalda": -0.0133, "eje_robo_alto": 0.0107, "eje_aereo_segunda": -0.0495}, "Kortrijk": {"eje_verticalidad": -0.0064, "eje_elaboracion": -0.0211, "eje_individual": 0.0038, "eje_rotura_lineas": 0.0057, "eje_amplitud_centro": -0.0025, "eje_profundidad_espalda": -0.0298, "eje_robo_alto": 0.0518, "eje_aereo_segunda": -0.002}, "Lierse SK": {"eje_verticalidad": 0.0311, "eje_elaboracion": -0.0175, "eje_individual": -0.0057, "eje_rotura_lineas": -0.0239, "eje_amplitud_centro": -0.0235, "eje_profundidad_espalda": -0.0417, "eje_robo_alto": -0.0249, "eje_aereo_segunda": 0.0227}, "Liège": {"eje_verticalidad": 0.0112, "eje_elaboracion": 2.0841, "eje_individual": 1.6722, "eje_rotura_lineas": -0.0124, "eje_amplitud_centro": 1.0921, "eje_profundidad_espalda": 0.8321, "eje_robo_alto": -0.0705, "eje_aereo_segunda": -0.0018}, "Lokeren": {"eje_verticalidad": -0.0535, "eje_elaboracion": -0.0081, "eje_individual": -0.0086, "eje_rotura_lineas": -0.0069, "eje_amplitud_centro": 0.0036, "eje_profundidad_espalda": -0.0203, "eje_robo_alto": 0.0404, "eje_aereo_segunda": -0.0168}, "Lommel": {"eje_verticalidad": -0.0372, "eje_elaboracion": 0.053, "eje_individual": 0.0029, "eje_rotura_lineas": 0.0368, "eje_amplitud_centro": 0.0085, "eje_profundidad_espalda": 0.052, "eje_robo_alto": 0.0184, "eje_aereo_segunda": 0.0076}, "Olympic Charleroi": {"eje_verticalidad": 0.0175, "eje_elaboracion": 0.0049, "eje_individual": -0.0238, "eje_rotura_lineas": -0.0316, "eje_amplitud_centro": 0.0106, "eje_profundidad_espalda": -0.0213, "eje_robo_alto": -0.0382, "eje_aereo_segunda": 0.0514}, "Patro Eisden": {"eje_verticalidad": 0.1667, "eje_elaboracion": -0.1636, "eje_individual": -0.0263, "eje_rotura_lineas": -0.0846, "eje_amplitud_centro": 0.0149, "eje_profundidad_espalda": 0.0091, "eje_robo_alto": 0.0278, "eje_aereo_segunda": 0.0788}, "RWDM Brussels": {"eje_verticalidad": -0.0653, "eje_elaboracion": 1.8768, "eje_individual": 2.0355, "eje_rotura_lineas": 0.0143, "eje_amplitud_centro": 0.9189, "eje_profundidad_espalda": 0.7181, "eje_robo_alto": -0.0862, "eje_aereo_segunda": -0.0109}, "Seraing": {"eje_verticalidad": 0.0774, "eje_elaboracion": -0.1142, "eje_individual": -0.0042, "eje_rotura_lineas": -0.0548, "eje_amplitud_centro": -0.0113, "eje_profundidad_espalda": 0.0648, "eje_robo_alto": -0.0204, "eje_aereo_segunda": 0.0081}}, "team_eje_norm_con": {"Anderlecht II": {"eje_verticalidad": -0.012, "eje_elaboracion": -0.0183, "eje_individual": 0.0076, "eje_rotura_lineas": -0.0111, "eje_amplitud_centro": 0.002, "eje_profundidad_espalda": -0.014, "eje_robo_alto": 0.0142, "eje_aereo_segunda": -0.012}, "Beerschot": {"eje_verticalidad": 0.0139, "eje_elaboracion": -0.0249, "eje_individual": -0.0317, "eje_rotura_lineas": -0.0235, "eje_amplitud_centro": -0.0137, "eje_profundidad_espalda": -0.0207, "eje_robo_alto": -0.045, "eje_aereo_segunda": 0.0081}, "Beveren": {"eje_verticalidad": 0.0191, "eje_elaboracion": 2.1284, "eje_individual": 1.6812, "eje_rotura_lineas": -0.0299, "eje_amplitud_centro": 1.0614, "eje_profundidad_espalda": 0.785, "eje_robo_alto": -0.1204, "eje_aereo_segunda": 0.0316}, "Club Brugge II": {"eje_verticalidad": -0.0461, "eje_elaboracion": -0.0182, "eje_individual": -0.0177, "eje_rotura_lineas": -0.0067, "eje_amplitud_centro": -0.0087, "eje_profundidad_espalda": 0.0107, "eje_robo_alto": 0.0328, "eje_aereo_segunda": 0.0001}, "Eupen": {"eje_verticalidad": -0.0577, "eje_elaboracion": 0.0046, "eje_individual": -0.0148, "eje_rotura_lineas": 0.0069, "eje_amplitud_centro": 0.0046, "eje_profundidad_espalda": 0.0267, "eje_robo_alto": 0.0534, "eje_aereo_segunda": -0.0182}, "Francs Borains": {"eje_verticalidad": -0.0058, "eje_elaboracion": -0.0011, "eje_individual": 0.0042, "eje_rotura_lineas": -0.0137, "eje_amplitud_centro": -0.0117, "eje_profundidad_espalda": -0.0029, "eje_robo_alto": -0.0007, "eje_aereo_segunda": 0.0064}, "Genk II": {"eje_verticalidad": -0.0647, "eje_elaboracion": 0.0407, "eje_individual": -0.0086, "eje_rotura_lineas": 0.0473, "eje_amplitud_centro": -0.0031, "eje_profundidad_espalda": 0.0743, "eje_robo_alto": 0.0387, "eje_aereo_segunda": -0.0348}, "Gent II": {"eje_verticalidad": -0.0189, "eje_elaboracion": -0.0131, "eje_individual": -0.0016, "eje_rotura_lineas": 0.0035, "eje_amplitud_centro": 0.0089, "eje_profundidad_espalda": -0.015, "eje_robo_alto": 0.0033, "eje_aereo_segunda": 0.0253}, "Kortrijk": {"eje_verticalidad": -0.0141, "eje_elaboracion": 1.8951, "eje_individual": 2.0863, "eje_rotura_lineas": -0.0483, "eje_amplitud_centro": 0.9248, "eje_profundidad_espalda": 0.6927, "eje_robo_alto": -0.0624, "eje_aereo_segunda": 0.0225}, "Lierse SK": {"eje_verticalidad": -0.0249, "eje_elaboracion": -0.0226, "eje_individual": -0.0147, "eje_rotura_lineas": -0.0182, "eje_amplitud_centro": 0.0031, "eje_profundidad_espalda": -0.025, "eje_robo_alto": 0.028, "eje_aereo_segunda": -0.0125}, "Liège": {"eje_verticalidad": -0.0499, "eje_elaboracion": 2.1574, "eje_individual": 0.6529, "eje_rotura_lineas": 0.0207, "eje_amplitud_centro": 0.7732, "eje_profundidad_espalda": 0.8994, "eje_robo_alto": -0.0266, "eje_aereo_segunda": 0.004}, "Lokeren": {"eje_verticalidad": -0.0021, "eje_elaboracion": -0.0192, "eje_individual": 0.0122, "eje_rotura_lineas": -0.0165, "eje_amplitud_centro": 0.0142, "eje_profundidad_espalda": -0.0082, "eje_robo_alto": -0.0098, "eje_aereo_segunda": 0.0128}, "Lommel": {"eje_verticalidad": -0.032, "eje_elaboracion": 0.0017, "eje_individual": 0.0122, "eje_rotura_lineas": 0.0209, "eje_amplitud_centro": 0.034, "eje_profundidad_espalda": 0.003, "eje_robo_alto": -0.0247, "eje_aereo_segunda": -0.0197}, "Olympic Charleroi": {"eje_verticalidad": -0.046, "eje_elaboracion": 0.0036, "eje_individual": 0.0143, "eje_rotura_lineas": 0.0238, "eje_amplitud_centro": -0.0062, "eje_profundidad_espalda": 0.0236, "eje_robo_alto": 0.0112, "eje_aereo_segunda": -0.0166}, "Patro Eisden": {"eje_verticalidad": -0.0303, "eje_elaboracion": 0.0282, "eje_individual": 0.0009, "eje_rotura_lineas": 0.0022, "eje_amplitud_centro": -0.0101, "eje_profundidad_espalda": 0.0313, "eje_robo_alto": -0.068, "eje_aereo_segunda": 0.0181}, "RWDM Brussels": {"eje_verticalidad": -0.0824, "eje_elaboracion": 0.0241, "eje_individual": 0.0172, "eje_rotura_lineas": 0.0099, "eje_amplitud_centro": 0.0136, "eje_profundidad_espalda": 0.0045, "eje_robo_alto": 0.0384, "eje_aereo_segunda": -0.032}, "Seraing": {"eje_verticalidad": -0.051, "eje_elaboracion": 0.0274, "eje_individual": -0.0209, "eje_rotura_lineas": 0.0314, "eje_amplitud_centro": 0.0003, "eje_profundidad_espalda": 0.0227, "eje_robo_alto": -0.01, "eje_aereo_segunda": -0.0033}}}
vendor/data/ejes/belgian-challenger-pro-league/25-26/team_profiles.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c96ca30896feb447836dc4476899dc2bea156cc6c8265dd5327f8a205202ea56
3
+ size 9409
vendor/data/ejes/brack-super-league/25-26/ejes_definition.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
vendor/data/ejes/brack-super-league/25-26/match_team_ejes.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9694803e00fc1e1be9a89f103e5d7eff4d3e958e29ec964ac58d307bfc5c310b
3
+ size 56973
vendor/data/ejes/brack-super-league/25-26/match_team_vars.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5049cc2b4c6306d07c867da81e703879a02a8108c04d1ffc088810740e64d69f
3
+ size 214947
vendor/data/ejes/brack-super-league/25-26/predictor.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": {"gen": 1.0206, "con": 1.0026, "intercept": 0.0362}, "elaboracion": {"gen": 1.0267, "con": 1.0234, "intercept": -0.0076}, "individual": {"gen": 0.7772, "con": 0.7108, "intercept": -0.0006}, "rotura_lineas": {"gen": 0.9583, "con": 0.8562, "intercept": -0.0022}, "amplitud_centro": {"gen": 0.9513, "con": 0.7053, "intercept": -0.0014}, "profundidad_espalda": {"gen": 0.7497, "con": -0.2288, "intercept": 0.0007}, "robo_alto": {"gen": 0.7979, "con": 0.8299, "intercept": 0.0017}, "aereo_segunda": {"gen": 1.0202, "con": 1.0162, "intercept": 0.0038}}
vendor/data/ejes/brack-super-league/25-26/scales.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"var_sigma": {"atk_l": 2.0642, "atk_w": 1.3481, "ball_distance": 40.9674, "behind_line_ok": 0.0221, "broke_last_line": 0.017, "broke_second_last": 0.0418, "cross_pvadded_max": 0.0016, "dang_runs": 0.0904, "deep_completions": 0.1071, "def_h": 2.6611, "dribbles_box": 0.0101, "dribbles_last_third": 0.0257, "duration_s": 19.0334, "hold_max": 1.8121, "hold_mean": 0.8577, "hold_min": 0.8283, "line_breaks": 0.2163, "max_x": 3.572, "n_centros": 0.0425, "n_events": 1.7417, "n_involved": 0.1569, "n_passes": 0.5156, "opt_quality_mean": 0.126, "paredes": 0.0909, "pass_options_mean": 1.1759, "passes_behind_line": 0.033, "pct_adentro": 0.0332, "pct_afuera": 0.032, "pct_cortos": 0.0459, "pct_headpass": 0.0153, "pct_largos": 0.0441, "pct_launch": 0.0366, "pct_layoff": 0.0055, "pct_medios": 0.0426, "pct_switch": 0.0042, "pct_through": 0.0033, "pct_verticales": 0.0508, "pelotazos_espalda": 0.0273, "press_final": 0.3012, "press_media": 0.1654, "prog_x": 2.2192, "start_x": 4.2262, "starts_from_dispossess": 0.0169, "takeons_ok": 0.0212, "tempo": 0.0367, "transition_speed": 0.6634, "verticalidad_media": 0.0614}, "eje_sigma": {"eje_verticalidad": 0.107, "eje_elaboracion": 0.0929, "eje_individual": 0.0648, "eje_rotura_lineas": 0.062, "eje_amplitud_centro": 0.051, "eje_profundidad_espalda": 0.0755, "eje_robo_alto": 0.0872, "eje_aereo_segunda": 0.0692}, "eje_match_mean": {"eje_verticalidad": -0.0354, "eje_elaboracion": 0.0072, "eje_individual": 0.0013, "eje_rotura_lineas": 0.0027, "eje_amplitud_centro": 0.0021, "eje_profundidad_espalda": 0.0014, "eje_robo_alto": -0.0027, "eje_aereo_segunda": -0.0037}, "eje_match_std": {"eje_verticalidad": 0.1361, "eje_elaboracion": 0.1226, "eje_individual": 0.0687, "eje_rotura_lineas": 0.0704, "eje_amplitud_centro": 0.0591, "eje_profundidad_espalda": 0.0796, "eje_robo_alto": 0.0941, "eje_aereo_segunda": 0.0794}, "team_var_norm": {"Basel": {"atk_l": 42.258, "atk_w": 33.4803, "ball_distance": 127.7972, "behind_line_ok": 0.0523, "broke_last_line": 0.0282, "broke_second_last": 0.1778, "cross_pvadded_max": 0.0016, "dang_runs": 0.1629, "deep_completions": 0.4001, "def_h": 30.9579, "dribbles_box": 0.0101, "dribbles_last_third": 0.0545, "duration_s": 22.8874, "hold_max": 10.2808, "hold_mean": 5.5909, "hold_min": 3.2931, "line_breaks": 0.7564, "max_x": 68.012, "n_centros": 0.1375, "n_events": 5.4097, "n_involved": 1.9312, "n_passes": 3.2461, "opt_quality_mean": 0.0657, "paredes": 0.2622, "pass_options_mean": 8.9557, "passes_behind_line": 0.1069, "pct_adentro": 0.5183, "pct_afuera": 0.399, "pct_cortos": 0.4055, "pct_headpass": 0.0397, "pct_largos": 0.1626, "pct_launch": 0.0598, "pct_layoff": 0.0113, "pct_medios": 0.3504, "pct_switch": 0.005, "pct_through": 0.0022, "pct_verticales": 0.4509, "pelotazos_espalda": 0.0698, "press_final": 2.5701, "press_media": 1.9258, "prog_x": 23.9828, "start_x": 45.2871, "starts_from_dispossess": 0.0391, "takeons_ok": 0.0534, "tempo": 0.3838, "transition_speed": 3.2631, "verticalidad_media": 0.315}, "Grasshoppers": {"atk_l": 37.7086, "atk_w": 31.0446, "ball_distance": 69.3553, "behind_line_ok": 0.0396, "broke_last_line": 0.0174, "broke_second_last": 0.1545, "cross_pvadded_max": 0.0009, "dang_runs": 0.0896, "deep_completions": 0.2503, "def_h": 31.6653, "dribbles_box": 0.0115, "dribbles_last_third": 0.0613, "duration_s": 23.4133, "hold_max": 9.2896, "hold_mean": 5.7543, "hold_min": 3.5208, "line_breaks": 0.3832, "max_x": 67.6675, "n_centros": 0.103, "n_events": 4.8571, "n_involved": 1.7285, "n_passes": 2.3021, "opt_quality_mean": -0.0253, "paredes": 0.1286, "pass_options_mean": 8.5867, "passes_behind_line": 0.1167, "pct_adentro": 0.5231, "pct_afuera": 0.387, "pct_cortos": 0.3621, "pct_headpass": 0.0524, "pct_largos": 0.2287, "pct_launch": 0.1331, "pct_layoff": 0.0123, "pct_medios": 0.3204, "pct_switch": 0.0025, "pct_through": 0.0022, "pct_verticales": 0.5591, "pelotazos_espalda": 0.0881, "press_final": 2.8495, "press_media": 2.0158, "prog_x": 24.764, "start_x": 44.257, "starts_from_dispossess": 0.0451, "takeons_ok": 0.0443, "tempo": 0.3914, "transition_speed": 4.2343, "verticalidad_media": 0.4435}, "Lausanne-Sport": {"atk_l": 38.8278, "atk_w": 32.6399, "ball_distance": 91.5638, "behind_line_ok": 0.0506, "broke_last_line": 0.0278, "broke_second_last": 0.1602, "cross_pvadded_max": 0.0006, "dang_runs": 0.1137, "deep_completions": 0.3493, "def_h": 30.7873, "dribbles_box": 0.0162, "dribbles_last_third": 0.0739, "duration_s": 26.6981, "hold_max": 9.1563, "hold_mean": 5.3985, "hold_min": 3.2764, "line_breaks": 0.5083, "max_x": 68.5327, "n_centros": 0.1068, "n_events": 5.4702, "n_involved": 1.8314, "n_passes": 2.7939, "opt_quality_mean": 0.0208, "paredes": 0.2351, "pass_options_mean": 8.9163, "passes_behind_line": 0.1222, "pct_adentro": 0.5076, "pct_afuera": 0.4013, "pct_cortos": 0.4101, "pct_headpass": 0.0462, "pct_largos": 0.1997, "pct_launch": 0.0839, "pct_layoff": 0.0128, "pct_medios": 0.3, "pct_switch": 0.005, "pct_through": 0.0026, "pct_verticales": 0.5031, "pelotazos_espalda": 0.0842, "press_final": 2.6922, "press_media": 1.9663, "prog_x": 24.6712, "start_x": 45.2118, "starts_from_dispossess": 0.0499, "takeons_ok": 0.0592, "tempo": 0.3938, "transition_speed": 3.6844, "verticalidad_media": 0.3755}, "Lugano": {"atk_l": 44.0516, "atk_w": 34.0, "ball_distance": 178.7105, "behind_line_ok": 0.0548, "broke_last_line": 0.0295, "broke_second_last": 0.1744, "cross_pvadded_max": 0.0018, "dang_runs": 0.2261, "deep_completions": 0.3556, "def_h": 33.7349, "dribbles_box": 0.01, "dribbles_last_third": 0.0543, "duration_s": 30.8973, "hold_max": 10.6258, "hold_mean": 5.6272, "hold_min": 3.0464, "line_breaks": 0.9145, "max_x": 65.5655, "n_centros": 0.1274, "n_events": 6.3272, "n_involved": 2.063, "n_passes": 3.7795, "opt_quality_mean": -0.0294, "paredes": 0.3574, "pass_options_mean": 9.1374, "passes_behind_line": 0.1254, "pct_adentro": 0.4991, "pct_afuera": 0.4189, "pct_cortos": 0.3939, "pct_headpass": 0.0467, "pct_largos": 0.1882, "pct_launch": 0.0657, "pct_layoff": 0.0136, "pct_medios": 0.3367, "pct_switch": 0.0073, "pct_through": 0.0018, "pct_verticales": 0.4515, "pelotazos_espalda": 0.0917, "press_final": 2.4642, "press_media": 1.8049, "prog_x": 25.5635, "start_x": 40.9438, "starts_from_dispossess": 0.0422, "takeons_ok": 0.0456, "tempo": 0.3945, "transition_speed": 3.3062, "verticalidad_media": 0.2846}, "Luzern": {"atk_l": 41.0489, "atk_w": 33.9607, "ball_distance": 115.2857, "behind_line_ok": 0.0556, "broke_last_line": 0.0385, "broke_second_last": 0.1568, "cross_pvadded_max": 0.0018, "dang_runs": 0.1661, "deep_completions": 0.3965, "def_h": 30.8324, "dribbles_box": 0.0142, "dribbles_last_third": 0.0624, "duration_s": 30.7545, "hold_max": 10.566, "hold_mean": 5.585, "hold_min": 3.1367, "line_breaks": 0.5346, "max_x": 69.0115, "n_centros": 0.1325, "n_events": 5.8825, "n_involved": 1.8058, "n_passes": 2.9752, "opt_quality_mean": 0.0584, "paredes": 0.2582, "pass_options_mean": 9.0343, "passes_behind_line": 0.124, "pct_adentro": 0.509, "pct_afuera": 0.3971, "pct_cortos": 0.3683, "pct_headpass": 0.0422, "pct_largos": 0.2016, "pct_launch": 0.0892, "pct_layoff": 0.0103, "pct_medios": 0.3371, "pct_switch": 0.0054, "pct_through": 0.0024, "pct_verticales": 0.4717, "pelotazos_espalda": 0.0871, "press_final": 2.4714, "press_media": 1.8438, "prog_x": 25.6722, "start_x": 44.6815, "starts_from_dispossess": 0.049, "takeons_ok": 0.0516, "tempo": 0.3791, "transition_speed": 3.4946, "verticalidad_media": 0.3363}, "Servette": {"atk_l": 40.2602, "atk_w": 32.3993, "ball_distance": 118.3388, "behind_line_ok": 0.0475, "broke_last_line": 0.036, "broke_second_last": 0.1633, "cross_pvadded_max": 0.002, "dang_runs": 0.1297, "deep_completions": 0.4005, "def_h": 31.2757, "dribbles_box": 0.0136, "dribbles_last_third": 0.0643, "duration_s": 30.9129, "hold_max": 9.8099, "hold_mean": 5.3569, "hold_min": 3.1321, "line_breaks": 0.6423, "max_x": 68.2627, "n_centros": 0.1576, "n_events": 6.02, "n_involved": 1.8827, "n_passes": 3.1736, "opt_quality_mean": 0.0516, "paredes": 0.2862, "pass_options_mean": 8.8523, "passes_behind_line": 0.1091, "pct_adentro": 0.5108, "pct_afuera": 0.4066, "pct_cortos": 0.4008, "pct_headpass": 0.0523, "pct_largos": 0.1842, "pct_launch": 0.081, "pct_layoff": 0.01, "pct_medios": 0.3337, "pct_switch": 0.0041, "pct_through": 0.0022, "pct_verticales": 0.4841, "pelotazos_espalda": 0.0738, "press_final": 2.5267, "press_media": 1.9451, "prog_x": 24.3002, "start_x": 44.9372, "starts_from_dispossess": 0.0495, "takeons_ok": 0.0554, "tempo": 0.3778, "transition_speed": 3.2156, "verticalidad_media": 0.3457}, "Sion": {"atk_l": 41.3183, "atk_w": 33.8306, "ball_distance": 127.156, "behind_line_ok": 0.0558, "broke_last_line": 0.0333, "broke_second_last": 0.1746, "cross_pvadded_max": 0.0016, "dang_runs": 0.1729, "deep_completions": 0.3948, "def_h": 31.7667, "dribbles_box": 0.0153, "dribbles_last_third": 0.0609, "duration_s": 26.2345, "hold_max": 9.7877, "hold_mean": 5.5369, "hold_min": 3.205, "line_breaks": 0.5921, "max_x": 68.3492, "n_centros": 0.1533, "n_events": 5.615, "n_involved": 1.8937, "n_passes": 3.1287, "opt_quality_mean": -0.0129, "paredes": 0.2621, "pass_options_mean": 8.9506, "passes_behind_line": 0.1395, "pct_adentro": 0.5169, "pct_afuera": 0.3981, "pct_cortos": 0.3951, "pct_headpass": 0.0389, "pct_largos": 0.2144, "pct_launch": 0.0985, "pct_layoff": 0.0085, "pct_medios": 0.3064, "pct_switch": 0.0045, "pct_through": 0.0025, "pct_verticales": 0.492, "pelotazos_espalda": 0.1052, "press_final": 2.4425, "press_media": 1.8403, "prog_x": 26.0884, "start_x": 43.2497, "starts_from_dispossess": 0.0433, "takeons_ok": 0.0509, "tempo": 0.3991, "transition_speed": 3.7288, "verticalidad_media": 0.3386}, "St.Gallen": {"atk_l": 37.1532, "atk_w": 33.4167, "ball_distance": 70.8807, "behind_line_ok": 0.0562, "broke_last_line": 0.0221, "broke_second_last": 0.1344, "cross_pvadded_max": 0.0011, "dang_runs": 0.1038, "deep_completions": 0.2762, "def_h": 29.3755, "dribbles_box": 0.0136, "dribbles_last_third": 0.0657, "duration_s": 22.7726, "hold_max": 9.8448, "hold_mean": 6.2881, "hold_min": 4.1124, "line_breaks": 0.3362, "max_x": 70.4772, "n_centros": 0.1109, "n_events": 4.6458, "n_involved": 1.6649, "n_passes": 2.1697, "opt_quality_mean": 0.0529, "paredes": 0.1289, "pass_options_mean": 8.7616, "passes_behind_line": 0.1436, "pct_adentro": 0.515, "pct_afuera": 0.3752, "pct_cortos": 0.3253, "pct_headpass": 0.0549, "pct_largos": 0.2553, "pct_launch": 0.134, "pct_layoff": 0.006, "pct_medios": 0.311, "pct_switch": 0.0034, "pct_through": 0.0032, "pct_verticales": 0.5497, "pelotazos_espalda": 0.12, "press_final": 2.6868, "press_media": 1.914, "prog_x": 26.3439, "start_x": 45.825, "starts_from_dispossess": 0.0416, "takeons_ok": 0.0426, "tempo": 0.3667, "transition_speed": 4.6027, "verticalidad_media": 0.4539}, "Thun": {"atk_l": 36.2251, "atk_w": 34.7242, "ball_distance": 76.0086, "behind_line_ok": 0.0564, "broke_last_line": 0.0266, "broke_second_last": 0.1434, "cross_pvadded_max": 0.0011, "dang_runs": 0.1235, "deep_completions": 0.3642, "def_h": 28.0748, "dribbles_box": 0.0149, "dribbles_last_third": 0.0636, "duration_s": 22.342, "hold_max": 10.068, "hold_mean": 6.2997, "hold_min": 4.089, "line_breaks": 0.337, "max_x": 72.2959, "n_centros": 0.1172, "n_events": 4.7611, "n_involved": 1.7121, "n_passes": 2.2981, "opt_quality_mean": 0.1012, "paredes": 0.1549, "pass_options_mean": 8.6315, "passes_behind_line": 0.1242, "pct_adentro": 0.5255, "pct_afuera": 0.3709, "pct_cortos": 0.3267, "pct_headpass": 0.0645, "pct_largos": 0.2387, "pct_launch": 0.1277, "pct_layoff": 0.0085, "pct_medios": 0.3317, "pct_switch": 0.0031, "pct_through": 0.0025, "pct_verticales": 0.5261, "pelotazos_espalda": 0.0971, "press_final": 2.5688, "press_media": 1.8732, "prog_x": 26.3031, "start_x": 47.5403, "starts_from_dispossess": 0.0446, "takeons_ok": 0.0418, "tempo": 0.3676, "transition_speed": 4.5059, "verticalidad_media": 0.4247}, "Winterthur": {"atk_l": 39.0714, "atk_w": 33.2012, "ball_distance": 92.8824, "behind_line_ok": 0.0439, "broke_last_line": 0.0214, "broke_second_last": 0.1554, "cross_pvadded_max": 0.0012, "dang_runs": 0.1055, "deep_completions": 0.2569, "def_h": 33.5989, "dribbles_box": 0.0094, "dribbles_last_third": 0.0397, "duration_s": 24.467, "hold_max": 10.1128, "hold_mean": 5.8267, "hold_min": 3.4498, "line_breaks": 0.4923, "max_x": 65.4645, "n_centros": 0.1052, "n_events": 5.0876, "n_involved": 1.7994, "n_passes": 2.6311, "opt_quality_mean": -0.0661, "paredes": 0.1868, "pass_options_mean": 8.801, "passes_behind_line": 0.1257, "pct_adentro": 0.5, "pct_afuera": 0.4098, "pct_cortos": 0.3607, "pct_headpass": 0.0531, "pct_largos": 0.2434, "pct_launch": 0.1059, "pct_layoff": 0.0122, "pct_medios": 0.3069, "pct_switch": 0.0062, "pct_through": 0.0015, "pct_verticales": 0.5286, "pelotazos_espalda": 0.0985, "press_final": 2.7137, "press_media": 1.9168, "prog_x": 25.6351, "start_x": 41.0936, "starts_from_dispossess": 0.0468, "takeons_ok": 0.0421, "tempo": 0.3904, "transition_speed": 4.1571, "verticalidad_media": 0.3944}, "Young Boys": {"atk_l": 40.8787, "atk_w": 32.8478, "ball_distance": 129.7559, "behind_line_ok": 0.0511, "broke_last_line": 0.0326, "broke_second_last": 0.1786, "cross_pvadded_max": 0.0018, "dang_runs": 0.2083, "deep_completions": 0.3963, "def_h": 31.1958, "dribbles_box": 0.015, "dribbles_last_third": 0.0722, "duration_s": 28.142, "hold_max": 9.9657, "hold_mean": 5.5171, "hold_min": 3.1339, "line_breaks": 0.6398, "max_x": 69.0487, "n_centros": 0.1288, "n_events": 5.8566, "n_involved": 1.8601, "n_passes": 3.2903, "opt_quality_mean": 0.0761, "paredes": 0.2936, "pass_options_mean": 9.0272, "passes_behind_line": 0.1158, "pct_adentro": 0.5067, "pct_afuera": 0.3984, "pct_cortos": 0.3671, "pct_headpass": 0.0431, "pct_largos": 0.193, "pct_launch": 0.0772, "pct_layoff": 0.0081, "pct_medios": 0.3454, "pct_switch": 0.0038, "pct_through": 0.0034, "pct_verticales": 0.4497, "pelotazos_espalda": 0.0779, "press_final": 2.6623, "press_media": 1.9102, "prog_x": 25.2438, "start_x": 45.0135, "starts_from_dispossess": 0.0537, "takeons_ok": 0.0621, "tempo": 0.3693, "transition_speed": 3.4401, "verticalidad_media": 0.3116}, "Zürich": {"atk_l": 38.9618, "atk_w": 31.4676, "ball_distance": 103.1458, "behind_line_ok": 0.0422, "broke_last_line": 0.0236, "broke_second_last": 0.1492, "cross_pvadded_max": 0.0017, "dang_runs": 0.1051, "deep_completions": 0.2994, "def_h": 30.7853, "dribbles_box": 0.0135, "dribbles_last_third": 0.0731, "duration_s": 23.5091, "hold_max": 10.5385, "hold_mean": 6.1225, "hold_min": 3.6508, "line_breaks": 0.5155, "max_x": 68.3382, "n_centros": 0.0979, "n_events": 5.1082, "n_involved": 1.7913, "n_passes": 2.6999, "opt_quality_mean": 0.0099, "paredes": 0.1799, "pass_options_mean": 8.7238, "passes_behind_line": 0.1192, "pct_adentro": 0.5118, "pct_afuera": 0.3958, "pct_cortos": 0.3574, "pct_headpass": 0.0523, "pct_largos": 0.2339, "pct_launch": 0.1036, "pct_layoff": 0.0076, "pct_medios": 0.3171, "pct_switch": 0.0061, "pct_through": 0.0011, "pct_verticales": 0.5161, "pelotazos_espalda": 0.0906, "press_final": 2.8376, "press_media": 1.9461, "prog_x": 25.3892, "start_x": 44.2396, "starts_from_dispossess": 0.0448, "takeons_ok": 0.0531, "tempo": 0.3615, "transition_speed": 3.8115, "verticalidad_media": 0.3783}}, "team_eje_norm_gen": {"Basel": {"eje_verticalidad": -0.1468, "eje_elaboracion": 0.0694, "eje_individual": -0.003, "eje_rotura_lineas": 0.0379, "eje_amplitud_centro": 0.0209, "eje_profundidad_espalda": -0.0085, "eje_robo_alto": -0.0016, "eje_aereo_segunda": -0.0616}, "Grasshoppers": {"eje_verticalidad": 0.0758, "eje_elaboracion": -0.0871, "eje_individual": -0.0246, "eje_rotura_lineas": -0.0389, "eje_amplitud_centro": -0.0427, "eje_profundidad_espalda": -0.0472, "eje_robo_alto": -0.0062, "eje_aereo_segunda": 0.062}, "Lausanne-Sport": {"eje_verticalidad": -0.0402, "eje_elaboracion": 0.0291, "eje_individual": 0.0203, "eje_rotura_lineas": -0.0012, "eje_amplitud_centro": -0.0081, "eje_profundidad_espalda": -0.0028, "eje_robo_alto": 0.0229, "eje_aereo_segunda": -0.0099}, "Lugano": {"eje_verticalidad": -0.143, "eje_elaboracion": 0.1486, "eje_individual": 0.0068, "eje_rotura_lineas": 0.0551, "eje_amplitud_centro": 0.0451, "eje_profundidad_espalda": 0.0127, "eje_robo_alto": -0.0745, "eje_aereo_segunda": -0.0268}, "Luzern": {"eje_verticalidad": -0.0885, "eje_elaboracion": 0.0283, "eje_individual": 0.0122, "eje_rotura_lineas": 0.0143, "eje_amplitud_centro": 0.0172, "eje_profundidad_espalda": 0.0216, "eje_robo_alto": 0.011, "eje_aereo_segunda": -0.0253}, "Servette": {"eje_verticalidad": -0.0958, "eje_elaboracion": 0.0768, "eje_individual": 0.0063, "eje_rotura_lineas": 0.0267, "eje_amplitud_centro": 0.0418, "eje_profundidad_espalda": -0.0085, "eje_robo_alto": 0.0168, "eje_aereo_segunda": -0.0168}, "Sion": {"eje_verticalidad": -0.054, "eje_elaboracion": 0.056, "eje_individual": 0.0143, "eje_rotura_lineas": 0.0259, "eje_amplitud_centro": 0.0325, "eje_profundidad_espalda": 0.0484, "eje_robo_alto": -0.0292, "eje_aereo_segunda": -0.0305}, "St.Gallen": {"eje_verticalidad": 0.1011, "eje_elaboracion": -0.1221, "eje_individual": -0.0135, "eje_rotura_lineas": -0.0433, "eje_amplitud_centro": -0.0389, "eje_profundidad_espalda": 0.0268, "eje_robo_alto": 0.0146, "eje_aereo_segunda": 0.032}, "Thun": {"eje_verticalidad": 0.0571, "eje_elaboracion": -0.1008, "eje_individual": -0.0079, "eje_rotura_lineas": -0.0358, "eje_amplitud_centro": -0.0387, "eje_profundidad_espalda": 0.021, "eje_robo_alto": 0.0535, "eje_aereo_segunda": 0.058}, "Winterthur": {"eje_verticalidad": 0.0369, "eje_elaboracion": -0.0377, "eje_individual": -0.0473, "eje_rotura_lineas": -0.0235, "eje_amplitud_centro": 0.007, "eje_profundidad_espalda": -0.0248, "eje_robo_alto": -0.0608, "eje_aereo_segunda": 0.0284}, "Young Boys": {"eje_verticalidad": -0.1255, "eje_elaboracion": 0.0645, "eje_individual": 0.0469, "eje_rotura_lineas": 0.039, "eje_amplitud_centro": 0.0031, "eje_profundidad_espalda": 0.0026, "eje_robo_alto": 0.0283, "eje_aereo_segunda": -0.0516}, "Zürich": {"eje_verticalidad": -0.0016, "eje_elaboracion": -0.0381, "eje_individual": 0.0049, "eje_rotura_lineas": -0.0236, "eje_amplitud_centro": -0.0143, "eje_profundidad_espalda": -0.0246, "eje_robo_alto": -0.0073, "eje_aereo_segunda": -0.0024}}, "team_eje_norm_con": {"Basel": {"eje_verticalidad": -0.0534, "eje_elaboracion": 0.0354, "eje_individual": 0.0012, "eje_rotura_lineas": -0.0087, "eje_amplitud_centro": 0.0055, "eje_profundidad_espalda": -0.0041, "eje_robo_alto": -0.0058, "eje_aereo_segunda": -0.0391}, "Grasshoppers": {"eje_verticalidad": -0.0167, "eje_elaboracion": -0.0258, "eje_individual": -0.0002, "eje_rotura_lineas": -0.0054, "eje_amplitud_centro": -0.0159, "eje_profundidad_espalda": -0.002, "eje_robo_alto": -0.001, "eje_aereo_segunda": 0.0225}, "Lausanne-Sport": {"eje_verticalidad": -0.0218, "eje_elaboracion": -0.0012, "eje_individual": -0.0144, "eje_rotura_lineas": 0.0261, "eje_amplitud_centro": 0.0099, "eje_profundidad_espalda": 0.0207, "eje_robo_alto": -0.0127, "eje_aereo_segunda": -0.0121}, "Lugano": {"eje_verticalidad": -0.0764, "eje_elaboracion": 0.0193, "eje_individual": 0.018, "eje_rotura_lineas": -0.0067, "eje_amplitud_centro": 0.0228, "eje_profundidad_espalda": 0.0004, "eje_robo_alto": 0.0227, "eje_aereo_segunda": -0.0397}, "Luzern": {"eje_verticalidad": -0.0488, "eje_elaboracion": 0.0205, "eje_individual": 0.024, "eje_rotura_lineas": -0.0061, "eje_amplitud_centro": 0.011, "eje_profundidad_espalda": -0.0029, "eje_robo_alto": 0.0007, "eje_aereo_segunda": -0.0256}, "Servette": {"eje_verticalidad": -0.0673, "eje_elaboracion": 0.042, "eje_individual": -0.0103, "eje_rotura_lineas": 0.0201, "eje_amplitud_centro": -0.0049, "eje_profundidad_espalda": -0.0199, "eje_robo_alto": -0.0021, "eje_aereo_segunda": 0.012}, "Sion": {"eje_verticalidad": -0.0772, "eje_elaboracion": 0.0441, "eje_individual": 0.0112, "eje_rotura_lineas": 0.0244, "eje_amplitud_centro": -0.0017, "eje_profundidad_espalda": 0.0035, "eje_robo_alto": 0.0105, "eje_aereo_segunda": -0.0398}, "St.Gallen": {"eje_verticalidad": 0.0367, "eje_elaboracion": -0.0508, "eje_individual": -0.0131, "eje_rotura_lineas": -0.0047, "eje_amplitud_centro": -0.0151, "eje_profundidad_espalda": -0.0092, "eje_robo_alto": -0.0532, "eje_aereo_segunda": 0.0586}, "Thun": {"eje_verticalidad": 0.0256, "eje_elaboracion": -0.0293, "eje_individual": -0.0221, "eje_rotura_lineas": -0.043, "eje_amplitud_centro": 0.0178, "eje_profundidad_espalda": -0.0077, "eje_robo_alto": -0.0692, "eje_aereo_segunda": 0.0365}, "Winterthur": {"eje_verticalidad": -0.0994, "eje_elaboracion": 0.0676, "eje_individual": 0.0489, "eje_rotura_lineas": 0.0314, "eje_amplitud_centro": 0.0096, "eje_profundidad_espalda": 0.0145, "eje_robo_alto": 0.0878, "eje_aereo_segunda": -0.0075}, "Young Boys": {"eje_verticalidad": -0.027, "eje_elaboracion": -0.0064, "eje_individual": -0.0207, "eje_rotura_lineas": 0.0124, "eje_amplitud_centro": -0.0212, "eje_profundidad_espalda": 0.0075, "eje_robo_alto": -0.0288, "eje_aereo_segunda": -0.0162}, "Zürich": {"eje_verticalidad": 0.0011, "eje_elaboracion": -0.0286, "eje_individual": -0.007, "eje_rotura_lineas": -0.0072, "eje_amplitud_centro": 0.0074, "eje_profundidad_espalda": 0.0158, "eje_robo_alto": 0.0185, "eje_aereo_segunda": 0.0059}}}
vendor/data/ejes/brack-super-league/25-26/team_profiles.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6d4941b3a9c451b630014b626aa2d045b6554c6bf69d1d5e89c8d0ff13b40947
3
+ size 8227
vendor/data/ejes/chile-primera/26/ejes_definition.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
vendor/data/ejes/chile-primera/26/match_team_ejes.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4eb44086d10fa0123bcce5982d0d6327a6cb4deac911702e933c26369dcac356
3
+ size 34974
vendor/data/ejes/chile-primera/26/match_team_vars.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8264ec9f3e12318a31976dff1fa366e925fe7ec6a390bb13e7f532ede9852e5a
3
+ size 126318
vendor/data/ejes/chile-primera/26/predictor.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": {"gen": 0.6224, "con": 0.6619, "intercept": 0.0068}, "elaboracion": {"gen": 0.8124, "con": 0.8404, "intercept": -0.0007}, "individual": {"gen": 0.6271, "con": 0.2122, "intercept": -0.0001}, "rotura_lineas": {"gen": 0.7017, "con": 0.6412, "intercept": -0.0004}, "amplitud_centro": {"gen": 0.6392, "con": 0.5207, "intercept": -0.0001}, "profundidad_espalda": {"gen": 0.3555, "con": 0.4199, "intercept": 0.0004}, "robo_alto": {"gen": 0.5105, "con": 0.5634, "intercept": 0.0003}, "aereo_segunda": {"gen": 0.6479, "con": 0.0646, "intercept": -0.0001}}
vendor/data/ejes/chile-primera/26/scales.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"var_sigma": {"atk_l": 1.6825, "atk_w": 1.3168, "ball_distance": 49.2584, "behind_line_ok": 0.0254, "broke_last_line": 0.0188, "broke_second_last": 0.0434, "cross_pvadded_max": 0.0013, "dang_runs": 0.0677, "deep_completions": 0.0975, "def_h": 2.3568, "dribbles_box": 0.008, "dribbles_last_third": 0.0219, "duration_s": 18.4505, "hold_max": 1.3776, "hold_mean": 1.0542, "hold_min": 0.9982, "line_breaks": 0.2493, "max_x": 3.2093, "n_centros": 0.0448, "n_events": 1.733, "n_involved": 0.1565, "n_passes": 0.5389, "opt_quality_mean": 0.1047, "paredes": 0.0937, "pass_options_mean": 1.8683, "passes_behind_line": 0.0433, "pct_adentro": 0.0342, "pct_afuera": 0.0345, "pct_cortos": 0.0446, "pct_headpass": 0.0144, "pct_largos": 0.0431, "pct_launch": 0.0325, "pct_layoff": 0.0041, "pct_medios": 0.0407, "pct_switch": 0.005, "pct_through": 0.0031, "pct_verticales": 0.0534, "pelotazos_espalda": 0.0362, "press_final": 0.5516, "press_media": 0.3906, "prog_x": 2.5548, "start_x": 3.7642, "starts_from_dispossess": 0.0177, "takeons_ok": 0.0203, "tempo": 0.0392, "transition_speed": 0.6728, "verticalidad_media": 0.0593}, "eje_sigma": {"eje_verticalidad": 0.1067, "eje_elaboracion": 0.0932, "eje_individual": 0.063, "eje_rotura_lineas": 0.0716, "eje_amplitud_centro": 0.0502, "eje_profundidad_espalda": 0.0985, "eje_robo_alto": 0.0887, "eje_aereo_segunda": 0.0576}, "eje_match_mean": {"eje_verticalidad": -0.0239, "eje_elaboracion": 0.0011, "eje_individual": -0.0007, "eje_rotura_lineas": 0.0011, "eje_amplitud_centro": 0.0007, "eje_profundidad_espalda": 0.0019, "eje_robo_alto": -0.0035, "eje_aereo_segunda": -0.0004}, "eje_match_std": {"eje_verticalidad": 0.1156, "eje_elaboracion": 0.1058, "eje_individual": 0.0688, "eje_rotura_lineas": 0.0786, "eje_amplitud_centro": 0.0544, "eje_profundidad_espalda": 0.1035, "eje_robo_alto": 0.0948, "eje_aereo_segunda": 0.0634}, "team_var_norm": {"Audax Italiano": {"atk_l": 43.9236, "atk_w": 35.9065, "ball_distance": 110.4739, "behind_line_ok": 0.0581, "broke_last_line": 0.033, "broke_second_last": 0.1262, "cross_pvadded_max": 0.0008, "dang_runs": 0.0818, "deep_completions": 0.2833, "def_h": 31.4247, "dribbles_box": 0.008, "dribbles_last_third": 0.0457, "duration_s": 24.3766, "hold_max": 10.832, "hold_mean": 6.0493, "hold_min": 3.4385, "line_breaks": 0.5401, "max_x": 66.4541, "n_centros": 0.116, "n_events": 5.2087, "n_involved": 1.7852, "n_passes": 2.9484, "opt_quality_mean": -0.0836, "paredes": 0.2163, "pass_options_mean": 7.3425, "passes_behind_line": 0.1326, "pct_adentro": 0.5153, "pct_afuera": 0.4073, "pct_cortos": 0.3493, "pct_headpass": 0.0446, "pct_largos": 0.229, "pct_launch": 0.0841, "pct_layoff": 0.0096, "pct_medios": 0.3451, "pct_switch": 0.0062, "pct_through": 0.0018, "pct_verticales": 0.4863, "pelotazos_espalda": 0.1001, "press_final": 2.2995, "press_media": 1.6283, "prog_x": 26.0596, "start_x": 41.4831, "starts_from_dispossess": 0.0348, "takeons_ok": 0.0512, "tempo": 0.3784, "transition_speed": 3.6628, "verticalidad_media": 0.3591}, "Cobresal": {"atk_l": 41.1553, "atk_w": 35.2499, "ball_distance": 109.0976, "behind_line_ok": 0.0643, "broke_last_line": 0.0308, "broke_second_last": 0.1463, "cross_pvadded_max": 0.001, "dang_runs": 0.1364, "deep_completions": 0.3, "def_h": 31.1406, "dribbles_box": 0.0071, "dribbles_last_third": 0.048, "duration_s": 23.5695, "hold_max": 9.774, "hold_mean": 5.9359, "hold_min": 3.715, "line_breaks": 0.6268, "max_x": 67.9779, "n_centros": 0.1383, "n_events": 5.144, "n_involved": 1.8427, "n_passes": 2.8522, "opt_quality_mean": -0.0586, "paredes": 0.2054, "pass_options_mean": 7.2342, "passes_behind_line": 0.1248, "pct_adentro": 0.5101, "pct_afuera": 0.4135, "pct_cortos": 0.3224, "pct_headpass": 0.0369, "pct_largos": 0.2603, "pct_launch": 0.0896, "pct_layoff": 0.0088, "pct_medios": 0.3419, "pct_switch": 0.0082, "pct_through": 0.0028, "pct_verticales": 0.5125, "pelotazos_espalda": 0.0921, "press_final": 2.4565, "press_media": 1.7632, "prog_x": 28.1732, "start_x": 40.9987, "starts_from_dispossess": 0.0412, "takeons_ok": 0.048, "tempo": 0.3483, "transition_speed": 3.925, "verticalidad_media": 0.3826}, "Colo Colo": {"atk_l": 42.1536, "atk_w": 34.8239, "ball_distance": 141.2925, "behind_line_ok": 0.0582, "broke_last_line": 0.0399, "broke_second_last": 0.1912, "cross_pvadded_max": 0.0007, "dang_runs": 0.1264, "deep_completions": 0.3931, "def_h": 29.2162, "dribbles_box": 0.014, "dribbles_last_third": 0.0748, "duration_s": 19.4176, "hold_max": 9.9064, "hold_mean": 5.8486, "hold_min": 3.5145, "line_breaks": 0.7819, "max_x": 70.7258, "n_centros": 0.14, "n_events": 5.4431, "n_involved": 2.0166, "n_passes": 3.6494, "opt_quality_mean": 0.0108, "paredes": 0.3161, "pass_options_mean": 7.6596, "passes_behind_line": 0.1199, "pct_adentro": 0.5343, "pct_afuera": 0.396, "pct_cortos": 0.405, "pct_headpass": 0.0402, "pct_largos": 0.1859, "pct_launch": 0.0669, "pct_layoff": 0.0094, "pct_medios": 0.3408, "pct_switch": 0.0084, "pct_through": 0.004, "pct_verticales": 0.4628, "pelotazos_espalda": 0.0837, "press_final": 2.4562, "press_media": 1.7968, "prog_x": 25.6585, "start_x": 46.1756, "starts_from_dispossess": 0.0463, "takeons_ok": 0.0592, "tempo": 0.3927, "transition_speed": 3.4476, "verticalidad_media": 0.3098}, "Coquimbo Unido": {"atk_l": 40.0598, "atk_w": 34.7386, "ball_distance": 81.7283, "behind_line_ok": 0.0493, "broke_last_line": 0.0399, "broke_second_last": 0.1237, "cross_pvadded_max": 0.0011, "dang_runs": 0.1092, "deep_completions": 0.3469, "def_h": 28.5956, "dribbles_box": 0.0096, "dribbles_last_third": 0.0471, "duration_s": 27.4029, "hold_max": 9.7983, "hold_mean": 5.9343, "hold_min": 3.6173, "line_breaks": 0.3869, "max_x": 71.37, "n_centros": 0.1544, "n_events": 5.4727, "n_involved": 1.7389, "n_passes": 2.756, "opt_quality_mean": -0.0118, "paredes": 0.2135, "pass_options_mean": 7.3019, "passes_behind_line": 0.116, "pct_adentro": 0.5303, "pct_afuera": 0.3915, "pct_cortos": 0.3579, "pct_headpass": 0.0643, "pct_largos": 0.2408, "pct_launch": 0.089, "pct_layoff": 0.0087, "pct_medios": 0.3237, "pct_switch": 0.0059, "pct_through": 0.0018, "pct_verticales": 0.5291, "pelotazos_espalda": 0.0817, "press_final": 2.4001, "press_media": 1.7265, "prog_x": 27.0778, "start_x": 45.4939, "starts_from_dispossess": 0.0421, "takeons_ok": 0.0351, "tempo": 0.3851, "transition_speed": 4.1515, "verticalidad_media": 0.398}, "Deportes Concepción": {"atk_l": 41.3362, "atk_w": 34.946, "ball_distance": 106.8195, "behind_line_ok": 0.0472, "broke_last_line": 0.035, "broke_second_last": 0.1311, "cross_pvadded_max": 0.001, "dang_runs": 0.1407, "deep_completions": 0.2768, "def_h": 30.8809, "dribbles_box": 0.008, "dribbles_last_third": 0.0437, "duration_s": 21.6807, "hold_max": 10.4322, "hold_mean": 6.1779, "hold_min": 3.7647, "line_breaks": 0.4638, "max_x": 69.1449, "n_centros": 0.1614, "n_events": 5.0412, "n_involved": 1.7219, "n_passes": 2.913, "opt_quality_mean": -0.0571, "paredes": 0.2107, "pass_options_mean": 8.0276, "passes_behind_line": 0.1268, "pct_adentro": 0.5144, "pct_afuera": 0.395, "pct_cortos": 0.3532, "pct_headpass": 0.0454, "pct_largos": 0.2231, "pct_launch": 0.0953, "pct_layoff": 0.0057, "pct_medios": 0.3337, "pct_switch": 0.0067, "pct_through": 0.0015, "pct_verticales": 0.5023, "pelotazos_espalda": 0.0993, "press_final": 2.5799, "press_media": 1.825, "prog_x": 27.1827, "start_x": 43.2267, "starts_from_dispossess": 0.0371, "takeons_ok": 0.0435, "tempo": 0.3639, "transition_speed": 3.9681, "verticalidad_media": 0.3786}, "Deportes Limache": {"atk_l": 42.041, "atk_w": 37.3956, "ball_distance": 120.9087, "behind_line_ok": 0.0556, "broke_last_line": 0.0268, "broke_second_last": 0.1238, "cross_pvadded_max": 0.0016, "dang_runs": 0.1053, "deep_completions": 0.3055, "def_h": 30.4083, "dribbles_box": 0.0134, "dribbles_last_third": 0.0634, "duration_s": 35.1504, "hold_max": 10.5949, "hold_mean": 5.9118, "hold_min": 3.5558, "line_breaks": 0.4913, "max_x": 69.4904, "n_centros": 0.1265, "n_events": 6.0448, "n_involved": 1.7411, "n_passes": 2.8435, "opt_quality_mean": -0.044, "paredes": 0.2509, "pass_options_mean": 7.9205, "passes_behind_line": 0.1305, "pct_adentro": 0.5038, "pct_afuera": 0.4081, "pct_cortos": 0.3234, "pct_headpass": 0.043, "pct_largos": 0.2377, "pct_launch": 0.0971, "pct_layoff": 0.0053, "pct_medios": 0.3524, "pct_switch": 0.0066, "pct_through": 0.002, "pct_verticales": 0.5213, "pelotazos_espalda": 0.098, "press_final": 2.5584, "press_media": 1.8402, "prog_x": 28.1893, "start_x": 42.8098, "starts_from_dispossess": 0.0339, "takeons_ok": 0.0541, "tempo": 0.3579, "transition_speed": 4.1984, "verticalidad_media": 0.4064}, "Everton": {"atk_l": 41.5943, "atk_w": 35.2604, "ball_distance": 104.8116, "behind_line_ok": 0.0523, "broke_last_line": 0.0387, "broke_second_last": 0.1402, "cross_pvadded_max": 0.0009, "dang_runs": 0.0875, "deep_completions": 0.3168, "def_h": 30.6894, "dribbles_box": 0.0077, "dribbles_last_third": 0.0487, "duration_s": 22.4321, "hold_max": 9.8818, "hold_mean": 5.8723, "hold_min": 3.5059, "line_breaks": 0.5465, "max_x": 68.9878, "n_centros": 0.1373, "n_events": 4.9321, "n_involved": 1.7968, "n_passes": 2.713, "opt_quality_mean": -0.0356, "paredes": 0.2038, "pass_options_mean": 7.3116, "passes_behind_line": 0.1073, "pct_adentro": 0.5184, "pct_afuera": 0.401, "pct_cortos": 0.3651, "pct_headpass": 0.0455, "pct_largos": 0.2193, "pct_launch": 0.0855, "pct_layoff": 0.0064, "pct_medios": 0.3355, "pct_switch": 0.0071, "pct_through": 0.0013, "pct_verticales": 0.523, "pelotazos_espalda": 0.0785, "press_final": 2.1912, "press_media": 1.629, "prog_x": 26.7918, "start_x": 43.309, "starts_from_dispossess": 0.0431, "takeons_ok": 0.0508, "tempo": 0.3858, "transition_speed": 4.1993, "verticalidad_media": 0.4035}, "Huachipato": {"atk_l": 40.6697, "atk_w": 36.0549, "ball_distance": 91.3896, "behind_line_ok": 0.0548, "broke_last_line": 0.0251, "broke_second_last": 0.1231, "cross_pvadded_max": 0.0015, "dang_runs": 0.0646, "deep_completions": 0.2817, "def_h": 30.6673, "dribbles_box": 0.0045, "dribbles_last_third": 0.0374, "duration_s": 28.6093, "hold_max": 10.4016, "hold_mean": 6.3596, "hold_min": 4.1491, "line_breaks": 0.4364, "max_x": 68.8979, "n_centros": 0.1404, "n_events": 5.6951, "n_involved": 1.8404, "n_passes": 2.8075, "opt_quality_mean": -0.0631, "paredes": 0.1959, "pass_options_mean": 6.7544, "passes_behind_line": 0.1332, "pct_adentro": 0.5358, "pct_afuera": 0.3784, "pct_cortos": 0.3351, "pct_headpass": 0.0531, "pct_largos": 0.2467, "pct_launch": 0.0822, "pct_layoff": 0.0099, "pct_medios": 0.3332, "pct_switch": 0.0062, "pct_through": 0.0024, "pct_verticales": 0.5197, "pelotazos_espalda": 0.1098, "press_final": 2.2469, "press_media": 1.7085, "prog_x": 27.694, "start_x": 42.7358, "starts_from_dispossess": 0.0417, "takeons_ok": 0.0375, "tempo": 0.3589, "transition_speed": 3.7411, "verticalidad_media": 0.4001}, "La Serena": {"atk_l": 40.0815, "atk_w": 34.1472, "ball_distance": 90.5409, "behind_line_ok": 0.0432, "broke_last_line": 0.026, "broke_second_last": 0.1418, "cross_pvadded_max": 0.0009, "dang_runs": 0.0956, "deep_completions": 0.2456, "def_h": 31.6578, "dribbles_box": 0.0057, "dribbles_last_third": 0.0428, "duration_s": 13.5841, "hold_max": 10.626, "hold_mean": 6.5144, "hold_min": 4.0239, "line_breaks": 0.4671, "max_x": 67.3348, "n_centros": 0.0975, "n_events": 4.1643, "n_involved": 1.7916, "n_passes": 2.5904, "opt_quality_mean": -0.1166, "paredes": 0.1796, "pass_options_mean": 7.7619, "passes_behind_line": 0.1113, "pct_adentro": 0.5071, "pct_afuera": 0.3973, "pct_cortos": 0.3538, "pct_headpass": 0.0488, "pct_largos": 0.2222, "pct_launch": 0.12, "pct_layoff": 0.0086, "pct_medios": 0.3291, "pct_switch": 0.0029, "pct_through": 0.0022, "pct_verticales": 0.5254, "pelotazos_espalda": 0.0873, "press_final": 2.6426, "press_media": 1.9287, "prog_x": 25.6145, "start_x": 43.0097, "starts_from_dispossess": 0.0468, "takeons_ok": 0.045, "tempo": 0.3711, "transition_speed": 3.9351, "verticalidad_media": 0.409}, "O'Higgins": {"atk_l": 40.6683, "atk_w": 34.68, "ball_distance": 98.4671, "behind_line_ok": 0.0337, "broke_last_line": 0.028, "broke_second_last": 0.1308, "cross_pvadded_max": 0.0019, "dang_runs": 0.1291, "deep_completions": 0.3028, "def_h": 30.3821, "dribbles_box": 0.0086, "dribbles_last_third": 0.0496, "duration_s": 37.0908, "hold_max": 10.93, "hold_mean": 6.1839, "hold_min": 3.666, "line_breaks": 0.4717, "max_x": 69.1333, "n_centros": 0.1558, "n_events": 6.3802, "n_involved": 1.8263, "n_passes": 3.0622, "opt_quality_mean": -0.0327, "paredes": 0.2729, "pass_options_mean": 7.2158, "passes_behind_line": 0.0874, "pct_adentro": 0.5049, "pct_afuera": 0.4035, "pct_cortos": 0.3719, "pct_headpass": 0.0495, "pct_largos": 0.1972, "pct_launch": 0.0965, "pct_layoff": 0.0105, "pct_medios": 0.3397, "pct_switch": 0.0025, "pct_through": 0.0023, "pct_verticales": 0.5005, "pelotazos_espalda": 0.0575, "press_final": 2.2902, "press_media": 1.6804, "prog_x": 27.0006, "start_x": 43.378, "starts_from_dispossess": 0.0411, "takeons_ok": 0.0452, "tempo": 0.3741, "transition_speed": 3.6955, "verticalidad_media": 0.3761}, "Palestino": {"atk_l": 40.963, "atk_w": 35.1724, "ball_distance": 103.9561, "behind_line_ok": 0.0542, "broke_last_line": 0.0266, "broke_second_last": 0.1563, "cross_pvadded_max": 0.0012, "dang_runs": 0.0891, "deep_completions": 0.2852, "def_h": 30.3208, "dribbles_box": 0.0081, "dribbles_last_third": 0.051, "duration_s": 32.327, "hold_max": 10.3905, "hold_mean": 5.8207, "hold_min": 3.3462, "line_breaks": 0.4245, "max_x": 68.6686, "n_centros": 0.1318, "n_events": 6.089, "n_involved": 1.8107, "n_passes": 2.9328, "opt_quality_mean": -0.0175, "paredes": 0.252, "pass_options_mean": 7.5083, "passes_behind_line": 0.1143, "pct_adentro": 0.5152, "pct_afuera": 0.3951, "pct_cortos": 0.3941, "pct_headpass": 0.0599, "pct_largos": 0.2318, "pct_launch": 0.106, "pct_layoff": 0.007, "pct_medios": 0.2858, "pct_switch": 0.005, "pct_through": 0.0009, "pct_verticales": 0.5115, "pelotazos_espalda": 0.0879, "press_final": 2.3961, "press_media": 1.689, "prog_x": 27.3316, "start_x": 42.6142, "starts_from_dispossess": 0.036, "takeons_ok": 0.0469, "tempo": 0.3893, "transition_speed": 4.0571, "verticalidad_media": 0.3846}, "Universidad Católica": {"atk_l": 41.4091, "atk_w": 35.728, "ball_distance": 140.8207, "behind_line_ok": 0.0531, "broke_last_line": 0.0439, "broke_second_last": 0.1721, "cross_pvadded_max": 0.0017, "dang_runs": 0.1186, "deep_completions": 0.329, "def_h": 30.2428, "dribbles_box": 0.009, "dribbles_last_third": 0.0464, "duration_s": 26.7206, "hold_max": 10.8556, "hold_mean": 6.0209, "hold_min": 3.4544, "line_breaks": 0.5684, "max_x": 70.2344, "n_centros": 0.1732, "n_events": 5.8315, "n_involved": 1.9272, "n_passes": 3.3105, "opt_quality_mean": -0.0005, "paredes": 0.3551, "pass_options_mean": 8.1004, "passes_behind_line": 0.1228, "pct_adentro": 0.5293, "pct_afuera": 0.3835, "pct_cortos": 0.3848, "pct_headpass": 0.0429, "pct_largos": 0.2015, "pct_launch": 0.0759, "pct_layoff": 0.0096, "pct_medios": 0.328, "pct_switch": 0.004, "pct_through": 0.0045, "pct_verticales": 0.4846, "pelotazos_espalda": 0.0855, "press_final": 2.3942, "press_media": 1.7472, "prog_x": 27.2156, "start_x": 44.419, "starts_from_dispossess": 0.0379, "takeons_ok": 0.0468, "tempo": 0.4107, "transition_speed": 3.7859, "verticalidad_media": 0.3486}, "Universidad Concepción": {"atk_l": 42.1807, "atk_w": 34.2435, "ball_distance": 98.0222, "behind_line_ok": 0.0393, "broke_last_line": 0.0315, "broke_second_last": 0.1425, "cross_pvadded_max": 0.0008, "dang_runs": 0.0934, "deep_completions": 0.3108, "def_h": 30.8232, "dribbles_box": 0.0106, "dribbles_last_third": 0.0611, "duration_s": 18.1323, "hold_max": 10.0577, "hold_mean": 5.9688, "hold_min": 3.5953, "line_breaks": 0.4996, "max_x": 67.7226, "n_centros": 0.1261, "n_events": 4.7324, "n_involved": 1.8149, "n_passes": 2.8846, "opt_quality_mean": -0.0381, "paredes": 0.2282, "pass_options_mean": 7.3632, "passes_behind_line": 0.0938, "pct_adentro": 0.5114, "pct_afuera": 0.3877, "pct_cortos": 0.3835, "pct_headpass": 0.0463, "pct_largos": 0.1978, "pct_launch": 0.0864, "pct_layoff": 0.0073, "pct_medios": 0.319, "pct_switch": 0.0059, "pct_through": 0.0025, "pct_verticales": 0.4834, "pelotazos_espalda": 0.0647, "press_final": 2.6616, "press_media": 1.9459, "prog_x": 24.6219, "start_x": 44.6091, "starts_from_dispossess": 0.0361, "takeons_ok": 0.0642, "tempo": 0.3712, "transition_speed": 3.3922, "verticalidad_media": 0.3547}, "Universidad de Chile": {"atk_l": 41.8757, "atk_w": 34.0639, "ball_distance": 122.2994, "behind_line_ok": 0.0445, "broke_last_line": 0.0257, "broke_second_last": 0.1552, "cross_pvadded_max": 0.0013, "dang_runs": 0.15, "deep_completions": 0.3337, "def_h": 29.844, "dribbles_box": 0.0133, "dribbles_last_third": 0.0532, "duration_s": 43.9797, "hold_max": 10.6605, "hold_mean": 6.0211, "hold_min": 3.5989, "line_breaks": 0.5714, "max_x": 69.1156, "n_centros": 0.1296, "n_events": 7.2386, "n_involved": 1.9569, "n_passes": 3.27, "opt_quality_mean": 0.0058, "paredes": 0.2735, "pass_options_mean": 7.5431, "passes_behind_line": 0.1025, "pct_adentro": 0.5156, "pct_afuera": 0.4054, "pct_cortos": 0.3961, "pct_headpass": 0.0509, "pct_largos": 0.1919, "pct_launch": 0.1004, "pct_layoff": 0.0113, "pct_medios": 0.3336, "pct_switch": 0.0057, "pct_through": 0.0011, "pct_verticales": 0.5074, "pelotazos_espalda": 0.0715, "press_final": 2.4084, "press_media": 1.7335, "prog_x": 25.3528, "start_x": 44.7063, "starts_from_dispossess": 0.0443, "takeons_ok": 0.0511, "tempo": 0.3911, "transition_speed": 3.804, "verticalidad_media": 0.3729}, "Unión La Calera": {"atk_l": 43.809, "atk_w": 34.3533, "ball_distance": 121.6803, "behind_line_ok": 0.046, "broke_last_line": 0.033, "broke_second_last": 0.1327, "cross_pvadded_max": 0.0011, "dang_runs": 0.1176, "deep_completions": 0.2544, "def_h": 30.9269, "dribbles_box": 0.0118, "dribbles_last_third": 0.0565, "duration_s": 38.2518, "hold_max": 10.5974, "hold_mean": 6.0769, "hold_min": 3.5696, "line_breaks": 0.5359, "max_x": 67.3002, "n_centros": 0.154, "n_events": 6.4635, "n_involved": 1.8988, "n_passes": 3.049, "opt_quality_mean": -0.0728, "paredes": 0.196, "pass_options_mean": 7.5498, "passes_behind_line": 0.1143, "pct_adentro": 0.5351, "pct_afuera": 0.3935, "pct_cortos": 0.3589, "pct_headpass": 0.0534, "pct_largos": 0.2172, "pct_launch": 0.0896, "pct_layoff": 0.0069, "pct_medios": 0.3539, "pct_switch": 0.0038, "pct_through": 0.0023, "pct_verticales": 0.5031, "pelotazos_espalda": 0.0841, "press_final": 2.494, "press_media": 1.8736, "prog_x": 25.5946, "start_x": 42.8317, "starts_from_dispossess": 0.0447, "takeons_ok": 0.0424, "tempo": 0.3836, "transition_speed": 3.6248, "verticalidad_media": 0.3587}, "Ñublense": {"atk_l": 39.6577, "atk_w": 34.051, "ball_distance": 67.4064, "behind_line_ok": 0.0373, "broke_last_line": 0.0211, "broke_second_last": 0.149, "cross_pvadded_max": 0.0015, "dang_runs": 0.0682, "deep_completions": 0.2973, "def_h": 29.4716, "dribbles_box": 0.0066, "dribbles_last_third": 0.0404, "duration_s": 23.4373, "hold_max": 10.1392, "hold_mean": 6.3186, "hold_min": 4.0473, "line_breaks": 0.3022, "max_x": 69.6833, "n_centros": 0.1372, "n_events": 5.091, "n_involved": 1.7539, "n_passes": 2.56, "opt_quality_mean": -0.0315, "paredes": 0.1774, "pass_options_mean": 6.7172, "passes_behind_line": 0.0927, "pct_adentro": 0.5367, "pct_afuera": 0.3777, "pct_cortos": 0.399, "pct_headpass": 0.0719, "pct_largos": 0.2084, "pct_launch": 0.089, "pct_layoff": 0.0058, "pct_medios": 0.3078, "pct_switch": 0.0041, "pct_through": 0.0013, "pct_verticales": 0.5221, "pelotazos_espalda": 0.0675, "press_final": 2.2955, "press_media": 1.7525, "prog_x": 25.4106, "start_x": 45.6066, "starts_from_dispossess": 0.0492, "takeons_ok": 0.0365, "tempo": 0.3963, "transition_speed": 3.9099, "verticalidad_media": 0.4144}}, "team_eje_norm_gen": {"Audax Italiano": {"eje_verticalidad": -0.0445, "eje_elaboracion": -0.0189, "eje_individual": -0.0139, "eje_rotura_lineas": -0.0067, "eje_amplitud_centro": -0.0062, "eje_profundidad_espalda": 0.0321, "eje_robo_alto": -0.0589, "eje_aereo_segunda": -0.0101}, "Cobresal": {"eje_verticalidad": 0.0194, "eje_elaboracion": -0.0492, "eje_individual": 0.0025, "eje_rotura_lineas": 0.0214, "eje_amplitud_centro": 0.0333, "eje_profundidad_espalda": 0.0319, "eje_robo_alto": -0.0521, "eje_aereo_segunda": -0.0239}, "Colo Colo": {"eje_verticalidad": -0.1257, "eje_elaboracion": 0.1072, "eje_individual": 0.0578, "eje_rotura_lineas": 0.0915, "eje_amplitud_centro": 0.0196, "eje_profundidad_espalda": 0.0476, "eje_robo_alto": 0.0588, "eje_aereo_segunda": -0.0426}, "Coquimbo Unido": {"eje_verticalidad": 0.0324, "eje_elaboracion": -0.0268, "eje_individual": -0.0159, "eje_rotura_lineas": -0.0169, "eje_amplitud_centro": 0.0137, "eje_profundidad_espalda": 0.0162, "eje_robo_alto": 0.0351, "eje_aereo_segunda": 0.0301}, "Deportes Concepción": {"eje_verticalidad": -0.0227, "eje_elaboracion": -0.0232, "eje_individual": -0.003, "eje_rotura_lineas": -0.0121, "eje_amplitud_centro": 0.0282, "eje_profundidad_espalda": 0.0124, "eje_robo_alto": -0.0204, "eje_aereo_segunda": -0.0197}, "Deportes Limache": {"eje_verticalidad": 0.0266, "eje_elaboracion": -0.023, "eje_individual": 0.0308, "eje_rotura_lineas": -0.0216, "eje_amplitud_centro": 0.007, "eje_profundidad_espalda": 0.0338, "eje_robo_alto": -0.0362, "eje_aereo_segunda": -0.0256}, "Everton": {"eje_verticalidad": 0.0146, "eje_elaboracion": -0.0328, "eje_individual": -0.0097, "eje_rotura_lineas": 0.0079, "eje_amplitud_centro": 0.0135, "eje_profundidad_espalda": -0.0009, "eje_robo_alto": -0.0035, "eje_aereo_segunda": -0.0277}, "Huachipato": {"eje_verticalidad": 0.0141, "eje_elaboracion": -0.0441, "eje_individual": -0.0528, "eje_rotura_lineas": -0.0282, "eje_amplitud_centro": -0.0099, "eje_profundidad_espalda": 0.037, "eje_robo_alto": -0.0178, "eje_aereo_segunda": 0.0066}, "La Serena": {"eje_verticalidad": 0.0076, "eje_elaboracion": -0.0657, "eje_individual": -0.0247, "eje_rotura_lineas": -0.0121, "eje_amplitud_centro": -0.0538, "eje_profundidad_espalda": -0.0259, "eje_robo_alto": 0.0001, "eje_aereo_segunda": 0.0384}, "O'Higgins": {"eje_verticalidad": -0.0533, "eje_elaboracion": 0.0363, "eje_individual": 0.0025, "eje_rotura_lineas": -0.0154, "eje_amplitud_centro": 0.0045, "eje_profundidad_espalda": -0.0608, "eje_robo_alto": -0.0073, "eje_aereo_segunda": 0.0215}, "Palestino": {"eje_verticalidad": -0.0018, "eje_elaboracion": 0.0297, "eje_individual": -0.0099, "eje_rotura_lineas": -0.0161, "eje_amplitud_centro": -0.0101, "eje_profundidad_espalda": 0.0035, "eje_robo_alto": -0.0345, "eje_aereo_segunda": 0.0319}, "Universidad Católica": {"eje_verticalidad": -0.0701, "eje_elaboracion": 0.0882, "eje_individual": -0.0019, "eje_rotura_lineas": 0.0624, "eje_amplitud_centro": 0.0119, "eje_profundidad_espalda": 0.0225, "eje_robo_alto": 0.0043, "eje_aereo_segunda": -0.024}, "Universidad Concepción": {"eje_verticalidad": -0.0912, "eje_elaboracion": -0.0009, "eje_individual": 0.0279, "eje_rotura_lineas": 0.002, "eje_amplitud_centro": -0.0169, "eje_profundidad_espalda": -0.0402, "eje_robo_alto": 0.0033, "eje_aereo_segunda": -0.0188}, "Universidad de Chile": {"eje_verticalidad": -0.0462, "eje_elaboracion": 0.0738, "eje_individual": 0.0324, "eje_rotura_lineas": 0.0012, "eje_amplitud_centro": 0.0015, "eje_profundidad_espalda": -0.0134, "eje_robo_alto": 0.0258, "eje_aereo_segunda": 0.0348}, "Unión La Calera": {"eje_verticalidad": -0.0425, "eje_elaboracion": -0.0025, "eje_individual": 0.0109, "eje_rotura_lineas": 0.0006, "eje_amplitud_centro": 0.0019, "eje_profundidad_espalda": -0.0202, "eje_robo_alto": -0.0085, "eje_aereo_segunda": -0.003}, "Ñublense": {"eje_verticalidad": 0.0015, "eje_elaboracion": -0.0313, "eje_individual": -0.0441, "eje_rotura_lineas": -0.0401, "eje_amplitud_centro": -0.0271, "eje_profundidad_espalda": -0.0457, "eje_robo_alto": 0.0554, "eje_aereo_segunda": 0.0266}}, "team_eje_norm_con": {"Audax Italiano": {"eje_verticalidad": -0.0159, "eje_elaboracion": 0.0057, "eje_individual": -0.0063, "eje_rotura_lineas": 0.0008, "eje_amplitud_centro": 0.0132, "eje_profundidad_espalda": 0.0156, "eje_robo_alto": 0.0226, "eje_aereo_segunda": 0.0033}, "Cobresal": {"eje_verticalidad": -0.1062, "eje_elaboracion": 0.1113, "eje_individual": 0.0392, "eje_rotura_lineas": 0.0697, "eje_amplitud_centro": 0.0123, "eje_profundidad_espalda": 0.049, "eje_robo_alto": 0.0734, "eje_aereo_segunda": -0.0395}, "Colo Colo": {"eje_verticalidad": 0.0789, "eje_elaboracion": -0.0881, "eje_individual": -0.026, "eje_rotura_lineas": -0.0011, "eje_amplitud_centro": -0.0008, "eje_profundidad_espalda": -0.045, "eje_robo_alto": -0.0736, "eje_aereo_segunda": 0.0152}, "Coquimbo Unido": {"eje_verticalidad": -0.0043, "eje_elaboracion": -0.0271, "eje_individual": -0.0184, "eje_rotura_lineas": -0.0422, "eje_amplitud_centro": -0.0324, "eje_profundidad_espalda": -0.0717, "eje_robo_alto": -0.0558, "eje_aereo_segunda": 0.0025}, "Deportes Concepción": {"eje_verticalidad": -0.0316, "eje_elaboracion": 0.0376, "eje_individual": 0.0326, "eje_rotura_lineas": 0.0061, "eje_amplitud_centro": 0.0117, "eje_profundidad_espalda": -0.0017, "eje_robo_alto": -0.0065, "eje_aereo_segunda": 0.0015}, "Deportes Limache": {"eje_verticalidad": -0.1052, "eje_elaboracion": 0.0571, "eje_individual": -0.0061, "eje_rotura_lineas": 0.0575, "eje_amplitud_centro": 0.0157, "eje_profundidad_espalda": 0.056, "eje_robo_alto": 0.0257, "eje_aereo_segunda": -0.0122}, "Everton": {"eje_verticalidad": -0.0182, "eje_elaboracion": 0.0025, "eje_individual": -0.0056, "eje_rotura_lineas": -0.0051, "eje_amplitud_centro": 0.0053, "eje_profundidad_espalda": 0.023, "eje_robo_alto": -0.013, "eje_aereo_segunda": 0.0066}, "Huachipato": {"eje_verticalidad": -0.0538, "eje_elaboracion": -0.0034, "eje_individual": 0.0311, "eje_rotura_lineas": -0.0087, "eje_amplitud_centro": 0.0198, "eje_profundidad_espalda": 0.0134, "eje_robo_alto": 0.0164, "eje_aereo_segunda": -0.0073}, "La Serena": {"eje_verticalidad": -0.027, "eje_elaboracion": -0.0434, "eje_individual": -0.0019, "eje_rotura_lineas": -0.0255, "eje_amplitud_centro": -0.035, "eje_profundidad_espalda": 0.0306, "eje_robo_alto": 0.0361, "eje_aereo_segunda": 0.0168}, "O'Higgins": {"eje_verticalidad": -0.0112, "eje_elaboracion": 0.0215, "eje_individual": -0.0223, "eje_rotura_lineas": 0.025, "eje_amplitud_centro": 0.0169, "eje_profundidad_espalda": 0.0351, "eje_robo_alto": -0.0089, "eje_aereo_segunda": 0.0052}, "Palestino": {"eje_verticalidad": -0.0349, "eje_elaboracion": -0.0157, "eje_individual": -0.0071, "eje_rotura_lineas": -0.0244, "eje_amplitud_centro": -0.0047, "eje_profundidad_espalda": 0.0035, "eje_robo_alto": -0.0015, "eje_aereo_segunda": -0.0012}, "Universidad Católica": {"eje_verticalidad": 0.047, "eje_elaboracion": -0.042, "eje_individual": -0.0038, "eje_rotura_lineas": -0.0271, "eje_amplitud_centro": 0.0288, "eje_profundidad_espalda": -0.0121, "eje_robo_alto": -0.0411, "eje_aereo_segunda": -0.0084}, "Universidad Concepción": {"eje_verticalidad": -0.0418, "eje_elaboracion": 0.0391, "eje_individual": -0.0008, "eje_rotura_lineas": 0.0033, "eje_amplitud_centro": 0.0031, "eje_profundidad_espalda": -0.0331, "eje_robo_alto": 0.0012, "eje_aereo_segunda": 0.0184}, "Universidad de Chile": {"eje_verticalidad": 0.0296, "eje_elaboracion": -0.0992, "eje_individual": -0.0219, "eje_rotura_lineas": -0.0302, "eje_amplitud_centro": -0.0222, "eje_profundidad_espalda": -0.0015, "eje_robo_alto": -0.0066, "eje_aereo_segunda": 0.0254}, "Unión La Calera": {"eje_verticalidad": -0.0283, "eje_elaboracion": 0.0001, "eje_individual": 0.0094, "eje_rotura_lineas": -0.0029, "eje_amplitud_centro": -0.0136, "eje_profundidad_espalda": 0.0032, "eje_robo_alto": 0.0102, "eje_aereo_segunda": -0.0189}, "Ñublense": {"eje_verticalidad": -0.059, "eje_elaboracion": 0.061, "eje_individual": -0.0035, "eje_rotura_lineas": 0.0227, "eje_amplitud_centro": -0.0071, "eje_profundidad_espalda": -0.0346, "eje_robo_alto": -0.035, "eje_aereo_segunda": -0.0132}}}
vendor/data/ejes/chile-primera/26/team_profiles.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:03d6388ad97aacde9c49d052b433fa269ef0a16e2d90344b00de75db7e05f986
3
+ size 8814
vendor/data/ejes/croatia-prva-hnl/25-26/ejes_definition.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
vendor/data/ejes/croatia-prva-hnl/25-26/match_team_ejes.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0e6aada718255c12ca8205e1904e94fc72f134a5f72a44bca6198347f5f03817
3
+ size 47125
vendor/data/ejes/croatia-prva-hnl/25-26/match_team_vars.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:290162c5b61e671bd461c9d4cbed37602a53a899538156b1d0553179946c8162
3
+ size 175787
vendor/data/ejes/croatia-prva-hnl/25-26/predictor.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": {"gen": 0.9111, "con": 0.5055, "intercept": 0.01}, "elaboracion": {"gen": 0.9404, "con": 0.7356, "intercept": 0.0004}, "individual": {"gen": 0.8509, "con": 0.7421, "intercept": -0.0}, "rotura_lineas": {"gen": 0.8943, "con": 0.6989, "intercept": -0.0007}, "amplitud_centro": {"gen": 0.6994, "con": 0.3753, "intercept": -0.0}, "profundidad_espalda": {"gen": 0.7644, "con": 0.571, "intercept": -0.0002}, "robo_alto": {"gen": 0.8209, "con": 0.7108, "intercept": 0.0028}, "aereo_segunda": {"gen": 0.6731, "con": -0.7095, "intercept": 0.0005}}
vendor/data/ejes/croatia-prva-hnl/25-26/scales.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"var_sigma": {"atk_l": 1.8176, "atk_w": 1.1925, "ball_distance": 47.3561, "behind_line_ok": 0.0233, "broke_last_line": 0.0189, "broke_second_last": 0.042, "cross_pvadded_max": 0.0015, "dang_runs": 0.073, "deep_completions": 0.0974, "def_h": 2.869, "dribbles_box": 0.0111, "dribbles_last_third": 0.0257, "duration_s": 18.3278, "hold_max": 1.8779, "hold_mean": 1.0186, "hold_min": 0.9708, "line_breaks": 0.263, "max_x": 3.5705, "n_centros": 0.0509, "n_events": 1.6707, "n_involved": 0.1644, "n_passes": 0.5226, "opt_quality_mean": 0.1198, "paredes": 0.0913, "pass_options_mean": 2.0767, "passes_behind_line": 0.0429, "pct_adentro": 0.037, "pct_afuera": 0.0343, "pct_cortos": 0.049, "pct_headpass": 0.0146, "pct_largos": 0.0446, "pct_launch": 0.0329, "pct_layoff": 0.0056, "pct_medios": 0.0439, "pct_switch": 0.0057, "pct_through": 0.0049, "pct_verticales": 0.053, "pelotazos_espalda": 0.0355, "press_final": 0.3718, "press_media": 0.2402, "prog_x": 2.6282, "start_x": 4.3336, "starts_from_dispossess": 0.0175, "takeons_ok": 0.0247, "tempo": 0.0389, "transition_speed": 0.667, "verticalidad_media": 0.0635}, "eje_sigma": {"eje_verticalidad": 0.1086, "eje_elaboracion": 0.0889, "eje_individual": 0.0726, "eje_rotura_lineas": 0.0636, "eje_amplitud_centro": 0.0583, "eje_profundidad_espalda": 0.0899, "eje_robo_alto": 0.0936, "eje_aereo_segunda": 0.0657}, "eje_match_mean": {"eje_verticalidad": -0.0241, "eje_elaboracion": -0.0006, "eje_individual": 0.0, "eje_rotura_lineas": 0.0013, "eje_amplitud_centro": 0.0004, "eje_profundidad_espalda": 0.0005, "eje_robo_alto": -0.0053, "eje_aereo_segunda": 0.0005}, "eje_match_std": {"eje_verticalidad": 0.1256, "eje_elaboracion": 0.111, "eje_individual": 0.0797, "eje_rotura_lineas": 0.0711, "eje_amplitud_centro": 0.0609, "eje_profundidad_espalda": 0.0953, "eje_robo_alto": 0.1024, "eje_aereo_segunda": 0.0688}, "team_var_norm": {"Dinamo Zagreb": {"atk_l": 42.4246, "atk_w": 32.7874, "ball_distance": 164.8156, "behind_line_ok": 0.0639, "broke_last_line": 0.0445, "broke_second_last": 0.1859, "cross_pvadded_max": 0.0012, "dang_runs": 0.1875, "deep_completions": 0.4438, "def_h": 29.5684, "dribbles_box": 0.0209, "dribbles_last_third": 0.0828, "duration_s": 35.4913, "hold_max": 9.3737, "hold_mean": 5.3358, "hold_min": 3.1541, "line_breaks": 0.8073, "max_x": 70.1149, "n_centros": 0.1352, "n_events": 6.6743, "n_involved": 1.9778, "n_passes": 3.7185, "opt_quality_mean": 0.0774, "paredes": 0.4098, "pass_options_mean": 9.0545, "passes_behind_line": 0.1275, "pct_adentro": 0.5181, "pct_afuera": 0.3982, "pct_cortos": 0.4225, "pct_headpass": 0.0425, "pct_largos": 0.1627, "pct_launch": 0.0591, "pct_layoff": 0.0137, "pct_medios": 0.3319, "pct_switch": 0.0041, "pct_through": 0.0033, "pct_verticales": 0.439, "pelotazos_espalda": 0.0852, "press_final": 2.624, "press_media": 1.8893, "prog_x": 23.0827, "start_x": 48.2758, "starts_from_dispossess": 0.0443, "takeons_ok": 0.0646, "tempo": 0.3666, "transition_speed": 2.7394, "verticalidad_media": 0.2734}, "HNK Gorica": {"atk_l": 40.5163, "atk_w": 33.5408, "ball_distance": 118.4875, "behind_line_ok": 0.0487, "broke_last_line": 0.0337, "broke_second_last": 0.1396, "cross_pvadded_max": 0.0013, "dang_runs": 0.1341, "deep_completions": 0.2802, "def_h": 33.0021, "dribbles_box": 0.0094, "dribbles_last_third": 0.0488, "duration_s": 18.0109, "hold_max": 10.509, "hold_mean": 6.0097, "hold_min": 3.5591, "line_breaks": 0.5998, "max_x": 66.447, "n_centros": 0.1264, "n_events": 4.8216, "n_involved": 1.9002, "n_passes": 3.0039, "opt_quality_mean": -0.0362, "paredes": 0.2681, "pass_options_mean": 8.9093, "passes_behind_line": 0.1275, "pct_adentro": 0.5056, "pct_afuera": 0.4097, "pct_cortos": 0.3866, "pct_headpass": 0.0449, "pct_largos": 0.1979, "pct_launch": 0.0956, "pct_layoff": 0.0149, "pct_medios": 0.3324, "pct_switch": 0.0092, "pct_through": 0.0036, "pct_verticales": 0.4927, "pelotazos_espalda": 0.0943, "press_final": 2.4119, "press_media": 1.7761, "prog_x": 24.7957, "start_x": 42.7009, "starts_from_dispossess": 0.0428, "takeons_ok": 0.0491, "tempo": 0.3903, "transition_speed": 3.5486, "verticalidad_media": 0.3506}, "Hajduk Split": {"atk_l": 41.7601, "atk_w": 33.6359, "ball_distance": 152.3179, "behind_line_ok": 0.0529, "broke_last_line": 0.0392, "broke_second_last": 0.177, "cross_pvadded_max": 0.0021, "dang_runs": 0.1649, "deep_completions": 0.3563, "def_h": 31.052, "dribbles_box": 0.0149, "dribbles_last_third": 0.0663, "duration_s": 42.8338, "hold_max": 10.1981, "hold_mean": 5.3542, "hold_min": 2.9621, "line_breaks": 0.8188, "max_x": 68.7552, "n_centros": 0.1362, "n_events": 7.1994, "n_involved": 1.9457, "n_passes": 3.5821, "opt_quality_mean": 0.0773, "paredes": 0.323, "pass_options_mean": 9.0586, "passes_behind_line": 0.1114, "pct_adentro": 0.5227, "pct_afuera": 0.3958, "pct_cortos": 0.443, "pct_headpass": 0.0501, "pct_largos": 0.1604, "pct_launch": 0.0674, "pct_layoff": 0.0128, "pct_medios": 0.3162, "pct_switch": 0.0047, "pct_through": 0.0048, "pct_verticales": 0.4587, "pelotazos_espalda": 0.0712, "press_final": 2.5798, "press_media": 1.8273, "prog_x": 24.3882, "start_x": 45.4233, "starts_from_dispossess": 0.0466, "takeons_ok": 0.0559, "tempo": 0.3807, "transition_speed": 3.2161, "verticalidad_media": 0.31}, "Istra 1961": {"atk_l": 40.7549, "atk_w": 33.1972, "ball_distance": 114.0813, "behind_line_ok": 0.0483, "broke_last_line": 0.0336, "broke_second_last": 0.1566, "cross_pvadded_max": 0.0009, "dang_runs": 0.1184, "deep_completions": 0.3036, "def_h": 32.7393, "dribbles_box": 0.0102, "dribbles_last_third": 0.051, "duration_s": 16.796, "hold_max": 9.9086, "hold_mean": 5.8025, "hold_min": 3.4452, "line_breaks": 0.5812, "max_x": 66.6883, "n_centros": 0.1145, "n_events": 4.6491, "n_involved": 1.8564, "n_passes": 3.0602, "opt_quality_mean": -0.038, "paredes": 0.2752, "pass_options_mean": 8.1355, "passes_behind_line": 0.1273, "pct_adentro": 0.5075, "pct_afuera": 0.4121, "pct_cortos": 0.4058, "pct_headpass": 0.043, "pct_largos": 0.1944, "pct_launch": 0.0687, "pct_layoff": 0.0125, "pct_medios": 0.3208, "pct_switch": 0.0054, "pct_through": 0.0034, "pct_verticales": 0.4887, "pelotazos_espalda": 0.0949, "press_final": 2.5603, "press_media": 1.7465, "prog_x": 24.6617, "start_x": 43.0138, "starts_from_dispossess": 0.0413, "takeons_ok": 0.0429, "tempo": 0.3879, "transition_speed": 3.5099, "verticalidad_media": 0.3408}, "Lokomotiva Zagreb": {"atk_l": 42.4263, "atk_w": 32.7567, "ball_distance": 103.8154, "behind_line_ok": 0.0443, "broke_last_line": 0.0334, "broke_second_last": 0.1355, "cross_pvadded_max": 0.0018, "dang_runs": 0.0977, "deep_completions": 0.2809, "def_h": 32.1845, "dribbles_box": 0.0093, "dribbles_last_third": 0.0536, "duration_s": 28.6419, "hold_max": 10.3395, "hold_mean": 6.0333, "hold_min": 3.6206, "line_breaks": 0.5046, "max_x": 66.88, "n_centros": 0.1265, "n_events": 5.6126, "n_involved": 1.7399, "n_passes": 2.9817, "opt_quality_mean": -0.03, "paredes": 0.2548, "pass_options_mean": 7.9807, "passes_behind_line": 0.1064, "pct_adentro": 0.507, "pct_afuera": 0.4021, "pct_cortos": 0.3775, "pct_headpass": 0.0503, "pct_largos": 0.1993, "pct_launch": 0.0749, "pct_layoff": 0.0084, "pct_medios": 0.3333, "pct_switch": 0.0082, "pct_through": 0.0039, "pct_verticales": 0.4789, "pelotazos_espalda": 0.079, "press_final": 2.4003, "press_media": 1.749, "prog_x": 24.1815, "start_x": 43.6676, "starts_from_dispossess": 0.0385, "takeons_ok": 0.0531, "tempo": 0.3608, "transition_speed": 3.4854, "verticalidad_media": 0.3475}, "Osijek": {"atk_l": 41.2629, "atk_w": 32.6108, "ball_distance": 115.2046, "behind_line_ok": 0.0465, "broke_last_line": 0.0338, "broke_second_last": 0.1293, "cross_pvadded_max": 0.0006, "dang_runs": 0.1048, "deep_completions": 0.2918, "def_h": 31.8486, "dribbles_box": 0.0139, "dribbles_last_third": 0.0648, "duration_s": 29.9431, "hold_max": 10.4294, "hold_mean": 5.956, "hold_min": 3.7459, "line_breaks": 0.557, "max_x": 67.3762, "n_centros": 0.1274, "n_events": 5.8294, "n_involved": 1.8863, "n_passes": 3.0274, "opt_quality_mean": 0.0196, "paredes": 0.2606, "pass_options_mean": 8.4183, "passes_behind_line": 0.113, "pct_adentro": 0.5125, "pct_afuera": 0.3962, "pct_cortos": 0.3961, "pct_headpass": 0.0464, "pct_largos": 0.205, "pct_launch": 0.0829, "pct_layoff": 0.012, "pct_medios": 0.3083, "pct_switch": 0.0053, "pct_through": 0.0043, "pct_verticales": 0.4718, "pelotazos_espalda": 0.0775, "press_final": 2.3735, "press_media": 1.6907, "prog_x": 23.8692, "start_x": 44.5967, "starts_from_dispossess": 0.0474, "takeons_ok": 0.0488, "tempo": 0.3737, "transition_speed": 3.3841, "verticalidad_media": 0.3446}, "Rijeka": {"atk_l": 41.6263, "atk_w": 33.6377, "ball_distance": 124.5959, "behind_line_ok": 0.0526, "broke_last_line": 0.04, "broke_second_last": 0.1429, "cross_pvadded_max": 0.0014, "dang_runs": 0.1355, "deep_completions": 0.3585, "def_h": 29.7031, "dribbles_box": 0.0143, "dribbles_last_third": 0.0646, "duration_s": 40.9686, "hold_max": 11.1921, "hold_mean": 6.1875, "hold_min": 3.8242, "line_breaks": 0.5408, "max_x": 70.2048, "n_centros": 0.1521, "n_events": 6.7681, "n_involved": 1.8223, "n_passes": 3.1599, "opt_quality_mean": 0.047, "paredes": 0.2849, "pass_options_mean": 8.5511, "passes_behind_line": 0.1357, "pct_adentro": 0.5129, "pct_afuera": 0.4012, "pct_cortos": 0.3561, "pct_headpass": 0.0411, "pct_largos": 0.2146, "pct_launch": 0.0924, "pct_layoff": 0.0094, "pct_medios": 0.3442, "pct_switch": 0.0077, "pct_through": 0.0036, "pct_verticales": 0.4663, "pelotazos_espalda": 0.1016, "press_final": 2.4892, "press_media": 1.7592, "prog_x": 24.6455, "start_x": 46.681, "starts_from_dispossess": 0.0368, "takeons_ok": 0.0436, "tempo": 0.3689, "transition_speed": 3.355, "verticalidad_media": 0.3137}, "Slaven Koprivnica": {"atk_l": 40.7861, "atk_w": 33.0124, "ball_distance": 101.2788, "behind_line_ok": 0.0399, "broke_last_line": 0.0258, "broke_second_last": 0.1459, "cross_pvadded_max": 0.0012, "dang_runs": 0.0903, "deep_completions": 0.2693, "def_h": 32.069, "dribbles_box": 0.0078, "dribbles_last_third": 0.0458, "duration_s": 29.3113, "hold_max": 10.1125, "hold_mean": 6.0172, "hold_min": 3.7194, "line_breaks": 0.5064, "max_x": 67.8112, "n_centros": 0.123, "n_events": 5.6835, "n_involved": 1.8047, "n_passes": 2.8942, "opt_quality_mean": -0.0384, "paredes": 0.2294, "pass_options_mean": 8.1679, "passes_behind_line": 0.1244, "pct_adentro": 0.5136, "pct_afuera": 0.3996, "pct_cortos": 0.3877, "pct_headpass": 0.0567, "pct_largos": 0.2072, "pct_launch": 0.0875, "pct_layoff": 0.0119, "pct_medios": 0.3194, "pct_switch": 0.0051, "pct_through": 0.0029, "pct_verticales": 0.5006, "pelotazos_espalda": 0.0947, "press_final": 2.5313, "press_media": 1.7819, "prog_x": 24.8987, "start_x": 43.9997, "starts_from_dispossess": 0.043, "takeons_ok": 0.0454, "tempo": 0.373, "transition_speed": 3.4729, "verticalidad_media": 0.3632}, "Varaždin": {"atk_l": 43.0126, "atk_w": 33.3729, "ball_distance": 105.5683, "behind_line_ok": 0.0441, "broke_last_line": 0.0288, "broke_second_last": 0.1386, "cross_pvadded_max": 0.0007, "dang_runs": 0.0884, "deep_completions": 0.2567, "def_h": 33.457, "dribbles_box": 0.0106, "dribbles_last_third": 0.0543, "duration_s": 18.2513, "hold_max": 10.2746, "hold_mean": 5.8568, "hold_min": 3.4473, "line_breaks": 0.5446, "max_x": 65.4646, "n_centros": 0.1083, "n_events": 4.6592, "n_involved": 1.8283, "n_passes": 2.8105, "opt_quality_mean": -0.0872, "paredes": 0.2126, "pass_options_mean": 8.4033, "passes_behind_line": 0.1173, "pct_adentro": 0.5007, "pct_afuera": 0.4172, "pct_cortos": 0.3698, "pct_headpass": 0.0424, "pct_largos": 0.2261, "pct_launch": 0.0966, "pct_layoff": 0.0116, "pct_medios": 0.3229, "pct_switch": 0.0116, "pct_through": 0.0042, "pct_verticales": 0.5131, "pelotazos_espalda": 0.0892, "press_final": 2.5694, "press_media": 1.7463, "prog_x": 25.2534, "start_x": 41.2243, "starts_from_dispossess": 0.0407, "takeons_ok": 0.0508, "tempo": 0.3802, "transition_speed": 3.7637, "verticalidad_media": 0.3819}, "Vukovar": {"atk_l": 40.0575, "atk_w": 32.78, "ball_distance": 88.7234, "behind_line_ok": 0.0412, "broke_last_line": 0.0266, "broke_second_last": 0.1237, "cross_pvadded_max": 0.0008, "dang_runs": 0.1016, "deep_completions": 0.246, "def_h": 32.6039, "dribbles_box": 0.01, "dribbles_last_third": 0.0446, "duration_s": 18.4906, "hold_max": 10.5258, "hold_mean": 6.5581, "hold_min": 4.227, "line_breaks": 0.4033, "max_x": 66.9836, "n_centros": 0.1162, "n_events": 4.3802, "n_involved": 1.7039, "n_passes": 2.4768, "opt_quality_mean": -0.0336, "paredes": 0.1808, "pass_options_mean": 8.1944, "passes_behind_line": 0.115, "pct_adentro": 0.5042, "pct_afuera": 0.4061, "pct_cortos": 0.3465, "pct_headpass": 0.0505, "pct_largos": 0.2266, "pct_launch": 0.0973, "pct_layoff": 0.0094, "pct_medios": 0.3381, "pct_switch": 0.0042, "pct_through": 0.0047, "pct_verticales": 0.5366, "pelotazos_espalda": 0.0888, "press_final": 2.5255, "press_media": 1.7247, "prog_x": 25.5928, "start_x": 42.1749, "starts_from_dispossess": 0.0384, "takeons_ok": 0.0514, "tempo": 0.3633, "transition_speed": 3.9231, "verticalidad_media": 0.42}}, "team_eje_norm_gen": {"Dinamo Zagreb": {"eje_verticalidad": -0.1472, "eje_elaboracion": 0.1256, "eje_individual": 0.0804, "eje_rotura_lineas": 0.0617, "eje_amplitud_centro": -0.0106, "eje_profundidad_espalda": 0.0676, "eje_robo_alto": 0.0783, "eje_aereo_segunda": -0.0291}, "HNK Gorica": {"eje_verticalidad": -0.0112, "eje_elaboracion": -0.0152, "eje_individual": -0.0127, "eje_rotura_lineas": -0.0039, "eje_amplitud_centro": 0.0209, "eje_profundidad_espalda": 0.0022, "eje_robo_alto": -0.0312, "eje_aereo_segunda": 0.0328}, "Hajduk Split": {"eje_verticalidad": -0.0965, "eje_elaboracion": 0.1031, "eje_individual": 0.034, "eje_rotura_lineas": 0.0578, "eje_amplitud_centro": -0.0084, "eje_profundidad_espalda": 0.0008, "eje_robo_alto": 0.0298, "eje_aereo_segunda": -0.0066}, "Istra 1961": {"eje_verticalidad": -0.0232, "eje_elaboracion": 0.0032, "eje_individual": -0.0203, "eje_rotura_lineas": 0.0034, "eje_amplitud_centro": -0.0103, "eje_profundidad_espalda": 0.0101, "eje_robo_alto": -0.0291, "eje_aereo_segunda": -0.0213}, "Lokomotiva Zagreb": {"eje_verticalidad": -0.027, "eje_elaboracion": -0.0198, "eje_individual": -0.0156, "eje_rotura_lineas": -0.0161, "eje_amplitud_centro": 0.0084, "eje_profundidad_espalda": -0.0317, "eje_robo_alto": -0.0236, "eje_aereo_segunda": -0.0203}, "Osijek": {"eje_verticalidad": -0.0333, "eje_elaboracion": -0.0011, "eje_individual": 0.0036, "eje_rotura_lineas": -0.0118, "eje_amplitud_centro": -0.0134, "eje_profundidad_espalda": -0.022, "eje_robo_alto": 0.0163, "eje_aereo_segunda": 0.0024}, "Rijeka": {"eje_verticalidad": -0.0433, "eje_elaboracion": -0.0007, "eje_individual": 0.0087, "eje_rotura_lineas": 0.0003, "eje_amplitud_centro": 0.03, "eje_profundidad_espalda": 0.0461, "eje_robo_alto": 0.0295, "eje_aereo_segunda": -0.0097}, "Slaven Koprivnica": {"eje_verticalidad": 0.0042, "eje_elaboracion": -0.0282, "eje_individual": -0.0371, "eje_rotura_lineas": -0.0243, "eje_amplitud_centro": -0.0156, "eje_profundidad_espalda": -0.0133, "eje_robo_alto": -0.0061, "eje_aereo_segunda": 0.0293}, "Varaždin": {"eje_verticalidad": 0.0481, "eje_elaboracion": -0.0606, "eje_individual": -0.0173, "eje_rotura_lineas": -0.0143, "eje_amplitud_centro": 0.0243, "eje_profundidad_espalda": -0.0231, "eje_robo_alto": -0.0646, "eje_aereo_segunda": 0.0111}, "Vukovar": {"eje_verticalidad": 0.0886, "eje_elaboracion": -0.112, "eje_individual": -0.0235, "eje_rotura_lineas": -0.0403, "eje_amplitud_centro": -0.0216, "eje_profundidad_espalda": -0.0321, "eje_robo_alto": -0.0524, "eje_aereo_segunda": 0.0162}}, "team_eje_norm_con": {"Dinamo Zagreb": {"eje_verticalidad": 0.0037, "eje_elaboracion": -0.0121, "eje_individual": -0.0362, "eje_rotura_lineas": 0.0049, "eje_amplitud_centro": -0.007, "eje_profundidad_espalda": -0.0269, "eje_robo_alto": -0.0699, "eje_aereo_segunda": -0.0126}, "HNK Gorica": {"eje_verticalidad": -0.0591, "eje_elaboracion": 0.0472, "eje_individual": 0.036, "eje_rotura_lineas": 0.0046, "eje_amplitud_centro": 0.0028, "eje_profundidad_espalda": 0.0256, "eje_robo_alto": 0.0325, "eje_aereo_segunda": -0.0021}, "Hajduk Split": {"eje_verticalidad": 0.0183, "eje_elaboracion": -0.0784, "eje_individual": 0.0078, "eje_rotura_lineas": -0.009, "eje_amplitud_centro": 0.0126, "eje_profundidad_espalda": -0.0049, "eje_robo_alto": -0.0328, "eje_aereo_segunda": -0.0016}, "Istra 1961": {"eje_verticalidad": -0.0394, "eje_elaboracion": 0.0096, "eje_individual": 0.0244, "eje_rotura_lineas": 0.0105, "eje_amplitud_centro": 0.0253, "eje_profundidad_espalda": 0.0081, "eje_robo_alto": 0.0092, "eje_aereo_segunda": 0.002}, "Lokomotiva Zagreb": {"eje_verticalidad": -0.0192, "eje_elaboracion": -0.0129, "eje_individual": -0.0318, "eje_rotura_lineas": 0.0182, "eje_amplitud_centro": -0.0193, "eje_profundidad_espalda": 0.0131, "eje_robo_alto": -0.0006, "eje_aereo_segunda": 0.006}, "Osijek": {"eje_verticalidad": -0.0388, "eje_elaboracion": -0.0029, "eje_individual": -0.0001, "eje_rotura_lineas": -0.0125, "eje_amplitud_centro": 0.0031, "eje_profundidad_espalda": -0.0137, "eje_robo_alto": 0.0106, "eje_aereo_segunda": -0.0026}, "Rijeka": {"eje_verticalidad": 0.018, "eje_elaboracion": -0.0317, "eje_individual": -0.0406, "eje_rotura_lineas": -0.012, "eje_amplitud_centro": 0.0101, "eje_profundidad_espalda": -0.0113, "eje_robo_alto": -0.0511, "eje_aereo_segunda": 0.0074}, "Slaven Koprivnica": {"eje_verticalidad": -0.0112, "eje_elaboracion": -0.0102, "eje_individual": 0.0184, "eje_rotura_lineas": -0.0112, "eje_amplitud_centro": -0.0071, "eje_profundidad_espalda": -0.0338, "eje_robo_alto": -0.0074, "eje_aereo_segunda": 0.0127}, "Varaždin": {"eje_verticalidad": -0.075, "eje_elaboracion": 0.042, "eje_individual": 0.0015, "eje_rotura_lineas": -0.0278, "eje_amplitud_centro": -0.011, "eje_profundidad_espalda": -0.0032, "eje_robo_alto": 0.0403, "eje_aereo_segunda": -0.0138}, "Vukovar": {"eje_verticalidad": -0.0383, "eje_elaboracion": 0.0437, "eje_individual": 0.0208, "eje_rotura_lineas": 0.0469, "eje_amplitud_centro": -0.0056, "eje_profundidad_espalda": 0.0516, "eje_robo_alto": 0.0161, "eje_aereo_segunda": 0.0091}}}
vendor/data/ejes/croatia-prva-hnl/25-26/team_profiles.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d80d76bdd4cb6bcc9ba5f06cec6e394c33f2ed2c513e12b46d57935c94737b8b
3
+ size 7914
vendor/data/ejes/danish-superligaen/25-26/ejes_definition.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
vendor/data/ejes/danish-superligaen/25-26/match_team_ejes.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:23503a6d93ead56416b9f370e15abf3ca62fbdee68ae8e0875793b1c31f7bf9e
3
+ size 49988
vendor/data/ejes/danish-superligaen/25-26/match_team_vars.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f01128217028e789feecd77943816aa4ebfb613ebe243089bb68c3e594bd6774
3
+ size 187387
vendor/data/ejes/danish-superligaen/25-26/predictor.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": {"gen": 0.8859, "con": 0.8386, "intercept": 0.0197}, "elaboracion": {"gen": 0.9849, "con": 0.9404, "intercept": -0.0056}, "individual": {"gen": 0.7376, "con": -0.4994, "intercept": 0.0004}, "rotura_lineas": {"gen": 0.9048, "con": 0.7033, "intercept": -0.002}, "amplitud_centro": {"gen": 0.6802, "con": 0.7225, "intercept": 0.0002}, "profundidad_espalda": {"gen": 0.6216, "con": 0.623, "intercept": -0.0005}, "robo_alto": {"gen": 0.8193, "con": 0.7607, "intercept": 0.0033}, "aereo_segunda": {"gen": 0.9081, "con": 0.8347, "intercept": 0.0013}}
vendor/data/ejes/danish-superligaen/25-26/scales.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"var_sigma": {"atk_l": 1.9472, "atk_w": 1.4495, "ball_distance": 69.1811, "behind_line_ok": 0.0294, "broke_last_line": 0.0188, "broke_second_last": 0.0479, "cross_pvadded_max": 0.0015, "dang_runs": 0.1142, "deep_completions": 0.1558, "def_h": 3.403, "dribbles_box": 0.0104, "dribbles_last_third": 0.0256, "duration_s": 20.2317, "hold_max": 1.6684, "hold_mean": 0.9373, "hold_min": 0.9147, "line_breaks": 0.3812, "max_x": 4.3575, "n_centros": 0.0475, "n_events": 1.8131, "n_involved": 0.206, "n_passes": 0.7977, "opt_quality_mean": 0.1606, "paredes": 0.155, "pass_options_mean": 1.4721, "passes_behind_line": 0.0414, "pct_adentro": 0.0352, "pct_afuera": 0.0327, "pct_cortos": 0.0493, "pct_headpass": 0.0152, "pct_largos": 0.0426, "pct_launch": 0.0321, "pct_layoff": 0.005, "pct_medios": 0.0417, "pct_switch": 0.0048, "pct_through": 0.0038, "pct_verticales": 0.0539, "pelotazos_espalda": 0.0333, "press_final": 0.3673, "press_media": 0.2301, "prog_x": 2.3103, "start_x": 4.7721, "starts_from_dispossess": 0.0185, "takeons_ok": 0.0222, "tempo": 0.0363, "transition_speed": 0.7368, "verticalidad_media": 0.0663}, "eje_sigma": {"eje_verticalidad": 0.1169, "eje_elaboracion": 0.1146, "eje_individual": 0.0688, "eje_rotura_lineas": 0.0705, "eje_amplitud_centro": 0.0556, "eje_profundidad_espalda": 0.0935, "eje_robo_alto": 0.0999, "eje_aereo_segunda": 0.0694}, "eje_match_mean": {"eje_verticalidad": -0.0272, "eje_elaboracion": 0.0061, "eje_individual": 0.0005, "eje_rotura_lineas": 0.0032, "eje_amplitud_centro": -0.0004, "eje_profundidad_espalda": 0.0021, "eje_robo_alto": -0.0057, "eje_aereo_segunda": -0.0018}, "eje_match_std": {"eje_verticalidad": 0.1287, "eje_elaboracion": 0.1353, "eje_individual": 0.0732, "eje_rotura_lineas": 0.0782, "eje_amplitud_centro": 0.0584, "eje_profundidad_espalda": 0.0972, "eje_robo_alto": 0.109, "eje_aereo_segunda": 0.0752}, "team_var_norm": {"AGF": {"atk_l": 42.5144, "atk_w": 31.2024, "ball_distance": 141.9184, "behind_line_ok": 0.0602, "broke_last_line": 0.0364, "broke_second_last": 0.1627, "cross_pvadded_max": 0.001, "dang_runs": 0.1863, "deep_completions": 0.4318, "def_h": 30.9677, "dribbles_box": 0.015, "dribbles_last_third": 0.0568, "duration_s": 24.4235, "hold_max": 10.327, "hold_mean": 6.0843, "hold_min": 3.7279, "line_breaks": 0.7769, "max_x": 68.9264, "n_centros": 0.1391, "n_events": 5.597, "n_involved": 1.9419, "n_passes": 3.4854, "opt_quality_mean": 0.1214, "paredes": 0.3594, "pass_options_mean": 8.9105, "passes_behind_line": 0.1283, "pct_adentro": 0.5084, "pct_afuera": 0.3994, "pct_cortos": 0.4036, "pct_headpass": 0.0384, "pct_largos": 0.1673, "pct_launch": 0.082, "pct_layoff": 0.0107, "pct_medios": 0.338, "pct_switch": 0.0065, "pct_through": 0.001, "pct_verticales": 0.446, "pelotazos_espalda": 0.0859, "press_final": 2.7542, "press_media": 2.009, "prog_x": 23.5618, "start_x": 46.4759, "starts_from_dispossess": 0.0506, "takeons_ok": 0.0514, "tempo": 0.3799, "transition_speed": 3.0989, "verticalidad_media": 0.3067}, "Brøndby": {"atk_l": 42.3053, "atk_w": 31.4661, "ball_distance": 133.6061, "behind_line_ok": 0.0599, "broke_last_line": 0.0402, "broke_second_last": 0.1683, "cross_pvadded_max": 0.0014, "dang_runs": 0.1426, "deep_completions": 0.482, "def_h": 31.6842, "dribbles_box": 0.0139, "dribbles_last_third": 0.0614, "duration_s": 25.5811, "hold_max": 9.5022, "hold_mean": 5.3298, "hold_min": 3.0468, "line_breaks": 0.7223, "max_x": 69.2806, "n_centros": 0.131, "n_events": 5.8428, "n_involved": 1.9775, "n_passes": 3.6061, "opt_quality_mean": 0.0969, "paredes": 0.3649, "pass_options_mean": 8.7265, "passes_behind_line": 0.1368, "pct_adentro": 0.5017, "pct_afuera": 0.4157, "pct_cortos": 0.4055, "pct_headpass": 0.0414, "pct_largos": 0.1822, "pct_launch": 0.0643, "pct_layoff": 0.0089, "pct_medios": 0.3311, "pct_switch": 0.0059, "pct_through": 0.0024, "pct_verticales": 0.4622, "pelotazos_espalda": 0.096, "press_final": 2.7537, "press_media": 2.0092, "prog_x": 25.2737, "start_x": 45.0924, "starts_from_dispossess": 0.0447, "takeons_ok": 0.0495, "tempo": 0.3961, "transition_speed": 3.4211, "verticalidad_media": 0.307}, "Fredericia": {"atk_l": 40.2901, "atk_w": 32.0779, "ball_distance": 137.7989, "behind_line_ok": 0.0595, "broke_last_line": 0.0273, "broke_second_last": 0.1662, "cross_pvadded_max": 0.0007, "dang_runs": 0.162, "deep_completions": 0.3591, "def_h": 33.1831, "dribbles_box": 0.011, "dribbles_last_third": 0.0552, "duration_s": 28.6841, "hold_max": 9.5893, "hold_mean": 5.6979, "hold_min": 3.4331, "line_breaks": 0.7455, "max_x": 67.2713, "n_centros": 0.1053, "n_events": 5.7341, "n_involved": 1.8874, "n_passes": 3.2438, "opt_quality_mean": 0.0408, "paredes": 0.3113, "pass_options_mean": 8.8799, "passes_behind_line": 0.1375, "pct_adentro": 0.4971, "pct_afuera": 0.4087, "pct_cortos": 0.3885, "pct_headpass": 0.0377, "pct_largos": 0.2033, "pct_launch": 0.0776, "pct_layoff": 0.0083, "pct_medios": 0.3148, "pct_switch": 0.0049, "pct_through": 0.0009, "pct_verticales": 0.4633, "pelotazos_espalda": 0.1013, "press_final": 2.9641, "press_media": 2.0616, "prog_x": 25.3134, "start_x": 43.219, "starts_from_dispossess": 0.0505, "takeons_ok": 0.0562, "tempo": 0.3796, "transition_speed": 3.5581, "verticalidad_media": 0.326}, "København": {"atk_l": 40.9363, "atk_w": 31.1466, "ball_distance": 177.7517, "behind_line_ok": 0.0653, "broke_last_line": 0.0439, "broke_second_last": 0.1896, "cross_pvadded_max": 0.0019, "dang_runs": 0.1998, "deep_completions": 0.4565, "def_h": 29.664, "dribbles_box": 0.0111, "dribbles_last_third": 0.0569, "duration_s": 32.3262, "hold_max": 9.3877, "hold_mean": 5.287, "hold_min": 3.0318, "line_breaks": 0.8802, "max_x": 71.0977, "n_centros": 0.1195, "n_events": 6.4797, "n_involved": 2.0812, "n_passes": 3.7919, "opt_quality_mean": 0.1589, "paredes": 0.3854, "pass_options_mean": 9.059, "passes_behind_line": 0.1292, "pct_adentro": 0.5123, "pct_afuera": 0.3968, "pct_cortos": 0.394, "pct_headpass": 0.0439, "pct_largos": 0.1764, "pct_launch": 0.0688, "pct_layoff": 0.0112, "pct_medios": 0.3399, "pct_switch": 0.0055, "pct_through": 0.0053, "pct_verticales": 0.4386, "pelotazos_espalda": 0.0797, "press_final": 2.8789, "press_media": 2.086, "prog_x": 23.787, "start_x": 48.7617, "starts_from_dispossess": 0.0481, "takeons_ok": 0.0431, "tempo": 0.397, "transition_speed": 3.1814, "verticalidad_media": 0.2795}, "Midtjylland": {"atk_l": 41.6235, "atk_w": 31.9455, "ball_distance": 142.0143, "behind_line_ok": 0.0499, "broke_last_line": 0.0236, "broke_second_last": 0.1424, "cross_pvadded_max": 0.0012, "dang_runs": 0.1377, "deep_completions": 0.314, "def_h": 30.8129, "dribbles_box": 0.0159, "dribbles_last_third": 0.0726, "duration_s": 26.07, "hold_max": 10.2594, "hold_mean": 6.3888, "hold_min": 4.1698, "line_breaks": 0.645, "max_x": 68.9797, "n_centros": 0.1136, "n_events": 5.4866, "n_involved": 1.8442, "n_passes": 3.0544, "opt_quality_mean": 0.1152, "paredes": 0.2683, "pass_options_mean": 8.8783, "passes_behind_line": 0.128, "pct_adentro": 0.499, "pct_afuera": 0.4051, "pct_cortos": 0.3479, "pct_headpass": 0.0523, "pct_largos": 0.2273, "pct_launch": 0.0779, "pct_layoff": 0.008, "pct_medios": 0.3299, "pct_switch": 0.0103, "pct_through": 0.0029, "pct_verticales": 0.4627, "pelotazos_espalda": 0.0942, "press_final": 2.7787, "press_media": 1.9729, "prog_x": 24.1737, "start_x": 45.836, "starts_from_dispossess": 0.0501, "takeons_ok": 0.0616, "tempo": 0.3452, "transition_speed": 3.292, "verticalidad_media": 0.3402}, "Nordsjælland": {"atk_l": 43.2022, "atk_w": 31.9348, "ball_distance": 228.3753, "behind_line_ok": 0.0686, "broke_last_line": 0.0324, "broke_second_last": 0.186, "cross_pvadded_max": 0.001, "dang_runs": 0.2233, "deep_completions": 0.4374, "def_h": 32.8249, "dribbles_box": 0.0176, "dribbles_last_third": 0.0783, "duration_s": 32.6769, "hold_max": 9.36, "hold_mean": 5.0721, "hold_min": 2.8598, "line_breaks": 1.2298, "max_x": 67.9459, "n_centros": 0.0895, "n_events": 6.9405, "n_involved": 2.1387, "n_passes": 4.5148, "opt_quality_mean": 0.057, "paredes": 0.523, "pass_options_mean": 9.1186, "passes_behind_line": 0.1469, "pct_adentro": 0.4933, "pct_afuera": 0.4214, "pct_cortos": 0.4482, "pct_headpass": 0.0291, "pct_largos": 0.1566, "pct_launch": 0.0578, "pct_layoff": 0.0095, "pct_medios": 0.3107, "pct_switch": 0.0039, "pct_through": 0.0031, "pct_verticales": 0.4392, "pelotazos_espalda": 0.1025, "press_final": 2.8786, "press_media": 1.9851, "prog_x": 25.2285, "start_x": 44.0996, "starts_from_dispossess": 0.0551, "takeons_ok": 0.0523, "tempo": 0.3931, "transition_speed": 2.9833, "verticalidad_media": 0.2834}, "OB": {"atk_l": 41.26, "atk_w": 32.1996, "ball_distance": 153.5897, "behind_line_ok": 0.0505, "broke_last_line": 0.0334, "broke_second_last": 0.1633, "cross_pvadded_max": 0.0015, "dang_runs": 0.1458, "deep_completions": 0.4064, "def_h": 31.8702, "dribbles_box": 0.0101, "dribbles_last_third": 0.0486, "duration_s": 29.7158, "hold_max": 9.5288, "hold_mean": 5.118, "hold_min": 2.7827, "line_breaks": 0.7986, "max_x": 68.1241, "n_centros": 0.124, "n_events": 6.391, "n_involved": 2.0817, "n_passes": 3.7596, "opt_quality_mean": 0.0791, "paredes": 0.4062, "pass_options_mean": 8.939, "passes_behind_line": 0.1148, "pct_adentro": 0.5256, "pct_afuera": 0.3968, "pct_cortos": 0.4442, "pct_headpass": 0.0476, "pct_largos": 0.1658, "pct_launch": 0.0825, "pct_layoff": 0.0097, "pct_medios": 0.314, "pct_switch": 0.0052, "pct_through": 0.0033, "pct_verticales": 0.4625, "pelotazos_espalda": 0.0779, "press_final": 2.7507, "press_media": 2.0132, "prog_x": 23.8947, "start_x": 45.307, "starts_from_dispossess": 0.045, "takeons_ok": 0.0445, "tempo": 0.4341, "transition_speed": 3.5817, "verticalidad_media": 0.3018}, "Randers": {"atk_l": 42.882, "atk_w": 31.7275, "ball_distance": 157.4527, "behind_line_ok": 0.0582, "broke_last_line": 0.0309, "broke_second_last": 0.1813, "cross_pvadded_max": 0.0014, "dang_runs": 0.1732, "deep_completions": 0.3905, "def_h": 31.5147, "dribbles_box": 0.0138, "dribbles_last_third": 0.0604, "duration_s": 26.4978, "hold_max": 9.0873, "hold_mean": 5.1262, "hold_min": 2.9773, "line_breaks": 0.8733, "max_x": 68.213, "n_centros": 0.1272, "n_events": 5.7789, "n_involved": 2.0362, "n_passes": 3.4514, "opt_quality_mean": 0.0614, "paredes": 0.3521, "pass_options_mean": 9.0911, "passes_behind_line": 0.1327, "pct_adentro": 0.5107, "pct_afuera": 0.4097, "pct_cortos": 0.391, "pct_headpass": 0.0469, "pct_largos": 0.1885, "pct_launch": 0.0824, "pct_layoff": 0.0112, "pct_medios": 0.3418, "pct_switch": 0.0054, "pct_through": 0.0026, "pct_verticales": 0.4658, "pelotazos_espalda": 0.0909, "press_final": 2.8328, "press_media": 2.0573, "prog_x": 24.4419, "start_x": 44.8783, "starts_from_dispossess": 0.0509, "takeons_ok": 0.0543, "tempo": 0.4053, "transition_speed": 3.5368, "verticalidad_media": 0.3197}, "Silkeborg": {"atk_l": 46.4199, "atk_w": 32.6698, "ball_distance": 212.9742, "behind_line_ok": 0.0715, "broke_last_line": 0.041, "broke_second_last": 0.1914, "cross_pvadded_max": 0.0006, "dang_runs": 0.4374, "deep_completions": 0.3934, "def_h": 35.7113, "dribbles_box": 0.0094, "dribbles_last_third": 0.0462, "duration_s": 30.6748, "hold_max": 10.1295, "hold_mean": 4.906, "hold_min": 2.5957, "line_breaks": 1.1776, "max_x": 64.0235, "n_centros": 0.0853, "n_events": 6.6893, "n_involved": 2.2248, "n_passes": 4.3768, "opt_quality_mean": -0.0185, "paredes": 0.4596, "pass_options_mean": 8.8738, "passes_behind_line": 0.1438, "pct_adentro": 0.5028, "pct_afuera": 0.428, "pct_cortos": 0.4384, "pct_headpass": 0.0299, "pct_largos": 0.1663, "pct_launch": 0.0609, "pct_layoff": 0.014, "pct_medios": 0.3272, "pct_switch": 0.0041, "pct_through": 0.0017, "pct_verticales": 0.4651, "pelotazos_espalda": 0.0885, "press_final": 2.702, "press_media": 1.9832, "prog_x": 25.4984, "start_x": 39.5511, "starts_from_dispossess": 0.0446, "takeons_ok": 0.0513, "tempo": 0.4299, "transition_speed": 3.4489, "verticalidad_media": 0.3046}, "Sønderjyske": {"atk_l": 41.8197, "atk_w": 32.2228, "ball_distance": 117.0978, "behind_line_ok": 0.0602, "broke_last_line": 0.038, "broke_second_last": 0.1503, "cross_pvadded_max": 0.0011, "dang_runs": 0.1718, "deep_completions": 0.3295, "def_h": 33.0041, "dribbles_box": 0.0095, "dribbles_last_third": 0.0491, "duration_s": 28.2405, "hold_max": 9.9231, "hold_mean": 5.7127, "hold_min": 3.3549, "line_breaks": 0.6003, "max_x": 66.9667, "n_centros": 0.1111, "n_events": 5.6622, "n_involved": 1.9164, "n_passes": 3.0441, "opt_quality_mean": 0.0197, "paredes": 0.2691, "pass_options_mean": 8.8065, "passes_behind_line": 0.1371, "pct_adentro": 0.5049, "pct_afuera": 0.4089, "pct_cortos": 0.3969, "pct_headpass": 0.0497, "pct_largos": 0.2018, "pct_launch": 0.0924, "pct_layoff": 0.009, "pct_medios": 0.3157, "pct_switch": 0.0068, "pct_through": 0.0023, "pct_verticales": 0.5062, "pelotazos_espalda": 0.0972, "press_final": 2.8193, "press_media": 2.0437, "prog_x": 25.9766, "start_x": 42.3066, "starts_from_dispossess": 0.0425, "takeons_ok": 0.0398, "tempo": 0.4245, "transition_speed": 4.3578, "verticalidad_media": 0.3719}, "Vejle": {"atk_l": 40.2767, "atk_w": 31.7558, "ball_distance": 117.3694, "behind_line_ok": 0.049, "broke_last_line": 0.0235, "broke_second_last": 0.1437, "cross_pvadded_max": 0.0011, "dang_runs": 0.1362, "deep_completions": 0.3036, "def_h": 31.4088, "dribbles_box": 0.0094, "dribbles_last_third": 0.0452, "duration_s": 25.9629, "hold_max": 9.8458, "hold_mean": 6.0, "hold_min": 3.8013, "line_breaks": 0.5064, "max_x": 67.9641, "n_centros": 0.1159, "n_events": 5.3979, "n_involved": 1.8193, "n_passes": 2.922, "opt_quality_mean": 0.0625, "paredes": 0.2388, "pass_options_mean": 8.8526, "passes_behind_line": 0.1172, "pct_adentro": 0.5033, "pct_afuera": 0.4125, "pct_cortos": 0.3546, "pct_headpass": 0.0498, "pct_largos": 0.2323, "pct_launch": 0.113, "pct_layoff": 0.0082, "pct_medios": 0.3297, "pct_switch": 0.0058, "pct_through": 0.0019, "pct_verticales": 0.4986, "pelotazos_espalda": 0.0828, "press_final": 2.7766, "press_media": 2.011, "prog_x": 24.718, "start_x": 44.4198, "starts_from_dispossess": 0.0428, "takeons_ok": 0.0447, "tempo": 0.3721, "transition_speed": 3.7348, "verticalidad_media": 0.3686}, "Viborg": {"atk_l": 40.1554, "atk_w": 32.4084, "ball_distance": 136.2064, "behind_line_ok": 0.0561, "broke_last_line": 0.0332, "broke_second_last": 0.1665, "cross_pvadded_max": 0.001, "dang_runs": 0.1517, "deep_completions": 0.3657, "def_h": 31.5382, "dribbles_box": 0.0169, "dribbles_last_third": 0.0696, "duration_s": 35.8475, "hold_max": 10.6146, "hold_mean": 5.8648, "hold_min": 3.579, "line_breaks": 0.7125, "max_x": 68.4933, "n_centros": 0.1153, "n_events": 6.4956, "n_involved": 1.9088, "n_passes": 3.3239, "opt_quality_mean": 0.0667, "paredes": 0.3286, "pass_options_mean": 8.8225, "passes_behind_line": 0.1252, "pct_adentro": 0.5133, "pct_afuera": 0.3913, "pct_cortos": 0.3657, "pct_headpass": 0.0414, "pct_largos": 0.1903, "pct_launch": 0.0887, "pct_layoff": 0.009, "pct_medios": 0.3498, "pct_switch": 0.0042, "pct_through": 0.0031, "pct_verticales": 0.4719, "pelotazos_espalda": 0.0831, "press_final": 2.892, "press_media": 2.0656, "prog_x": 24.5172, "start_x": 45.1594, "starts_from_dispossess": 0.0489, "takeons_ok": 0.0592, "tempo": 0.3591, "transition_speed": 3.3604, "verticalidad_media": 0.3343}}, "team_eje_norm_gen": {"AGF": {"eje_verticalidad": -0.0789, "eje_elaboracion": 0.0035, "eje_individual": 0.0037, "eje_rotura_lineas": -0.0083, "eje_amplitud_centro": 0.0212, "eje_profundidad_espalda": 0.009, "eje_robo_alto": 0.0353, "eje_aereo_segunda": -0.0007}, "Brøndby": {"eje_verticalidad": -0.0418, "eje_elaboracion": 0.0147, "eje_individual": -0.0059, "eje_rotura_lineas": 0.0045, "eje_amplitud_centro": 0.0251, "eje_profundidad_espalda": 0.0374, "eje_robo_alto": -0.004, "eje_aereo_segunda": -0.0299}, "Fredericia": {"eje_verticalidad": -0.0139, "eje_elaboracion": -0.0321, "eje_individual": -0.0066, "eje_rotura_lineas": -0.0222, "eje_amplitud_centro": -0.0146, "eje_profundidad_espalda": 0.008, "eje_robo_alto": -0.0251, "eje_aereo_segunda": -0.0227}, "København": {"eje_verticalidad": -0.0884, "eje_elaboracion": 0.0294, "eje_individual": -0.0099, "eje_rotura_lineas": 0.0548, "eje_amplitud_centro": -0.0072, "eje_profundidad_espalda": 0.0162, "eje_robo_alto": 0.0718, "eje_aereo_segunda": -0.0039}, "Midtjylland": {"eje_verticalidad": 0.0027, "eje_elaboracion": -0.0854, "eje_individual": 0.0212, "eje_rotura_lineas": -0.0372, "eje_amplitud_centro": 0.0245, "eje_profundidad_espalda": -0.0266, "eje_robo_alto": 0.0224, "eje_aereo_segunda": 0.0065}, "Nordsjælland": {"eje_verticalidad": -0.1077, "eje_elaboracion": 0.1501, "eje_individual": 0.04, "eje_rotura_lineas": 0.0506, "eje_amplitud_centro": -0.0243, "eje_profundidad_espalda": 0.0463, "eje_robo_alto": 0.0021, "eje_aereo_segunda": -0.0618}, "OB": {"eje_verticalidad": -0.0485, "eje_elaboracion": 0.0651, "eje_individual": -0.0312, "eje_rotura_lineas": 0.0045, "eje_amplitud_centro": -0.005, "eje_profundidad_espalda": -0.0238, "eje_robo_alto": 0.0008, "eje_aereo_segunda": 0.0136}, "Randers": {"eje_verticalidad": -0.0218, "eje_elaboracion": -0.0076, "eje_individual": 0.005, "eje_rotura_lineas": 0.0134, "eje_amplitud_centro": 0.012, "eje_profundidad_espalda": 0.0031, "eje_robo_alto": 0.0066, "eje_aereo_segunda": 0.0213}, "Silkeborg": {"eje_verticalidad": -0.0482, "eje_elaboracion": 0.1152, "eje_individual": 0.0387, "eje_rotura_lineas": 0.0528, "eje_amplitud_centro": -0.0212, "eje_profundidad_espalda": 0.0227, "eje_robo_alto": -0.1067, "eje_aereo_segunda": -0.0275}, "Sønderjyske": {"eje_verticalidad": 0.0739, "eje_elaboracion": -0.0513, "eje_individual": -0.0311, "eje_rotura_lineas": -0.0197, "eje_amplitud_centro": 0.0033, "eje_profundidad_espalda": -0.0034, "eje_robo_alto": -0.0607, "eje_aereo_segunda": 0.0281}, "Vejle": {"eje_verticalidad": 0.0693, "eje_elaboracion": -0.0977, "eje_individual": -0.0381, "eje_rotura_lineas": -0.054, "eje_amplitud_centro": 0.0057, "eje_profundidad_espalda": -0.0478, "eje_robo_alto": -0.0209, "eje_aereo_segunda": 0.052}, "Viborg": {"eje_verticalidad": -0.0208, "eje_elaboracion": -0.0322, "eje_individual": 0.021, "eje_rotura_lineas": -0.002, "eje_amplitud_centro": -0.0253, "eje_profundidad_espalda": -0.0179, "eje_robo_alto": 0.0072, "eje_aereo_segunda": 0.0047}}, "team_eje_norm_con": {"AGF": {"eje_verticalidad": 0.0409, "eje_elaboracion": -0.0364, "eje_individual": -0.0057, "eje_rotura_lineas": -0.0133, "eje_amplitud_centro": -0.0093, "eje_profundidad_espalda": 0.0109, "eje_robo_alto": -0.0446, "eje_aereo_segunda": 0.0178}, "Brøndby": {"eje_verticalidad": -0.0093, "eje_elaboracion": -0.0063, "eje_individual": 0.0078, "eje_rotura_lineas": -0.0112, "eje_amplitud_centro": 0.0016, "eje_profundidad_espalda": -0.0052, "eje_robo_alto": -0.0455, "eje_aereo_segunda": -0.0203}, "Fredericia": {"eje_verticalidad": -0.0581, "eje_elaboracion": 0.0332, "eje_individual": 0.0015, "eje_rotura_lineas": 0.0134, "eje_amplitud_centro": 0.0346, "eje_profundidad_espalda": 0.0613, "eje_robo_alto": 0.0546, "eje_aereo_segunda": -0.0118}, "København": {"eje_verticalidad": 0.0132, "eje_elaboracion": -0.0287, "eje_individual": -0.0076, "eje_rotura_lineas": -0.0107, "eje_amplitud_centro": -0.0122, "eje_profundidad_espalda": -0.0552, "eje_robo_alto": -0.061, "eje_aereo_segunda": 0.0165}, "Midtjylland": {"eje_verticalidad": 0.0534, "eje_elaboracion": -0.0887, "eje_individual": -0.0205, "eje_rotura_lineas": -0.025, "eje_amplitud_centro": -0.0252, "eje_profundidad_espalda": -0.0115, "eje_robo_alto": -0.0247, "eje_aereo_segunda": 0.0239}, "Nordsjælland": {"eje_verticalidad": -0.0376, "eje_elaboracion": 0.0059, "eje_individual": 0.0098, "eje_rotura_lineas": 0.0303, "eje_amplitud_centro": -0.0087, "eje_profundidad_espalda": 0.0198, "eje_robo_alto": -0.0495, "eje_aereo_segunda": -0.0063}, "OB": {"eje_verticalidad": -0.0389, "eje_elaboracion": -0.012, "eje_individual": -0.0007, "eje_rotura_lineas": -0.0029, "eje_amplitud_centro": -0.0056, "eje_profundidad_espalda": -0.0119, "eje_robo_alto": 0.0085, "eje_aereo_segunda": -0.0207}, "Randers": {"eje_verticalidad": -0.0505, "eje_elaboracion": 0.0505, "eje_individual": 0.0129, "eje_rotura_lineas": -0.0011, "eje_amplitud_centro": -0.0316, "eje_profundidad_espalda": -0.0152, "eje_robo_alto": -0.0008, "eje_aereo_segunda": 0.0057}, "Silkeborg": {"eje_verticalidad": -0.1267, "eje_elaboracion": 0.1282, "eje_individual": 0.007, "eje_rotura_lineas": 0.0451, "eje_amplitud_centro": 0.0265, "eje_profundidad_espalda": 0.0002, "eje_robo_alto": 0.0614, "eje_aereo_segunda": -0.0539}, "Sønderjyske": {"eje_verticalidad": -0.0451, "eje_elaboracion": 0.0186, "eje_individual": 0.0109, "eje_rotura_lineas": 0.0251, "eje_amplitud_centro": 0.0173, "eje_profundidad_espalda": 0.0176, "eje_robo_alto": 0.0132, "eje_aereo_segunda": 0.0007}, "Vejle": {"eje_verticalidad": -0.0163, "eje_elaboracion": 0.0065, "eje_individual": 0.0045, "eje_rotura_lineas": -0.0013, "eje_amplitud_centro": -0.0054, "eje_profundidad_espalda": 0.0146, "eje_robo_alto": 0.0026, "eje_aereo_segunda": 0.029}, "Viborg": {"eje_verticalidad": -0.0534, "eje_elaboracion": 0.0035, "eje_individual": -0.0135, "eje_rotura_lineas": -0.0086, "eje_amplitud_centro": 0.0131, "eje_profundidad_espalda": 0.0015, "eje_robo_alto": 0.02, "eje_aereo_segunda": -0.0019}}}
vendor/data/ejes/danish-superligaen/25-26/team_profiles.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eca949acb291d7629a2622eab84ff466f8779ffde57a885584360abd38d92189
3
+ size 8115
vendor/data/ejes/dutch-eerste-divisie/25-26/ejes_definition.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": ["verticalidad_media", "pct_verticales", "pct_largos", "transition_speed"], "elaboracion": ["n_passes", "duration_s", "paredes", "pct_cortos"], "individual": ["takeons_ok", "dribbles_last_third", "dribbles_box", "dang_runs"], "rotura_lineas": ["broke_last_line", "broke_second_last", "line_breaks", "pct_through"], "amplitud_centro": ["pct_afuera", "pct_switch", "n_centros"], "profundidad_espalda": ["passes_behind_line", "behind_line_ok", "pelotazos_espalda", "deep_completions"], "robo_alto": ["start_x", "starts_from_dispossess"], "aereo_segunda": ["pct_headpass", "pct_layoff", "pct_launch"]}
vendor/data/ejes/dutch-eerste-divisie/25-26/match_team_ejes.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fed334df19ea3c9f5f128d7e187aae1cbf06b277c33b7917add2b4af8de0d443
3
+ size 88643
vendor/data/ejes/dutch-eerste-divisie/25-26/match_team_vars.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9be3f1e837bb1dfbd6d54208be0ddfa86d8410f2cd9ca5ae65d1504497a4b557
3
+ size 327219
vendor/data/ejes/dutch-eerste-divisie/25-26/predictor.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"verticalidad": {"gen": 0.9312, "con": 0.8535, "intercept": 0.0195}, "elaboracion": {"gen": 0.884, "con": 0.9027, "intercept": -0.0007}, "individual": {"gen": 0.8845, "con": 0.6111, "intercept": 0.0002}, "rotura_lineas": {"gen": 0.848, "con": 0.7868, "intercept": -0.0004}, "amplitud_centro": {"gen": 0.8393, "con": 0.6398, "intercept": 0.0002}, "profundidad_espalda": {"gen": 0.8099, "con": 0.466, "intercept": -0.0001}, "robo_alto": {"gen": 0.8243, "con": 0.8339, "intercept": 0.0028}, "aereo_segunda": {"gen": 0.8829, "con": 0.8585, "intercept": -0.0006}}