Marathon / Road Running · Workflow guide

Tag Marathon Photos by Bib Number, Automatically

Match every detected bib to your start-list, handle multi-runner finish-line frames, and review only the reads RaceTagger isn't sure about — instead of typing numbers by hand.

Marathon photography is scale at its extreme: a large field of runners, all wanting their photos, paper bibs folding under sweat and motion, and finish-line frames with several runners at once. Photographers need to identify every bib — even when partially obscured — then deliver galleries fast, top finishers first. RaceTagger reads the bib numbers off your photos and matches them to the runner names in your start-list, so the gallery is searchable without you typing numbers by hand.

Typical event
Single day, several hours of shooting
Photo volume
A large, high-volume set per event
Delivery
Same-day for top finishers, next day for the full field — speed is the competitive edge
Key challenge
Multiple runners per frame with folded, sweaty, or rain-damaged bibs at varying distances and angles

The workflow, step by step

  1. 1

    Pre-Event: Prepare Your Start-List and Import to RaceTagger

    RaceTagger · A few minutes

    Download the official start-list CSV from the race organizer (usually includes bib number, name, age category). This is your lookup table — RaceTagger matches each detected bib number to a runner name in this file. Clean it: remove duplicates, make sure the bib numbers are in their own column, and save it as UTF-8.

    Pro tip

    Include ALL participants, not just the elites. The recreational field is where most photo demand lives, so a name missing from your CSV is a sale you can't make.

  2. 2

    Shoot: Position Yourself for Clear Bib Visibility

    Camera · Event duration

    Avoid steep high angles (scaffold positions foreshorten bibs). Shoot at roughly chest height for the flattest bib view. Shoot RAW so you have maximum latitude in post. Plan a few shooting positions across the course (start, halfway, finish) — each gives a different bib angle, and the cleaner the bib in the frame, the better it reads.

    Pro tip

    At the finish line, a single clean frame per runner is worth more than a burst of near-duplicates. Every photo you analyze costs a credit (1 credit = 1 photo), so one sharp angle beats five blurry ones.

  3. 3

    Ingest: Import Photos and Run Batch Processing

    RaceTagger · Runs as an automatic batch in the background

    Create an event folder in RaceTagger and drag in your RAW or JPEG files. RaceTagger reads RAW via the embedded preview, so you don't need to convert first. Import the start-list CSV from Step 1, then start the batch — RaceTagger detects bibs and matches them to runner names. A scene-skip step passes over frames with no readable subject so you don't spend credits on empty shots. Each analyzed photo costs 1 credit.

    Pro tip

    You don't have to wait for the whole set to finish before you start reviewing. Work in batches, and prioritize the photos RaceTagger flagged as low-confidence rather than re-checking everything.

  4. 4

    Review: Confirm and Fix Low-Confidence Detections

    RaceTagger · Scales with how many photos get flagged — wet/occluded events flag more

    RaceTagger flags photos where it isn't confident in the bib read instead of guessing. For rain-damaged or heavily occluded bibs this is normal and expected. Open the flagged photos in the review panel and either confirm the detection, type the correct number, or mark it as undetermined when the bib genuinely can't be read. Clean, head-on bibs read well and rarely need a look; folded, occluded, and wet bibs are where your attention goes.

    Pro tip

    Use a runner's position and pacing to sanity-check ambiguous reads. If two similar numbers appear near each other in a finish-line frame, cross-check the start-list before you commit.

  5. 5

    Export: Write Metadata and Prepare for Delivery

    RaceTagger + Lightroom · A short pass once analysis and review are done

    RaceTagger writes the runner name and bib number into the photo's metadata — EXIF, XMP, and IPTC — so the tags travel with the file. Open your RAW files in Lightroom and the metadata appears in the Keywords panel. Add your photographer credit and copyright, and the images are fully tagged and ready to deliver.

    Pro tip

    If you deliver through an event gallery platform, check its metadata requirements first. Some platforms auto-populate the runner name from the bib number if it's present, which saves you a separate match step.

  6. 6

    Deliver: Generate and Share Galleries

    Lightroom or event platform · Setup once, then automated per upload

    Use Lightroom's publish feature or your event platform's uploader to push the tagged images. Because the names and bib numbers are in the metadata, runners can find their photos by searching their name or bib number. Deliver top finishers first to build goodwill, then the full field.

    Pro tip

    Deliver to the event organizer as early as you can — they'll promote it on their channels, which drives traffic and sales. Being first to deliver is often what wins next year's contract.

Where the numbers get hard

medium

Paper Bibs Folded by Runner Movement and Sweat

Why it's hard. Runners bend at the torso, and paper bibs crease through the middle, distorting digits — a folded '4' can read like a '1'. The fold happens unpredictably from frame to frame.

How we handle it. RaceTagger reads the bib in context rather than character by character, so partially visible digits can still be recognized. When the read is uncertain, it flags the photo for review instead of committing to a guess.

medium

Multiple Runners in Finish-Line Photos (several bibs visible)

