Every input we use, what each one can and cannot tell us, and the order in which the engine makes its decisions — from what counts as water to when a route is refused. One page, every rule, with the numbers measured on the planet graph now in production.
Read this first: a route is a proposal, not a clearance. ArgoRoute helps a skipper plan a passage. It does not replace the official chart, the notices to mariners, the sounder or the lookout, and it must not be followed blindly. Every route says which sources it rests on and where they are weakest, so you can check those places before you sail.
What the engine does not know: tides, currents, weather, traffic separation schemes, seasonal ice, bridge clearances and temporary closures. Its depths are on mean sea level, not chart datum, and its hazard list is incomplete. Under maritime law the master alone answers for the vessel's safety.
Six sources, each trusted for one question only. Where a source is silent we say so rather than fill the gap.
| Source | What it decides | What it cannot tell us |
|---|---|---|
| OpenStreetMap land polygons | Where water is, at vector precision. When the coastline and the depth grid disagree about whether there is water, the coastline wins. | Nothing about depth. |
| GEBCO 2026 grid | How deep, from a global raster of 15-arc-second pixels, about 464 m across. | Only 28.7 % of the seafloor behind it is measured; the rest is predicted from satellite gravity or interpolated. A pixel wider than a canal reads its banks. Depths are on Mean Sea Level, while charts use Lowest Astronomical Tide, so in tidal water ours read deeper by roughly half the tidal range. |
| GEBCO type identifier (TID) grid | How each pixel's depth was obtained. Codes 10–13 and 17 mean a vessel's sounder recorded it; 14 and 15 mean an electronic chart sounding or lidar. | A vessel track proves a hull passed, not which hull, so it settles whether a basin connects and never what draught fits. Code 16, depth from water colour, and the predicted codes count as not sounded. Code 0, land, is not evidence of land: a narrow strait between islands gets it too. |
| OpenStreetMap seamarks | Charted hazards: rocks, wrecks, reefs and obstructions, 1.60 million polygons and 1.25 million lines. They close water and are reported along every route. | Coverage is volunteer-made and uneven. Historic and non-dangerous wrecks, 7,867 of them, do not close water; nor do the 3 hazards inside a published fairway. |
| Published depths | The canal or port authority's figure for 35 named passages and 8 fairway centre lines, among them Suez 20.1 m, Panama 15.2 m and the US federal channels. | It describes a dredged channel a few hundred metres wide that shifts with the season. It is a promise about the fairway, not a measurement under your keel. |
| OpenStreetMap ports | 18,740 ports, of which 10,617 lie close enough to navigable water to be linked into the graph. | The rest sit on lakes or far up rivers outside the sea graph. |
Every rule runs once, at build time, in this order. The result is 357 million hexagons, each carrying a depth and the origin of that depth.
An H3 hexagon is kept whole only if it is far enough from the coast for its size, touches no land, and every GEBCO pixel under it is deeper than 20 m. Otherwise it splits into seven children. Open ocean stops at resolution 3, about 138 km across; coasts go down to resolution 10, about 130 m.
A resolution-10 cell survives only if it touches no land. Named passages go finer, down to resolution 13 in canal locks. A canal cell that touches its bank is kept when its centre lies in water, so a narrow canal is not lost to its own walls.
Each charted hazard enters the land index as a square of about 200 m, and any cell it touches is closed. Closing too much water is the safe direction to err.
Every cell stores the GEBCO pixel at its centre. A coarse cell survived rule 1 only because every pixel under it is deeper than 20 m, so open water is never deep at its centre and shallow in a corner.
On a declared fairway line the published depth always applies. Inside a passage it applies only where the raster is dirty, reading land or catching a shoreline; a clean sample is left alone, because real sandbanks are clean samples too.
Where water the coastline shows as open is sealed off by pixels reading land, the build may cross up to 4,500 m of such cells to reach the open sea, over at most 15 rounds. It never crosses unmeshed land or a canal wall. The depth is borrowed from either side and marked inferred: 3.08 million cells, 0.86 % of the graph.
The TID grid and the rules above give each cell one byte saying where its depth came from. That byte travels with every route.
A route is graded by the weakest cell it crosses, never by an average. This is the ranking the engine uses to find it.
| Origin | How a cell gets it | Measured here? | What to do | Safe at low tide? |
|---|---|---|---|---|
| unknown | No origin recorded. | No | Treat the depth as unknown. Do not plan through it without the chart. | No. Nothing is known about this depth. |
| inferred | A bridge from rule 6. The depth is borrowed from neighbouring water. | No | Nothing measured this water. Transit on sonar and sounder, or not at all. | No. Borrowed depth on mean sea level; low water takes off up to half the tidal range. |
| river channel | On a river or estuary fairway line, with the port authority's dredged depth. | No | Follow the buoyage and the local notices; the channel moves. | Usually. Channel depths are published below a low-water datum, Plymouth at 15 ft below mean lower low water. Check the datum in the notice; channels silt between dredgings. |
| datum zero | The grid reads 0 m: a shoreline or a drying flat. | No | Do not rely on the stated depth. | No. This water dries, or nearly, at low tide. |
| baseline, straddling shore | A GEBCO pixel that caught a cliff or a beach and reads deeper than the water beside it. | No | It reads deeper than it is. Sound your own depth. | No. It already reads too deep, and it is on mean sea level. |
| baseline | GEBCO clear of any shore, but predicted or interpolated, not sounded. | No | Most likely a prediction. Check the chart, above all near the shore. | No. Mean sea level: at low water expect up to half the tidal range less. |
| measured | TID 14 or 15: an electronic chart sounding or lidar. | Yes | A real sounding, but averaged over a 464 m pixel. A small shoal can hide inside it. | No. A real sounding, but GEBCO stores it on mean sea level. |
| track observed | TID 10–13 or 17: a vessel's sounder recorded this pixel. | Yes | One vessel's line through the pixel, not the whole pixel, and not your draught. | No. A real sounding, but GEBCO stores it on mean sea level. |
| canal published | Inside a canal, with the canal authority's figure. | Yes | Check the current notice to mariners. | Yes, as far as the authority's figure goes: a permitted draught or a depth below its own low-water datum. |
| surveyed | A higher-resolution hydrographic survey. | Yes | Find out which datum the survey uses before comparing with the chart. | Only if the survey is on chart datum. Check before relying on it. |
The engine does not correct for the tide. A cell is open when its stored depth is at least the draught, with no tidal margin. Wherever the depth is on mean sea level, low water can take off about half the tidal range: about 5 m in the Bristol Channel, almost nothing in the Baltic. Plan the passage for the state of the tide, from the tide tables, not from this depth.
The engine tries the cheapest step that can be trusted first and stops at the first one that answers. A cell is open to a vessel when its stored depth is at least the draught. A cell with no data is closed to any draught.
If the straight line between two pins in water stays clear of the coast by the vessel's shore buffer, and every cell under it is deep enough for the draught, it is the route. No search runs.
Each end snaps to the nearest cell deep enough for the draught from which the vessel can reach open water through 500 cells of the same filter. A deep pocket ringed by shallows is not a start.
A pin on land routes from the coast. The walk ashore is flagged as a land leg, left out of the distance, and dropped from the drawing beyond 5 nm. A pin more than 50 nm inland is refused, and so is a pin in water that could only reach suitable water across more than 5 nm of land.
Above 2,500 nm the route is assembled from a layer of 87,210 coarse cells whose 329,440 edges each store their fine path and controlling depth. Only the two legs to the pins are searched, outward from each pin. The Arctic is used only when a port lies north of 62°.
Shorter routes are searched with A* inside a corridor drawn from the coarse layer. On long corridors the search is steered along the corridor rather than along the great circle, which would point through land at every bend.
If the corridor search fails, the reachable water is grown from both ends, up to 300,000 cells. If one end runs out, that end is boxed in at this draught, and the engine answers at once rather than search the planet for an exit that does not exist.
Otherwise A* runs without a corridor, up to 10 million cells, and the coarse layer is tried once more as a rescue.
Only when every strict search has failed may the route cross cells that read shallower than the draught but carry a vessel track. Such a route always says so: it was found by track topology, not by depth.
No route is an answer. A port shallower than the draught should be refused, and we count that refusal as correct, not as a failure.
Smoothing keeps its distance. The cell-by-cell path is straightened by line of sight, but no straightened line may cut the coast, the shore buffer, or come within 50 m of a charted hazard. The clearance is adjustable up to 500 m.
The route comes with the evidence behind it, so the skipper can judge it rather than trust it.
| Field | What it says |
|---|---|
| Depth profile | Depth and origin at every waypoint. |
| Data confidence | The weakest origin anywhere on the route, with a plain sentence about what it means for the skipper, and the vertical datum, Mean Sea Level. |
| Safety telemetry | Caution beyond 85 % of the vessel class's offshore limit, high risk beyond it, extreme beyond three times it; a shallow alert under 1 m of clearance below the keel. |
| Hazard watch | Every charted hazard within 500 m of the route, nearest first, how often smoothing was refused for one, and whether the check ran at all. An empty list from a server without hazard data must never look like a clean route. |
| Land legs | Which segments cross land, so they are never drawn or counted as sea. |
No graph reaches production until it passes all of these. Each check catches a fault the others cannot see.
| Check | Question | Production today |
|---|---|---|
| Named passages | Do 19 critical canals and straits route? | 19 of 19 |
| False passages | Does any route cross water that should not connect, such as into a landlocked sea? | 0 of 14 |
| Random port pairs at 2 m | Is each of 400 random pairs answered right, a route or a correct refusal? | 394 of 400 |
| Sealed ports | Did a new build cut off a port the previous one reached? | No change |
| Short-route latency | How long does a 5–200 nm route in the Adriatic or Aegean take? | p50 0.36 s · p95 0.93 s · p99 1.15 s |
The six that are left wait for data. Each of the remaining random pairs ends at a port behind water that no source has published a depth for. We open a passage only on a published depth, a newer GEBCO grid that marks the cells as measured, or new vessel soundings. Forcing one open would make the numbers better and the routes worse.