Skip to page content
SAVRN
Search Plan a project

Open-weight model · Tabular classification

xshot-occurrence-v1

by (Ministry of) Silly Kicks silly-kicks/xshot-occurrence-v1

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

XShotOccurrenceModel is a deterministic-XGBoost classifier estimating P(a shot is attempted by the in-possession team within ~1 s of a tracking frame) — the xS surface of the GKDV research arc (TF-16).

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

Model Card

By (Ministry of) Silly Kicks, published under mit, revision 87aee2d5172b.

XShotOccurrenceModel is a deterministic-XGBoost classifier estimating P(a shot is attempted by the in-possession team within ~1 s of a tracking frame) — the xS surface of the GKDV research arc (TF-16). Paper-faithful 27-feature extractor in goal-relative coordinates via the shared geometry helper: ball r/θ/z/speed, an openGoal goal-mouth obstruction term, GK distance/bearing, and the 5 nearest defenders + 5 nearest attackers. - Trained on 964,263 rows / 182,517 positives (18.9% positive rate) scextended 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…

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

xShotOccurrence v1 (sc_extended) — Shot-Occurrence 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

XShotOccurrenceModel is a deterministic-XGBoost classifier estimating P(a shot is attempted by the in-possession team within ~1 s of a tracking frame) — the xS surface of the GKDV research arc (TF-16).

Paper-faithful 27-feature extractor in goal-relative coordinates via the shared _geometry helper: ball r/θ/z/speed, an openGoal goal-mouth obstruction term, GK distance/bearing, and the 5 nearest defenders + 5 nearest attackers.

  • Domain filter: alive-ball, attacking third
  • Feature set: faithful (velocity-bearing, 27 features)
  • Trained on 964,263 rows / 182,517 positives (18.9% positive rate)

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 115 matches — 7 IDSSE + 108 SkillCorner (incl. 98 owner-tier) 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 115-match corpus, velocity features dropped (26-feature) separate repo silly-kicks/xshot-occurrence-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).

This artifact was produced by a two-provider (IDSSE + SkillCorner) single-candidate run: the corpus is the owner-tier sc_extended tier, so there is no paired comparison against public (that comparison governs the wheel bundle selection, not this archive; ADR-071). The bundled default/public model remains the reproducible offline choice.

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

Metric Value Baseline
PR-AUC 0.5851 (± 0.0436) base rate 0.1893
Brier 0.1131 base-rate Brier 0.1534
Log loss 0.3671 —

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. training_commit: 1ce63ef.

TF-19 status: the shot arm has never been measured

Unlike its xCross sibling, this model carries no GK-substitution probe in metrics.json. That is blocked, not missing: xs_substitution_probe consumes ghost-substituted targets from the GKDV engine, and the registered xS probe has not been run against this arm. A TF-19 spec must not assume the shot arm is healthy — it is unmeasured, not validated.

Usage

from silly_kicks.tracking import XShotOccurrenceModel

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

Requires pip install silly-kicks[xshot] 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 rather than serve them against the geometry they were not fit on. from_hub() takes no revision argument yet, so treat the library version as the pin; prior revisions are addressable by commit SHA in this repo's git history.

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.
  • No GK measurement exists for this arm at all — see the TF-19 section.
  • Trained on 115 matches, 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.

  • Attribution: arXiv:2512.00203.
  • Decisions: ADR-011 (trained-model lifecycle), 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 and acceptance record
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/xshot-occurrence-v1
Publisher
(Ministry of) Silly Kicks
Task
Tabular classification
Modality
Tabular
Library
silly-kicks
Parameters
Not stated by the source
Languages
en
Revision
87aee2d5172b7f841986c357e1cb26096acc115e
First published
2026-08-26
Last updated
2026-10-13

Files and Weights

6 files, 1.3 MB in total.

Configuration3 files · 1.3 MB
Documentation1 file · 7.4 KB
Other1 file · 157 B
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
metadata.jsonConfiguration2.3 KB —
metrics.jsonConfiguration1.2 KB —
model.jsonConfiguration1.3 MB —
README.mdDocumentation7.4 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:2512.00203

Questions About xshot-occurrence-v1

Can I use xshot-occurrence-v1 commercially?

Yes. xshot-occurrence-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