{µ.toInt(target.data.line.rank, '0')}
{target.boat.getPhotosHtml()}
{target.boat.name}
{target.boat.getSailorsHtml('/')}
{target.boat.comment}
Start {µ.toDate(target.data.boatClass.run.date,"FR:dddd dd mmmm ' at ' HH:MM 'FR'")}
Total distance {µ.toNumber(target.data.line.dtf," ¤1¤.")} nm
Position {µ.toDate(target.boat.track.currentLocation.timecode*1000,"FR:HH:MM")} FR
Heading {target.boat.track.currentLocation.heading} °
Speed {µ.toNumber(target.boat.track.currentLocation.getSpeed()," ¤1¤.")} kts
{µ.toDate(target.boat.track.currentLocation.timecode*1000,"FR:HH:MM 'FR'")} • {target.boat.track.currentLocation.heading}° • {µ.toNumber(target.boat.track.currentLocation.getSpeed()," ¤1¤.")} kts
Position {µ.toDate(target.data.line.date,"FR:HH:MM")} FR
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¤.")} nds {µ.toNumber(target.data.line.dist1," ¤1¤.")} nm
sur le fond {µ.toNumber(target.data.line.dog1/tracker.over1gap*60," ¤1¤.")} nds {µ.toNumber(target.data.line.dog1," ¤1¤.")} nm
{µ.TRANSLATIONS['OVER_2_LABEL']} {µ.toNumber(target.data.line.dist2/tracker.over2gap*60," ¤1¤.")} nds {µ.toNumber(target.data.line.dist2," ¤1¤.")} nm
sur le fond {µ.toNumber(target.data.line.dog2/tracker.over2gap*60," ¤1¤.")} nds {µ.toNumber(target.data.line.dog2," ¤1¤.")} nm
Position {µ.toDate(target.data.line.date,"FR:HH:MM'FR'")} {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,"FR:dd/mm/yyyy ' à ' HH:MM:ss 'FR'")}
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,"FR:dd/mm/yyyy ' at ' HH:MM:ss 'FR'")}
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}

Start on
Friday 24 April 2026 at 14h00 FR
Update every 2 hour
¤{µ.toInt(target.line.rank, '0')}¤
{target.boat.getPhotosHtml()}
{target.boat.getIconHtml()}
{target.boat.name}
{target.boat.getSailorsHtml('/')}
Start : {µ.toDate(target.boatClass.run.date,"FR:dddd dd mmmm ' at ' HH:MM 'FR'")}
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,"FR:HH:MM' FR'")}¤
¤{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,"FR:dd/mm/yyyy ' at ' HH:MM:ss 'FR'")}¤
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.getSailorsHtml('/')}
Waiting to start
Arrived
Racing
In pit stop
In stealth mode
Not localized
Suspends racing
Not yet started
Did not start
Did not cross the line
NDid not finished
Disqualified
CNS
Retired
Route
Date and time of start ¤{µ.toDate(target.boatClass.run.date,"FR:dddd dd mmmm ' at ' HH:MM 'FR'")}¤
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,"FR:dd/mm/yyyy ' at ' HH:MM:ss 'FR'")}¤
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,"FR:dd/mm/yyyy ' à ' HH:MM:ss 'FR'")}
{µ.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 & calculation www.geovoile.com
TrackingYellowbrickwww.ybtracking.com

Over 1 minute Over 1 minute TSS Ouessant Long ZI SEM REV Zone Mytilicole Quiberon Zone Mytilicole Houat Parc eolien Yeu Noirmoutier Parc eolien du Banc de Guerande Zone Aquacole Yeu R13A1 Area updated every 2 minutes Area updated every 5 minutes