Football · Event tagging service

Football match event tagging, back in 24–48 hours.

Sport-trained analysts tag every match to your schema, check it through three QA layers, and deliver JSON or CSV your pipeline can read.

See sample output

3-LAYER QA · YOUR SCHEMA OR OURS · NDA ON REQUEST

LIVE TAGGING1H 12:13
EVENT FEEDQA ✓ 3 LAYERS
  • 12:04PASS#8 → #10
  • 12:07RECEPTION#10 · under pressure
  • 12:10DRIBBLE#10 · beats #4
  • 12:13SHOT#10 · right foot · on target

Illustrative events. Real output follows your schema.

24-48 hours

Key-events delivery

3 layers

QA on every match

Free

Pilot: one clip, up to about 10 minutes

Dark Horse AI

Past client: Dark Horse AI,
youth football event tagging. Case study

What we tag

Pick the depth. We tag to it.

Three packages, each building on the one before. Choose one to see which event groups it adds and where on the pitch that data comes from.

Best for · Match reports and coaches

The moments that decide a match, with every player verified.

Delivery: 24-48 hoursL1-L3 · 10 of 18 event groups
Game StateGoals / AssistsFree Kick / ShotGoalkeeper ActionsSet PiecesCornersPenaltiesFouls / CardsOffsideSubstitutions
See every event definition
WHERE KEY EVENTS ADDS DATANEWINCLUDED

Marker positions are illustrative.

How it works

Footage in. Data out.

  1. 01

    Send footage

    A link, a bucket or a drive. Broadcast feed or a single wide camera, full match or clips.

  2. 02

    Agree the schema

    Ours, yours or a mix. Every event definition is written down and versioned before tagging starts.

  3. 03

    Tag and check

    A sport-trained analyst tags the match, then a specialist reviewer and a senior auditor check it.

  4. 04

    Receive data

    JSON or CSV in your structure, with a QA report. Or we tag directly inside your own platform.

Sample output

Data your pipeline can read.

Every event carries a time, team, player, outcome and pitch position, plus the qualifiers your package includes. JSON and CSV by default; XML or your own structure on request.

Coordinates are in metres from the centre mark on a 105 × 68 pitch, as defined in our sports taxonomy.

{
"event_id": 4,
"timestamp": "00:12:09.00",
"period": 1,
"team": "home",
"player_jersey": 10,
"event_group": "Free Kick / Shot",
"sub_event": "Shot",
"outcome": "on_target",
"start": { "x": 36.0, "y": -3.2 },
"end": { "x": 52.5, "y": -1.1 },
"qualifiers": { "body_part": "right_foot", "pressure": true },
"qa": { "reviewed": true, "audited": true }
}

Example structure with synthetic events, not a real match. Your delivery follows your schema.

Footage we handle

Any camera. Any level.

Each kind of footage fails in its own way. Here is what we do about it.

Broadcast TV

Camera cuts and replays break continuity, so replays are flagged and never double-counted.

Single wide camera

Players are small and numbers often unreadable, so identity is confirmed by team, position and movement.

Youth and academy

Matches are less structured than the pro game, so definitions are agreed for the moments that are hard to call.

Phone or tripod

Low angles hide the far side of the pitch, so events out of view are marked as such rather than guessed.

Quality you can check

Three people look at every match.

Tagging errors in football are rarely about drawing. They are the wrong player, the wrong event, or the right event a second late. Each layer is there to catch a different one of those, and every delivery ships with a QA report.

How to check any vendor's labels
LAYER 1

Primary annotator

Tags every event to the agreed schema, with player, time and outcome.

LAYER 2

Specialist reviewer

Checks the football logic: right player, right event, right moment.

LAYER 3

Senior auditor

Samples the match against the definitions and signs off the QA report.

Pricing

Priced per match. Tested for free.

PER MATCH

Quoted to your scope

Price depends on the package, the footage and your volume. We quote after a 30-minute call where we look at a sample of your footage and your schema.

Compare packages on the pricing page

FREE PILOT

Your hardest 10 minutes

One clip, up to about 10 minutes, tagged with full QA and returned in 3 business days. No contract, no payment. Judge the data before you buy anything.

Questions

What buyers ask us.

Can you tag inside our own platform instead of delivering files?

Yes. Our analysts can work in your tagging tool to your guidelines, and we already work this way for a current client. Or we deliver JSON or CSV in your structure.

Can you use our event definitions?

Yes. We use your definitions, ours, or a mix. Either way the schema is written down and versioned before tagging starts, so a change mid-project never silently changes earlier matches.

How do you handle jersey numbers you cannot read?

We identify the player from other evidence such as team, position and continuous movement. If identity still cannot be confirmed, the event is marked unknown rather than guessed.

Do you tag both teams?

The packages cover a standard 90-minute match with both teams tagged. One-team scope is quoted to match the work.

What happens if you find an error in a delivery?

Tell us. Corrections against the agreed definitions are part of the service, and every fix goes back through review before it is redelivered. The correction window is set in the agreement.

Do you sign NDAs?

Yes. We sign a mutual NDA before any footage or schema is shared, and we are happy to use your template.

Free pilot

Send us your hardest 10 minutes.

The occluded players, the unreadable numbers, the moments your current tagging gets wrong. We tag it and send the QA report.

Or write to us