← Back to 2Timer

Documentation

A guide to 2Timer's concepts, terminology, and core workflows.

Overview

2Timer is a modern, web-based meet management application for timekeepers — built to run fully offline at any venue.

All meet data lives in your browser's database (IndexedDB). There is no required server connection — you can time a race in the middle of a field with no Wi-Fi and everything will work. You can import and export meets to a .2t file for backup, restore, or sharing with other timers.

2Timer supports road racing and cross country (including team scoring), with track & field support planned.

Key Concepts

2Timer uses specific terminology that may differ from other meet management tools. These definitions will help you get oriented quickly.

Meet

A Meet is the top-level container for everything — participants, events, results, connectors, and configuration. It maps to a single race day or competition: a 5K road race, a cross country invitational, a regatta, etc.

Meet data lives in the browser's IndexedDB. You can have multiple meets on the same device, each completely independent. Meets can be imported and exported to a .2t file for backup, restore, or sharing.

Genre

Genre is the sub-type of a running meet. Options include Road, Cross Country, Trail, OCR (obstacle course racing), and Other. Genre affects which features are available — for example, cross country enables team scoring.

Event

An Event is a single race within a meet — for example, "Open 5K" or "Varsity Boys 5K." A meet can have multiple events, and each participant is entered into one or more events.

Each event has a distance, a scheduled start time, an event number, and its own set of results.

Participant

A Participant is a person registered in the meet. They have a bib number, name, age, gender, and optional team affiliation. Participants can be imported from a CSV (Hytek or RunSignUp format) or entered manually.

A participant's record contains their personal and demographic information. Their actual race result is tracked separately as an Entry.

Entry

An Entry links a Participant to a specific Event. It holds the timing data: gun time, chip time, finish time, place (overall, gender, and division), and status code.

Places are calculated automatically when timing data is processed. Each entry has one status — see Status Codes for the full list.

Division

A Division is an award category within an event. 2Timer supports two kinds of divisions:

  • Age Group — a range of ages (e.g., 40–49) within a gender. Any finisher whose age falls in the range competes for awards in that division.
  • Band — a top-N bracket (e.g., top 3 Open finishers in each gender). Used for overall open awards and similar prize structures.

Every division has a gender, an award count (number of places that receive an award), and belongs to a specific event.

Wave

A Wave is a sub-group start within an event. Waves let you split large fields into separate start groups with different start times. Each wave has a time offset from the event's gun start. Gun times for participants in each wave are adjusted accordingly.

Team

A Team is an organization — a school, club, or running group — identified by a short code (e.g., WHS for West High School). Teams are used primarily for cross country scoring, where the top finishers from each team accumulate points.

Each participant can be assigned a team code, and the Teams section of the app shows current standings and scoring breakdowns.

Chip

A Chip is a timing chip that has been assigned to a specific bib number. The chip-to-bib mapping tells 2Timer which participant a timing detection belongs to.

Chips can be assigned manually or imported. 2Timer maintains a full audit trail of chip assignments.

Read

A Read is a single raw detection from a timing chip reader — one antenna picking up one chip at one moment. Every read has a chip ID, a bib number (resolved via the chip mapping), a timestamp, a reader/antenna ID, and a marker.

You can view all raw reads in the Reads section of the app, which is useful for troubleshooting missed or duplicate detections.

Marker

A Marker is a timing point on the course. The three marker types are:

  • Start — the starting line
  • Finish — the finish line
  • Split — an intermediate timing point (e.g., 1-mile mark)

Each marker is linked to an event and defines a time window for valid reads — for example, a finish marker might accept reads between 10 minutes and 6 hours after the gun. Reads outside the window are flagged.

Connector

A Connector is how 2Timer exchanges data with the outside world. Connectors are the unified model for all external integrations — hardware timing systems, registration platforms, and results publishing destinations.

Connectors can be inbound (bringing data into 2Timer), outbound (publishing data out), or bidirectional. See Connectors in Detail below for a full breakdown of connector types.

Typical Workflow

Here's how a typical meet comes together in 2Timer, from setup to final results.

  1. Create a Meet — Give your meet a name, choose the sport and genre, set the date and venue, and save. The meet is stored in the app's IndexedDB.
  2. Add Events — Define the races in your meet (e.g., Open 5K, Masters 5K, Kids Fun Run). Set the distance and scheduled start time for each.
  3. Set Up Divisions — Configure age groups and open award bands for each event. 2Timer uses these to calculate division places automatically.
  4. Add Participants — Import a CSV from RunSignUp or Hytek, or enter athletes manually. Assign bib numbers and team codes as needed.
  5. Assign Chips — Map timing chips to bib numbers in the Chips section. You can import a chip file or assign chips one at a time.
  6. Configure Connectors — Set up connections to your timing hardware (e.g., FinishLynx, IPICO) so 2Timer can receive reads automatically. Optionally configure publishing connectors to push live results to a local file or the web.
  7. Run the Meet — Start events, let your timing hardware send reads, and watch results populate in real time. Handle exceptions (DNF, DQ, missing chips) as they come up.
  8. Publish Results — Generate reports (overall, by division, by team) and publish them via your output connectors. Optionally export a .2t file as a backup of the meet.

Connectors in Detail

Connectors are organized into four categories based on what they connect to.

Timing Hardware

Inbound connectors that receive chip reads directly from timing equipment over your local network or serial interface.

  • FinishLynx — bidirectional; receives LIF/LFF timing data and sends PPL/SCH/EVT athlete lists
  • IPICO RFID — multi-antenna chip timing system
  • Generic RFID — configurable file-based reader for other systems
  • ChampionChip / Trident — planned

Registration

Inbound connectors that pull participant data from registration platforms, keeping your start list in sync without manual CSV exports.

  • RunSignUp — import and sync registered participants via OAuth
  • MileSplit — planned

Results Publishing

Outbound connectors that push live or final results to a destination whenever results are updated.

  • Local Filesystem — write CSV, JSON, HTML, XML, or TXT files to a local directory
  • S3 — upload results to an Amazon S3 bucket
  • FTP / SFTP — publish to a remote server
  • Webhook — HTTP POST to any endpoint
  • Athlinks — publish to Athlinks results platform

Streaming / Network

Low-level network connectors for systems that stream timing data over TCP, UDP, WebSocket, or a serial port.

  • TCP Socket — persistent TCP connection
  • UDP Broadcast — receive UDP timing packets
  • WebSocket — real-time bidirectional stream
  • Serial Port — direct hardware serial connection

Entry Status Codes

Every entry has a status code indicating where the athlete stands. Only certain statuses are eligible for place assignments.

CodeLabelAssigned a Place?
pPendingYes
eEnteredYes
ciChecked InYes
sStartedYes
fFinishedYes
dnfDid Not FinishNo
dnsDid Not StartNo
dqDisqualifiedNo
ntNo TimeNo
scrScratchedNo
waitWait ListNo