Live tracking · 320 vessels · 277 ports Data refreshed 60d ago

Methodology

How PortWatch builds its directory.

A plain-language walkthrough of the data sources, normalisation steps, and refresh cadence behind every page on PortWatch.

Source datasets

PortWatch is built on three categories of public input data. The first is port reference data — port name, country, geographic coordinates, UN/LOCODE identifier, and primary commercial type — which is sourced principally from the Wikidata SPARQL endpoint at query.wikidata.org, supplemented by the UN/LOCODE registry maintained by the United Nations Economic Commission for Europe. The second is vessel particulars — IMO number, MMSI, flag state, vessel type, length overall, beam, gross tonnage, deadweight, build year, and operator — which combines public IMO records with AIS-derived static data. The third is vessel position and status — current latitude and longitude, course, speed, navigational status, declared destination, and ETA — which is derived from public AIS feeds and refreshed on a documented cadence.

Normalisation

Raw inputs arrive in a wide range of formats and naming conventions, so they pass through a normalisation pipeline before being written into the directory. Port names are reduced to a canonical form (Port of X, Port X, the Port of X all collapse to a single name field), country codes are forced to ISO 3166-1 alpha-2 (the same two-character code used as the prefix of every UN/LOCODE), vessel types are mapped onto a controlled vocabulary derived from AIS Type Code (101–199) and the IMO ship type taxonomy, and timestamps are converted to ISO-8601 in UTC. Coordinates are validated to be within plausible global bounds (latitude −90 to +90, longitude −180 to +180) and dropped if they fall on land in obvious error.

Identity resolution

The hardest part of any maritime directory is identity. A single physical vessel can appear in the wild under multiple names (after sale or rename), multiple MMSIs (after re-flagging), and multiple casual transcriptions of the IMO number. PortWatch anchors vessel identity on the IMO number — a seven-digit identifier that is fixed for the lifetime of the hull and never reused — and treats name, MMSI, flag, and operator as mutable attributes that can change over time. Where conflicting attribute values arrive from different sources for the same IMO, the most recent timestamped record wins.

Port identity is anchored on the UN/LOCODE. Where Wikidata records contain multiple coordinate readings for the same port (typically because different Wikidata items describe the harbour, the city, and the terminal as separate entities), PortWatch joins them on UN/LOCODE and prefers the entry that points to the actual harbour basin rather than the surrounding settlement.

Refresh cadence

Port reference data is rebuilt on a slow cadence — typically weekly — because UN/LOCODE assignments and Wikidata port entries change rarely. Vessel particulars are refreshed on a similar slow cadence. Vessel positions and status are refreshed at the AIS-feed cadence, which in the public dataset typically means tens of minutes to hours between successive updates for any individual vessel; satellite-only coverage areas can lag substantially longer. The current directory build timestamp is shown in the utility bar at the top of every page.

Inferred vs reported fields

A few fields shown on PortWatch pages are inferred rather than reported. The nearby-ports list on each port profile is computed at request time from the haversine great-circle distance between port coordinates. The vessel-mix breakdown on each port and country page is computed by counting vessels by AIS-reported type. The country × vessel-type intersection pages are similarly derived from the join of vessel position and port country. Where a value is inferred, the directory says so explicitly in the surrounding copy.

Limitations

Three limitations are worth being explicit about. First, AIS coverage is uneven: terrestrial receivers cover the heavily trafficked European, North American and East Asian coastal waters densely but leave gaps in the open Pacific, the Southern Ocean, and parts of the African coast. Satellite coverage fills much of the gap but at coarser temporal resolution. Second, AIS is voluntary in some jurisdictions and is sometimes deliberately suppressed by operators trying to obscure their voyages — this is a known issue in sanctions-related shipping. Third, port boundaries are fuzzy: the question of whether a vessel at anchor a few miles offshore is "at" a port is a matter of local convention, and PortWatch uses a generous radius rule that may differ from official port authority definitions.