AIS ship trackingVessel Tracking

AIS decoded: how ship tracking actually works (2026 reference)

A field-by-field reference to AIS — how the VHF broadcast works, Class A vs B, all 27 message types, the anatomy of a position report, navigational status 0–15, ship-type and MMSI decoding, dimension and reporting-interval tables, satellite vs terrestrial, and how AIS is spoofed.

R
Rynda Editorial
15 min read
AIS decoded: how ship tracking actually works (2026 reference)

Built for the people who read AIS every day but were never handed the spec: operators, analysts, port agents, fleet managers, compliance teams and the developers who build on vessel data. Everyone watches the little triangles move; almost nobody can decode what each field means, why a ship "disappears," or why the type says "cargo" when it's clearly a tanker. The full definition lives buried in ITU-R M.1371 and a scatter of IMO circulars. We assembled the working knowledge — every message type, every navigational status, the field-by-field anatomy of a position report, and how AIS lies — into one reference.

This is the technology behind the rynda live ports & vessel map: the same AIS your team sees on screen, explained down to the bit.

📖 See also: ECA / SECA zones reference · EU ETS & FuelEU cost reference


Contents


At a glance

The short version, if you read nothing else:

  • AIS is a self-reporting VHF broadcast system, not radar. Each ship transmits its own identity, position and movement on two VHF channels; anyone in range (or a satellite overhead) receives it.
  • Two data streams, different cadence. Dynamic data (position, speed, course) updates every few seconds when underway. Static/voyage data (name, IMO, type, dimensions, destination, draught, ETA) is broadcast every few minutes and is typed in by the crew — which is why it's often stale or wrong.
  • The message type number tells you what you're looking at. Types 1/2/3 are Class-A positions, 18/19 are Class-B, 5 is static/voyage, 21 is a navigation aid, 4 is a base station. Twenty-seven types in all.
  • Navigational status is a manual field (0–15). "Under way," "at anchor," "moored," "not under command," "constrained by draught." It is set by the officer of the watch and is a frequent source of error — and a Port State Control (PSC) deficiency when wrong.
  • The MMSI is not the ship. The first three digits (the MID) give the flag/country; the number can be reassigned when a ship changes flag, and special prefixes mark base stations, SAR aircraft, AtoN and distress beacons.
  • A "dark" ship is usually a switched-off transponder or a spoofed position — both visible as patterns in the data (gaps, impossible jumps, duplicate identities), which is exactly what makes AIS analysis valuable.

What AIS is and how it works

The Automatic Identification System is a VHF data broadcast. Every SOLAS (Safety of Life at Sea convention) ship (and many smaller craft) carries a transponder that:

  • broadcasts its own data on two dedicated VHF channels — AIS 1 = 161.975 MHz (marine channel 87B) and AIS 2 = 162.025 MHz (channel 88B);
  • listens to everyone else's broadcasts on the same channels;
  • coordinates when it transmits so that many ships share the same frequency without talking over each other.

That time-sharing is the clever part. Class-A units use SOTDMA (Self-Organising Time Division Multiple Access): the VHF minute is divided into 2 250 time slots, and each transceiver reserves and announces the slots it will use, so neighbours avoid them. Class-B "CS" units use CSTDMA (Carrier-Sense TDMA): they listen for a free slot and grab it, yielding to Class A.

Range is roughly line-of-sight for VHF — typically 20–40 nautical miles ship-to-ship, more to a high shore antenna. Beyond the horizon there is no terrestrial reception, which is why satellite AIS exists (see satellite AIS).

AIS was mandated by SOLAS Chapter V after 2002 for ships ≥300 GT on international voyages, ≥500 GT not on international voyages, and all passenger ships. It exists first for collision avoidance and traffic management — the global tracking industry is a second-order use of a safety system.


Class A vs Class B and the other station types

Not every triangle is the same kind of station. The transmitting device determines which message types you get and how often:

Station type Used by Access scheme Power Key messages
Class A SOLAS ships (mandatory) SOTDMA 12.5 W 1, 2, 3 (position), 5 (static/voyage)
Class B "CS" Small commercial, fishing, leisure CSTDMA 2 W 18 (position), 24 (static)
Class B "SO" ("B+") Higher-end small craft SOTDMA 5 W 18, 19, 24
AtoN Buoys, lighthouses, virtual aids — — 21
Base station Shore VTS infrastructure — — 4, 20, 22, 23
SAR aircraft Search-and-rescue planes/helis — — 9
AIS-SART / MOB / EPIRB Distress beacons — — 1 (SART), 14