Why it's hard. Finish-line frames put several runners at different distances, angles, sizes, and contrast levels in one shot. Each visible bib is its own read.

How we handle it. RaceTagger detects multiple bibs in a single photo and tags that photo to each runner it identifies, so one finish-line frame can land in several runners' galleries.

hard

Bibs Partially Hidden by Hydration Vests, Jackets, and Belts

Why it's hard. Gear covers part of the bib — a vest hides the top, a belt the bottom — leaving only a few digits visible. The visible portion can be ambiguous on its own.

How we handle it. RaceTagger works from the digits it can see and the bib's position, and reads that don't reach confidence are flagged for human review rather than guessed. Heavily covered bibs are genuinely harder and will end up in your review queue more often.

extreme

Rain-Damaged Bibs with Running Ink and Curling Paper

Why it's hard. Soaked bibs lose contrast: ink runs, paper curls, and numbers blur into the background. Wet-weather photos are popular with runners but are the hardest to read.

How we handle it. Reading the whole bib region in context holds up better in low contrast than isolated-character OCR. Even so, wet bibs are the toughest case and a larger share will be flagged for manual review — budget extra review time for wet events.

easy

Dual-Bib Systems (Timing Chip vs Printed Number)

Why it's hard. Some marathons use a timing chip on the wrist or ankle plus a printed number on the chest. Only the printed chest bib is visible in photos, so matching against a chip-ID list produces wrong names.

How we handle it. RaceTagger reads the visible printed bib. Make sure your start-list maps the printed bib numbers to runner names (not chip IDs), and the detected numbers will match the names in your CSV.

By hand vs with RaceTagger

By hand

Long — a team works through a high-volume set photo by photo, often into the night

Strong on clean bibs early on, but folded and obscured bibs are error-prone, and accuracy drifts as taggers fatigue over a long session

  • Labor cost: a tagging team eats directly into the event's profit margin
  • Delivery delay: overnight tagging means galleries go live the morning after, while faster competitors deliver same-day
  • Errors concentrate on the hard cases — folded and wet bibs — exactly when taggers are most tired

With RaceTagger

Runs as an automatic batch while you do other work; you review only the flagged photos

Clean, head-on bibs read well; folded, occluded, and wet bibs are harder and get flagged for review rather than guessed

  • Faster turnaround: analysis runs unattended, so galleries can go live the same day instead of the next morning
  • Predictable cost: you spend 1 credit per photo analyzed instead of paying a tagging team by the hour
  • Scales with the field size without hiring more taggers — the workflow is the same for a small race or a large one

A Typical Marathon Event Day with RaceTagger

You shoot a large marathon across a few positions — start, halfway, and finish — and come away with a high-volume set. Back at your desk, you import the start-list CSV, drag your photos into RaceTagger, and start the batch. Scene-skip passes over the empty frames, and the rest are analyzed and matched to runner names while you take a break. When it's done, you spend your review time only on the flagged low-confidence photos — the folded bibs and the rain shots — confirming or correcting them. Then you export the metadata (name and bib number written into EXIF/XMP/IPTC) and upload to the event gallery. Because the tags travel with the files, runners find their photos by searching their name or bib number — no manual typing on your side.

The hand-tagging step is the part RaceTagger removes: instead of typing numbers across the whole set, you review only the handful it wasn't sure about. That's what makes same-day delivery realistic on a large field — and same-day delivery is often what wins next year's contract.

Try RaceTagger on Your Next Marathon

Start with your welcome credits plus a free monthly allowance (1 credit = 1 photo). Upload photos from your last event and see the tags RaceTagger generates — no credit card needed.

Try it free →

Questions photographers ask

How does RaceTagger handle multiple runners crossing the finish line in the same frame?

It detects multiple visible bibs in a single photo and tags that photo to each runner it identifies, so one finish-line frame can land in several runners' galleries. Multi-bib detection is the point for mass-participation events — close-together runners are exactly the case it's built for.

What if a runner's bib is completely hidden — say, under a jacket — and we can't see any part of it?

RaceTagger flags it as low-confidence or undetermined rather than guessing. You can skip the photo, or type the number in manually if you can identify the runner another way (position, timing data). If the bib genuinely can't be read, it won't invent one — and neither should you.

Do we need to clean the start-list before importing, or can we dump the raw CSV from the organizer?

Clean it first. Make sure bib numbers are in their own column, remove duplicate or late-entry rows, and confirm it's UTF-8. A few minutes of cleanup prevents a lot of match errors later.

How does pricing work — what does analyzing a photo cost?

RaceTagger uses credits: 1 credit analyzes 1 photo. New accounts get a one-time grant of welcome credits plus a recurring free monthly allowance (both admin-configurable), so you can run a real batch from your own event and see the results before paying for more.

Can RaceTagger read rain-damaged bibs where the ink has bled into the numbers?

Clean bibs read well; rain-damaged ones are the hardest case, and a larger share of them get flagged for manual review rather than read automatically. Plan for extra review time on wet events. The upside is that wet-weather photos are often the most popular with runners, so the effort tends to be worth it.

Keep reading

← All guides