Method
How we take in live AIS positions, how a port visit is detected, what the numbers mean, and what they do not mean.
Sample data, not total port traffic
Every port-visit figure on this site, including the Busiest Ports ranking and any “ships in port today” count, comes from the vessels we track by AIS, a subset of total maritime traffic. The data is accurate for the ships we cover, but it is not a complete record of all cruise-ship calls at any port. Official port authority figures will differ.
AIS
The Automatic Identification System (AIS) is a radio tracking standard required by the International Maritime Organization under SOLAS regulation V/19.2.4. Every passenger vessel and every commercial ship over 300 gross tons must carry an active Class A AIS transponder.
A transponder broadcasts a short VHF packet every 2 to 10 seconds (faster when underway, slower at anchor). It carries the ship's MMSI, its GPS position, speed over ground, heading, destination and ETA. The packets are not encrypted; any receiver in range can decode them.
Cruise ships broadcast at the 2-second interval while underway and about every 3 minutes when moored, which makes their positions among the most reliably updated on any AIS network.
Positions
We receive position data from two AIS networks: Marinesia, our primary feed, and AISStream, which fills gaps for ships Marinesia has not reported recently. Shore-based AIS receivers typically reach 40 to 50 nautical miles, so coverage is thinner in open ocean.
The pipeline asks the feeds only about the ships in our cruise-ship registry, a curated list of 380+ ships keyed by MMSI and IMO number. Every fix a feed returns is stored as broadcast in ship_positions: ship, time, latitude, longitude, speed, heading, destination and which feed it came from. When a feed returns nothing for a ship, we record that too, so a page can say how long it has been since the last real fix. We do not smooth, estimate or fill in positions; we keep the full time series, not only the latest fix.
How fresh positions are: the position job runs every 10 minutes and refreshes a rotating share of the fleet each time, within our providers' rate limits. A ship's latest fix is often minutes old near busy ports and can be several hours old at sea. Each ship page shows when its last fix was recorded.
Port visits
A port visit is inferred from position history, not from a manifest or booking system. The rules:
These rules are reliable for major ports. They can under-count at ports with unusual layouts, or where a ship anchors offshore rather than berthing. Because fixes can arrive hours apart, the recorded end of a visit runs late, which is why we publish arrival counts and not time in port.
Rollups
We pre-compute aggregates for each port and ship over 30, 90 and 365 days: tracked visits, unique ships, unique cruise lines, day-of-week distribution and a month-by-month breakdown. These power the Busiest Ports ranking, the port seasonality pages and the monthly port traffic reports.
Rollups are recomputed nightly and carry an updated_at stamp, which the pages show. The 90-day window is the default for rankings because it smooths seasonal spikes while staying responsive to schedule changes.
What a visit means: one visit is one ship at one port on one call. A ship that calls at Cozumel 10 times in 90 days adds 10 visits to Cozumel's total. The unique-ships count removes duplicates.
Coverage
AIS receiver density varies by region. This is where our data is strong and where it has gaps.
| Region | Coverage | Detail |
|---|---|---|
| Caribbean and Florida | Strong | Dense receiver coverage and high cruise-ship concentration. Port-visit data is most complete here. |
| Mediterranean | Strong | Major ports (Barcelona, Civitavecchia, Piraeus, Marseille) have reliable coverage. Smaller ports may have gaps. |
| Northern Europe | Good | Southampton, Rotterdam and Hamburg are covered well. Norwegian fjords may have brief blackout periods. |
| Alaska | Good | Port calls recorded since July 2026 at Juneau, Ketchikan and the other main cruise ports (254 in July, 226 in August). Positions in narrow inlets can still arrive hours apart. |
| Asia-Pacific | Partial | Growing coverage. Singapore, Sydney and Hong Kong are tracked. Smaller regional ports may be missing. |
| Open ocean | Gaps at sea | Far from shore a ship can go hours or days without a new fix. We then show its last real position with the date it was recorded. |
Changes
Meaning
When a ship page says “in our tracking data”, the position, port-visit count or route figure comes from our own AIS database: records we collect, store and derive ourselves from the raw transponder feed. It is not taken from a third-party directory, a cruise line press release or a scraped timetable.
Our ship_positions table stores every validated fix we receive for the 380+ ships we track. When a ship page says “last seen near Cozumel on June 12, 2026 at 17:42 UTC”, that statement is backed by a row in our database, not an estimate.
Stale but real: when no fresh fix is available, for example a ship that has been out of receiver range for days, the page shows the most recent position we hold, labelled “last seen” with its date, never “live now”. We never show an estimated or interpolated position as if it were a live fix.
Sources
See it
The method above stands behind every number on this site.