Skip to content
ferrywhere

Methodology and data sources: how we measure departures and delays

ferrywhere shows the official timetables that ferry operators and public authorities publish as open data and, where we receive AIS, where the ships actually are. This page explains what we measure and how, where every piece of data comes from, and what we don't cover. When a piece of data is missing, we show nothing rather than a guess.

Timetables

Timetables come from open data feeds (GTFS and NeTEx) published by the operators themselves or by public transport authorities. We check every feed daily and rebuild the sailings of the coming weeks from it; we don't retype or correct timetables by hand.

Times are always shown in the local time of the port, and “today” is the date at the departure port. Each direction of a route has its own page, and the terminals of a port are grouped under the port.

What a sailing's status means

A status combines where the sailing is in its journey with how late it is. “On time” appears only when a measurement says so: without one, a sailing stays “Scheduled”, in grey.

Scheduled
No measurement yet: the time shown is the one in the timetable.
On time, measured
Measured, and no more than 5 minutes behind the timetable.
+8 min, measured
Measured, more than 5 and up to 15 minutes late.
+22 min, measured
Measured, more than 15 and up to 30 minutes late.
+45 min, measured
Measured, more than 30 minutes late.
Cancelled
Shown only when a source says the sailing is cancelled.
No live data
We listen to AIS in this area, but have no recent position for the ship.

Where a status comes from

  • Measured: from the ship's AIS positions.
  • Declared: by the operator's real-time feed.
  • Estimated: deduced from the clock or from a model. An estimate is never shown as on time.

How we measure a departure

When a ship leaves its berth, we take as the departure time the midpoint between the last AIS position where it was still moored and the first where it was under way. The time between those two positions is the uncertainty of the measurement, and it stays attached to the departure.

The delay is the difference between that time and the scheduled departure. Only departures measured with an uncertainty of 5 minutes or less count towards punctuality.

A ship is linked to a sailing only when it is seen making that journey and belongs to the operator's fleet. When the link is uncertain, the ship is not named.

Live ship positions

Positions come from AIS, the radio system through which ships broadcast who and where they are. We receive them from two sources: the aisstream.io stream and regular snapshots from Open Waters, an open network that names, for every position, the network it comes from.

A position counts as live for 5 minutes after the ship sent it. After that it is shown as the last known position, always with its age, for up to 2 hours; older positions are not shown. We never move a ship beyond its last position.

A position estimated along the route appears only after a measured departure, using the published crossing time, along a line checked to stay at sea. Otherwise there is no position at all.

Areas where we listen to AIS

  • France: Corse et Côte d'Azur · Manche et détroit du Pas-de-Calais · Îles bretonnes et Bretagne sud · Estuaire de la Gironde
  • United Kingdom: Clyde and Hebrides · Orkney, Shetland and the north-east · Solent and South West England · Dover Strait
  • Spain: Baleares y Levante · Estrecho de Gibraltar · Mar de Alborán y Melilla · Canarias · Cantábrico y golfo de Vizcaya
  • Denmark: Kattegat · Skagerrak · Bornholm og Østersøen · Bælterne og de mindre øer · Øresund og Københavns Havn

Outside these areas, pages show timetables only.

Position sources

Networks behind Open Waters positions in the last 7 days

The attribution each network asks for, as it asks for it.

  • AISHub (1,961,497 positions)
  • BarentsWatch: Contains data under the Norwegian licence for Open Government data (NLOD) distributed by the Norwegian Coastal Administration (174,340 positions)
  • AIS volunteer receivers (CC0) (113,848 positions)
  • aisstream.io (110,294 positions)
  • udp:ceed314fcdc0 (2,446 positions)
  • udp:91bd7f25063f (872 positions)
  • udp:6d7e8af28312 (15 positions)

Punctuality

A punctuality percentage is published only for routes with at least 50 departures measured with an uncertainty of 5 minutes or less over the last 30 days. Below that, pages say how many departures have been measured so far, without a percentage.

A departure counts as on time up to 5 minutes after the timetable. Cancellations are counted against all scheduled sailings, not just the measured ones. Hours are those of the departure port.

Above the threshold, pages also show how departures spread across delay bands (on time, 5–15, 15–30 and over 30 minutes late), the median (half of the departures leave within that many minutes of the timetable) and, from at least 10 late departures, the typical delay of a late departure.

The last 7 days appear only when they reach the same threshold on their own. On a route served by several operators, the operators are compared only when at least 2 reach the threshold separately. A country's network average counts every measured departure on the routes that touch it.

Punctuality is measured on departures. A measured arrival time appears on its sailing, but arrivals do not enter these figures.

Today 37 routes reach the threshold.

Punctuality of every measured route

Sources and licences

