Problem & solution

CSV Integration in Rally Photography — Crew Matching

A rally entry list is never quite finished. It's set at scrutineering, then withdrawals, retirements, and the odd late entry move through it for the rest of the event — and a CSV built once from the pre-event list drifts out of date exactly when you need it to be right. Here's how a start-list CSV that stays current, and carries both names in the car, keeps a rally archive matched to the crew that actually drove.

A photo matched to a crew that withdrew a day earlier, or left unmatched because a late entry never made it into your CSV, is a photo you can't sell to that crew or file correctly for the team. On a multi-day event shot across remote stages, you don't find the mismatch until you're back at base camp reviewing the whole take — and by then the only fix is going back through your notes from a stage you shot two days ago.

Understanding the problem

CSV integration in rally is matching a detected competition number to a start-list CSV that has to carry a driver and co-driver together, because the number identifies the car and both people in it, not one name. Unlike a circuit race where an entry list is set before the green flag and stays fixed for the session, a rally entry list keeps changing across the days of an event as cars withdraw, retire, or get added.

Rally income depends on crews and their sponsors being able to find their own photos, and co-drivers are named sponsors and buyers in their own right, not a footnote to the driver. An archive that's tagged against a stale CSV either misses a crew that joined late or keeps tagging photos to a crew that's already out of the rally — both of which surface as a wrong or missing credit on a photo a crew or team is specifically looking for.

In this sport specifically

A multi-day rally runs its entry list through more change than most motorsport formats: scrutineering settles the field close to the start, then retirements and withdrawals open up numbers mid-event, and a rally can allow a car back in under local restart rules after a stoppage. Photographers shoot across remote stages with little or no connectivity, so the CSV they loaded at the start of the day is usually the only version of the list they have with them until they're back at service or base camp.

Where it shows up

Traditional approaches, and why they fall short

A single number-to-crew list downloaded once from the pre-event entry list and used for the whole event

No setup after the initial build, but it's wrong the moment a withdrawal, late entry, or number reassignment happens · Accurate for the crews who start and finish exactly as entered, which on a multi-day event is not everyone

Doesn't reflect anything that happens after scrutineering — retirements, late entries, and reassigned numbers all fall outside a list that's never revisited.

Manual lookup or memory at base camp for any photo that doesn't match cleanly

Slow, and it compounds across a multi-day event where each day's take adds to what needs checking · Reasonable for crews you know from the paddock, weaker for the mid-field and regional entries you don't recognize by livery

Runs on recall hours after the stage, at the point in the day when a photographer is least sharp and most pressed for delivery time.

A paid official timing or entry-list data feed

Subscription plus integration work, and it depends on a network connection the stage location may not have · High when the feed is current and reachable

Expensive and connectivity-dependent for a freelance rally photographer working remote stages with limited or no signal.

How RaceTagger handles it

RaceTagger matches a detected competition number against the start-list CSV you upload for that session's folder. Rally is set up as a crew-based entry in the app, so a CSV with driver and co-driver columns carries both names into the photo metadata, not just the driver. A number that doesn't match a row in your CSV comes back unmatched — no metadata is written for that frame — rather than being guessed against the wrong crew, which is what happens when a late entry or a reassigned number hasn't been added to your CSV yet.

Key advantage

Because the CSV is something you control and re-upload, keeping it current for a multi-day event is a matter of editing the file between legs rather than waiting on a live feed you may not have signal for. A withdrawal, a late entry, or a co-driver swap becomes a row edit, and the next session you tag reflects it — no connectivity required beyond having the updated CSV with you.

Good conditions
A clear competition number matched against a current, crew-complete CSV reads and matches reliably
Challenging
A number that's readable but missing from your CSV — a late entry not yet added — comes back unmatched rather than guessed
Worst case
A stale CSV that still lists a withdrawn crew as active won't itself catch the withdrawal; that's a list-maintenance step on your side, not something the matching engine can infer from a photo

Build your CSV from the post-scrutineering entry list, with driver, co-driver, team, and number columns. Between legs or at day's end, update the rows for any withdrawal, late entry, or reassignment you know about, then tag the day's stage folders against the current file. Confirmed matches are written into EXIF, XMP, and IPTC metadata with both crew names, so tagged files carry the full crew credit into Photo Mechanic, Lightroom, or Capture One without a separate lookup step.

Manual vs OCR vs AI vision

