> ## Documentation Index
> Fetch the complete documentation index at: https://docs.time2.bike/llms.txt
> Use this file to discover all available pages before exploring further.

# RFID

> Ingest finishes from an RFID timing pad keyed by bib number.

Time2Bike's RFID integration treats each chip read as a **bib finish**. Whatever your reader software reports for the rider becomes the bib number, so the only setup you need is to make sure each rider's chip is paired with their assigned bib on the reader side.

There are two ingestion paths. Both write into the same event log as `kind: external_rfid`.

## CSV file watcher (recommended)

Best for an RFID pad whose software (e.g. `rfidtimer`) writes to a CSV file on the same machine.

1. On the operator screen, open the **RFID CSV import** panel.
2. Click **Pick CSV & watch** and choose the file the reader writes to.
3. Leave the tab open. Each new line is parsed and ingested as it lands.

Expected CSV columns: `bib,timestamp` (additional columns are ignored).

<img src="https://mintcdn.com/time2bike/gd86sIECJkXq3-wr/images/timing/rfid-csv.png?fit=max&auto=format&n=gd86sIECJkXq3-wr&q=85&s=f78d24c6159426e31e1eb708891f51fd" alt="RFID CSV import" width="1850" height="280" data-path="images/timing/rfid-csv.png" />

## Network bridge

Use this when the RFID pad is on a different machine from the operator phone, or when you want a small helper script to forward reads from a custom reader.

Contact Time2Bike support for the bridge helper — it's a tiny script (Node or Python) that tails a file or socket and forwards each read into your timing session. You authenticate it with a timing token, just like the operator screen.

## How bibs are resolved

Each incoming read uses its **bib** field to look up the registered rider in the active race, following the same rules as manual entry — a direct race plate, the rider's series plate, or whichever has been set up for that race. Unknown bibs still land in the log so you can assign them later; the timing table will retro-fill them once you do.

## Race tab and RFID

Incoming reads are scoped to whichever **race tab is active** when they arrive. Switch tabs before you start the watcher so reads land in the right race.
