After a marathon, you have 50,000 photos and each one needs individual metadata: participant name, bib number, race name, date, location. Metadata is how participants find their photos and how commercial platforms (SmugMug, PhotoShelter) organize galleries. Without it, your photos are invisible.
Untagged photos don't get sold. Metadata is the connection between the photographer's work and the participant's wallet. Each missing keyword is revenue lost.
IPTC metadata tagging is the process of adding standardized fields (title, keywords, description, photographer, copyright) to each photo file. In marathon photography, this includes participant name, race number, race name, date, location, and category (gender/age group if available).
Marathon photography is a B2C (business-to-consumer) revenue model: participants buy their own photos directly from the photographer or through a third-party platform. Platforms like SmugMug, PhotoShelter, and Zenfolio index photos by searchable metadata. A participant searches 'marathon Berlin 2026 bib 4521' and expects to find their photos immediately. Without metadata, the search fails. No search = no sale. For commercial deliveries, agencies and wire services require specific IPTC field mappings and standardized formatting. Non-standard metadata gets rejected during ingestion.
In specifically:
A Berlin Marathon with 50,000 participants generates 50,000-100,000 photos. Each participant needs metadata with their name, bib number, and finishing time. Some participants are part of relay teams (share a bib) or finish with the same name as another runner (common names like 'Anna Müller'). Metadata must be specific enough that each runner finds only their own photos. Additionally, many race photo services deliver galleries to commercial platforms (SmugMug, PhotoShelter) that require specific IPTC field mapping: surname, given name in separate fields; keywords in specific order; copyright notice in exact format. Non-compliance breaks automation.
Marathon has 50,000 participants. You have 75,000 photos. Each photo needs metadata with the participant's name and bib number. Manual entry: 30-40 seconds per photo = 625-833 hours of work.
very common✗ You can't manually tag 75,000 photos in any reasonable timeframe. You batch-apply generic keywords to all photos ('Berlin Marathon 2026', 'running'). Participants search their name and get 0 results — their specific photo is invisible.
Photo delivery to SmugMug requires specific field mapping: given name, surname, bib number, race name, finishing time in separate IPTC fields. Your batch metadata uses a single 'keywords' field with concatenated values.
very common✗ SmugMug's ingestion rejects your photos or strips the metadata because field mapping is wrong. Participants can't search by name or bib number. You have to re-export and re-upload with corrected metadata.
Relay team: athlete A, B, and C share bib #247. All three athletes appear in different photos from different legs. Metadata must distinguish between them (e.g., 'Relay Team Name — Leg A: Anna' vs 'Leg B: Bruno').
occasional✗ Batch metadata applies 'bib #247' to all photos equally. Athlete A searches 'bib 247' and sees photos of B and C too. No way to filter for their specific photos.
Marathon has 50 participants named 'Anna Miller' or 'John Smith'. Without additional differentiators in metadata (e.g., age group, finish time), all 50 get tagged with the same name.
common✗ When 'Anna Miller' searches her name, she gets 50 different athletes' photos. Metadata is ambiguous. She can't identify which one is her.
Manual IPTC tagging in Lightroom or Capture One
⚠ Doesn't scale. Labor is the bottleneck. For a 50,000-photo event, this is 400+ hours of work — impossible to deliver same-day or next-day.
Batch metadata application with generic keywords
⚠ Participants can't find their specific photos. Photos are unsellable without individual metadata. Forces manual review and tagging afterward, defeating the purpose.
Third-party batch tagging service (e.g., professional metadata bureau)
⚠ Expensive ($300-500+ per event). Delays delivery to customers. Service depends on quality of your bib detection — garbage in, garbage out.
RaceTagger uses AI-detected bib numbers and imported CSV data to auto-generate per-photo IPTC metadata. For each detected bib, the system looks up the participant's name, age group, and finishing time from the race database. It then generates a standardized IPTC record: keywords (name, bib, race, location), description (participant summary), copyright (photographer name), and title (race identifier). For ambiguous matches (duplicate names), the system adds differentiators (age group, expected finishing time window) to disambiguate. Output is formatted for the delivery platform (SmugMug, PhotoShelter, etc.).
Key advantage
Individual metadata per photo without manual intervention. 50,000 photos get 50,000 unique IPTC records in one batch pass. Formatted for commercial platform delivery (no re-export required). Participants can search by name, bib, or category and find their specific photos immediately.
98-99% — clear bib detection, unique participant names, standard metadata fields
Good conditions
94-97% — some duplicate names, bib detection has 1-2 confidence flags, some missing CSV data
Challenging
88-92% with manual review — low bib detection confidence, many duplicate names, incomplete race database
Worst case
After shooting and culling, drop your photo folder into RaceTagger with the race CSV imported. AI detects bibs. For each bib, RaceTagger queries the CSV and generates IPTC metadata. Photos with ambiguous matches are flagged for 2-minute manual review (you confirm which 'Anna Miller' is in the photo). Export: XMP sidecar files or embedded EXIF, formatted for your delivery platform. Upload directly to SmugMug/PhotoShelter — no additional metadata work required. Participants can search and find their photos immediately.
| Metric | Manual | Basic OCR | AI Vision (RaceTagger) |
|---|---|---|---|
| Metadata tagging time (50,000 photos) | 400+ hours (unviable) | Not applicable (no participant matching) | ~6 hours batch processing + 1 hour manual review |
| Cost per 10,000 photos | €200-400 (labor) | Not applicable | €40-60 (tokens) |
| Metadata accuracy for participant matching | 95-99% (human accuracy) | Not applicable — no matching available | 96-98% (AI + CSV lookup) |
| Platform delivery compatibility (SmugMug, PhotoShelter, Zenfolio) | Requires manual field mapping to each platform | Not applicable | Auto-formatted to platform spec, no re-work |
| Handling duplicate participant names | Manual disambiguation required | Not applicable | Auto-distinguished by age group, finishing time, or bibs |
Ensure your race CSV includes finishing time (or expected finishing time for participants still running)
Finishing time is the best differentiator for duplicate names. If two 'John Smith' runners exist, their finishing times are different (e.g., 02:45 vs 04:30). Include this in the CSV, and RaceTagger uses it to disambiguate metadata, even if names are identical.
Choose your delivery platform's IPTC field mapping early and test before race day
SmugMug, PhotoShelter, and Zenfolio all have slightly different requirements for field mapping. Before the race, export a test batch of 50 photos with RaceTagger metadata to your chosen platform. Verify that participant names, bibs, and keywords appear correctly. Fix any field mapping issues in RaceTagger settings before processing the full event.
Create a metadata template for relay teams or group runners that includes leg/group identifier
If multiple runners share a bib or participate in a relay, your CSV should have a 'leg' or 'group_member' column. RaceTagger includes this in the metadata, so all three relay athletes can find their own photos while knowing they're part of a relay.
Add age group or category metadata if available in your race database
Age group ('M35-39') or category ('Elite', 'Age Group', 'Fun Run') helps participants find comparison photos and increases engagement. Include these in the CSV and they appear in the auto-generated IPTC keywords.
Review flagged photos (duplicate names, low bib confidence) in a separate batch — typically 5-8% of total set
High-confidence matches (95%+) require no review. Flagged matches (70-94%) need 30 seconds of visual inspection: is this the right person based on age/appearance? RaceTagger surfaces the ambiguity, but you make the final call. Plan for 5-10 minutes of review per 1,000 photos.
Individual IPTC metadata per photo. Participants find their images immediately. Delivered ready for SmugMug or PhotoShelter.
Process your next marathon →Can RaceTagger generate metadata for participants who don't appear in the CSV (last-minute registrants)?
Yes, partially. If a bib number is detected but not in the CSV, RaceTagger still generates bib-based keywords. However, participant name and age group won't be available. You can add them post-race by updating the CSV and re-processing flagged photos.
What if a photo has multiple runners visible? Does RaceTagger tag it to all of them?
Yes. If 5 runners are visible in a finish line photo and all bibs are detected, RaceTagger generates metadata for all 5. The photo appears in each runner's gallery on your delivery platform. Each participant finds their own image, even in group shots.
Can I customize the IPTC field mapping for my specific platform?
Yes. RaceTagger supports custom field mapping for SmugMug, PhotoShelter, Zenfolio, and custom platforms. Configure it once in settings and all batch exports use your custom mapping. No manual field renaming required after processing.
How does RaceTagger handle metadata for photos where the bib is not readable?
RaceTagger flags low-confidence bib detections (below 70% confidence). For these photos, metadata is incomplete — bib number may be missing or uncertain. You can choose to manually enter the bib number during review, or leave the photo untagged if the bib is truly unreadable. This is transparent in your processing log.