MetricManualBasic OCRRaceTagger
Keeping the list current across a multi-day eventRe-checked by memory or notes each evening, easy to miss a withdrawalNo support — OCR reads a number, it doesn't track who's still enteredA CSV row edit between legs; the next tagging pass reflects the update
Co-driver credit in the archiveDepends on whether the person tagging remembers or looks up the co-driverNot applicable — OCR has no concept of a crewCarries through automatically when the CSV row has a co-driver column
A late entry confirmed at scrutineeringAdded to whatever list is being used by hand, if someone remembersNo support — no list to match againstUnmatched until the row is added to the CSV, then matches on the next run
A withdrawn crew's number reused later in the eventError-prone — easy to attribute a photo to the wrong crew from memoryNo support — a shared digit reads the same regardless of who's running itCorrect once the CSV row is updated for the reassignment; wrong if it isn't
Cost modelYour evening at base camp, on top of culling and editingCompute only, plus a manual pass to catch wrong and missing crew creditsCredits — 1 credit per photo analyzed

Practical tips

  1. 1

    Build your CSV from the entry list issued after scrutineering, not the pre-event provisional one

    Withdrawals and late entries are usually settled by scrutineering. Starting from the post-scrutineering list means fewer rows to fix before day one even starts.

  2. 2

    Include both driver and co-driver columns from the start, even if you only plan to caption the driver today

    Adding the co-driver column later means going back through rows you've already entered. Building it in from the first CSV keeps the co-driver credit available whenever you need it.

  3. 3

    Update your CSV at service or base camp each evening, not just once at the start of the event

    A multi-day rally accumulates withdrawals and changes day by day. An end-of-day pass through the day's results, updating the rows that need it, keeps tomorrow's tagging accurate without a backlog to sort out later.

  4. 4

    Mark a withdrawn crew's row rather than deleting it, if the event allows a number to be reassigned

    Deleting the row loses the record of who ran that number earlier in the event. Marking it as withdrawn and adding a new row for a reassigned number keeps both crews correctly attributed to their own stages.

  5. 5

    Keep a single CSV per event, not one per leg or per day

    One evolving file, edited as the event runs, is harder to run against the wrong day than several separate files you have to remember to swap between legs.

The takeaway

A rally entry list keeps moving across an event — withdrawals, late entries, and the occasional reassigned number — and the fix isn't a smarter reader, it's a start-list CSV you actually keep current between legs, with both crew names in it.

Keep a rally archive matched to the crew that actually drove

Try it free. Build a CSV with driver, co-driver, team, and number from the post-scrutineering entry list, tag a day's stage folder, and see how a number that isn't in your list comes back unmatched instead of guessed. 1 credit covers 1 photo, and new accounts start with free credits.

Try it free →

Questions photographers ask

Does RaceTagger know when a crew has withdrawn from a rally?

No — it only knows what's in the CSV you upload. If a withdrawn crew's row is still marked active, photos can still match to them. Updating or flagging the row when you learn of a withdrawal is a step you do, not something the matching engine infers from the photo.

How do I add a late entry that wasn't in my original CSV?

Add a row with driver, co-driver, team, and number to your CSV as soon as the entry is confirmed, then tag against the updated file. Until the row exists, no metadata is written for that crew's photos — they won't show up in a review queue, so re-run the tagging pass once the row is added rather than expecting them to surface on their own.

Can the same competition number belong to two different crews across a multi-day event?

Only if the organizer allows a number to be reassigned after a withdrawal, which some regional and clubman rallies do. If that happens, you need to update the CSV row for the date the reassignment takes effect — RaceTagger matches against whatever the CSV says for the session you're tagging, so an unupdated row will attribute photos to the wrong crew.

Does it tag the co-driver as well as the driver?

Yes, if your CSV has a co-driver column. Rally is set up as a crew-based entry in the app, so both names carry through into the photo metadata when the CSV provides them — which matters because co-drivers and their sponsors are photo buyers too, not just a name attached to the driver's.

Do I need connectivity at the stage to keep the CSV updated?

No. The CSV is a file you edit and re-upload, not a live feed, so you can update it at service or base camp between legs without needing signal at the stage itself. The tagging pass itself is also post-shoot, done once you're back with your photos and the current list.

Does it work with RAW files and my existing editing software?

Yes. It reads JPEG and RAW — RAW via the embedded preview — so you can tag a day's take straight off the card. Confirmed crew identification is written into standard EXIF, XMP, and IPTC fields, so tagged files flow into Photo Mechanic, Lightroom, or Capture One rather than replacing that workflow.

Keep reading

← All guides