Practical consequences: a Class-B contact reports far less often and may omit IMO number, draught, destination and ETA entirely — so a fishing vessel or yacht looks "data-poor" next to a Class-A cargo ship. And an AtoN (message 21) is a buoy or a virtual mark, not a moving vessel — mislabelling one as a ship is a classic rookie error.


The message types (1–27)

Every AIS transmission carries a message ID in its first field. This is the master key to reading AIS. The 27 defined types:

ID Name Purpose
1 Position report (scheduled) Class-A dynamic position, SOTDMA
2 Position report (assigned) Class-A position at an assigned rate
3 Position report (response) Class-A position in response to interrogation
4 Base station report Shore station position + UTC timestamp
5 Static & voyage data Class-A identity, dimensions, destination, ETA, draught
6 Addressed binary message Point-to-point application data
7 Binary acknowledgement ACK of a message 6
8 Binary broadcast Broadcast application data (e.g. met/hydro)
9 SAR aircraft position Search-and-rescue aircraft
10 UTC/date inquiry Request another station's UTC
11 UTC/date response Reply to a message 10
12 Addressed safety message Point-to-point safety text
13 Safety acknowledgement ACK of a message 12
14 Safety broadcast Broadcast safety text (e.g. SART "SART ACTIVE")
15 Interrogation Request specific messages from a station
16 Assignment mode command Base station assigns reporting slots/rate
17 DGNSS broadcast Differential GNSS corrections
18 Class-B position report Standard Class-B dynamic position
19 Class-B extended position Class-B position + some static data
20 Data link management Base station reserves slots
21 Aid-to-navigation report Buoy / lighthouse / virtual AtoN
22 Channel management Region channel/power assignment
23 Group assignment Command a group of stations
24 Class-B static data Class-B name & type (parts A/B)
25 Single-slot binary Short application data
26 Multi-slot binary Longer application data
27 Long-range position Low-rate position for satellite reception

If you remember only a handful: 1/2/3 = big-ship position, 5 = big-ship details, 18/19 = small-craft position, 24 = small-craft details, 21 = a navigation aid, 4 = a shore station, 27 = the satellite-friendly position.


Anatomy of a position report

A Class-A position report (message 1/2/3) is the single most-consumed AIS message. Its fields, decoded:

Field What it carries Gotchas
Message ID 1, 2 or 3 The type.
MMSI 9-digit station identity Identity, not the ship — can be reassigned (see MMSI).
Navigation status 0–15 Manual — often wrong. See navigational status.
Rate of turn (ROT) °/min, sign = direction Often "not available."
Speed over ground (SOG) knots, 0–102.2 102.3 = "not available."
Position accuracy 1 bit: high (≤10 m) / low (>10 m) "High" ≈ DGPS.
Longitude / Latitude 1/10 000 minute 181°/91° = "not available."
Course over ground (COG) 0–359.9° Direction of travel, ≠ heading.
True heading 0–359° Where the bow points; 511 = "not available."
Timestamp UTC second of the report 60 = not available; 61–63 = positioning system states.
Maneuver indicator special manoeuvre? Rarely populated.
RAIM flag GNSS integrity in use? Data-quality hint.

COG vs heading trips up newcomers constantly: COG is the direction the ship is actually moving (from GNSS — satellite positioning, i.e. GPS and its equivalents), heading is where the bow points (from the gyro). In a strong beam current or while turning they differ — and a drifting ship can have a valid heading with near-zero SOG.


A single manually-set field on Class-A ships. It is one of the most useful — and least reliable — values in AIS, because the officer of the watch types it in and updating it is easy to forget.

Code Status
0 Under way using engine
1 At anchor
2 Not under command (NUC)
3 Restricted in ability to manoeuvre (RAM)
4 Constrained by her draught
5 Moored
6 Aground
7 Engaged in fishing
8 Under way sailing
9 Reserved (HSC)
10 Reserved (WIG)
11 Power-driven vessel towing astern (regional use)
12 Power-driven vessel pushing ahead / towing alongside (regional use)
13 Reserved
14 AIS-SART / MOB / EPIRB (active)
15 Undefined / default (not available)

