# Competitions

> Competitions group gymnasts within a level by age and into subdivisions for scheduling and awards.

> **Visual guide:** [View the age groups decision tree in Figma](https://www.figma.com/board/VSa3rYgMnJS96opwqzJv50/) | [View the age group structure diagram in Figma](https://www.figma.com/board/G6IsAsyvBbqDHnIR51UgGN/)

## Key Concepts

### Competition

A **competition** is the combination of a level, an age group, and one or more subdivisions. It's the unit that gets assigned to sessions and ranked.

For example, "Level 5 - Ages 8-9" is a competition within the Level 5 level.

### Age Group

An **age group** defines a birth date range. Gymnasts whose birth date falls within the range belong to that age group.

* **All Ages** (default) - No age restriction; all gymnasts in the level compete together.
* **Custom age group** - Defined by an earliest and latest birth date (e.g., born between Jan 1, 2014 and Dec 31, 2015).

### Subdivision

A **subdivision** is a sub-group of gymnasts within a competition. Subdivisions are used for:

* **Scheduling** - Each subdivision can be assigned to a different session
* **Award groups** - When "treat subdivisions as award groups" is enabled, each subdivision is ranked separately

Every competition has at least one subdivision (even if it's just one group containing everyone).

## Two Structures: 2-Layer vs 3-Layer

### 2-Layer: Level → Subdivisions (No Age Groups)

The simplest structure. All gymnasts in a level are in one "All Ages" competition, split into subdivisions only for scheduling.

```
Level 5
  └── All Ages (single competition)
        ├── Subdivision A → Session 1
        └── Subdivision B → Session 2
```

Use this when age doesn't matter for ranking or scheduling. See [How to create subdivisions](/competitions/create-subdivisions.md).

### 3-Layer: Level → Age Groups → Subdivisions

Each age group creates its own competition. Within each competition, gymnasts are split into subdivisions.

```
Level 5
  ├── Ages 8-9 (competition)
  │     ├── Subdivision A → Session 1
  │     └── Subdivision B → Session 2
  └── Ages 10-11 (competition)
        └── Subdivision A → Session 3
```

Use this when gymnasts should be ranked against others in their age range. See [How to create age groups](/competitions/create-age-groups.md).

## Decision Guide

Not sure which structure to use? See [How to decide: age groups vs subdivisions only](/competitions/choose-age-groups-vs-subdivisions.md).

| Question                                              | If Yes →                                    | If No →                         |
| ----------------------------------------------------- | ------------------------------------------- | ------------------------------- |
| Do gymnasts of different ages need separate rankings? | Use age groups (3-layer)                    | Use subdivisions only (2-layer) |
| Do you need to split a large level across sessions?   | Add subdivisions                            | One subdivision is fine         |
| Should each session group have its own awards?        | Enable "treat subdivisions as award groups" | Rank all subdivisions together  |

## Score Settings Override

By default, competitions inherit score settings from their level. However, you can **override** score settings on individual competitions - for example, using a different tiebreaker for a specific age group.

## Steps

1. [**Decide your structure**](/competitions/choose-age-groups-vs-subdivisions.md) - Age groups or subdivisions only?
2. [**Create subdivisions**](/competitions/create-subdivisions.md) - If using 2-layer (or after creating age groups)
3. [**Create age groups**](/competitions/create-age-groups.md) - If using 3-layer
4. [**Assign subdivisions to sessions**](/competitions/assign-subdivisions-to-sessions.md) - Map subdivisions to session time blocks

## Related

* [How do I configure competition levels?](/levels/index.md)
* [How do I set up scheduling?](/scheduling/index.md)
* [How to configure individual score settings](/levels/individual-score-settings.md)
* [Glossary](/getting-started/glossary.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/competitions/index.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.
