Race Import File Format

This page describes the file format accepted by the Import Races feature. For instructions on how to perform an import, see Importing Races.

Contents


Supported file types

The import accepts:

  • CSV (.csv) — comma-separated values, UTF-8 encoded
  • Excel (.xlsx) — the first worksheet is used

The first row must be a header row containing the column names. Column names are case-insensitive and leading/trailing whitespace is ignored.


Required columns

Column name Description
race name The name of the race. Used together with race date to match an existing race.
race type The race type code (short_name) or full name. Must match an existing race type configured for the organisation.
race date The date the race takes place. Accepted formats: YYYY-MM-DD or DD/MM/YYYY.
entry closing date The date and time after which entries can no longer be submitted. See Date and datetime formats.

If any required column is missing or contains an invalid value, the row is skipped and an error is reported. All other rows continue to be processed.


Optional columns

Column name Description
race code A short internal code for the race. Truncated to 20 characters if longer.
location The race venue address or name, stored as a text description.
location latlng The venue coordinates in latitude,longitude format (e.g. 51.5074,-0.1278).
entry opening date The date and time from which entries can be submitted. If omitted or left blank, entries open immediately when the race is saved.
subaccount The subaccount (club) code or name to associate the race with. If the value does not match any subaccount, the field is left blank.

Pricing columns

Pricing columns are dynamic — they are named after the pricing levels and competitor groups configured for each race type. The column names follow these patterns:

Pricing level deadline

pricing {code} deadline

Where {code} is the code of a pricing level. For example, if a race type has a pricing level with the code PR1, the deadline column is:

pricing PR1 deadline

The value should be a datetime (see Date and datetime formats). If left blank, the pricing level has no deadline.

Competitor group fee

fee {group_code} {pricing_code}

Where {group_code} is the code of a competitor group (age class) and {pricing_code} is the code of a pricing level. For example, for a group with code adult and a pricing level with code standard:

fee adult standard

The value should be a decimal number representing the entry fee in the organisation’s currency (e.g. 15.00 or 15). Rows with an invalid fee value for a column are silently skipped for that column; other columns are still processed.


Date and datetime formats

Both dates and datetimes are accepted in the following formats:

Format Example
YYYY-MM-DD 2025-03-15
DD/MM/YYYY 15/03/2025
YYYY-MM-DD HH:MM 2025-03-15 09:00
DD/MM/YYYY HH:MM 15/03/2025 09:00

Times are interpreted in the organisation’s local timezone. If a time is omitted from a datetime field, midnight (00:00) is used.


Matching and updating existing races

The import uses race name and race date together as a unique identifier. If a race with the same name and date already exists for the organisation, it is updated with the values from the file. If no match is found, a new race is created.

This means re-uploading a file with the same races is safe — existing races are updated rather than duplicated.


Example

The following example shows a minimal CSV file importing two races:

race name,race type,race date,entry closing date,entry opening date,location
Spring Sprint,Standard,2025-04-12,2025-04-10 23:59,2025-01-01 00:00,Twickenham Rowing Club
Summer Series,Standard,2025-06-21,2025-06-19 23:59,,Henley-on-Thames
  • Spring Sprint has an explicit entry opening date of 1 January 2025.
  • Summer Series has no entry opening date, so entries open immediately when the import runs.

With pricing columns added:

race name,race type,race date,entry closing date,pricing PR1 deadline,fee adult PR1,fee junior PR1
Spring Sprint,Standard,2025-04-12,2025-04-10 23:59,2025-03-01 23:59,20.00,10.00
Summer Series,Standard,2025-06-21,2025-06-19 23:59,2025-05-01 23:59,22.00,11.00

This site uses Just the Docs, a documentation theme for Jekyll.