Skip to content

Classes and courses

Audience: Event organisers defining the competition structure.

Classes are the categories competitors enter (e.g. M21A, W14, Open Moderate). Courses are the physical sequences of controls. Classes determine who runs against whom; courses determine what they run.

This page covers what they are, how they're related, and how to create, edit, and delete them in Manager. Most events get their classes and courses from an import — see Importing event data — so usually you're reviewing and adjusting rather than entering from scratch.

How classes and courses relate

A class can be assigned one or more courses, and a course can be assigned to one or more classes — the relationship is many-to-many. In practice you'll see two common patterns:

  • One course per class — typical of championship classes (M21A → "Hard 1" course).
  • Multiple classes sharing one course — typical of age-group classes that all run the same physical course (M21A and W21A both run "Hard 1"). Each class still appears separately on Leaderboard.

Manager doesn't require every class to have a course assigned during setup, but a class without a course can't produce results. The Classes page flags missing assignments so you can spot them at a glance.

The Classes page

Navigate to Classes in the Event Data section of the side menu.

The table shows one row per class with these columns (some appear conditionally):

  • Class — the class name. Click to open the edit dialog.
  • Mass Start — the class's mass-start time, if set. Only shown if the event or any class uses a mass start.
  • Courses — the courses assigned to this class.
  • Radio Controls (including priority) — which radio controls report for this class. For relay classes the list is grouped by leg.
  • Competitors — entry count. Only shown if the event is not a relay.
  • Teams — team count. Only shown if the event is a relay.
  • On Course — how many competitors in this class are still On Course (started but not finished).

Filter the table with Search by class name or by Radio control code.

The Actions menu (top right) has:

The Courses page

Navigate to Courses in the Event Data section.

The table shows one row per course:

  • Course — the course name. Click to open the edit dialog.
  • Controls — the ordered sequence of control codes. A red warning appears if a course has no controls.
  • Length — the course length in km. Click to open a per-leg breakdown. Normally measured automatically as the sum of the leg distances (shows -- if any leg distance is unknown); a ruler icon marks a course whose length has been set manually instead.
  • Assigned Classes — count of classes that use this course. Click to see the list.

Filter with Search by course name or by Control code.

The Actions menu has:

  • Import — open the Import Data dialog.
  • Add — create a new course.
  • Assign to Classes — bulk-assign courses to classes (same dialog as on the Classes page).
  • Auto create classes from courses — the same action as on the Classes page (see Auto-creating classes from courses below).
  • Combine into Variations — fold several courses that are really forks of one course into a single course with variations (see Combining forked courses into variations below).
  • Leg distances — open the shared leg-distances editor (see Leg distances below).

Creating a class by hand

Click Actions → Add on the Classes page. The Edit Class dialog opens.

Fields:

  • Class ID — auto-assigned; read-only.
  • Class Name — required. The name shown everywhere (Leaderboard, start lists, results).
  • Short Name — optional. A shorter label used where space is tight.
  • Courses — multi-select chips. Pick one or more courses for this class, or leave empty and assign later.

Start time section:

  • Class mass start — toggle on if this class starts together at a fixed time. When on, set Class Mass Start Time (defaults to 10:00:00 the first time you enable it).
  • Exclude this class from event mass start — appears only when the event has a mass start and this class doesn't have its own class mass start. Tick it if this class should start individually despite the event-wide mass start.

Click Save.

Creating a course by hand

Click Actions → Add on the Courses page. The Edit Course dialog opens with three tabs.

Details

  • Course ID — auto-assigned; read-only.
  • Course Name — required.
  • Course Information — optional free-text notes (course-setter notes, terrain notes, etc.).
  • Start — which Start this course uses. An event can have several Starts (e.g. "Main Start", "Easy Courses Start") at different locations; pick the one this course uses.
  • Finish — which Finish control this course chains through, chosen the same way.
  • Controls — the ordered sequence of middle controls between the Start and the Finish.

To build the control sequence, type a control code (31–511) into the input and press Enter. Each control appears as a chip in the order added. Drag chips to reorder. Click the close icon on a chip to remove it, or press Backspace to delete the last one.

Note: The Start and Finish are picked from the event's Start and Finish controls in the dropdowns above — the Controls field holds only the middle controls between them. An event can define multiple Start and Finish controls; see Controls and radio controls.

Climb

  • Total climb — total elevation gain over the whole course, in meters.

Length

