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
| Source | Terms | Last successful update (UTC) |
|---|---|---|
| Open Waters | Free for personal use; each position keeps the licence of the network it comes from | |
| aisstream.io | aisstream.io terms of use |
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.
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
| Source | Licence | Publisher updates | Last import (UTC) | Attribution |
|---|---|---|---|---|
| BreizhGo Bateaux · Arzvia transport.data.gouv.fr | ODbL 1.0 (Open Database License) | Each season | Source : transport.data.gouv.fr — ODbL 1.0 | |
| BreizhGo Bateaux · Bréhatvia transport.data.gouv.fr | ODbL 1.0 (Open Database License) | Each season | Source : transport.data.gouv.fr — ODbL 1.0 | |
| BreizhGo Bateaux · Finistèrevia transport.data.gouv.fr | ODbL 1.0 (Open Database License) | Each season | Source : transport.data.gouv.fr — ODbL 1.0 | |
| BreizhGo Bateaux · Morbihanvia transport.data.gouv.fr | ODbL 1.0 (Open Database License) | Each season | Source : transport.data.gouv.fr — ODbL 1.0 | |
| Brittany Ferriesvia transport.data.gouv.fr | Licence Ouverte 2.0 | Weekly | Source : transport.data.gouv.fr — Licence Ouverte 2.0 | |
| Fouras – Île-d'Aixvia transport.data.gouv.fr | ODbL 1.0 (Open Database License) | Daily | Source : Nouvelle-Aquitaine Mobilités, via transport.data.gouv.fr — ODbL 1.0 | |
| Lignes maritimes de Corse-du-Sudvia transport.data.gouv.fr | Licence Ouverte 2.0 | Yearly | Source : transport.data.gouv.fr — Licence Ouverte 2.0 | |
| Corsica Ferriesvia transport.data.gouv.fr | Licence Ouverte 2.0 | Yearly | Source : transport.data.gouv.fr — Licence Ouverte 2.0 | |
| Corsica Lineavia transport.data.gouv.fr | Licence Ouverte 2.0 | Yearly | Source : transport.data.gouv.fr — Licence Ouverte 2.0 | |
| Frioul If Express (RTM)via transport.data.gouv.fr | Licence Ouverte 2.0 | Yearly | Source : 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.fr | ODbL 1.0 (Open Database License) | Daily | Source : transport.data.gouv.fr — ODbL 1.0 | |
| Transmanche Ferriesvia transport.data.gouv.fr | Licence Ouverte 2.0 | Yearly | Source : transport.data.gouv.fr — Licence Ouverte 2.0 | |
| Navettes UBA, Bassin d'Arcachonvia transport.data.gouv.fr | Licence Ouverte 2.0 | Each season | Source : Union des Bateliers Arcachonnais, via transport.data.gouv.fr — Licence Ouverte 2.0 | |
| Yeu Continent (Aléop)via transport.data.gouv.fr | Licence Ouverte 2.0 | Yearly | Source : Région des Pays de la Loire (Aléop Yeu-Continent), via transport.data.gouv.fr — Licence Ouverte 2.0 |
United Kingdom
| Source | Licence | Publisher updates | Last import (UTC) | Attribution |
|---|---|---|---|---|
| Bus Open Data Servicevia Department for Transport | Open Government Licence v3.0 | Daily | Contains public sector information licensed under the Open Government Licence v3.0. Timetables: Bus Open Data Service (Department for Transport). |
Spain
| Source | Licence | Publisher updates | Last 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) | Continuously | Origen de los datos: Autoridad Portuaria de Baleares | |
| Fred. Olsen Expressvia NAP · Ministerio de Transportes | Licencia de datos abiertos del Ministerio de Transportes y Movilidad Sostenible (MITRAMS) | Up to weekly | Powered by MITRAMS | |
| Bahía de Cádizvia NAP · Ministerio de Transportes | Licencia de datos abiertos del Ministerio de Transportes y Movilidad Sostenible (MITRAMS) | Daily | Powered by MITRAMS |
Denmark
| Source | Licence | Publisher updates | Last import (UTC) | Attribution |
|---|---|---|---|---|
| Team Booking · 389via Dataudveksleren (Vejdirektoratet) | CC BY 4.0 | Daily | Kilde: færgeselskaberne via Team Booking og Dataudveksleren (Vejdirektoratet) — CC BY 4.0 | |
| Team Booking · 447via Dataudveksleren (Vejdirektoratet) | CC BY 4.0 | Daily | Kilde: færgeselskaberne via Team Booking og Dataudveksleren (Vejdirektoratet) — CC BY 4.0 | |
| Team Booking · 452via Dataudveksleren (Vejdirektoratet) | CC BY 4.0 | Daily | Kilde: færgeselskaberne via Team Booking og Dataudveksleren (Vejdirektoratet) — CC BY 4.0 | |
| Scandlinesvia Dataudveksleren (Vejdirektoratet) | CC BY 4.0 | Daily | Kilde: Scandlines Danmark ApS via Dataudveksleren (Vejdirektoratet) — CC BY 4.0 | |
| Rejseplanenvia Rejseplanen Labs | CC BY 4.0 | About every two weeks | Kilde: 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