Why it matters:

  • An incorrect nav status is a PSC deficiency risk — an anchored ship still broadcasting "under way" can attract an inspection note.
  • Analysts use it to distinguish "genuinely stopped" (status 1/5) from "stopped but not updated" — a ship parked at anchor for two days still showing status 0 is a data-hygiene tell.
  • Status 2 (NUC), 3 (RAM) and 4 (constrained by draught) change the collision-avoidance obligations of other ships, which is why they exist in a safety system in the first place.

Static & voyage data — the message 5 fields

Message 5 (Class A) / message 24 (Class B) carries the crew-entered description of the ship and the voyage. Because it is typed in, treat it as asserted, not verified:

Field Notes
IMO number The permanent 7-digit hull identity — unlike MMSI, it does not change with flag. The reliable key for identifying a ship over its life.
Call sign Radio call sign.
Vessel name Up to 20 chars — frequently misspelled or left as a delivery-yard default.
Ship type 0–99 code (see ship type codes).
Dimensions A/B/C/D Antenna offsets that encode length and beam (see dimensions).
Draught Present static draught in metres — manually set, so often the last voyage's figure.
Destination Free text — "RTM", "ROTTERDAM", "FOR ORDERS", "SINGAPORE OPL"… wildly inconsistent.
ETA Month/day/hour/minute — often stale.
Type of EPFS Which positioning device (GPS, DGPS, etc.).

The dynamic stream (position/speed/course) comes straight from the ship's GNSS and is generally trustworthy; the static/voyage stream is only as good as the crew's last keystroke. Every serious AIS workflow cross-checks destination and draught against reality rather than trusting them.


Ship type codes (0–99)

The ship type in message 5 is a two-digit code where the tens digit is the broad category and the units digit adds cargo/hazard detail:

Range Category
0–19 Reserved / not available (0 = not available)
20–29 Wing-in-ground (WIG)
30 Fishing
31–32 Towing (32 = long/large tow)
33 Dredging / underwater ops
34 Diving ops
35 Military ops
36 Sailing
37 Pleasure craft
40–49 High-speed craft (HSC)
50 Pilot vessel
51 Search and rescue
52 Tug
53 Port tender
54 Anti-pollution equipment
55 Law enforcement
58 Medical transport
60–69 Passenger
70–79 Cargo (71–74 encode hazard categories A–D)
80–89 Tanker (81–84 encode hazard categories A–D)
90–99 Other

Two everyday consequences: a chemical/oil tanker often shows as 80–89, and a "cargo" ship at 70 with hazard suffix tells you it may be carrying dangerous goods. But because the code is crew-entered, a tanker mistyped as "cargo (70)" is common — never treat the AIS type as authoritative; confirm against the IMO number and a registry.


Decoding the MMSI

The Maritime Mobile Service Identity is a 9-digit number — a station identity, not a permanent ship identity. Its structure encodes a lot:

  • Ship stations: MIDxxxxxx — the first three digits are the Maritime Identification Digits, i.e. the flag state. E.g. 232…/233…/234…/235… = United Kingdom, 273… = Russia, 477… = Hong Kong, 538… = Marshall Islands, 636… = Liberia, 563–567… = Singapore.
  • Group of ships: leading 0 → 0MIDxxxx.
  • Coast / base stations: leading 00 → 00MIDxxxx.
  • SAR aircraft: 111MIDxxx.
  • AtoN (navigation aids): 99MIDxxxx.
  • Craft associated with a parent ship (lifeboats, tenders): 98MIDxxxx.
  • Handheld VHF / DSC: 8MIDxxxxx.
  • Distress beacons: AIS-SART 970xxxxxx, MOB 972xxxxxx, EPIRB-AIS 974xxxxxx.

The critical operational point: when a ship changes flag, its MMSI usually changes; its IMO number does not. So the MMSI is a fine live-tracking key but a poor historical one — to follow a hull across a re-flag or a sale, join on the IMO number. Reused and shared MMSIs are also a real phenomenon (and one of the tells in identity-manipulation analysis).


How the dimensions encode length and beam

