About Swimrun Watch

How it works

We've imported race results data from several sources (list further down) and mashed it together. On top of this we compile top lists, let users play with the data and so on.

Swimrun Watch in numbers

  • 8349 atheletes, including a few duplicates
  • Results from 66 races, of which 49 have splits
  • Top lists of fastest times at 7 courses

Race selection

We are targeting competitive racing and hence focus primarily on bigger races attracting top athletes. We currently only import the most competitive distance and leave sprint races and such aside.

How do I get included?

You are likely to be included if you have a big race where participants race in teams and your data has splits in a format that is easily read by a computer program.

We do not type the teams and times into our database manually. We use a computer program and it prefers plain text (like CSV) or HTML on a single page, although we can do subpages too with a little work. Simplistic Excels (like Breca's new format) are acceptable. We don't support PDFs. Also, it has to be data complete including team name, team member names, category/gender and times in seconds granularity. We calculate diff times and positions on our own. If you use a major timing system like EST Mika or EQ just make their results presentation available and we can read from there. Splits allow us to do a full presentation with course, checkpoints and splits comparison making it much more interesting for users.

We focus on competitive racing. World of Swimrun maintains a much more complete directory of races.

Founder & maintainer

Andreas Ribbefjord (blog, Twitter, Interview by ÖTILLÖ Magazine)

Thanks to our partners

A special thanks goes to ÖTILLÖ for letting us use their images.


Errors may occur and we will not be liable for any consequence. Errors may be reported by Twitter direct message.

Data sources


EQ Timing
  • ÖTILLÖ World Championship 2022
  • ÖTILLÖ Swimrun Engadin 2022
  • ÖTILLÖ Swimrun Isle of Scilly 2022
  • ÖTILLÖ Swimrun Malta 2021
  • ÖTILLÖ Swimrun Cannes 2021
  • ÖTILLÖ World Championship 2021
  • ÖTILLÖ Swimrun Gothenburg 2021
  • Amfibiemannen 2021
  • ÖTILLÖ Swimrun Engadin 2021
  • ÖTILLÖ Swimrun Utö 2021
  • ÖTILLÖ Swimrun Cannes 2020
  • ÖTILLÖ Swimrun Engadin 2020
  • ÖTILLÖ Swimrun Catalina 2020
  • ÖTILLÖ Swimrun Malta 2019
  • ÖTILLÖ Swimrun Cannes 2019
  • ÖTILLÖ Swimrun 1000 Lakes 2019
  • ÖTILLÖ World Championship 2019
  • Amfibiemannen 2019
  • ÖTILLÖ Swimrun Engadin 2019
  • ÖTILLÖ Swimrun Isles of Scilly 2019
  • ÖTILLÖ Swimrun Utö 2019
  • ÖTILLÖ Swimrun Hvar 2019
  • ÖTILLÖ World Series Cannes 2018
  • ÖTILLÖ Swimrun 1000 Lakes 2018
  • ÖTILLÖ World Championship 2018
  • ÖTILLÖ World Series Engadin 2018
  • ÖTILLÖ World Series Isles of Scilly 2018
  • ÖTILLÖ World Series Utö 2018
  • ÖTILLÖ World Series Hvar 2018
  • ÖTILLÖ World Series 1000 Lakes 2017
  • ÖTILLÖ World Championship 2017
  • ÖTILLÖ World Series Isles of Scilly 2017
  • ÖTILLÖ World Series Utö 2017
  • ÖTILLÖ World Series Hvar 2017
Otillo Web Scrape
  • ÖTILLÖ World Championship 2014
  • ÖTILLÖ World Championship 2013
  • ÖTILLÖ World Championship 2012
  • ÖTILLÖ 2011
  • ÖTILLÖ 2010
  • ÖTILLÖ 2009
  • ÖTILLÖ 2008
  • ÖTILLÖ 2007
  • ÖTILLÖ 2006
Neptron Timing
  • ÖTILLÖ Swimrun 1000 Lakes 2016
  • ÖTILLÖ World Championship 2016
  • ÖTILLÖ Swimrun Engadin 2016
  • ÖTILLÖ Swimrun Isles of Scilly 2016
  • ÖTILLÖ Swimrun Utö 2016
  • ÖTILLÖ World Championship 2015
  • ÖTILLÖ Swimrun Engadin 2015
  • Breca Buttermere 2019
  • 2XU Island Challenge 2019
  • Breca Bay of Islands 2019
  • 2XU Island Challenge 2018
  • 2XU Island Challenge 2017
Sports Timing Dk
  • ÖTILLÖ Swimrun Gothenburg 2022
  • ÖTILLÖ Swimrun Utö 2022
Manual entry
  • Folkhälsan Swimrun Solvalla ÖTILLÖ Merit Race 2019
  • Solvalla Swimrun ÖTILLÖ Merit Race 2017
Race se
  • Ångaloppet 22 km 2019
  • Ångaloppet 22 km 2018
Run Signup
  • SwimRun NC 2018
  • Breca Coniston 2018
Teamlainen Mylaps
  • Solvalla Swimrun ÖTILLÖ Merit Race 2018
Brecca Excel sheets
  • Breca Bay of Islands 2018
Live Antelope
  • Ångaloppet 22 km 2017


  • Official race Google Maps KML: GPS routes & stations (which we rearrange and decorate).
  • Loose GPX files (Strava stalking): alternate source of race course GPS route data.


All imports are manually triggered — no standing integrations.

Future plans

Current state of ideas notes as of . We make no promises that what is tossed around here is ever going to be implemented.

To do

* 1000 Lakes 2019 has 2018 GPX but the course had slight changes.
* Import historical races even though they do not offer splits.
* Bug or faulty data: Utö 2018: Team Garmin 21st place at T01.
* Trivia top list: Athletes: Rising stars.
* Athletes: Folkhälsan years don't group in chart.
* Results: special lists: negative/positive split, strong runners/swimmers.
* Results: Strava-like pace comparison chart (like marathonsplits.com).
* Results: Course vert and split vert comparison. (Helena)
* Results: split diff color on route instead of separate straight line.
* Fastest ever: Import Ångaloppet 2015 to be able to produce a fastest-ever list.
* Fastest ever: Import Ångaloppet 2016, which was on an alternative course.
* Fastest ever: Import Engadin 2017 to be able to produce a fastest-ever list.
* Frontend merge of checkpoints with the same coordinates.
* Admin interface for merging athletes doubles with different spelling.
* Athletes: effort profiling of "fast start" or "slow finish" or similar. (Maskinen)
* Combine identical chart values which are of different categories.
* Race stats: maybe reintroduce after improving accuracy and making them more interesting.
* WC legs: add fastest and slowest splits automatically from most recent results.
* Results: Table row hovering should highlight segment on map.
* Automatic matching mechanisms for finding a race partner?
* Athlete chart: meaty legends dwarf the chart on mobile.
* Prevent double simultaneous requests to /data/stations/.
* With a slow Internet connection, Splits page may not have loaded results in time for comparison.
* Bug: DNS shows as DNF.
* Bug: Bleiente Schwimmlauf missing finish split (and 8 and 9) shows as DNF at ÖTILLÖ Swimrun 1000 Lakes 2016.
* Utö 2018 Pre finish timing station is not displayed.
* http://swimrun.watch/results/otillo-wc-2016 Not sure Swimrunshop.com last split error is a bug at this point. Maybe faulty data (Värdshus--Solvik agg splits mixup?).
* Uploading of GPX files for in-depth comparison. (Helena) (Connect to Strava?)
* Inner workings: Host sites within a single but beefier droplet? Nginx or equivalent. Maybe not since one overloaded site would bring down the others.
* Inner workings: Evade need for "([0-9\.]+),([0-9\.]+) => \2,\1".

Possible imports

* Costa Brava: Looks ok. https://app.evorama.com/api/v1/live/swimrun https://app.evorama.com/ca/live/swimrun
* Cape Torpedo: Looks ok. http://live.mobii.com/Result/RenderEngine?DisplayId=34b64fae-2bff-4f57-a892-cc58e2c150de&EventId=241213f4-270a-465a-9bae-c0245afe3663&RaceId=45aa58ce-5a98-4448-aeb4-d57af638a8ba&CourseId=5960ba6c-e117-4360-8312-26f154fa54a8&autoRefresh=true&noImage=false&showVip=false&showCyFlag=false&defaultGCResult=false&mobiiProfile=false
* Stockholm Swimrun 2017 & 2018 (splits require per-line request). Too much work?

Deemed not parsable:

* Rockman: PDF, no athlete names.
* Gravity: PDF, no splits, no athlete names.
* Reunion: Just images.