HarbourOS

Live ship traffic and port calls along the Norwegian coast, from the positions ships broadcast every few seconds.

Ships on the map now
seen in the last 2 hours
Under way
moving at 1 knot or more
In port now
arrived and not yet seen leaving
Port calls this week
at ports

This week at a glance

Port calls in the 7 days up to the latest data, for the ship types picked above.

Busiest ports

Port calls, split by ship type

How long ships stay

Hours in port, for visits where we saw the ship arrive and leave. The last bar is 48 hours or more.

How close to a known port?

How far each stop was from the nearest official port. Far-off stops are usually small quays missing from the list, oil rigs or fishing grounds.

How accurate are the ship's signals?

Whether the ship's speed, its crew-set status and its position all point to the same stop.

How reliable is HarbourOS?

How many of 100 random stops an outside source confirms: maps, official voyage reports or the destination the crew typed in.

Unusual this week

Things ships did this week that are rare for their type, and why each one stood out. Unusual doesn't mean wrong.

All port calls this week, as a table

How this was built

Every 10 minutes, Python collects the positions all ships along the coast are broadcasting (BarentsWatch AIS). SQL cleans them into a trusted layer, setting aside every rejected row with a reason. A Python state machine turns each ship's positions into stops, each with a confidence score, and dbt matches every stop to the nearest official port and builds the tables this page reads, including each ship's route. GitHub Actions runs the whole chain about four times a day and republishes this page. It is a static snapshot, so no database is exposed to the internet.