# Import from KSIS

You've been running registration (or the whole meet) in KSIS and you want to bring that data into Gym Art Meets. The KSIS importer accepts files you've already exported and creates your meet, roster, and optionally your sessions in one pass.

There are two paths, and the difference matters:

* **KSIS Entries File** (`.csv` or `.xlsx`). Use this when you finished registration in KSIS but want to do scheduling and scoring in Gym Art Meets.
* **KSIS Scoring File** (`.sql`). Use this when you already built sessions and rotations in KSIS and just want Gym Art Meets to handle scoring.

Both live inside the new meet dialog. You pick which one you have, drop the file in, confirm the meet details, and start the import.

## Prerequisites

* A club in Gym Art Meets. If you don't have one yet, [create one first](/club-management/create-a-club.md).
* A KSIS export file from your current meet. Entries exports are `.csv` or `.xlsx`. Full scoring backups are `.sql`.

## Pick your import type

1. From your club dashboard, click **New meet**.
2. The "How would you like to create your meet?" screen appears with four options.
3. Choose one:
   * **KSIS - Entries File** if you have a `.csv` or `.xlsx` export.
   * **KSIS - Scoring File** if you have a `.sql` backup.

The rest of the flow is the same for both. The difference is what lands in your meet at the end (see [What you get](#what-you-get) below).

## Steps

### Step 1: Select in the file

Click to pick it from your computer. Entry files accept `.csv` and `.xlsx`. Scoring files accept `.sql`.

Gym Art Meets reads the file and shows you a preview card with the filename.

### Step 2: Review meet details

Below the file card you'll see the meet details form:

* **Meet name**. For `.sql` files, the name is pulled from the KSIS metadata. For `.csv` / `.xlsx`, type it in.
* **Dates**. Same rule: `.sql` fills these in from metadata, `.csv` / `.xlsx` ask you. The start date is also used as the reference date for calculating age-group birth-date ranges, so it needs to be close to the real event date.
* **Sport type**. WAG, MAG, or WAG+. For `.sql` files, this is auto-detected from the KSIS sport code (`ARTW`, `ARTM`, `ARTW+`). For `.csv` / `.xlsx`, pick it from the dropdown.

Edit anything that doesn't look right. You can still change all of this after the import.

### Step 3: Start the import

Click **Create Meet & Import**. Gym Art Meets creates the meet first, then runs the import in phases. You'll see a progress bar with a description of what's happening (parsing, creating levels, creating gymnasts, and so on).

When it finishes, you get a result card with counts: levels created, gymnasts imported, coaches, competitions, sessions if applicable. The dialog closes and takes you to your new meet.

## What you get

This is the full list of what lands in your meet from each path.

| Entity in Gym Art Meets                  | KSIS `.sql`    | KSIS `.csv` / `.xlsx` |
| ---------------------------------------- | -------------- | --------------------- |
| Meet (name, dates, sport)                | Auto from file | You enter             |
| Levels                                   | Yes            | Yes                   |
| Age groups (with birth-date ranges)      | Yes            | Yes                   |
| Subdivisions (A, B, C groupings)         | Yes            | Yes                   |
| Gymnasts (with DOB, club, email)         | Yes            | Yes                   |
| Coaches                                  | Yes            | Yes                   |
| Sessions                                 | Yes            | No                    |
| Rotations                                | Yes            | No                    |
| Competitions (Level + Age + Subdivision) | Yes            | Yes                   |
| Scores                                   | No             | No                    |
| Judges / panels                          | No             | No                    |

Scores and judge data are never imported from KSIS, regardless of file type. Scoring starts fresh in Gym Art Meets.

## Common stumbling blocks

**A gymnast is missing from the roster.** KSIS entries without a full name or without a date of birth are dropped silently. Open the file and check that every row has first name, last name, and DOB before importing.

**Age groups look wrong.** Age ranges come from the event start date. If you picked the wrong date, fix the meet start date and re-run the import, or edit the age groups in the level settings.

**The sport type is empty on a `.sql` file.** The KSIS sport code didn't match anything we recognize (we map `ARTW`, `ARTM`, `ARTW+`). Pick it manually from the dropdown.

**No sessions showed up from my `.csv` file.** That's expected. Only `.sql` files carry session and rotation data. Build sessions in the app using [Create a session](/scheduling/create-a-session.md).

**An age group label like "10 & over" didn't import.** The parser only understands numeric formats like "Age 9", "Age 7&8", or "Age 10+". Rename the label in the source file and try again, or add the age group manually after import.

**I re-imported and now I have duplicates.** Gymnasts are matched by first name, last name, and club name. If you re-ran the import after renaming someone, the importer treats them as a new gymnast. Delete the duplicate in the roster.

## What's next

* [Configure levels and categories](/meet-setup/configure-levels-and-categories.md) if you need to tweak pricing or capacity
* [Create a session](/scheduling/create-a-session.md) if you imported a `.csv` or `.xlsx` file and need to build the schedule
* [Set up judge profiles](/scoring/set-up-judge-profiles.md) to prepare for scoring

## Related

* [Import from MeetMaker](/migration/import-from-meetmaker.md)
* [KSIS concept map](/migration/ksis-index/ksis-to-gym-art-meets.md) for terminology mapping
* [Migration overview](/migration/index.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gymart.org/migration/import-from-ksis.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