Message 5 doesn't send "LOA" and "beam" directly. It sends four distances from the GNSS antenna to the bow, stern and each side:

  • A = antenna → bow
  • B = antenna → stern
  • C = antenna → port side
  • D = antenna → starboard side

From which:

Length overall (LOA) = A + B
Beam                 = C + D

The offsets also tell you where on the ship the antenna sits, which matters for precise berthing/pilotage. Two traps: a Class-B "part A/B" split may leave dimensions zero/unknown, and some units report a reference point that isn't the true GNSS position, introducing a small position offset on very large ships.

Why is Class-B static data split into a Part A and Part B (message 24) at all? Because a single AIS time-slot can't carry all the static fields at once: Part A sends the vessel name, Part B sends the type, dimensions and call sign — transmitted separately, which is exactly why a Class-B contact so often shows a name but no dimensions (or vice versa) until both parts have been received.


Reporting intervals

How often a ship transmits depends on its class and what it's doing. Approximate Class-A dynamic intervals (SOTDMA):

Situation Report interval
At anchor / moored 3 minutes
0–14 kn 10 s
0–14 kn and changing course 3⅓ s
14–23 kn 6 s
14–23 kn and changing course 2 s
> 23 kn 2 s
Class-A static/voyage (msg 5) every 6 minutes
Class-B position (msg 18) ~30 s (CSTDMA; every 3 min below 2 kn)

The takeaways: a fast, turning ship floods the channel with updates (down to ~2 s), while an anchored ship reports only every three minutes — so a "stale" position at anchor is normal, not a fault. And Class-B's slow cadence is why small craft trails look choppy compared with a Class-A liner.


Terrestrial vs satellite AIS

  • Terrestrial AIS — shore antennas and coastal receivers. High update rate, but only within VHF line-of-sight of land (tens of nm). Coverage is dense near coasts and empty mid-ocean.
  • Satellite AIS (S-AIS) — low-earth-orbit satellites pick up AIS over open ocean. It fills the blue-water gap, but with two costs: latency (you see the position on the next satellite pass, minutes to hours later, not in real time) and message collision — in busy sea areas hundreds of ships share the same slots within a satellite's huge footprint, so many messages are lost. Message 27 exists specifically as a low-rate, long-range position report optimised for satellite pickup.

Practically: a mid-Atlantic position that's an hour old isn't necessarily "gone dark" — it may simply be waiting for the next satellite pass. Distinguishing satellite latency from deliberate darkness is a core analytical skill, and one the rynda vessel map is built to handle.


When AIS lies — gaps, spoofing and identity

Because AIS is self-reported, it can be manipulated. The three broad failure modes, and how each looks in the data:

  1. Going dark (transponder off). The ship simply stops transmitting. In the data it's a gap: a last-seen position, then silence, then (sometimes) a reappearance far away. A gap alone can be innocent — satellite latency, equipment failure, deep-ocean coverage holes — so gaps are judged by duration, location and context, not in isolation.
  2. Position spoofing. The transmitted position is falsified — via a manipulated GNSS feed or an altered AIS message — so the ship appears somewhere it isn't. Tells include impossible jumps (hundreds of miles between consecutive reports), speeds inconsistent with the track, ships showing as "sailing on land," or circular/looping tracks generated by a simulator.
  3. Identity manipulation. The MMSI, name, IMO or dimensions are changed or borrowed — two vessels broadcasting the same MMSI at once, an MMSI whose MID doesn't match the claimed flag, or a hull that changes name/identity between port calls.

None of this requires you to trust a single message. The patterns — a gap of the wrong length in the wrong place, a jump no ship could make, a duplicate identity — are what analysis surfaces. That is precisely why AIS remains valuable despite being spoofable: the manipulation leaves its own signature.

This section is deliberately descriptive — it explains how to read the data, not how to evade detection. For counterparty and vessel due-diligence, combine AIS behaviour with hull identity (IMO), ownership and sanctions screening rather than relying on the transponder alone.


Data-quality caveats

  • Static data is asserted, not verified — name, type, destination, draught and ETA are only as current as the crew's last entry.
  • Nav status drifts — anchored ships showing "under way" and vice versa are common.
  • MMSI ≠ ship — reused, shared and re-flagged identities break naïve historical joins. Use IMO for the hull.
  • Coverage is uneven — dense at coasts, sparse mid-ocean; absence of data is not presence of a stationary ship.
  • Timestamps matter — always read a position together with its age; a "current" position may be a satellite report from hours ago.