Every timetable comes from an open data source with its own licence. The attribution column reproduces, word for word, the credit each licence requires.

France

Timetable sources: France
SourceLicencePublisher updatesLast import (UTC)Attribution
BreizhGo Bateaux · Arzvia transport.data.gouv.frODbL 1.0 (Open Database License)Each seasonSource : transport.data.gouv.fr — ODbL 1.0
BreizhGo Bateaux · Bréhatvia transport.data.gouv.frODbL 1.0 (Open Database License)Each seasonSource : transport.data.gouv.fr — ODbL 1.0
BreizhGo Bateaux · Finistèrevia transport.data.gouv.frODbL 1.0 (Open Database License)Each seasonSource : transport.data.gouv.fr — ODbL 1.0
BreizhGo Bateaux · Morbihanvia transport.data.gouv.frODbL 1.0 (Open Database License)Each seasonSource : transport.data.gouv.fr — ODbL 1.0
Brittany Ferriesvia transport.data.gouv.frLicence Ouverte 2.0WeeklySource : transport.data.gouv.fr — Licence Ouverte 2.0
Fouras – Île-d'Aixvia transport.data.gouv.frODbL 1.0 (Open Database License)DailySource : Nouvelle-Aquitaine Mobilités, via transport.data.gouv.fr — ODbL 1.0
Lignes maritimes de Corse-du-Sudvia transport.data.gouv.frLicence Ouverte 2.0YearlySource : transport.data.gouv.fr — Licence Ouverte 2.0
Corsica Ferriesvia transport.data.gouv.frLicence Ouverte 2.0YearlySource : transport.data.gouv.fr — Licence Ouverte 2.0
Corsica Lineavia transport.data.gouv.frLicence Ouverte 2.0YearlySource : transport.data.gouv.fr — Licence Ouverte 2.0
Frioul If Express (RTM)via transport.data.gouv.frLicence Ouverte 2.0YearlySource : Métropole d'Aix-Marseille-Provence (RTM, Frioul If Express), via transport.data.gouv.fr — Licence Ouverte 2.0
Liaisons maritimes de la Girondevia transport.data.gouv.frODbL 1.0 (Open Database License)DailySource : transport.data.gouv.fr — ODbL 1.0
Transmanche Ferriesvia transport.data.gouv.frLicence Ouverte 2.0YearlySource : transport.data.gouv.fr — Licence Ouverte 2.0
Navettes UBA, Bassin d'Arcachonvia transport.data.gouv.frLicence Ouverte 2.0Each seasonSource : Union des Bateliers Arcachonnais, via transport.data.gouv.fr — Licence Ouverte 2.0
Yeu Continent (Aléop)via transport.data.gouv.frLicence Ouverte 2.0YearlySource : Région des Pays de la Loire (Aléop Yeu-Continent), via transport.data.gouv.fr — Licence Ouverte 2.0

United Kingdom

Timetable sources: United Kingdom
SourceLicencePublisher updatesLast import (UTC)Attribution
Bus Open Data Servicevia Department for TransportOpen Government Licence v3.0DailyContains public sector information licensed under the Open Government Licence v3.0. Timetables: Bus Open Data Service (Department for Transport).

Spain

Timetable sources: Spain
SourceLicencePublisher updatesLast import (UTC)Attribution
Ports de Balears · atraquesvia Autoridad Portuaria de BalearesPort calls: berthing times declared to the port authority, not a commercial timetable.Condiciones generales de reutilización (datos.gob.es / Plan RISP)ContinuouslyOrigen de los datos: Autoridad Portuaria de Baleares
Fred. Olsen Expressvia NAP · Ministerio de TransportesLicencia de datos abiertos del Ministerio de Transportes y Movilidad Sostenible (MITRAMS)Up to weeklyPowered by MITRAMS
Bahía de Cádizvia NAP · Ministerio de TransportesLicencia de datos abiertos del Ministerio de Transportes y Movilidad Sostenible (MITRAMS)DailyPowered by MITRAMS

Denmark

Timetable sources: Denmark
SourceLicencePublisher updatesLast import (UTC)Attribution
Team Booking · 389via Dataudveksleren (Vejdirektoratet)CC BY 4.0DailyKilde: færgeselskaberne via Team Booking og Dataudveksleren (Vejdirektoratet) — CC BY 4.0
Team Booking · 447via Dataudveksleren (Vejdirektoratet)CC BY 4.0DailyKilde: færgeselskaberne via Team Booking og Dataudveksleren (Vejdirektoratet) — CC BY 4.0
Team Booking · 452via Dataudveksleren (Vejdirektoratet)CC BY 4.0DailyKilde: færgeselskaberne via Team Booking og Dataudveksleren (Vejdirektoratet) — CC BY 4.0
Scandlinesvia Dataudveksleren (Vejdirektoratet)CC BY 4.0DailyKilde: Scandlines Danmark ApS via Dataudveksleren (Vejdirektoratet) — CC BY 4.0
Rejseplanenvia Rejseplanen LabsCC BY 4.0About every two weeksKilde: Rejseplanen — CC BY 4.0

