OpenTag.Studio — Standalone tool

OpenTag & Sportscode → LSA Converter

Drop an OpenTag session (JSON or CSV) or a Sportscode export (CSV or timeline XML). Map your columns if needed, then download a THEME package for T-pattern analysis or an SDIS file for lag sequential analysis in GSEQ.

OpenTag JSON & CSV Sportscode CSV & XML THEME / vvt.vvt SDIS-II for GSEQ 5 No upload · runs in browser
Setup guide →

Upload your data

Drop OpenTag JSON or CSV here

or click to browse

OpenTag: Export → Full package / Timeline (JSON) or Research CSV — durations preserved

Code window setup guide — how to structure Sportscode for clean LSA exports

The quality of your LSA export depends almost entirely on how the Sportscode code window is structured when you code the match. These five rules will save you significant post-processing time.

1

One behaviour dimension = one label group

In Sportscode, each context menu item attached to a button belongs to a label group. These become separate columns in the CSV export (e.g. Attack Initiater, Opponent Reaction, Outcome). Keep each analytical dimension in its own group — never mix dimensions inside one group.

✗ Wrong — mixed into one group
Group: Labels
  → Cut Kick
  → Retreat
  → No Score
  → Direct Attack
  → Guard Raises

CSV column: Labels = "Cut Kick"
Problem No way to know which dimension each value belongs to
✓ Correct — one group per dimension
Group: AttackType
  → Cut Kick, Direct Attack, Step In

Group: OpponentReaction
  → Retreat, Guard Raises, Clinch

Group: Outcome
  → No Score, Counter 2pt, Gam-jeom

Result Three clean CSV columns, one per dimension
2

Avoid commas inside label values

If a single label value contains a comma (e.g. Dollyo Chagi, Sewo Chagi), this converter treats it as one compound code — DollyoChagi_SewoChagi. If those are genuinely two separate follow-up techniques you want to analyse independently, create two separate button presses (two instances) rather than one button with a comma-list value. If it truly is one compound action (e.g. a combination), a comma-free name like DollyoSewoCombo is cleaner.

3

Use consistent, space-free label names

Spaces, hyphens, and brackets are stripped during sanitisation. Cut Kick becomes CutKick, Gam-jeom- becomes Gamjeom, Naeryeo(Axe) becomes NaeryeoAxe. Design your labels so the sanitised version is still readable. Check the preview panel to see exactly what codes will be produced before downloading.

4

Put the actor (Chong / Hong) in its own label group, not "Ungrouped"

Sportscode's Ungrouped column in the CSV catches any labels not assigned to a named group. If you want actor identity (Chong vs Hong) as a dimension in your LSA — e.g. CutKick_Chong_Retreat vs CutKick_Hong_Retreat — assign it to a named group called Actor. If actor identity is only needed for filtering (not as a behavioural dimension), leaving it in Ungrouped is fine — just don't include that column in your dimension mapping here.

5

Avoid duplicate column names in the CSV

Your sample data has both Follow-Up Action and Follow-up Action as column headers — one capital U, one lowercase. Sportscode writes both but only one contains data. When you see this, the code window has a label group that was renamed without removing the old name. Fix it in Sportscode by deleting the empty/duplicate group before exporting. In this converter, the empty duplicate is automatically ignored.

Part of OpenTag.Studio — free browser-based sports video analysis. No data leaves your browser. New to this? Read the THEME & GSEQ setup guide.

THEME: Magnusson (2000). SDIS/GSEQ: Bakeman & Quera (2011).