Trail and ultra running spread a field of runners across a long mountain course, often over many hours and into the night. Photographers work several checkpoints in remote terrain, then carry full cards back to base camp or home before anything gets processed. The bibs themselves are the problem: chest numbers disappear under rain shells, vests, and pack straps, and paper bibs warp and bleed in sweat and rain. RaceTagger reads the bib numbers off your photos and matches them to the runner names in your start-list, so the gallery becomes searchable without you typing numbers by hand after a long day in the field.
- Typical event
- One long day to multiple days, often including night sections
- Photo volume
- A large set gathered across several checkpoints
- Delivery
- Next-day for social and finishers, up to about a week for the full gallery
- Key challenge
- Bibs hidden under rain shells, vests, and packs, plus sweat- and rain-damaged paper across changing light
The workflow, step by step
- 1
Pre-Event: Prepare Your Entry List and Import to RaceTagger
RaceTagger · A few minutes
Download the official entry list from the race organizer — it usually has the bib number, runner name, and category. This is your lookup table: RaceTagger matches each detected bib to a name in this file. Clean it first — put the bib numbers in their own column, drop duplicate and late-entry rows, and save it as UTF-8. For ultras, double-check that race-morning number changes and late additions are reflected, since field entry lists shift right up to the start.
Pro tip
Include the whole field, not just the front-runners. On trail and ultra events the mid- and back-of-pack runners are the ones who most want a photo from a hard day — a name missing from your CSV is a photo you can't match to a name.
- 2
Shoot: Position for Clean Bib Visibility
Camera · Event duration
Pick checkpoints and trail sections where runners are upright and facing you — climbs flatten posture and tuck the chest bib out of view, so the top of a climb or a runnable section reads better than mid-scramble. Shoot RAW for latitude in the wild light of dawn, dusk, and forest shade. Where you can, frame so the chest bib isn't blocked by a pack strap or trekking poles. The cleaner the bib in the frame, the better it reads later.
Pro tip
One sharp, upright frame per runner is worth more than a burst from a bad angle. Every photo you analyze costs a credit (1 credit = 1 photo), so a clean bib beats five blurred ones.
- 3
Ingest: Import Photos and Run Batch Processing
RaceTagger · Runs as an automatic batch in the background
Back on a connection — at base camp or once you're home — 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. Analysis runs online, so this is the step you do off the mountain, not at a remote checkpoint with no service. Import the entry list from Step 1, then start the batch: RaceTagger detects bibs and matches them to runner names, and a scene-skip pass passes over frames with no readable subject so you don't spend credits on empty landscape shots. Each analyzed photo costs 1 credit.
Pro tip
You don't have to wait for the whole card to finish before reviewing. Work in batches by checkpoint, and start with the photos RaceTagger flags rather than re-checking everything.
- 4
Review: Confirm and Fix Low-Confidence Detections
RaceTagger · Scales with how many photos get flagged — wet and night sections flag more
RaceTagger flags photos where it isn't confident in the bib read instead of guessing. On trail and ultra sets that means the jacket-covered chests, the sweat-bled paper, and the night-section headlamp shots — all expected. Open the flagged photos, and either confirm the read, type the correct number when you can identify the runner another way, or mark it undetermined when the bib genuinely can't be read. Clean, upright bibs rarely need a look; the occluded and weather-damaged ones are where your time goes.
Pro tip
Use checkpoint order and timing data to sanity-check ambiguous reads. If a number looks like it doesn't belong on that part of the course, cross-check the entry list before you commit.
- 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 each photo's metadata — EXIF, XMP, and IPTC — so the tags travel with the file. Open your RAW files in Lightroom Classic and the metadata shows up in the Keywords panel. Add your photographer credit and copyright, and the images are tagged and ready to deliver.
Pro tip
If you deliver through an event gallery platform, check its metadata fields first — some auto-fill the runner name from the bib number when it's present, which saves you a separate match step.
- 6
Deliver: Share Galleries Runners Can Search
Lightroom or event platform · Setup once, then automated per upload
Push the tagged images through Lightroom's publish feature or your event platform's uploader. Because the names and bib numbers are in the metadata, runners find their photos by searching their name or bib number. Deliver finishers and the most-shared social shots first to build goodwill, then the full gallery as you work through it.
Pro tip
Send the organizer an early set — they'll share it on their channels, which drives traffic to your gallery and is often what wins next year's contract.
Where the numbers get hard
Bibs Hidden Under Rain Shells, Vests, and Hydration Packs
Why it's hard. Trail and ultra runners layer up for weather and carry mandatory kit. A rain shell zipped over the chest, a vest, or pack straps can cover most of the bib, leaving only an edge or a single digit visible.
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 review rather than guessed. Heavily covered bibs are genuinely harder and will land in your review queue more often — no tool can read what isn't visible.
Sweat- and Rain-Damaged Paper Bibs
Why it's hard. Over hours on course, paper bibs soak through, curl, and bleed: ink runs, numbers blur into the paper, and contrast collapses. The damage gets worse the longer the day runs.
How we handle it. Reading the whole bib region in context holds up better in low contrast than isolated-character OCR. Even so, badly damaged bibs are the toughest case, and a larger share get flagged for manual review — budget extra review time for wet, long events.
Hunched Posture on Steep Climbs
Why it's hard. On climbs runners fold forward over their poles, tucking the chest bib down and out of the camera's line. The number is physically angled away, not just dim.
How we handle it. Shooting upright sections helps most, but when a climbing frame is all you have, RaceTagger reads whatever portion of the bib is visible and flags the rest rather than inventing a number.
Night Sections Under Headlamp Glare
Why it's hard. Ultras run into the dark, and headlamps and spectator lights blow out highlights, throw harsh shadows, and cut the contrast between number and bib. Mixed color temperatures make it worse.
How we handle it. Low-contrast, high-glare frames are exactly the ones RaceTagger is most likely to flag instead of guessing. Many night shots still read fine; the hard ones go to your review queue. These photos are dramatic and popular, so they tend to be worth the extra look.
Bibs on Race Belts, Twisted or Turned Aside
Why it's hard. Many trail runners clip the bib to a race belt instead of pinning it to the shirt, and it twists sideways or slides to the hip as they move — so the number faces away or distorts.
How we handle it. When the bib is angled but partly readable, RaceTagger reads the visible portion; when it's turned fully away, the photo is flagged rather than guessed. The cleanest fix is upstream — a flat, front-facing bib reads far better than a twisted one.
By hand vs with RaceTagger
By hand
Long — you work a big multi-checkpoint set photo by photo after an already-long day in the field
Strong on clean, upright bibs, but jacket-covered, twisted, and weather-damaged bibs are error-prone, and accuracy drifts as you tire late at night
- —The hand-tagging happens when you're most tired — after hours on the trail — which is exactly when the hard cases get misread
- —Delivery slips: overnight tagging pushes the gallery to the next day while faster competitors post finishers sooner
- —It doesn't scale — a bigger field or more checkpoints means proportionally more typing
With RaceTagger
Runs as an automatic batch once you're back on a connection; you review only the flagged photos
Clean, upright bibs read well; jacket-covered, twisted, sweat-bled, and headlamp-glare bibs are harder and get flagged for review rather than guessed
- →Your attention goes to the genuinely hard frames, not the whole card
- →Predictable cost: 1 credit per photo analyzed instead of paying for tagging time by the hour
- →Same workflow whether it's a small local trail race or a multi-day ultra across many checkpoints
A Mountain Ultra, From Card to Gallery
You spend the day leapfrogging checkpoints on a mountain ultra — a runnable forest section at dawn, a high col at midday, a head-torch stretch after dark — and come home with a big, mixed set across wild light. There was no signal at the col, so nothing got processed in the field. Back on a connection, you drag the card into RaceTagger, import the entry list, and start the batch. Scene-skip passes over the empty landscape frames, and the rest are analyzed and matched to runner names while you finally eat. When it's done, you spend your review time only on the flagged shots — the jacket-covered chests, the sweat-bled paper, the headlamp glare — confirming or correcting them.
The takeaway
Trail and ultra photography is occlusion, weather, and bad light by definition — so the win isn't a perfect read on every frame, it's reading the clean bibs automatically and flagging the rest honestly. RaceTagger reads what it can see, matches it to your start-list, and tells you which photos genuinely need your eyes — so you stop typing numbers and start delivering.
Try RaceTagger on Your Next Trail Race
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
Can RaceTagger read bibs hidden under rain jackets or hydration packs?
Only the part it can see. If a jacket or pack covers most of the bib, RaceTagger reads whatever digits are visible and flags the photo as low-confidence rather than guessing the rest. A fully covered bib can't be read by any tool — those land in your review queue, where you can type the number if you can identify the runner another way.
Does RaceTagger work at a remote checkpoint with no signal?
No — analysis runs online, so you run the batch once you're back on a connection, at base camp or at home, not at a checkpoint with no service. You can shoot all day offline; the tagging step happens when you reconnect. Reviewing already-analyzed photos and exporting can be done offline.
How does it handle night sections shot under headlamps?
Headlamp glare and low contrast are exactly the conditions RaceTagger is most likely to flag instead of guessing. Many night frames read fine; the hard ones get flagged for a quick manual check. These shots are dramatic and popular with runners, so the review time is usually worth it.
What about sweat- or rain-destroyed paper bibs where the ink has bled?
Reading the whole bib in context holds up better than character-by-character OCR, but badly damaged bibs are the hardest case and a larger share get flagged for review. Plan for extra review time on long, wet events — the upside is that the gnarly-conditions photos are often the ones runners most want to buy.
Do I need an entry list, or can RaceTagger just detect the numbers?
Both work. RaceTagger detects bib numbers without a list, but importing the organizer's entry list (CSV) lets it match each number to a runner name so the gallery is searchable by name. Clean the CSV first — bib numbers in their own column, duplicates removed, saved as UTF-8.
How does pricing work for a big multi-checkpoint set?
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 before paying for more. The scene-skip pass means you don't spend credits on empty landscape frames.
Keep reading