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.
or click to browse
OpenTag: Export → Full package / Timeline (JSON) or Research CSV — durations preserved
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.
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.
Labels = "Cut Kick"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.
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.
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.
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.
If this converter helped prepare your data, please cite it. THEME & GSEQ method references are in the setup guide.
@misc{callaway2026opentaglsa,
author = {Callaway, Andrew},
title = {OpenTag LSA Converter},
year = {2026},
note = {Web application},
url = {https://opentag.studio/tools/lsa-converter}
}