Travesías regulares en ferry con las tarifas publicadas por las navieras
Cada salida regular que pudimos observar en 2,190 pares de puertos dirigidos, con el barco que la cubre y el precio que su naviera cobraba el día en que se consultó.
Qué contiene
Contado a partir de la misma instantánea con la que se arman los archivos, de modo que esta tabla y los CSV no pueden separarse.
- 2,190Pares de puertos dirigidos
- 895Pares con una salida observada
- 1,295Pares consultados sin ninguna salida
- 2,948Filas de salida
- 2,709Identificadores de viaje distintos
- 5,997Tarifas individuales registradas
- 120Navieras
- 357Barcos con nombre
- 65Países
- 600Puertos presentes en una travesía
- 299De ellos, con UN/LOCODE
- 1,440Puertos en el registro
Las salidas se buscaron el 17 de septiembre de 2026, 21 de septiembre de 2026, 25 de septiembre de 2026, 29 de septiembre de 2026. Un par sin salidas significa que ningún barco respondió en esos cuatro días.
Filas de salida según el país de los puertos de ambos extremos. El inventario es mediterráneo y de Europa occidental.
- Italia1,175
- Grecia910
- España274
- Croacia184
- Indonesia149
- Singapur126
- Reino Unido105
- Turquía77
Los 8 países con más filas de salida. Las barras son relativas a la mayor.
Cómo se armó
- Preguntarle al grafo adónde van los barcosA cada puerto del registro se le pregunta, por su nombre exacto, con qué puertos tiene conexión directa. Preguntar por código devuelve el puerto equivocado: el propio código de Barcelona responde con un puerto de Croacia. El puerto por el que responde el servicio se verifica contra el puerto consultado, y una sustitución se descarta.
- Pedirle a cada par sus salidas realesA cada par nombrado por el grafo se le piden viajes en cuatro fechas repartidas en la ventana de reserva. El inventario de ferry se abre unas dos o tres semanas antes, y cada par conserva la primera fecha que respondió.
- Anotar lo que volvióSalida, llegada, naviera, barco y cada precio de acomodación citado se anotan tal como llegaron, en unidades monetarias menores enteras. Nada se normaliza a un vocabulario propio, nada se promedia y nada se rellena. Los nombres de las empresas se conservan tal como se publicaron, incluso donde dos grafías son claramente la misma compañía.
- Unir, calcular y marcar lo calculadoLos puertos se emparejan con localidades para obtener coordenadas, las distancias se calculan y los conteos se cuentan. Cada una de esas operaciones se marca a nivel de columna, para que quien lea vea exactamente qué cifras vienen de una naviera y cuáles vienen de nosotros.
Cómo se evidencia cada fila
Cada fila de cada archivo lleva source, source_url, fetched_at y evidence.
- measured
- Leído de una respuesta publicada por la naviera sobre un servicio concreto: un barco con nombre, una hora de salida, un precio que la naviera cobra. 3,963 filas.
- filed
- Leído de un registro publicado o de un grafo de conexiones, tal como lo declara el operador o el agregador. 2,735 filas.
- derived
- Calculado por el script de construcción a partir de los dos anteriores. Ninguna fila se evidencia así: los valores calculados viven en columnas, y cada recurso las nombra.
Una fila medida puede llevar igual una columna calculada, así que cada archivo tiene derived_columns: una distancia, una duración, un identificador normalizado, un conteo y la etiqueta de moneda. Los importes de las tarifas no están ahí.
El campo de precio de la fuente no trae código de moneda. Ferryhopper cotiza en euros y estos archivos registran EUR, así que fare_currency figura como calculada: las tres letras son nuestras, los importes son de la naviera.
Filas reales
Ocho salidas de sailings.csv, una por naviera, en el orden en que el archivo las guarda. Abra el archivo y las va a encontrar.
| Travesía | Salida | Naviera | Barco | Duración | Tarifa más baja |
|---|---|---|---|---|---|
| AG.MARINA (AEGINA)PIRAEUS | 17 sept 2026, 11:20 a.m. | HELLENIC SEAWAYS | AERO HIGHSPEED | 0h 30m | EUR 19.50 |
| AG.MARINA (AEGINA)PIRAEUS | 17 sept 2026, 6:35 p.m. | MAGIC SEA FERRIES | MAGIC 2 | 0h 30m | EUR 19.50 |
| AGAETESANTA CRUZ DE TENERIFE | 17 sept 2026, 6:00 a.m. | FRED OLSEN | BAÑADEROS EXPRESS | 1h 20m | EUR 50.60 |
| AGROPOLIPALINURO | 17 sept 2026, 9:05 a.m. | TRAVELMAR | TRAVELMAR | 2h 55m | EUR 15.50 |
| AJACCIOMARSEILLE | 17 sept 2026, 6:00 p.m. | LA MERIDIONALE | PIANA | 13h 00m | EUR 39.00 |
| AJACCIOPORTO TORRES | 17 sept 2026, 7:15 a.m. | CORSICA FERRIES | CORSICA FERRIES | 4h 15m | EUR 26.00 |
| ALCUDIABARCELONA | 17 sept 2026, 9:45 a.m. | BALEARIA | MARGARITA SALAS | 3h 30m | EUR 111.50 |
| ALGECIRASCEUTA | 17 sept 2026, 7:30 a.m. | DFDS IBERIA | CEUTA JET | 1h 00m | EUR 38.50 |
Las horas son las que publicó la naviera, tomadas tal cual. Las tarifas corresponden a la clase de acomodación más barata ofrecida en esa salida.
Descargar
Un Frictionless Data Package: un descriptor, un Table Schema por recurso, CSV conforme a RFC 4180 y un SHA-256 para cada archivo. Nada de esto exige una cuenta ni una clave.
| Archivo | Filas | Tamaño | SHA-256 |
|---|---|---|---|
| crossings.csv | 2,190 | 797 KiB | 01fcb5104a0aadaf9b7e46b033906a9871dd13c435a82e368547a5426c09de3c |
| sailings.csv | 2,948 | 1.2 MiB | 6a94303ef626b529a3f9a424affd08e235bf2af883765d80412a91ea56a8519e |
| operators.csv | 120 | 30 KiB | 13433a3c272d3546ac8889e629d4a28f9e3fffc25e5b8f17a0e7abe6c72867b1 |
| ports.csv | 1,440 | 332 KiB | c65482c9c4d1cb9e039d43e656724343082b016a6741b06c86e0a97ebe5e242d |
| datapackage.json | 4 KiB | a05cfbe9dab053fee119842b4cfee0e56b386214709c3ddb37ae6bb623534170 | |
| checksums.txt | 17 | 1 KiB | 6f207fcf03f6dc98d880861429ad60f619e36342dfc20fce7a335a467d0ad814 |
| README.md | 14 KiB | e6546a7f951e16a2228e45e76fc016911e23c91886c417a073a597870ac5b199 |
El paquete completo también está en el repositorio en data-packages/ferry-crossings, y node tools/data/ferry-package.mjs lo reconstruye a partir de la instantánea versionada. Es determinista, así que una diferencia es un cambio de datos y nada más.
Cómo citarlo
La atribución es la condición de la licencia y lo único que pedimos. Cualquiera de las dos formas de abajo sirve.
Con formato
Orlero (2026). Scheduled ferry crossings with operator-published fares (Version 1.0.0) [Data set]. https://orlero.com/data/ferry-crossings
BibTeX
@dataset{orlero_ferry_crossings_1_0_0,
author = {{Orlero}},
title = {{Scheduled ferry crossings with operator-published fares}},
year = {2026},
version = {1.0.0},
publisher = {Orlero},
url = {https://orlero.com/data/ferry-crossings},
note = {CC BY 4.0}
}Identificador
Todavía no hay DOI. Cite la URL y la versión de arriba.
Licencia
CC BY 4.0. Compártalo, adáptelo, venda algo construido sobre él y cite la fuente. La versión 4.0 cubre el derecho sui generis de bases de datos de la Unión Europea en los mismos términos. Los nombres de barcos, empresas y puertos son marcas de sus titulares y se reproducen como hechos sobre quién opera qué.
Lo que no le dice
- Una instantánea, no un flujo. Una tarifa es lo que la naviera publicaba en el momento de la consulta.
- Una travesía vacía no prueba que no haya servicio: cuatro fechas de sondeo pueden pasar por alto una salida semanal.
- Las coordenadas son centros de localidad, no atracaderos. Atenas se resuelve en El Pireo y Roma en Civitavecchia, así que una distancia calculada une poblaciones y es una cota inferior del trayecto navegado.
- Los UN/LOCODE se asignan por forma, no se buscan en un registro. Un código cuenta como tal cuando tiene cinco caracteres y su prefijo de país coincide con el registro. Si necesita códigos certificados, haga la unión por el código bruto de la naviera.
- GTFS y Parquet quedan para una versión posterior, porque cuatro fechas sondeadas no sostienen un calendario de servicio.
- Las marcas de tiempo son horas locales selladas como UTC, registradas exactamente tal como se publicaron, y el archivo de puertos trae una zona IANA con la que resolverlas. Afecta a las 390 salidas cuyos dos puertos están en zonas distintas.
- 0 salidas no tienen duración: su llegada publicada no es posterior a su salida publicada, así que las dos marcas de tiempo quedan tal como se publicaron y la columna calculada queda vacía.