#64748B,#3B82F6,#06A5E8,#00C8D4,#00D9A3,#58DC62,#C4DF38,#FFD12E,#FF8A24,#FF3B30
{µ.toInt(target.data.line.rank, '0')}
{target.boat.getPhotosHtml()}
{target.boat.name}
{target.boat.getSkipperFirstName(0)}
 
{target.boat.getSkipperLastName(0)}
 
{target.boat.getSkipperFirstName(1)}
 
{target.boat.getSkipperLastName(1)}
 
{target.boat.comment}
Start {µ.toDate(target.data.boatClass.run.date,"UTC:dddd dd mmmm ' at ' HH:MM 'UTC'")}
Total distance {µ.toNumber(target.data.line.dtf," ¤1¤.")} nm
Start {µ.toDate(target.data.boatClass.run.date,"UTC:dddd dd mmmm ' at ' HH:MM 'UTC'")}
Total distance {µ.toNumber(target.data.line.dtf," ¤1¤.")} nm
Position {µ.toDate(target.boat.track.currentLocation.timecode*1000,"UTC:HH:MM")} UTC
Heading {target.boat.track.currentLocation.heading} °
Speed {µ.toNumber(target.boat.track.currentLocation.getSpeed()," ¤1¤.")} kts
{µ.toDate(target.boat.track.currentLocation.timecode*1000,"UTC:HH:MM 'UTC'")} • {target.boat.track.currentLocation.heading}° • {µ.toNumber(target.boat.track.currentLocation.getSpeed()," ¤1¤.")} kts
Position {µ.toDate(target.data.line.date,"UTC:HH:MM")} UTC
Dist. to finish {µ.toNumber(target.data.line.dtf," ¤1¤.")} nm
Dist. to leader +{µ.toNumber(target.data.line.dtl," ¤1¤.")} nm {µ.toNumber(Math.abs(target.data.line.dtlProgress)," ¤1¤.")} nm
Heading {target.data.line.heading} °
Speed | VMC {µ.toNumber(target.data.line.speed," ¤1¤.")} kts {µ.toNumber(target.data.line.vmg," ¤1¤.")} kts
{µ.TRANSLATIONS['OVER_1_LABEL']} {µ.toNumber(target.data.line.dist1/tracker.over1gap*60," ¤1¤.")} kn {µ.toNumber(target.data.line.dist1," ¤1¤.")} sm
{µ.TRANSLATIONS['OVER_2_LABEL']} {µ.toNumber(target.data.line.dist2/tracker.over2gap*60," ¤1¤.")} kn {µ.toNumber(target.data.line.dist2," ¤1¤.")} sm
Position {µ.toDate(target.data.line.date,"UTC:HH:MM'UTC'")} {target.data.line.heading}° {µ.toNumber(target.data.line.speed," ¤1¤.")} kts
Distances {µ.toNumber(target.data.line.dtf," ¤1¤.")} nm +{µ.toNumber(target.data.line.dtl," ¤1¤.")} nm {µ.toNumber(Math.abs(target.data.line.dtlProgress)," ¤1¤.")} nm
Finish{µ.toDate(target.boat.arrival.date,"UTC:dd/mm/yyyy ' à ' HH:MM:ss 'UTC'")}
Racetime{µ.toRacetime(target.boat.arrival.racetime, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}
Penalty{µ.toRacetime(Math.abs(target.boat.arrival.penalty), "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}
Bonus{µ.toRacetime(Math.abs(target.boat.arrival.penalty), "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}
Official time{µ.toRacetime(target.boat.arrival.jury, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}
Gap to first{µ.toRacetime(target.boat.arrival.gapToFirst, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}
Gap to previous{µ.toRacetime(target.boat.arrival.gapToPrevious, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}
Over orthodromy {µ.toNumber(target.boat.arrival.orthoDistance, " ¤1¤.")} nm {µ.toNumber(target.boat.arrival.orthoSpeed, " ¤1¤.")} kts
Overground {µ.toNumber(target.boat.arrival.overgroundDistance, " ¤1¤.")} nm {µ.toNumber(target.boat.arrival.overgroundSpeed, " ¤1¤.")} kts
Finish{µ.toDate(target.boat.arrival.date,"UTC:dd/mm/yyyy ' at ' HH:MM:ss 'UTC'")}
Racetime{µ.toRacetime(target.boat.arrival.racetime, "[0]d[1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}
Click on the boat to locate it
on the splittime
«{target.data.line.name}»
Click on the boat to locate it
on the splittime
«{target.data.line.name}»
Pit Stop
Stealth mode
Not localised
Suspend racing
Not yet started
Did not start the race
Did not cross the start line
Did not finish the race
Disqualified
CNS
Retired
{target.getPhotosHtml()}
{target.name}
{target.getSailorsHtml('/')}
{target.comment}

Route du Rhum 2026
Start on
Sunday 01 November 2026 at 12h02 UTC
Next report at 00h00 UTC
Split times at the gate
¤{µ.toInt(target.line.rank, '0')}¤
{target.boat.getPhotosHtml()}
{target.boat.getIconHtml()}
{target.boat.name}
{target.boat.getSkipperFirstName(0)}
 
{target.boat.getSkipperLastName(0)}
 
{target.boat.getSkipperFirstName(1)}
 
{target.boat.getSkipperLastName(1)}
 
Start : {µ.toDate(target.boatClass.run.date,"UTC:dddd dd mmmm ' at ' HH:MM 'UTC'")}
Total distance : {µ.toNumber(target.boatClass.run.length," ¤1¤.")} nm
Time at the gate : ¤{µ.toRacetime(target.boat.splittime.time, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}¤
¤{µ.toNumber(target.boat.splittime.sog," ¤1¤.")}¤ nds
Gap to first : +¤{µ.toRacetime(target.boat.splittime.gap2firstBoat, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}¤
Since previous gate : ¤{µ.toRacetime(target.boat.splittime.time2prev, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}¤
¤{µ.toNumber(target.boat.splittime.sog," ¤1¤.")}¤ nds
Time retained for calculation : ¤{µ.toDate(target.line.date,"UTC:HH:MM' UTC'")}¤
¤{target.line.heading}¤ °
¤{µ.toNumber(target.line.speed," ¤1¤.")}¤ kts
¤{µ.toNumber(target.line.dtf," ¤1¤.")}¤ nm
+¤{µ.toNumber(target.line.dtl," ¤1¤.")}¤ nm
Finished on ¤{µ.toDate(target.boat.arrival.date,"UTC:dd/mm/yyyy ' at ' HH:MM:ss 'UTC'")}¤
In ¤{µ.toRacetime(target.boat.arrival.racetime, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}¤
Pit Stop
Stealth mode
Not localised
Suspend racing
Not yet started
Did not start the race
Did not cross the start line
Did not finish the race
Disqualified
CNS
Retired
¤{µ.toInt(target.line.rank, '0')}¤
{target.boat.getPhotosHtml()}
{target.boat.name}
{target.boat.getSkipperFirstName(0)}
 
{target.boat.getSkipperLastName(0)}
 
{target.boat.getSkipperFirstName(1)}
 
{target.boat.getSkipperLastName(1)}
 
{target.boat.comment}
Route
Date and time of start ¤{µ.toDate(target.boatClass.run.date,"UTC:dddd dd mmmm ' at ' HH:MM 'UTC'")}¤
Distance to sail ¤{µ.toNumber(target.line.dtf," ¤1¤.")}¤ nautical miles
Dashboard
N S E W {target.boat.getIconHtml()}
¤{target.line.heading}¤°
20 35 5 25 40 10 15 30 0
¤{µ.toNumber(target.line.speed,'¤1¤.')}¤ kts
¤{µ.toNumber(target.line.vmg,'¤1¤.')}¤ kts
Environment
¤{target.line.windspeed/10}¤ kts ¤{target.line.winddir}¤°
¤{target.line.tempair/10}¤°C
¤{target.line.waveheight/10}¤m
¤{target.line.tempwater/10}¤°C
Distances
¤{µ.toNumber(target.boatClass.run.length - target.line.dtf," ¤1¤.")}¤ nm
¤{µ.toNumber(target.line.dtf," ¤1¤.")}¤ nm
¤{µ.toNumber(target.line.dtl," ¤1¤.")}¤ nm
¤{µ.toNumber(target.line.advance," ¤1¤.")}¤ nm
Over 4 hours ¤{µ.toNumber(target.line.dist4h," ¤1¤.")}¤ nm ¤{µ.toNumber(target.line.dist4h/4," ¤1¤.")}¤ kts
Over ground ¤{µ.toNumber(target.line.dog4h," ¤1¤.")}¤ nm ¤{µ.toNumber(target.line.dog4h/4," ¤1¤.")}¤ kts
Over 24 hours ¤{µ.toNumber(target.line.dist24h," ¤1¤.")}¤ nm ¤{µ.toNumber(target.line.dist24h/24," ¤1¤.")}¤ kts
Over ground ¤{µ.toNumber(target.line.dog24h," ¤1¤.")}¤ nm ¤{µ.toNumber(target.line.dog24h/24," ¤1¤.")}¤ kts
Results
Finished ¤{µ.toDate(target.boat.arrival.date,"UTC:dd/mm/yyyy ' at ' HH:MM:ss 'UTC'")}¤
Race time ¤{µ.toRacetime(target.boat.arrival.racetime, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}¤
Penalty ¤{µ.toRacetime(Math.abs(target.boat.arrival.penalty), "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}¤
Bonification ¤{µ.toRacetime(Math.abs(target.boat.arrival.penalty), "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}¤
Jury time ¤{µ.toRacetime(target.boat.arrival.jury, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}¤
gap to leader ¤{µ.toRacetime(target.boat.arrival.gapToFirst, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}¤
gap to previous ¤{µ.toRacetime(target.boat.arrival.gapToPrevious, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}¤
Over orthodromy ¤{µ.toNumber(target.boat.arrival.orthoDistance, " ¤1¤.")}¤ nm / ¤{µ.toNumber(target.boat.arrival.orthoSpeed, " ¤1¤.")}¤ kts
Over ground ¤{µ.toNumber(target.boat.arrival.overgroundDistance, " ¤1¤.")}¤ nm / ¤{µ.toNumber(target.boat.arrival.overgroundSpeed, " ¤1¤.")}¤ kts
 
{target.name}
{µ.toOrdinal(target.data.rank)} • {µ.toDate(target.data.timecode*1000,"UTC:dd/mm/yyyy ' à ' HH:MM:ss 'UTC'")}
{µ.toRacetime(target.data.time, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}
{µ.toNumber(target.data.dog," ¤1¤.")} nm • {µ.toNumber(target.data.sog," ¤1¤.")} kts
{µ.toRacetime(target.data.time2prev, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}
{µ.toNumber(target.data.dog2prev," ¤1¤.")} nm • {µ.toNumber(target.data.sog2prev," ¤1¤.")} kts
Race tracker www.geovoile.com
TrackingYellowbrickwww.ybtracking.com
CalculationsRené Boulaire
WeatherMétéo Consultmarine.meteoconsult.fr

•

Over 4 hours Over 24 hours corridor approche prise en charge zi plaisanciers eolien stbrieuc zi moulieres zi ouessant eolien guerande zi yeu zi semrev zi scillywest zi scillysouth zi finisterre eolien vianadocostello zi caboroca zi saovincente zi canariasest zi canariaswest zi mauritania zi basseterre zi pointeapitre zpc acores zpc agoa tss sevenstones tss fastnet zv agoa zv madere