For developers

The rynda vessel platform consumes exactly these AIS streams and exposes higher-level primitives you can build on.

  • Live vessel map: the ports & vessel map renders live positions, resolves Class-A/B, and reconciles terrestrial vs satellite reports into coherent tracks.
  • Identify on the durable key: store and join on the IMO number for the hull; keep MMSI as the live-radio key. This one rule prevents most tracking bugs across re-flags and sales.
  • Route + ECA context: pair a track with POST /api/ports-map/route ({"ports":[...]} → eca_distance_nm, eca_zones, legs) to place AIS movement inside the regulatory geography — the bridge between "where the ship is" and "what rules apply." See the ECA reference.
  • Read the type number first: branch on the message ID before parsing — 1/2/3 and 18/19 are positions; 5 and 24 are static; 21 is an AtoN, not a vessel; 4 is a base station. Mixing them up is the most common AIS parsing bug.

FAQ and common confusions

Q: Why does a ship "disappear" from the map?
A: Most often it left terrestrial VHF range (mid-ocean) and you're waiting on the next satellite pass; sometimes the transponder is off. Judge by duration and location — a two-hour gap mid-Atlantic is routine; a two-hour gap off a busy coast is not.

Q: The AIS says "Cargo" but it's obviously a tanker. Why?
A: The ship-type code is typed in by the crew and is frequently wrong or generic. Never trust it — confirm the ship via its IMO number and a registry.

Q: What's the difference between COG and heading?
A: COG (course over ground) is the direction the ship is actually moving, from GNSS. Heading is where the bow points, from the gyro. Current and wind make them differ; a drifting ship can have a heading with near-zero speed.

Q: MMSI or IMO — which identifies the ship?
A: IMO is the permanent hull identity (never changes). MMSI is a radio/station identity that usually changes when the ship re-flags. Track live on MMSI; identify the hull over time on IMO.

Q: Is the destination field reliable?
A: No. It's free text set by the crew — "FOR ORDERS", port abbreviations, or a stale entry from three voyages ago are all common. Treat it as a hint, verify against actual movement.

Q: Why do small boats update so rarely?
A: They're usually Class B, which transmits at lower power and a slower cadence (roughly every 30 s to 3 min) and yields priority to Class-A ships. Choppy trails are expected.

Q: Can AIS positions be faked?
A: Yes — AIS is self-reported and can be spoofed. But manipulation leaves patterns (impossible jumps, ships "on land," duplicate MMSIs, wrong-length gaps) that analysis detects. That's why AIS stays useful despite being spoofable.

Q: What is message type 21 doing in my vessel feed?
A: That's an Aid to Navigation (a buoy, light, or a virtual mark) — not a moving ship. Filter it out of vessel logic or you'll get phantom "vessels" sitting on channel markers.

Q: Does every ship carry AIS?
A: SOLAS mandates it for ships ≥300 GT on international voyages, ≥500 GT otherwise, and all passenger ships. Many smaller vessels carry Class B voluntarily, but some craft carry none — absence from AIS doesn't prove absence of a ship.


References

  • ITU-R M.1371 — the technical standard defining AIS messages, fields and access schemes.
  • IMO SOLAS Chapter V, Regulation 19 — the carriage requirement.
  • IMO Resolution A.1106(29) — guidelines for the onboard operational use of AIS (including nav-status discipline).
  • US Coast Guard Navigation Center (NavCen) — accessible AIS message and MMSI references.
  • ITU — Maritime Identification Digits (MID) table for MMSI/flag decoding.
  • rynda ports & vessel map — live AIS in production.

Document version

  • 2026-07 — first public version. Message types, navigational status, MMSI/ship-type decoding, dimension and interval references, and the patterns of AIS manipulation, in one frame. Field definitions follow ITU-R M.1371; always confirm against the current standard for edge cases.

Sources & References

  1. 1https://www.itu.int/rec/R-REC-M.1371
  2. 2https://www.navcen.uscg.gov/ais-class-a-reports
Share:
R

Streamline your maritime operations

Rynda helps brokers, charterers, and shipowners manage vessels, cargo, and commercial workflows in one connected platform.