Ship names change, and they are not unique
A ship’s name is the first thing on a position, the first thing on a port line-up, and the worst key in the database. It is not unique, it does not survive a sale, and matching on it alone is the most reliable way to end up with two records for one hull.
Names repeat
Fold every name in the register down to letters and digits, and 5,027 of the results belong to more than one ship. Those 5,027 names cover 14,252 hulls out of 101,850.
Hulls that share their name with at least one other ship in the register. A name search is a search that can return the wrong vessel, and it will do it without any sign that it has.
Three habits of the industry produce this, and none of them is going to stop:
- Fleet naming conventions. Owners name a whole fleet to a pattern: a house prefix, a family surname, rivers, mountains, birds, saints. There are only so many rivers, and two unrelated owners on opposite sides of the world land on the same one.
- Series names with a number. A yard or an operator runs a series and numbers it. The digits do not make the name unique, they make it collide with the next operator who had the same idea, and they invite transcription errors that a numberless name would not.
- Short common words. The shorter and plainer a name, the more likely it already exists. Names built from one or two ordinary words repeat far more than long or invented ones.
This is not an artefact of one dataset. A separate purchased register, a smaller body of 53,283 hulls, held 2,359 shared names of its own. Any register large enough to be useful has this problem in it.
And names change
The other half of the trouble is that the name on a hull is a current fact, not a permanent one. She is renamed on sale, usually on delivery, because the buyer runs their own naming convention and wants her inside it. She is renamed on a change of manager or commercial operator, so that the ship carries the brand of whoever is trading her. She is renamed on a change of trade or flag, when she moves into a region or a registry where a different name is easier to work with, and sometimes when she goes on a long time charter to a charterer who puts their own house name on her.
Hulls that have been inspected under more than one name in the port state control history, which runs from 22 March 2017 to 3 August 2026 across 44,764 hulls. That is a floor, not a count of renamings. A change between two inspections is invisible, and a ship never inspected twice cannot show one at all.
What actually breaks
Port line-ups are where this bites first. A port authority publishes what its own system holds, and its own system was keyed off whatever was declared at the time. The line-up will happily print a name the ship was sold out of three years ago, next to an agent, a cargo and a berth that are all current. The same happens in circulated position lists, where a name is copied forward from an older list by somebody who has not looked her up since.
Now hand that row to a matcher that knows only the current name. It searches, finds nothing, concludes this is a ship it has never seen, and creates her. The desk now has two records: the real hull, with the particulars, the ownership chain and the fixture history, and a new one carrying today’s line-up row and nothing else. Both look like ships. Neither is complete, and no report will ever add them together.
The failure in the other direction is quieter and worse. If the stale name happens to belong to another hull that still carries it, the matcher finds exactly one confident answer and attaches the cargo, the laycan and eventually the laytime to a different ship. Nothing errors. Nothing looks wrong. A duplicate is a mess you can see; a confident wrong match is one you cannot.
Fold before you compare
Comparison starts by stripping everything that is not a letter or a digit and lowercasing what is
left. That removes the MV and M.V. prefixes, the full stops, the hyphens,
the double spaces and the stray apostrophes that every source punctuates differently.
Case-insensitive matching on its own is not enough, and the same lesson from company names shows
why: Soki Kisen Co., Ltd. and SOKI KISEN CO.,LTD. are one company, and a
case-insensitive match still makes two of them. Ship names arrive with exactly the same variation,
because the people typing them are working from a fax, a manifest or a screen, not from a registry.
Folding is the right thing to do and it makes collisions more common, not less. The 5,027 shared names above are counted after folding. That is the honest trade: folding does not create the ambiguity, it stops punctuation hiding it, which is the only way to handle it deliberately.
Keep the history and search it
A name belongs in a table with dates on it, not in a column on the hull. Every name a ship has been seen under is worth keeping, with where it came from and when it was last seen, and a search should look through all of them at once. When a former name is what matched, the result should say so, because a broker reading “ex NORTHERN VALLEY” next to a candidate resolves in one second what a score cannot resolve at all.
The corollary is that an importer must record the name it was given, verbatim, on the row it imported. The line-up said what it said. Overwriting it with the register’s current name destroys the only evidence of how the row was interpreted, and destroys the audit trail the first time the match turns out to be wrong.
Return a ranked list, not an id
The design mistake is asking the matcher for a vessel id. Ask it for candidates instead, ordered, with the reason each one is on the list. A workable ranking:
- A record with an IMO beats one without. The IMO number is the only identifier that survives a sale, a rename and a reflagging. Validate the check digit before trusting it: 5,900 AIS-derived numbers in the database looked like IMOs and were not.
- A record with a deadweight beats one without. A hull with particulars is a hull somebody has confirmed. This tie-break has a hole in it worth knowing about: 26,254 hulls carry an IMO and no deadweight at all, so the rule quietly demotes them.
- The older record beats the newer one. If a duplicate has already been created, the original almost always carries the real history, and preferring it lets the mess converge instead of spreading.
- With a published deadweight to hand, prefer the nearest within 10 per cent. This is the rule that actually earns its place. Tonnage is what distinguishes two ships with the same name, and it usually distinguishes them by a factor, not by a margin. A line-up quoting a 28,000 tonne ship separates her from a 76,000 tonne namesake without any human involved.
Then set a floor. If no candidate stands clear of the next one, the right output is not a guess, it is a row parked for review, holding the raw name and the candidates it could not choose between. A parked row costs a broker fifteen seconds. A wrong match costs a reconciliation nobody knows to start.
The person reading it already knows
A broker who has worked the ship resolves this instantly. They know she was renamed when the Greeks bought her, they know the other one of that name is a coaster in the Baltic, and they know which of the two the agent in that port means. None of that is in any database, and no ranking function is going to reconstruct it.
So the job of the software is not to be cleverer than the broker. It is to fold the name, search the history, put the plausible hulls in front of them with the deadweight and the flag visible, and ask. Software that guesses in silence is trading a question it could have asked today for a duplicate somebody has to unpick a year from now.
References
- IMO, IMO Identification Number Schemes. The number stays with the hull through a change of name, flag, ownership or type. imo.org
- IMO, IMO Ship Identification Number Scheme, resolution A.1117(30), 2017. imo.org
- Equasis. Ship and company particulars keyed on the IMO number. equasis.org
- Paris MoU, Inspection search. Inspection history looked up by hull rather than by name. parismou.org
Related
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 parked for a human, 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