AIS credits and licences

AIS: Open Waters · AISHub · aisstream.io · AIS volunteer receivers (CC0)Contains data under the Norwegian licence for Open Government data (NLOD) distributed by the Norwegian Coastal Administration

Maps and places

Maps: OpenFreeMap © OpenMapTiles, data © OpenStreetMap contributors (ODbL). openstreetmap.org/copyright

Countries of the ports: Natural Earth (public domain). Port codes: UN/LOCODE (ODC Public Domain Dedication).

Weather

Wind, temperature, sky, precipitation, waves and visibility are forecasts for the ports of the routes running in the next two days and for the middle of each route checked at sea. Each figure comes from MET Norway (the Norwegian Meteorological Institute) where MET forecasts it, otherwise from Open-Meteo (ECMWF models): waves outside north-west Europe, gusts outside the Nordic area, visibility everywhere, and the wave period wherever the waves come from Open-Meteo. They are refreshed through the day as new model runs come out. A forecast says nothing about whether a sailing runs.

On a ship’s page, the forecast shown is for one of the ports or mid-crossing points above, named in the heading, within 15 km of the ship’s last position. The order is: the port the ship is in; then the points of its current sailing (departure port, mid-crossing, arrival port); then the others; nearest first within each group. The first one with a current forecast is shown. Waves only when the model’s sea point is close enough both to that place and to the ship.

Data from MET Norway (CC BY 4.0): api.met.no · creativecommons.org/licenses/by/4.0. Wind converted from m/s to knots and the Beaufort scale. Waves come from the nearest sea point of MET’s ocean model, which covers north-west Europe only; gusts only where MET forecasts them (the Nordic area).

Weather data by Open-Meteo.com · creativecommons.org/licenses/by/4.0. Models ECMWF IFS and ECMWF WAM (© ECMWF, CC BY 4.0), 9 km grid: wind in knots converted to the Beaufort scale, temperature at sea level, precipitation (rain, showers and snow) as the hourly total shown for the hour it falls in, waves and mean wave period from the model’s nearest sea point, visibility shown only below 5 km; nearby places in the same grid cell share the same figures.

Daily lows and highs, and the hour with the most precipitation, worked out by ferrywhere. Each figure comes from MET Norway where MET forecasts it, otherwise from Open-Meteo.

What we don't cover

Some busy routes are missing because no timetable exists that we are allowed to reuse. This list is checked against our data every time the page is rebuilt: a route disappears from it as soon as one of our sources covers it.

United Kingdom

  • Dover – Calais · Dover – Dunkirk · Holyhead – Dublin · Cairnryan – Belfast and Larne · Liverpool – Belfast and Dublin · Fishguard and Pembroke – Rosslare · Heysham and Liverpool – Douglas (Isle of Man) · Penzance – St Mary's (Isles of Scilly) · Portsmouth – Fishbourne (Isle of Wight) · Sailings to Guernsey and Jersey · Hull – Rotterdam · Newcastle – Amsterdam (IJmuiden) · Harwich – Hook of Holland

    These routes are not in the UK's open timetable data (Bus Open Data Service), and we haven't found an open timetable from the operators that we are allowed to reuse.

Spain

  • Algeciras – Tanger Med · Tarifa – Tangier · Algeciras – Ceuta · Ibiza – Formentera · Las Palmas de Gran Canaria – Santa Cruz de Tenerife · Órzola – La Graciosa · Vigo – Cangas

    The timetables are published only by the operators or the port authority, under terms that don't allow reuse without their permission.

  • Barcelona, Valencia and Dénia – Balearic Islands · Palma – Ibiza

    Baleària's open dataset on Spain's National Access Point contains no current sailings, and Trasmed doesn't publish its timetable as open data.

Denmark

  • Aarhus and Ebeltoft – Odden · Kalundborg – Ballen (Samsø) · Køge – Rønne · Rønne – Sassnitz · Bøjden – Fynshav · Spodsbjerg – Tårs · Esbjerg – Nordby (Fanø) · Helsingør – Helsingborg

    These routes are run by the Molslinjen group, whose terms don't allow its timetables to be republished without permission, and they are not in Rejseplanen's open data.

Croatia: paused. Its timetables are not published under an open licence, and Croatian routes are not shown.

Report a mistake

Seen a wrong time or a missing route? Write to us with the route, the date and where you found the correct information. info@ferrywhere.com