Neptune Atlas logo Neptune Atlas

Identity

Ship names change, and they are not unique

A ship’s name is the first thing on a position and the first thing on a port line-up. It is also the worst key (the field used to identify a record) in the database. It is not unique, it often changes when the ship is sold, and matching on the name alone is the surest way to end up with two records for one hull.

Names repeat

Fold every name in the register down to letters and digits only. Then 5,027 of the results belong to more than one ship. Those 5,027 names cover 14,252 hulls out of 101,900.

14,252

Hulls that share their name with at least one other ship in the register. A search by name can return the wrong vessel, and it gives no sign that it has done so.

Three industry habits cause this, and none of them will stop:

This does not come from one dataset only. A separate purchased register, a smaller set of 53,283 hulls, had 2,359 shared names of its own. Any register large enough to be useful has this problem.

And names change

The other problem is that a ship’s name is correct today, but it may not stay correct. A ship is renamed on sale, usually on delivery, because the buyer has their own naming pattern and wants the ship to fit it. It is renamed on a change of manager or commercial operator, so that it carries the brand of whoever trades it. It is renamed on a change of trade or flag, when it moves to a region or a registry where a different name is easier to use. Sometimes it is renamed when it goes on a long time charter to a charterer who gives it their own company name.

11,869

Hulls that were inspected under more than one name in the port state control history. That history runs from 22 March 2017 to 3 August 2026 and covers 44,764 hulls. This is a minimum, not a count of renamings. A name change between two inspections does not show, and a ship inspected only once cannot show a change at all.

What actually breaks

Port line-ups are where this causes trouble first. A port authority publishes what its own system holds, and its system recorded whatever name was declared at the time. So the line-up may print a name the ship lost in a sale three years ago, next to an agent, a cargo and a berth that are all current. The same happens in position lists, when someone copies a name from an older list without checking the ship again.

Now give that row to a matching program that knows only the current name. It searches, finds nothing, decides this is a ship it has never seen, and creates a new record. The desk now has two records: the real hull, with its particulars, ownership chain and fixture history, and a new one that holds only today’s line-up row. Both look like ships, neither is complete, and no report will ever combine them.

The error in the other direction is harder to see, and worse. Suppose the old name now belongs to another hull. The program finds exactly one confident answer and attaches the cargo, the laycan (the agreed dates for arrival) and later the laytime to the wrong ship, with no error and nothing that looks wrong. A duplicate record is a problem you can see; a confident wrong match is one you cannot.

Fold before you compare

To compare names, first remove everything that is not a letter or a digit, and make the rest lower case. This step, called folding, removes the MV and M.V. prefixes, full stops, hyphens, double spaces and stray apostrophes, which every source writes differently.

Matching that ignores upper and lower case is not enough on its own. Company names show why: Soki Kisen Co., Ltd. and SOKI KISEN CO.,LTD. are one company, but a match that only ignores case still treats them as two. Ship names arrive with exactly the same variety, because people type them from a fax, a cargo list or a screen, not from a registry.

Folding is the right thing to do, and it makes clashes more common, not less. The 5,027 shared names above are counted after folding. Folding does not create the confusion. It stops punctuation from hiding it, so that you can see the problem and deal with it.

Keep the history and search it

A name belongs in a table with dates, not in a single field on the hull. Keep every name a ship has been seen under, with its source and the date it was last seen. A search should look through all of them at once. When a former name produced the match, the result should say so. A broker who sees “ex NORTHERN VALLEY” next to a candidate can settle the question in one second. A score cannot settle it at all.

It follows that an import program must save the name it was given, exactly as written, on the row it imported. The row records what the line-up printed. If you overwrite it with the register’s current name, you destroy the only evidence of how the row was read. You also destroy the record you need the first time the match turns out to be wrong.

Return a ranked list, not an id

The design mistake is to ask the matching program for one vessel id. Ask it for a list of candidates instead, in order, with the reason each one is on the list. A ranking that works:

  1. A record with an IMO beats one without. The IMO number is the only identifier that stays the same through a sale, a rename and a change of flag. Check the IMO number before you trust it: 5,900 numbers taken from AIS in the database looked like IMO numbers and were not.
  2. A record with a deadweight beats one without. A hull with particulars is a hull someone has confirmed. This rule has a weak point you should know: 26,304 hulls have an IMO and no deadweight at all, so the rule pushes them down without telling you.
  3. The older record beats the newer one. If a duplicate has already been created, the original almost always holds the real history. Preferring it lets the records come back together instead of splitting further.
  4. If you have a published deadweight, prefer the closest one within 10 per cent. This rule does the most useful work. Tonnage is what tells two ships with the same name apart, and they usually differ by a large factor, not a small margin. A line-up that gives a 28,000 tonne ship tells it apart from a 76,000 tonne ship of the same name, with no human needed.

Then set a minimum. If no candidate is clearly ahead of the next one, do not guess: park the row for review, with the raw name and the candidates the program could not choose between. A parked row costs a broker fifteen seconds. A wrong match leads to a clean-up that nobody knows they need to start.

The person reading it already knows

A broker who has worked with the ship settles this at once. They know it was renamed when Greek owners bought it, that the other ship of that name is a coaster (a small ship that trades along the coast) in the Baltic, and which of the two the agent in that port means. None of that is in any database, and no ranking formula can rebuild it.

So the software does not need to be cleverer than the broker. Its job is to fold the name, search the history, show the likely hulls with their deadweight and flag, and ask. Software that guesses without telling anyone avoids a question today and creates a duplicate that someone must fix a year later.

References

Neptune Atlas

Neptune Atlas folds a name before it compares it, keeps every prior name a hull has been seen under and searches those alongside the current one, and answers an imported line-up row or a pasted position with a ranked list of candidate hulls rather than a single id. A row that cannot be resolved is held for a person to review, never turned into a new ship. Every paid plan starts with 7 free days. A card is needed to start them, and cancelling before they end costs nothing.

Try 7 days free Ship chartering software for brokers What each plan includes