Choose how this course's length is worked out:

  • Measured automatically — the length is the sum of the course's leg distances (the default), shown beside the option.
  • Manually calculated — enter the length in metres yourself. Use this for sprint courses, where the published length is the shortest sensible route around obstacles rather than the straight-line geometry, or whenever you need a deliberate figure (taped routes, remeasurement). A manual length must be a whole number of metres greater than zero. The value you set here is what Manager publishes to exports (Eventor / IOF XML) and printed splits, in place of the measured sum.

Below the length options is a read-only breakdown of the distance between each consecutive pair of controls on this course. Leg distances are shared across the whole event, keyed by the two controls' identities — if two courses both go from control 31 → 32 the same distance applies, but a leg from "Start 1 → 131" stays distinct from "Start 2 → 131". Edit them via Actions → Leg distances on the Courses or Controls page.

If the course has no controls yet, the breakdown tells you to add them on Details first.

Keep adding

At the bottom left of the Add Course dialog is a Keep adding toggle, for typing in a list of courses one after another. With it on, Save stores the course and clears the dialog for the next one instead of closing it — the course just added is named beside the toggles, so a cleared form isn't mistaken for a save that failed. Close the dialog with Cancel when the list is done. It stays as you leave it for the rest of the session.

Create class

Beside it is a Create class toggle, off by default. Turn it on and saving the course also creates a class of the same name, running that course — the quickest way to build an event on the spot, where each course is its own class. If a class of that name already exists, nothing is created and Manager tells you so; the course itself is saved either way.

The toggle only appears when you are adding a course, and it resets to off each time the dialog opens — but it stays on across a Keep adding run, so a whole set of courses and their classes goes in without reopening anything.

Click Save.

Assigning courses to classes

Often you don't need to assign anything by hand: an imported course file that includes class-course assignments (ClassCourseAssignment entries — exported by Purple Pen, OCAD and others) sets each named class's courses automatically during the import, even when the course names ("Course 1") don't match the class names ("M21E"). After a course import, the bulk dialog below opens automatically only if at least one class is still without a course.

When you do need to assign manually, there are two ways:

  • One class at a time — open the class's edit dialog and pick courses in the Courses field.
  • Bulk — use Assign Courses (on the Classes page) or Assign to Classes (on the Courses page). Both open the same dialog.

In the bulk dialog you see one row per class with a multi-select for its assigned courses. Edit any row, then click Save — only the changed rows are written, and a counter at the bottom shows how many.

Auto-assign (top of the dialog) matches each class to a course by name and fills in the suggestions. After auto-assign, an alert tells you how many classes matched and how many didn't — review the highlighted rows, edit anything that's wrong, then Save. Useful right after an import that brought in classes and courses with matching names.

Auto-creating classes from courses

For an event put together on the spot, the classes are often just the courses: an "Easy" class running the "Easy" course. Actions → Auto create classes from courses, on either the Classes or the Courses page, does that in one go.

The dialog lists every course before anything is written, with what it would do to each:

  • Will be created — no class runs this course and no class carries its name. Ticked by default.
  • Class already exists — a class already runs this course, or already carries its name, or both. Unticked. A row whose name is taken cannot be ticked at all: two classes sharing a name are impossible to tell apart afterwards, in the results as much as on screen. Where only the course is spoken for — a class of some other name runs it — you can still tick the row, if you do want a second class on the same course.
  • This course has no name — nothing to copy. Also not tickable.

Because only the untouched courses start ticked, you can run it again later in the day and it picks up the courses added since without disturbing what is already set up. Each new class is created with the course's name, that one course assigned, and nothing else — edit the rest (short name, mass start, radio controls) from the Classes page afterwards.

Combining forked courses into variations

A forked course — a butterfly, or a relay course where different runners take the loops in different orders — is one course in Manager, carrying a variation per fork combination. Each variation has the letter code the course setter printed on the maps ("BDAC") and its own control sequence.

Course-setting software doesn't always tell Manager that. When the course file groups the forks (IOF CourseFamily), the import folds them for you. When it doesn't, each fork arrives as a course in its own right and the list ends up with "Course 1 BDAC", "Course 1 ADBC", "Course 1 BCAD" and "Course 1 ACBD" side by side, none of them knowing about the others.

Actions → Combine into Variations puts them back together.

The dialog opens with Detected variation families at the top: sets of courses whose names share a prefix and whose control sequences are alike enough to be forks of one course. Ordinary course numbering ("Course 1", "Course 2") isn't offered, because those courses share no controls. Click Use on a family and the selection, the combined name and each variation code are filled in for you.

You can also do it by hand — tick any courses in the table, edit the combined name, and edit any variation code. The codes must be unique, and they're what appear on results and splits, so keep them exactly as printed on the maps.

