PitchKit

skillcorner

SkillCorner open-data loader — broadcast tracking, dynamic events and phases of play from 20 A-League 2024/25 matches.

import { fetchMatch, fetchDynamicEvents, offBallRuns } from "@pitchkit/data-providers/skillcorner";

const match = await fetchMatch(1874553);
const runs = offBallRuns(await fetchDynamicEvents(match));

Same four layers as the StatsBomb module — parse* (pure), fetch* (network), narrowing selectors, composable predicates — with three differences worth knowing before you plot anything:

  1. Coordinates are metres from the centre spot, on a pitch whose real dimensions vary by match (104-106 m long in this dataset). Parsers add corner-origin pitchX/pitchY using that match's own dimensions, which is why the loaders take the match rather than just its id.
  2. The two files disagree about direction. Tracking positions are absolute and swap ends at half time; dynamic-event x is normalised so positive always points at the goal being attacked. See attackingSideOf for resolving the former.
  3. Tracking is big — about 90 MB a match — and is served from a different host because it's stored in Git LFS. Prefer streamTracking or fetchTrackingWindow over fetchTracking.

Data is MIT-licensed; SkillCorner ask to be credited in anything published from it.

See

https://github.com/SkillCorner/opendata

Interfaces

Type Aliases

Variables

Functions

References

DataProviderError

Re-exports DataProviderError


DataProviderErrorKind

Re-exports DataProviderErrorKind


LoadOptions

Re-exports LoadOptions

On this page