Open data · CC BY 4.0
Weekly port activity index
How many vessels our shore-based AIS receivers can hear within 10 nautical miles of 120 ports, sampled once a day and ranked by the 7-day average. It measures what is audible, not what is in port — read the method before quoting a number.
| # | Port | Country | 7-day avg | Prior 7 days | Change | Now |
|---|---|---|---|---|---|---|
| 1 | Rotterdam | Netherlands | 1394 (1d) | — | — | 1382 |
| 2 | Zaandam | Netherlands | 1371 (1d) | — | — | 1368 |
| 3 | Amsterdam | Netherlands | 1370 (1d) | — | — | 1363 |
| 4 | Botlek | Netherlands | 1317 (1d) | — | — | 1312 |
| 5 | Dordrecht | Netherlands | 1098 (1d) | — | — | 1113 |
| 6 | Piraeus | Greece | 744 (1d) | — | — | 755 |
| 7 | Flisvos | Greece | 744 (1d) | — | — | 754 |
| 8 | Stellendam | Netherlands | 700 (1d) | — | — | 700 |
| 9 | Moerdijk | Netherlands | 649 (1d) | — | — | 665 |
| 10 | Werkendam | Netherlands | 641 (1d) | — | — | 647 |
| 11 | Seattle | United States | 637 (1d) | — | — | 645 |
| 12 | Singapore | Singapore | 619 (1d) | — | — | 602 |
| 13 | Antwerpen | Belgium | 604 (1d) | — | — | 598 |
| 14 | Antwerp | Belgium | 604 (1d) | — | — | 598 |
| 15 | IJmuiden | Netherlands | 529 (1d) | — | — | 518 |
| 16 | Palma | Spain | 512 (1d) | — | — | 518 |
| 17 | Fort Lauderdale | United States | 508 (1d) | — | — | 520 |
| 18 | Port Everglades | United States | 508 (1d) | — | — | 520 |
| 19 | Antibes | France | 477 (1d) | — | — | 478 |
| 20 | Cannes | France | 456 (1d) | — | — | 455 |
| 21 | Hong Kong | Hong Kong | 449 (1d) | — | — | 417 |
| 22 | Hamburg | Germany | 414 (1d) | — | — | 423 |
| 23 | Terneuzen | Netherlands | 327 (1d) | — | — | 337 |
| 24 | Southampton | United Kingdom | 300 (1d) | — | — | 311 |
| 25 | Gothenburg | Sweden | 291 (1d) | — | — | 303 |
| 26 | Houston | United States | 277 (1d) | — | — | 276 |
| 27 | Gdańsk | Poland | 272 (1d) | — | — | 276 |
| 28 | New York | United States | 271 (1d) | — | — | 277 |
| 29 | Long Beach | United States | 265 (1d) | — | — | 265 |
| 30 | Enkhuizen | Netherlands | 259 (1d) | — | — | 263 |
| 31 | Vlissingen | Netherlands | 257 (1d) | — | — | 262 |
| 32 | San Diego | United States | 251 (1d) | — | — | 251 |
| 33 | Monaco | Monaco | 250 (1d) | — | — | 252 |
| 34 | Barcelona | Spain | 249 (1d) | — | — | 250 |
| 35 | Stockholm | Sweden | 243 (1d) | — | — | 243 |
| 36 | Nijmegen | Netherlands | 231 (1d) | — | — | 214 |
| 37 | Valencia | Spain | 227 (1d) | — | — | 229 |
| 38 | Harlingen | Netherlands | 227 (1d) | — | — | 223 |
| 39 | Den Helder | Netherlands | 217 (1d) | — | — | 216 |
| 40 | Delfzijl | Netherlands | 216 (1d) | — | — | 218 |
| 41 | Genova | Italy | 212 (1d) | — | — | 212 |
| 42 | Balikpapan | Indonesia | 208 (1d) | — | — | 208 |
| 43 | Gdynia | Poland | 208 (1d) | — | — | 202 |
| 44 | Urk | Netherlands | 197 (1d) | — | — | 205 |
| 45 | Yokohama | Japan | 185 (1d) | — | — | 173 |
| 46 | Bodrum | Türkiye | 182 (1d) | — | — | 184 |
| 47 | Incheon | South Korea | 175 (1d) | — | — | 152 |
| 48 | Miami | United States | 174 (1d) | — | — | 184 |
| 49 | Eemshaven | Netherlands | 173 (1d) | — | — | 175 |
| 50 | Emden | Germany | 166 (1d) | — | — | 172 |
| 51 | Rio de Janeiro | Brazil | 165 (1d) | — | — | 171 |
| 52 | Kiel | Germany | 154 (1d) | — | — | 141 |
| 53 | Paris | France | 141 (1d) | — | — | 144 |
| 54 | Rostock | Germany | 140 (1d) | — | — | 140 |
| 55 | Lorient | France | 134 (1d) | — | — | 145 |
| 56 | Zeebrugge | Belgium | 129 (1d) | — | — | 137 |
| 57 | Lauwersoog | Netherlands | 129 (1d) | — | — | 131 |
| 58 | Helsinki | Finland | 124 (1d) | — | — | 126 |
| 59 | Santos | Brazil | 123 (1d) | — | — | 121 |
| 60 | Cape Town | South Africa | 121 (1d) | — | — | 125 |
| 61 | Oostende | Belgium | 118 (1d) | — | — | 119 |
| 62 | Bremerhaven | Germany | 114 (1d) | — | — | 114 |
| 63 | Tanger Med | Morocco | 114 (1d) | — | — | 108 |
| 64 | London | United Kingdom | 111 (1d) | — | — | 117 |
| 65 | Le Havre | France | 109 (1d) | — | — | 112 |
| 66 | Gent | Belgium | 107 (1d) | — | — | 107 |
| 67 | Napoli | Italy | 106 (1d) | — | — | 109 |
| 68 | Cartagena | Spain | 98.0 (1d) | — | — | 104 |
| 69 | Szczecin | Poland | 84.0 (1d) | — | — | 83 |
| 70 | Ibiza | Spain | 73.0 (1d) | — | — | 72 |
| 71 | Varna | Bulgaria | 72.0 (1d) | — | — | 68 |
| 72 | Esbjerg | Denmark | 71.0 (1d) | — | — | 73 |
| 73 | Viareggio | Italy | 64.0 (1d) | — | — | 63 |
| 74 | Haifa | Israel | 61.0 (1d) | — | — | 59 |
| 75 | Gladstone | Australia | 57.0 (1d) | — | — | 53 |
| 76 | Semarang | Indonesia | 53.0 (1d) | — | — | 52 |
| 77 | Ashdod | Israel | 52.0 (1d) | — | — | 50 |
| 78 | Duisburg | Germany | 50.0 (1d) | — | — | 47 |
| 79 | Mar del Plata | Argentina | 49.0 (1d) | — | — | 50 |
| 80 | Skagen | Denmark | 49.0 (1d) | — | — | 48 |
| 81 | Vigo | Spain | 49.0 (1d) | — | — | 47 |
| 82 | Mainz | Germany | 45.0 (1d) | — | — | 51 |
| 83 | Aberdeen | United Kingdom | 45.0 (1d) | — | — | 46 |
| 84 | Linz | Austria | 45.0 (1d) | — | — | 44 |
| 85 | Peterhead | United Kingdom | 44.0 (1d) | — | — | 44 |
| 86 | Klaipėda | Lithuania | 42.0 (1d) | — | — | 43 |
| 87 | Bratislava | Slovakia | 39.0 (1d) | — | — | 38 |
| 88 | Algeciras | Spain | 36.0 (1d) | — | — | 31 |
| 89 | Gibraltar | Gibraltar | 34.0 (1d) | — | — | 23 |
| 90 | Buenos Aires | Argentina | 32.0 (1d) | — | — | 36 |
| 91 | Las Palmas | Spain | 30.0 (1d) | — | — | 29 |
| 92 | Wien | Austria | 26.0 (1d) | — | — | 29 |
| 93 | Jakarta | Indonesia | 25.0 (1d) | — | — | 25 |
| 94 | Marunda | Indonesia | 25.0 (1d) | — | — | 25 |
| 95 | Durban | South Africa | 21.0 (1d) | — | — | 22 |
| 96 | Newcastle (AU) | Australia | 21.0 (1d) | — | — | 20 |
| 97 | Gioia Tauro | Italy | 17.0 (1d) | — | — | 18 |
| 98 | Palembang | Indonesia | 15.0 (1d) | — | — | 18 |
| 99 | Istanbul | Türkiye | 7.0 (1d) | — | — | 7 |
| 100 | Malta | Malta | 2.0 (1d) | — | — | 2 |
| 101 | Valletta | Malta | 2.0 (1d) | — | — | 2 |
| 102 | Surabaya | Indonesia | 1.0 (1d) | — | — | 1 |
| 103 | Port Said | Egypt | 0.0 (1d) | — | — | 0 |
| 104 | Suez | Egypt | 0.0 (1d) | — | — | 0 |
| 105 | Ust-Luga | Russia | 0.0 (1d) | — | — | 0 |
| 106 | Constanța | Romania | 0.0 (1d) | — | — | 0 |
| 107 | İskenderun | Türkiye | 0.0 (1d) | — | — | 0 |
| 108 | Cristóbal | Panama | 0.0 (1d) | — | — | 0 |
| 109 | Alexandria | Egypt | 0.0 (1d) | — | — | 0 |
| 110 | Busan | South Korea | 0.0 (1d) | — | — | 0 |
| 111 | Riga | Latvia | 0.0 (1d) | — | — | 0 |
| 112 | Shanghai | China | 0.0 (1d) | — | — | 0 |
| 113 | Ningbo | China | 0.0 (1d) | — | — | 0 |
| 114 | Laem Chabang | Thailand | 0.0 (1d) | — | — | 0 |
| 115 | Nagoya | Japan | 0.0 (1d) | — | — | 0 |
| 116 | Casablanca | Morocco | 0.0 (1d) | — | — | 0 |
| 117 | Damietta | Egypt | 0.0 (1d) | — | — | 0 |
| 118 | Ravenna | Italy | 0.0 (1d) | — | — | 0 |
| 119 | Fos-sur-Mer | France | 0.0 (1d) | — | — | 0 |
| 120 | New Orleans | United States | 0.0 (1d) | — | — | 0 |
"—" means no data, not zero. "(3d)" marks an average over fewer than seven daily samples. Some entries overlap or duplicate each other, so counts are not additive. Same reference point, so always identical counts: Antwerpen and Antwerp; Fort Lauderdale and Port Everglades; Malta and Valletta. Within 20 nm of each other, so partly the same vessels: Amsterdam and Zaandam; Piraeus and Flisvos; Rotterdam and Botlek; Gibraltar and Algeciras; Jakarta and Marunda; Antibes and Cannes; Dordrecht and Moerdijk; Eemshaven and Delfzijl; Dordrecht and Werkendam; IJmuiden and Zaandam; Amsterdam and IJmuiden; Emden and Delfzijl; Gdańsk and Gdynia; Rotterdam and Stellendam; Vlissingen and Terneuzen; Stellendam and Botlek; Urk and Enkhuizen; Oostende and Zeebrugge; Moerdijk and Werkendam; Dordrecht and Botlek; Emden and Eemshaven; Gent and Terneuzen; Algeciras and Tanger Med; Monaco and Antibes; Moerdijk and Botlek; Vlissingen and Zeebrugge; Gibraltar and Tanger Med; Rotterdam and Dordrecht; Rotterdam and Moerdijk; Fort Lauderdale and Miami; Miami and Port Everglades; Antwerpen and Terneuzen; Antwerp and Terneuzen.
Method
- What is counted. Every vessel whose latest known position lies within 10 nm of the port's reference point in the live AISStream.io snapshot. The snapshot holds one latest position per vessel, heard by community-run shore receivers.
- When. One sample per port per UTC day, taken the first time the index or a port page is requested at or after 12:00 UTC. The exact time is stored with each row and is in the downloads. A day with no sample stays empty; we never interpolate.
- Not making way / under way. Speed over ground under 0.5 knots — or, with no speed, a nav status of moored, at anchor or aground — counts as not making way. 0.5 knots or more — or, with no speed, a nav status of under way — counts as under way. The remainder have no usable motion data.
- Coverage is the main caveat. AIS is VHF line-of-sight. A port with a well-sited receiver nearby shows high counts; one without may show almost none. Compare a port with itself over time, not with another port. A sudden drop is more often a receiver going offline than a port going quiet — each row carries
heard_total, the worldwide count at sample time, so you can check. - Not port statistics. These are not arrivals, calls, berth occupancy or throughput, and they will not match port-authority figures. Small craft without AIS are invisible.
Background: How AIS works · Navigational status codes · Sources and attribution