When you click Combine:

  • The first course in the list survives. It keeps its course id, its Start and Finish, its climb and its position in the list, and takes the combined name. If the selected courses don't all share the same Start and Finish, the dialog warns you whose are kept.
  • Every other selected course becomes a variation and is then deleted. Any manual length it had becomes that variation's length.
  • Classes that used any of them now point at the combined course. A class that used only some of them is restricted to just those variations; a class that used all of them stays unrestricted.
  • Competitors locked to one of the courses are moved to the combined course and locked to the matching variation — so a runner assigned "Course 1 BDAC" still runs the BDAC fork.

Leg distances need no attention: they're banked per control pair for the whole event, so every fork's measurements survive the fold.

You can run it again later. If a further fork turns up in a re-import, select the already-combined course together with the new one — the combined course keeps the variations it has and the new one is appended. Only one of the selected courses may already have variations.

Relay events

For relay events, the course list still holds the physical courses (one per leg variant), but leg structure — which leg punches which radio control — is configured on the class via its Radio Controls, not on the course. The course is just an ordered list of controls; the class decides how those controls are grouped by leg.

See Relay events for the full picture.

Leg distances

Leg distances are kept in one shared bank for the event, keyed by the identity of the from-control and to-control (not by control code). This means editing the distance for 31 → 32 once updates every course that traverses that leg — while a leg from "Start 1 → 131" stays distinct from "Start 2 → 131", since the event can have more than one Start. Editing the middle of a course leaves the surviving legs untouched.

Open the editor from Actions → Leg distances on either the Courses or Controls page. The same dialog is reachable from inside the Edit Course dialog as a read-only Leg distances tab.

Editing after the event has started

Classes and courses remain fully editable after the event has gone live — Manager doesn't lock them down. This is intentional: late entries land in classes, and you sometimes need to fix a wrongly-set control sequence mid-event.

That said, a few changes will affect already-finished competitors:

  • Adding, removing, or reordering controls on a course will re-classify every competitor on that course (anyone who matched the old course may now be Mispunched, and vice versa).
  • Removing a course from a class unassigns it for everyone in that class.
  • Renaming a class or course is safe — it's just a label change.

If you must edit a course after competitors have started, do it during a quiet moment and check the Results page afterwards.

Deleting classes and courses

To delete a class, open its edit dialog and click the red Delete button at the bottom-left. Confirm the prompt.

Deleting a course is the same — open it, click Delete, confirm. If the course is assigned to any classes, Manager unassigns it from them automatically.

Deletion is permanent. There's no undo.

Deleting them all at once

Both pages offer Actions → Delete all classes and Actions → Delete all courses, for when an import went in wrong and you want to redo it from an empty list rather than pick the entries off one by one.

Manager confirms first and lists what else changes:

  • Delete all classes takes each class's radio controls, start-time settings and course assignments with it. The competitors stay, but they end up with no class and stop being evaluated until you give them one — usually by re-importing the class and entry lists. In a relay event the teams keep pointing at a class that no longer exists, so delete or reassign them too.
  • Delete all courses takes each course's control sequence and fork variations. The classes stay but are left without a course, so nobody can be evaluated until the courses are back. Controls, and the leg distances measured between them, are untouched.

Neither can be undone. On a live event, back the event up first.

Course pools and locking a competitor to a course

A class can hold more than one course — a course pool. This is common where a class is split across forked courses, or where several map variants share a class. When a competitor's card is downloaded, Manager checks it against every course in the class's pool and records the one that produced the best result.

Some events allow any course for any competitor in a class, whereas some events lock a competitor to a specific course. Only the course locked to a specific competitor is checked against the competitors download.

To lock a competitor to a course:

  1. Open the competitor in the Competitors list.
  2. On the Details tab, use the Course picker (shown only when the competitor's class has a pool of two or more courses).
  3. Choose the course to lock them to, or leave it on Any in the course pool to let Manager pick the best match automatically.

When a course is locked:

  • The competitor download is checked against only that course. If their punches don't match it, they get a Missing Punch (or DNF) against the locked course — Manager will not quietly move them to a different course in the pool.
  • The lock is durable: it survives re-downloads, course edits, and class edits. (If you move the competitor to a class whose pool doesn't contain the locked course, the lock is cleared automatically.)
  • When the lock is left on Any, the course the automatic evaluation actually chose is shown read-only as the Course on the competitor's Result tab, so you can see which course produced their result.

Course locks can also be applied in bulk by importing an IOF course file that contains per-competitor course assignments.