Skip to page content
SAVRN
Search Plan a project

Open-weight model · Tabular classification

xcross-attempt-v1

by (Ministry of) Silly Kicks silly-kicks/xcross-attempt-v1

xcross-attempt-v1 is an open-weight model for tabular classification from (Ministry of) Silly Kicks, released under MIT License. Its published files total 1.1 MB.

XCrossAttemptModel is a deterministic-XGBoost classifier estimating P(the in-possession team attempts a cross within ~1 s of a tracking frame) — a STATE-anchored framing, reframed from the sender-level event treatment in Cao et al. (arXiv:2505.11841).

Parameters—
Context—
Weights1.1 MB
Licensemit
AccessOpen weights
Monthly Downloads—

Model Card

By (Ministry of) Silly Kicks, published under mit, revision 94b8b5ffb2d8.

XCrossAttemptModel is a deterministic-XGBoost classifier estimating P(the in-possession team attempts a cross within ~1 s of a tracking frame) — a STATE-anchored framing, reframed from the sender-level event treatment in Cao et al. (arXiv:2505.11841). It carries 7 of the paper's 8 confounders (crosser-position, #7, is omitted — no faithful tracking-only proxy) plus a novel, isolatable GK-position confounder block, which is the paper's headline gap and the reason this model exists inside the GKDV research arc (TF-17 → TF-19). - 16 features, faithful (velocity-bearing), goal-relative coordinates via the shared geometry helper - The scextended model is fit on the owner-tier corpus (IDSSE +…

Read (Ministry of) Silly Kicks's full model card

xCrossAttempt v1 (sc_extended) — Cross-Attempt Propensity from Tracking State

Read this first. This repo serves the sc_extended (owner-tier) variant. It is NOT bundled with the silly-kicks wheel because it is trained on restricted owner-tier data that cannot be redistributed inside a PyPI package — a licensing constraint. Only the learned parameters are published here. If you do not have owner-tier access, use the bundled default variant instead — see Which variant should I use?.

Model Description

XCrossAttemptModel is a deterministic-XGBoost classifier estimating P(the in-possession team attempts a cross within ~1 s of a tracking frame) — a STATE-anchored framing, reframed from the sender-level event treatment in Cao et al. (arXiv:2505.11841).

It carries 7 of the paper's 8 confounders (crosser-position, #7, is omitted — no faithful tracking-only proxy) plus a novel, isolatable GK-position confounder block, which is the paper's headline gap and the reason this model exists inside the GKDV research arc (TF-17 → TF-19).

  • 16 features, faithful (velocity-bearing), goal-relative coordinates via the shared _geometry helper
  • Domain filter: alive-ball, wide-area
  • The sc_extended model is fit on the owner-tier corpus (IDSSE + SkillCorner incl. owner-tier); base rate 5.0% positive.

Which variant should I use?

Variant Corpus Where it lives Use it?
default (public) 17 matches — SkillCorner + IDSSE, redistributable bundled in the wheel Default choice — offline, fully reproducible, no restricted data
sc_extended IDSSE + SkillCorner incl. 98 owner-tier SkillCorner matches this repo (HF-only) Yes, if you have owner-tier access and can accept a Hub download + the corpus caveats below
sc_extended_position_only same owner-tier corpus, velocity features dropped (15-feature) separate repo silly-kicks/xcross-attempt-position-only-v1 (HF-only) Yes, if scoring velocity-less frames (StatsBomb-360 freeze frames) with owner-tier access — a stronger position-only model than the bundled position_only. Reachable ONLY via from_variant("sc_extended_position_only"); asking for sc_extended still returns this faithful model (ADR-070).

Why this variant is HF-only

sc_extended is HF-only for licensing, not quality: it is trained on restricted owner-tier SkillCorner data that cannot be redistributed inside the PyPI wheel (ADR-038). Only learned parameters are published here — no raw provider tracking data (only split thresholds, feature indices and leaf values are stored — no per-sample training data).

The Hub sc_extended repo is the owner-tier archive: it holds the owner-tier model independent of the wheel-bundle selection gate, which decides only what ships in the wheel (ADR-071). This artifact was produced with that operator override (--ship-variant sc_extended); the gate's verdict and per-fold deltas are recorded in metrics.json (candidates.paired). training_commit: b658445.

Held-out CV (5 folds, out-of-fold)

Metric Value Baseline
PR-AUC 0.1888 (± 0.0108) base rate 0.0500
Brier 0.0436 base-rate Brier 0.0475
Log loss 0.1658 —

All four acceptance gates pass (enough_usable_folds, pr_auc_gt_base_rate, brier_lt_base_rate_brier, log_loss_lt_uniform). Estimates are CV, not the shipped fit.

TF-19 GK-substitution probe

The frozen GK-substitution probe (gk_substitution_probe in metrics.json; 200 frames; ADR-037's two-prong gate — ratio ≥ 2.0 × the nearest-defender control and an absolute floor ≥ 0.01):

Metric Value
gk_median_abs_delta 0.00625
nearest_def_median_abs_delta 0.00329
ratio (gk / control) 1.90× — misses (needs ≥ 2.0)
absolute floor 0.00625 < 0.01 — misses
tf19_ready false

The GK-block ablation shows the GK confounder block does carry signal (removing it drops held-out PR-AUC by 0.0089), but the substitution probe does not clear the frozen gate. Per ADR-037 this is a gated_clean_fail — TF-19 routes to GK feature engineering, explicitly not "no signal." Do not build a TF-19 consumer on this surface. (The position-only sibling — xcross-attempt-position-only-v1 — does clear the gate; see its card.)

Usage

from silly_kicks.tracking import XCrossAttemptModel

model = XCrossAttemptModel.from_variant("default")       # recommended, bundled, offline
model = XCrossAttemptModel.from_variant("sc_extended")   # this repo, downloads from the Hub

Requires pip install silly-kicks[xcross] and silly-kicks >= 4.74.0 (the sc_extended_position_only sibling repo requires >= 4.94.0, which introduced its variant key — ADR-070).

The >= 4.74.0 floor is a hard requirement. These weights are on the corrected goal-relative transform (geometry_version: goal-relative-2); ADR-051 found the previous transform was chiral (an x-only mirror at one goal end, identity at the other), so one physical scene scored differently depending which end the attacking team attacked. load()'s feature-contract prong is fail-closed, so an older silly-kicks refuses these weights with IntegrityError. from_hub() takes no revision argument yet, so treat the library version as the pin; prior revisions are addressable by commit SHA.

Integrity and load-time guards

load() is fail-closed on two independent checks: (1) SHA256SUMS verified before anything is parsed; (2) chirality fingerprint (ADR-040) — the model re-runs its own outputs on a fixed y-asymmetric probe frame and compares to the recorded fingerprint, raising on a mismatch and on a missing one. A base_score guard handles the xgboost 3.x bracketed-string serialization that 2.x silently drops to 0.5.

Limitations

  • Not the bundled model (restricted corpus). This is a redistribution limit, not a performance one.
  • tf19_ready = false (see the TF-19 section) — do not build a TF-19 consumer on this surface.
  • Trained on an owner-tier corpus that is heavily one-club (the 98 owner-tier additions are a single club), so club/style confounding is real and unquantified here.
  • SkillCorner keepers are detected in only ~19.6% of frames (~80% interpolated), which is why GKDV measurement is registered to Gradient Sports frames only (ADR-038 §5).
  • Estimates are cross-validated, not a held-out test of the shipped fit.

References

See the NOTICE file in the silly-kicks repository for full bibliographic citations.

  • Cao et al. "Framing Causal Questions in Sports Analytics: A Case Study of Crossing in Soccer." arXiv:2505.11841 (2025).
  • Decisions: ADR-011 (trained-model lifecycle), ADR-015 (causal-validation port), ADR-037 (TF-19 re-gate), ADR-038 (corpus + visibility), ADR-040 (chirality enforcement), ADR-070 (position-only Hub variant), ADR-071 (owner-tier archive).

Model Files

File Purpose
model.json XGBoost booster (pickle-free)
metadata.json features, hyperparameters, chirality fingerprint, provenance
metrics.json CV metrics, GK-substitution probe, ablation, permutation importance
SHA256SUMS integrity manifest, verified by load()

More Information

https://github.com/karsten-s-nielsen/silly-kicks

Wheel sibling (4.134.0)

In silly-kicks 4.134.0 the wheel's bundled default was re-fit on the corrected floor velocities (TF-65 / ADR-120, training_commit=a34e992). This Hub owner-tier artifact is unchanged this cycle: the velocity-gap re-fit touched only the wheel-bundled public variant; re-fitting this restricted sc_extended model on the corrected velocities is a tracked owner-run follow-up.

Identity and Version

Repository
silly-kicks/xcross-attempt-v1
Publisher
(Ministry of) Silly Kicks
Task
Tabular classification
Modality
Tabular
Library
silly-kicks
Parameters
Not stated by the source
Languages
en
Revision
94b8b5ffb2d852dd802ad95a1710437e3b05350e
First published
2026-08-26
Last updated
2026-10-13

Files and Weights

6 files, 1.1 MB in total.

Configuration3 files · 1.1 MB
Documentation1 file · 8.2 KB
Other1 file · 157 B
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
metadata.jsonConfiguration2.0 KB —
metrics.jsonConfiguration5.3 KB —
model.jsonConfiguration1.1 MB —
README.mdDocumentation8.2 KB —
SHA256SUMSOther157 B —
.gitattributesRepository1.5 KB —

License and Download

License
mit
Access
Open weights, no gate
Download from (Ministry of) Silly Kicks

Released by (Ministry of) Silly Kicks through its official repository on Hugging Face. Read the license.

Built From

  • Described by arXiv:2505.11841

Questions About xcross-attempt-v1

Can I use xcross-attempt-v1 commercially?

Yes. xcross-attempt-v1 is released under MIT License. The MIT License is a short permissive license. It permits commercial use, modification and redistribution, provided the copyright notice and permission notice are included.

Similar Models

Model · Tabular classification

Nori-30M

Synthefy

Nori-30M is the ~29.2M-parameter variant of Nori, a tabular foundation model for regression via in-context learning (ICL). Given a few labeled rows as context, it predicts on new query rows in a single forward pass, with no task-specific training or fine-tuning. The model is trained entirely on synthetic data. Mean and median R² across 96 regression tasks from three public benchmark suites, on the same protocol as the base Nori: Stronger than the ~6M base on every suite. Evaluated with the bundled default inference config and the large-GPU protocol (up to 50k context rows per dataset). Paste this into Claude Code, Cursor, or any AI coding assistant and it will wire python from synthefynori…

Open weights apache-2.0 synthefy-nori

Model · Tabular classification

sap-rpt-1-oss

SAP

Go to SAP-RPT Playground ↗ Note: This model and repository were formerly known as ConTextTab. While the code and repository have now been updated in line with the new name sap-rpt-1-oss, the model checkpoint and functionality remain identical. Implementation of the deep learning model with the inference pipeline described in the paper "ConTextTab: A Semantics-Aware Tabular In-Context Learner". Tabular in-context learning (ICL) has recently achieved state-of-the-art (SOTA) performance on several tabular prediction tasks. Previously restricted to classification problems on small tables, recent advances such as TabPFN and TabICL have extended its use to larger datasets. While being…

Access requested at publisher apache-2.0 sap-rpt-1-oss

Model · Tabular classification

Nori

Synthefy

Nori is a tabular foundation model for regression via in-context learning (ICL). Given a few labeled rows as context, it predicts on new query rows in a single forward pass, with no task-specific training or fine-tuning. The model is trained entirely on synthetic data. Mean and median R² of the base model across 96 regression tasks from three public benchmark suites (single H200, up to 50K context rows per dataset): Large-N / long-context tables (common in TabArena) are the current focus of the large-table training stages. These numbers are reproducible end-to-end with one command — see Reproducing these numbers. Paste this into Claude Code, Cursor, or any AI coding assistant and it will…

Open weights apache-2.0 synthefy-nori

Model · Tabular classification

EXAONE-Tabular

LG AI Research

EXAONE Tabular is a transformer-based foundation model for tabular data that solves classification and regression through in-context learning: you pass the labeled rows to fit and the model predicts new rows in a single forward pass — no gradient updates and no per-dataset training. This repository is the exaonetabular inference runtime — a self-contained package that loads a released checkpoint and serves predictions through a small, scikit-learn-style API. The code here is permissively licensed; the released weights are non-commercial — see Both checkpoints are released: EXAONETabularClassifier and EXAONETabularRegressor each fetch their own weights with a single frompretrained() call.…

Open weights other

Model · Tabular classification

TabPFN-v2-clf

Prior Labs

TabPFN is a transformer-based foundation model for tabular data that leverages prior-data based learning to achieve strong performance on small tabular datasets without requiring task-specific training. For detailed usage examples and best practices, check out: - Python ≥ 3.9 - PyTorch ≥ 2.1 - scikit-learn ≥ 1.0 This repository hosts the production TabPFN-v2 base checkpoints. Files matching the pattern tabpfn-v2-classifier-finetuned-.ckpt are content-identical aliases of the corresponding base checkpoints (e.g. tabpfn-v2-classifier-finetuned-gn2p4bpt-xp6f0iqb.ckpt is identical to tabpfn-v2-classifier-gn2p4bpt.ckpt; tabpfn-v2-classifier-finetuned-zk73skhh.ckpt is identical to…

Open weights other tabpfn

Model · Tabular classification

tabfm-1.0.0-pytorch

Google

TabFM is a zero-shot tabular foundation model from Google Research. It supports classification and regression on structured/tabular data with mixed numerical and categorical columns, requiring no fine-tuning or hyperparameter search - training examples are passed as context and predictions are made in a single forward pass. This repository contains the PyTorch weights. For the JAX/Flax weights see You can also load directly using the HuggingFace Hub API: Developed by the Google Research team. - Tabular data with numerical and/or categorical columns - Binary and multiclass classification (up to 10 classes) TabFM uses alternating row and column attention to capture both feature interactions…

Open weights other tabfm