Guides › Ship pages

Ship page (/ship/<imo>) - complete field guide

The Ship page is the single-vessel deep-dive at /ship/<imo>. It opens with an identity header (#shd) followed by a stack of self-contained analytic cards - load condition, CII, where-to-load-next, operational efficiency, port quality, market valuation and marine weather - then one Leaflet map shared across all tabs, a live-transit control bar, and three tabs: Overview, Voyages, History. The whole page is driven by load(), which calls /api/ship and fires every card's fetch in parallel, then re-runs on a 30-second timer - so the live position, ETA, weather and load state refresh on their own while you read. The tab you last used is remembered in localStorage.

What you see depends on your account

Vessel detail is approval-based. Every member can open any vessel's hub and see the full menu of what the system tracks for her - the service cards are visible as a locked preview; the full workspace - the service pages (Position, Voyages, Performance, Market, Valuation, Where to load, Tonnage Gap…), the classic one-page view and the deep per-vessel data behind them - unlocks per vessel after you star it as a favourite and the administrator approves the request. Once approved, the ship joins your My Fleet and every page and alert for it opens. Administrators see everything.

shipdata.net is sold by membership type. Owner (shipowner) accounts see the full Ship page - track, voyages, performance, port quality, benchmark, valuation, market and emissions - only for the vessels they own (the ships assigned to their account). For every other vessel they get a surface summary: name, type, flag, DWT and live position/state, without the deep history and analytics. Market, FFA, Ports, Congestion and Analytics stay fully open to owner accounts. Admins and full members see every vessel in full. Which vessels count as “yours” is set by an administrator (the assigned-ships list on your account).

The vessel workspace - dedicated service pages

Opening a ship at /ship/<imo> no longer drops you into a wall of tabs. It opens a vessel dashboard (the “workspace hub”): the vessel’s identity, a strip of live status tiles (status, destination, ETA, draught, last seen), a Voyage timeline of her recent journey (load → laden sail → bunker → discharge → live now, colour-keyed - see the Voyages-tab section below for how to read it), an Overview section (particulars, valuation, trading footprint) and a grid of clickable service cards. Every service now has its own dedicated, detailed page - with charts, a plain-language “how to read this page and how to act on it” explainer, and a sub-nav to hop between services without returning to the hub.

The full one-page classic view is always available at /ship/<imo>/classic. Owner-tier accounts see these dedicated pages only for their own assigned vessels; for every other ship they get the surface view (see “What you see depends on your account” above).

Two feeds, one timeline (2026-07). A ship’s voyage history is built from both live AIS and the broker freight feed under one coverage rule: inside the era live AIS actually tracked her, AIS is authoritative (it sees roughly twice as many port calls there); everywhere outside it - before tracking began, inside reception holes, and after AIS goes dark - the broker’s reported port calls become real voyage legs. History accrued this way is stable: when AIS coverage resumes, previously built broker legs stay.

Sister ships - her true class peers

On the vessel Hub, a Sister ships card lists the vessel’s real class peers: same segment, within ±2% deadweight and ±1 build-year. When the build-yard is known (from gathered particulars) for both ships, a shared yard is flagged a confirmed sister (★) and a matching yard number the same series.

Confirmed (same-yard) sisters fill in as vessel particulars are gathered; values are indicative model estimates, not market quotes.

Header: identity, load condition, valuation and the My-Fleet star

The header block (#shd) is the vessel's identity, populated from /api/ship and /api/freight_meta.

Trade-on vs recycle - the asset decision lens

On the Valuation service page, below the depreciation curve, a Trade-on vs recycle card frames the keep-or-scrap decision straight from the model’s own outputs:

A green headline means a clear trade-on; an amber one flags that the trading premium over scrap has thinned to the point where recycling economics come into play. It is indicative (derived from the valuation model, not a market quote).

Header analytic cards: CII, valuation, visited countries, load-next, efficiency, port quality

Below the meta line sits a stack of cards, each fed by its own endpoint and each hidden until its data arrives (so slow networks don't flash empty boxes). In source order:

Live status pill, Ship Card and sister-ship value comps

Every dedicated service page now opens with a live status pill beside the title - the same precise wording as My Fleet (Loading, Discharging, In port, At anchor, Stopped / drifting, Underway - laden/ballast) plus the context detail (which port, or speed and draft). From the vessel hub, the 🖨 Ship Card link renders a printable one-pager - identity and particulars, the model valuation with its range, the projected 12-month commercial view and her top load ports - formatted for print or “Save as PDF”, ready to hand to a charterer or bank. And on the Valuation page, a Value vs sister ships card places her estimate inside the value band of her closest sisters (±2% DWT, ±1 yr, same segment) with a per-sister comp table; confirmed same-yard sisters are starred.

Scenario re-pricing, the fix-now signal and per-leg sea margin

Three decision aids. On Where to load, a market scenario toggle re-prices the whole 12-month rotation at −20% / today / +20% lane rates - voyage costs stay fixed, so the net result swings harder than the gross: that operating leverage is exactly what the toggle makes visible (the map keeps the base case). On the Market service page, a fix now / wait chip reads the week’s spot momentum for her size class: a clearly rising week suggests waiting may pay, a softening one favours fixing now, and flat means decide on the cargo’s own merits - an honest momentum heuristic from tracked voyages, not advice. And on Voyages, the Sea margin table answers “was that slow leg the weather’s fault?”: wind and waves are sampled along her actual track, and each covered leg’s speed deficit is split into a weather-explained part (a simple screening rule scaled to the average significant wave height encountered) and an unexplained remainder that points at hull, engine or deliberate slow-steaming. Weather logging accrues forward only, so the table deepens with every new voyage.

The shared live map, legend, country tinting and night overlay

One Leaflet map (#map, OpenStreetMap tiles, 460 px tall) lives outside the tab panels so it stays visible on every tab. The #cmlab caption ("Track & countries visited", with a #cmsub count of visited countries) carries the full colour legend - every line and marker maps to one of these:

Country tinting - countries with AIS-tracked port stays are shaded blue, deeper with more visits (#5fb3ff, opacity scales with visit count); freight-only countries (a voyage in the feed but no AIS port stay) get a softer dashed teal fill (#39d3c3). Hover any country for a tooltip: visit count and up to 8 recent ports, or "Visited (voyage history)" for freight-only, or "Not visited." The map auto-fits to the AIS track (max zoom 9); with no track it fits to visited countries; failing that it shows the world.

Map weather overlay and the detailed Marine weather card

Marine conditions at the ship's current position come from /api/marine_weather (Open-Meteo, 30-min server cache) and appear in three places, all hidden until data arrives:

Live transit: computed ETA, berth-wait buffer and the time-lapse player

When the ship is at sea with a resolvable destination, the green triangle becomes an animated marker that walks the orange projected route, and a control bar (#xitbar, "▶ Live transit") appears under the map - a flight-radar-style passage simulation drawn on the main map (no second map). If you arrive via #transit in the URL the page auto-scrolls to it.

Position confidence - is the fix fresh, and where is she really now?

On the dedicated Position service page, below the map, a Position confidence card answers the question every owner actually has when they open a tracker: how much can I trust this dot?

Today the gaps come from terrestrial AIS, which only hears ships near the coast - mid-ocean legs go dark for days. As we add satellite AIS, those gaps close: the ghost collapses onto the real marker, the ribbon turns solid green, and the source line shows the satellite share. The card is the honest, at-a-glance read on data quality for that vessel.

Two live feeds, one honest position. We blend our live aisstream AIS with a broker freight feed that fills coverage gaps (mid-ocean, and regions terrestrial AIS misses). The freight feed is a low-cadence snapshot with no speed, so it never overrides a still-fresh AIS track: while a real AIS fix is recent the map shows it, the freight position only takes over once AIS has gone dark, and a broker position that would imply a physically impossible jump (a stale port centroid on the far side of the world) is rejected rather than teleporting the dot. The ship never flips oceans between fixes - you always see the freshest position we can stand behind.

Voyage intelligence (the card above the map) turns that raw position into four calculated reads: a computed ETA to her declared destination from her observed recent speed, plus a berth ETA that adds the destination’s live anchorage-queue wait - shown next to the crew’s AIS-declared ETA and the difference; storm-on-path exposure (how close her projected route passes to an active tropical cyclone, from the free NHC/GDACS feeds); a plain-English read of what she is doing now (slow-steaming, idle/waiting, or off the great-circle); and her dead-reckoned probable position when AIS has gone stale. All are model estimates from the live track, not fixtures.

Voyage replay - animate the ship’s actual past track

Below the map sits a ⏱ Voyage replay bar. Where Live transit (above) projects the ship forward to its declared destination, Voyage replay reconstructs where the ship has actually been and animates it. Press ▶ and a marker walks the assembled voyage; a scrubber jumps to any moment, and the Speed selector controls how fast the days compress.

How the track is assembled. Every observed fix - AIS positions and the voyage-report (reported) positions that fill the open ocean where AIS can’t reach - is merged in time order and cleaned: sub-minute jitter is collapsed and any fix implying an impossible speed (over ~28 kn for a bulk carrier) is dropped as a bad reading. Long gaps between fixes are filled along real shipping lanes, so the replayed path hugs the water and never cuts across land. A route the ship could not physically have sailed in the elapsed time is rejected in favour of the honest straight line.

The coverage label under the bar is deliberately transparent: it shows how many fixes were used, over how many days, how many gaps were filled along lanes, the split between AIS and voyage-report fixes, and the approximate distance steamed (hover for the sea-route estimate vs the straight-line lower bound). Sparse ships produce a coarse track - the label tells you exactly how much is observation versus inference.

Overview tab: particulars, contacts, 3D model, speed/carbon optimizer, time-in-state

The Overview tab (default) holds the registry data and the interactive tools. (Switching to it calls map.invalidateSize() so Leaflet re-measures after being hidden.)

Voyages tab: port stays, raw interval detail and port→port legs

The tab opens with the Voyage timeline - the ship’s journey over roughly the last YEAR told as a horizontal, left-to-right story: where she loaded, each laden or ballast sea leg (with distance, days and average speed), every bunker stop and discharge, ending in a ringed now node for her live position and condition. Port calls sit above the rail, sea legs below, each on a colour-keyed dot - green loading, blue laden, amber bunkering, red discharge, grey ballast (see the legend). Load and discharge cards show the cargo tonnage moved (from the draft change), and each port card now also shows the time spent there - days at anchor (waiting) plus days alongside - so the dwell between two dates is always accounted for (it reconciles with the Time in state panel below); and a port call the live AIS feed missed but the position/voyage feed recorded as a real stay (common in sparse-AIS waters) is spliced back in so it is not silently dropped. the strip scrolls and opens at the live end. It is built from the same legs as the table below, so it respects the Overview date range and appears once she has at least one leg on file.

Below the timeline are three stacked tables (each in its own scroll box). The legs table respects the Overview date range.

Click any leg row to light up that leg’s actual sailed path on the map above: a green dot at the load port, a red dot at the discharge port, and the real route between them (clipped from the cleaned track to the leg’s departure→arrival window). The readout shows the distance actually sailed (from the track) next to the theoretical port-to-port distance - e.g. a coastal leg may steam 48 nm to cover a 40 nm straight-line hop.

Part-discharge (multi-discharge) legs. When a ship part-discharges at one port and sails on still laden to drop the rest at a second port, that onward leg is NOT a new fixture - the cargo was loaded earlier. We detect this from the signed draught change at each call (a discharge, not a load, at the departure port) and tag the leg part-discharge with an amber badge naming the real load port, e.g. Laden · part-discharge · from New Orleans. The cargo lane is then attributed load→discharge (New Orleans→Vlissingen), never the phantom discharge→discharge (Antwerp→Vlissingen). This needs an AIS draught sample at both calls; where it is missing the leg falls back to the plain load/ballast reading.

Load vs discharge is read from the ship’s load STATE across the leg, not the raw draught number. A vessel that loads at one port and carries the cargo on to discharge at the next is shown correctly - Loading at the load port, Discharge at the destination - even when a single freight report only catches one nominal draught at the busy call. So a ship that loads at, say, Tuapse, sails laden to Ambarli and discharges there before ballasting home reads exactly that way: the draught rise is credited to the load port and the fall to the discharge port, never flipped onto the wrong end. A draught change on a leg the ship is sailing ballast (empty) is treated as a stale or de-ballasting reading, not a phantom discharge.

A draught-derived parcel larger than the ship’s own deadweight is rejected as a corrupt reading. Total cargo aboard can never exceed deadweight, so when a stale or garbage draught (often picked up across a long AIS-dark gap) implies a load or discharge bigger than the whole vessel, the timeline shows a neutral port call instead of an impossible tonnage. And while a ship is still laden and steaming on to a further port, an intermediate call where the draught did not change is shown as a port call, never a discharge - the real discharge is the destination still ahead (e.g. a Bissau cargo passing an anchorage off South Africa is delivered at the onward port, not where she merely paused).

The timeline now shows the FULL call history, not just AIS-confirmed legs. Ports the voyage-report feed recorded but our AIS-derived legs dropped (early calls before AIS coverage began, or bunker/​passing stops like Las Palmas) appear as muted “Reported port call” or “Reported destination” breadcrumbs, slotted chronologically among the confirmed legs. They are clearly marked as report-sourced and NOT AIS-confirmed, and never carry a load/discharge figure - so you see everywhere the ship has been (e.g. São Luís and Las Palmas), while the confirmed legs stay visually distinct. The minute-by-minute track through an AIS-dark stretch between calls remains uncollected.

Ballast reference & the bunker-likely tag

Each ship carries a ballast reference - the lightest draught she has been seen at, which approximates her empty (ballast) draft. It is shown as a caption above the Voyages table once she has enough draught history on file, and it deepens over time as more of her past accrues (a single stray-low reading can’t set it - the value needs cluster support).

Against that reference, a port call where she arrives near her ballast draft and departs only slightly deeper (a small +0.1-0.6 m bump - the size of a bunker stem or stores, not a cargo parcel) is flagged with a dashed ⛽? bunker-likely tag. This is a low-confidence hint, not a fact: AIS draught is crew-entered and coarse, and a small bump can also be a part-cargo top-off. The tag only appears when the reference is trusted (enough distinct draught readings); confirmed bunker stops keep their solid ⛽ badge, while the dashed tag marks the extra cases the ballast reference suggests.

Voyage economics - what each laden leg likely earned

On the Voyages service page, below the port→port leg list, a Voyage economics table turns each completed laden leg into an indicative profit-and-loss line - the closest thing to a per-voyage result the platform can produce without your actual fixtures.

The header tiles roll the legs up into a net result, an average net $/day, total days at work and distance. It is an indicative model (market lane rates and a class break-even, not your actual freight invoices or bunker bills), and it sharpens as more voyages accrue. Distances are great-circle between the port centroids today; they tighten once continuous satellite tracks land.

History tab: MMSI, voyage/static changes and raw position changes

The History tab is the audit trail - useful for spotting identity changes, re-flagging, draught manipulation or AIS gaps.

Benchmark tab: rank among true peers + best-operated ships

The Benchmark tab answers the one comparison that matters for a single vessel: how does it stack up against ships just like it? The peer set is this ship's true peers - every tracked vessel within ±10% of its DWT and ±3 build-years.

When a ship has too few exact peers the tab widens to its segment. Below the 10 tracked voyage-day floor the tab now shows a provisional, low-confidence score from whatever data we already have - clearly flagged, with the progress shown (e.g. 5.6 / 10 tracked voyage-days) - so you can read the ship's standing immediately rather than wait. These provisional figures are computed exactly like the full score but from a small sample, so they are unstable and can swing as the ship sails; they firm up once it crosses 10 days. (A ship with essentially no voyage activity yet shows only the progress line, no score.) That count is voyage activity - sea time plus port time from completed legs - not calendar days of AIS coverage: a ship on the map for weeks but mostly idle in one port accrues tracked-days slowly. The window is 365 days (long dry-bulk voyages need it). Note the public worst/best Rankings board keeps the full 10-day floor - a one-leg fluke never tops it - so the provisional score appears on the ship's own page only.

Performance tab: speed, draught & machine-health signals

The Performance tab reads the ship's AIS speed time-series and draught history to surface how the vessel is actually run - and to flag trouble.

Honesty: we store no historical weather, so this is not a strict wind/wave-corrected sea-margin - the speed-loss trend is an unexplained-loss proxy you read alongside weather. All figures come from partial AIS (crew-set draught, intermittent fixes) and are directional, not audited. When a ship is mid-voyage, her current voyage is now folded in too: every steaming fix on the open leg is classed laden or ballast from the ship’s own live draught at that moment (the same draught rule the rest of the site uses), so the speeds are up to date - not just “as of her last completed voyage.” A small “includes her current voyage (laden/ballast, live)” note confirms it. Only when we genuinely cannot read her current draught - it is missing, or the open leg straddles an un-closed load/discharge and a fix sits right on the change - does the page fall back to labelling the figures as her last completed voyage, rather than guessing a stale window as “current”. The same drift/breakdown scan feeds the daily ops watchdog, which also publishes a fleet speed-decay leaderboard - the ships whose laden speed fell most this fortnight (a fouling/engine screen) - to the morning Telegram digest. And we now sample wind/wave along every at-sea ship's track (stored in weather_hist); a Sea state KPI shows the conditions the speed was made in, and as that record deepens it powers a true sea-margin (speed loss explained by weather vs by the hull/engine).

Market tab - earning power from here + a class FFA snapshot

The Market tab answers a chartering question directly: from where this ship is right now, what would it earn sailing laden to each destination region? It reads the ship’s current region, then for its DBPI class lists the estimated daily hire ($/day) to every destination, ranked best-first, with the laden distance, voyage days and the trade direction (how headhaul vs backhaul the lane is).

How this relates to the Market page. These are route-specific daily-hire estimates - the per-lane route_rate trade-balance model, for THIS ship from where it is now. That makes them a voyage-level figure that can sit below the market-wide band headline on the Market page, which is the bottom-up busiest-lane average for the whole size class. Same market, two related views: the headline level vs what one ship earns on one lane. The same per-route model also feeds Forward Voyages, the Fleet Optimizer and the Rankings TCE.

Region granularity follows the ship. Above the 17.5k-DWT macro cut the destinations are the broad basins (Continent/Baltic, Far East, ECSA, Med, US Gulf, Persian Gulf, …); smaller classes drill down to country-level regions. So a Panamax loading in the Baltic sees Baltic→Far East, Baltic→ECSA, Baltic→Med and so on, each with its own $/day.

Ship FFA snapshot. At the top sits a momentum card for the ship’s class: the current SPOT daily-hire, how far it sits above/below a balanced market, 1-day and 7-day change, and the strongest lane in the class right now - plus the headline DBPI, LSR and port/sea ratio. It’s our DBPI-derived forward read (there is no live FFA feed), so treat it as market commentary, not a fixture quote or investment advice. Rates are daily-hire equivalents from the trade-balance model; voyage days assume the ship’s current speed plus typical port time.

How firm is each number? Every lane carries a confidence mark - strong (many real laden voyages on the exact lane), moderate (some), or modeled (no direct fixtures yet, so the rate is inferred from regional rates & trade flow). A coverage line shows how many lanes are observed vs modeled and how many real voyages sit behind the view. This is deliberate: today many macro lanes are still modeled, and as the voyage history fills they cross to observed and the picture sharpens - you can watch the confidence rise over the coming months.

Operational profile - the ship's realized capability

At the top of the Overview tab, the Operational profile summarises how this specific ship actually performs, built only from its observed voyages and AIS track: realized speed (median AIS underway speed, with how it compares to the design service speed), the voyage-effective speed (door-to-door, including port approaches), typical sea days per voyage, port turnaround (wait + berth days), and the laden ratio (share of voyages loaded). A confidence mark shows how many completed voyages back the profile.

This is deliberately a ship-specific, accruing picture - thin at first, sharpening with every completed voyage. It is the foundation for forward planning: once a ship's real speed, turnaround and employment pattern are well-observed, the system can project a realistic forward schedule for it. A planning aid from observed behaviour, not a guarantee.

How the Where-to-load page is laid out - SPOT vs FIXED, in 3 stages

The Where-to-load page opens with a one-line status band that answers the only question that changes what you should do with a ship: is she OPEN (SPOT) or FIXED?

So a laden ship that just loaded and sailed is OPEN, not fixed - she opens at discharge and the page shows where to load from there. Only an empty ship steaming to her load berth is FIXED. (If her load condition genuinely can’t be read she is treated as OPEN.)

Below the band the page reads top-to-bottom as one decision flow, in three stages: 1 · Where should she load today? (the SPOT hero or the FIXED benchmark, plus the Positioning vs fundamentals strip - is the fleet crowding into her region ahead of cargo, or is cargo outrunning tonnage?); 2 · The period ahead (the projected forward voyages and the at-a-glance KPIs); and 3 · The 12-month picture (the annual rotation with its Optimise-for tabs). The older overlapping tools - the four-policy scenario compare and the daily reposition advisor - are tucked into a collapsed Advanced section at the bottom; nothing was removed. For an OPEN (spot) ship, stage 1 now opens with a visual load-decision block: a colour-coded verdict (FIX HERE / BALLAST to a basin / WAIT), four headline numbers (best net $/day, the gap to break-even, the ballast days to get there, and load demand), and a bar chart ranking every reachable load region by net $/day with the break-even line marked - so the earn-versus-empty-leg trade-off reads at a glance. All $/day figures are rounded to the nearest hundred.

Forward Voyages - where this ship is likely to trade next

The Forward Voyages tab projects the ship's next few employment legs: starting from where it is now, a chain of load region → discharge voyages, each with a projected date window, voyage days timed by this ship's own realized speed, an estimated daily hire, and a confidence mark. A horizon line sums the total days; a survey-due note flags any dry-dock window that falls inside it.

It is built from how the peer fleet of this class typically employs a ship from each position (feasibility + observed discharge patterns + port activity), priced with the trade-balance rate model and timed by the ship's operational profile. Treat it as a projection, not a committed schedule or advice - confidence is low while the voyage history is thin, and both the accuracy and the horizon grow as coverage builds. This is the path toward a true forward (eventually 12-month) schedule.

Each leg is shown port-to-port - the projected load port and discharge port (with regions) and the days for that hop - so the chain reads as a sequence (load A → discharge B, then B-area → discharge C, and so on). Two earning estimates sit side by side per leg: a Model rate (the trade-balance lane model) and an FFA rate (the ship's FFA class spot scaled to that lane). As more voyages are observed the predicted ports, timing and both rates auto-refresh - the projection gets sharper and longer on its own.

The chain is a rotation, not a loop. Each step remembers the load and discharge ports it has already used earlier in the same projection and down-weights them, so the sequence moves through the ship's realistic round of trades instead of repeating the single most-likely hop every leg. A ship with only one strongly observed pattern can still show it more than once - the repeat is suppressed only where the data offers a competitive alternative.

Port time is now observed, by tonnage. Each leg’s days include the real turnaround at its load and discharge ports - the median berth (load/discharge) plus anchorage wait that vessels of this ship’s DWT class actually record there, drawn from the port pages’ "Turnaround by tonnage" table. Hover the Days cell to see the split (ballast + laden + port, with the load and discharge port days broken out); a small "incl. N d port" note marks legs timed from observed turnaround rather than a flat estimate. Where a port has no class history yet the leg falls back to a modelled port time and the header says so. As ports accumulate calls the port time - and therefore the whole horizon - converges on reality, the foundation for accurate net 365-day voyage totals.

Tonnage-scaled realism. Every next-load pick - here, in the annual schedule and in the scenario compare - runs through the same rule: the candidate must be a real, reachable load port (the ballast.json feasibility matrix + the ship’s age/size limits), within her honest ballast range for her deadweight (a bigger ship can reposition further), and the onward laden leg must clear a size-scaled minimum (a Capesize or Panamax trades ocean voyages, not a few-hundred-mile coastal hop). That floor is why a Panamax now projects a realistic handful of long-haul voyages a year rather than a string of short hops, and why synthetic non-port positions never appear as a suggested load or discharge. The projection also only offers a discharge the vessel can physically reach: each port’s real size ceiling is learned from history (the largest tonnage at least two different ships have actually brought in laden), so a big bulker is never routed to a restricted river port it cannot enter - a one-off bad position never lifts that ceiling - while navigable rivers that genuinely host large ships (e.g. the Yangtze or the Paraná upriver) stay open, with no hand-maintained river list. Sea-river vessels keep their river ports.

Cargo Routes tab. The Cargo Routes page - its own card on the ship hub (and a tab on the classic view) - answers a different question - not where this ship will go, but what cargo lanes are actually moving around her right now, for her size. It snaps her live position to the region she is in (or, if she is mid-ocean, the region she has declared she is heading to), matches her to her true peer cohort - ships within ±10% of her DWT and ±3 build-years, the same definition the Benchmark tab uses - and pulls the matching laden trade lanes straight from the fleet-wide Cargo Routes engine - load → discharge, voyage count, her estimated TCT (the indicative daily time-charter rate for her size class on each lane - the live lane rate where the market prices that direction, else her band’s current market level) and average days over the last 12 months. If too few peer lanes are trading her region it gracefully widens the cohort (±15% DWT / ±5 years), and as a last resort falls back to her broad tonnage band - the line under the title always states which basis produced the rows. Each row’s Details → opens that lane’s full history page. Same laden-only engine as the main Cargo Routes board, just pre-filtered to her region and band, so you can see at a glance what employment is on offer near an open ship.

Annual schedule - a projected 12-month rotation

On the Where to load service page, below the projected forward voyages, an Annual schedule card extends the rotation to a full 12-month horizon: it keeps chaining legs until about a year of employment is filled, then prices each at today’s lane rate. You choose the objective with the Optimise for tab strip - the same rotation re-ranked for a different goal, like a Scenario Compare for the whole forward chain:

It is an indicative planning lens - ‘what a year of this ship’s typical trading looks like’ - not a committed schedule. Each leg is projected at its own calendar month, so the seasonal demand index tilts the chain month-by-month (built from voyage history). It sharpens as the ship’s own history accrues; a dedicated 2-year route-seasonality forecast graduates automatically as that runway fills.

A map under the summary draws the whole rotation: dashed orange ballast legs and green laden legs, with the net $/day labelled on each laden leg and load/discharge port pins you can click for the details.

The rotation is also draft-checked: each load/discharge port is compared to the deepest laden vessel ever observed calling there. Where a deeper ship has called the port is proven for her draft; where none has, the leg is flagged - verify she fits at full draft. It is observational (a lower bound), not a charted depth.

Age-stratified PAI & RAI - scored for this ship's own age cohort

Activity isn’t age-blind. A 3-year-old eco ship and a 22-year-old hull of the same size do not see the same ports and routes: many terminals, receivers and charterers screen on vessel age, so the busiest loading ports and the busiest routes differ by age. Every tonnage band’s PAI (port activity) and RAI (route activity) is therefore computed three times - once for each age cohort: under 15 years, 15-25 years and 25 years and over - alongside the headline all-ages number.

The Annual schedule (and Activity-mode Forward Voyages) automatically scores each leg on this ship’s own age cohort. A leg ranked on her age band carries a small ●<15-style marker next to its PAI/RAI; a leg with no marker fell back to the general all-ages number because that exact port or route didn’t yet have enough same-age voyages to stand on its own. This is deliberate honesty: an age cell is only published when at least two vessels of that age actually loaded there (or ran that lane), so a 3-band split appears only where it is real - never invented.

Age also acts as a hard block, not just a tilt. Before a load region is even ranked it is dropped from the candidate set when the ship is over the empirical age ceiling for that region and size (the P90 of ages that have actually loaded there), so an over-age vessel is steered away from markets she realistically can’t fix rather than shown a busy port she would be turned away from. The header line names her cohort and how many legs scored on her own age band versus the general fallback. (The Earnings $/day view stays purely on money and is unaffected by the age tier.)

Where-to-load track record

The annual schedule now keeps itself honest. Every week the system logs the first projected loadings for tracked vessels, and as the projected windows close it grades each prediction against what the ship actually did: same port, same country, or a miss. The Where-to-load page shows the resulting track record badge - “X% first-load hit (… graded, … pending)” - a true out-of-sample score that the model earns voyage by voyage. While the first predictions are still maturing the badge simply says the record is building.

Next port forecast (Where to load)

The Next port forecast card on the Where-to-load page answers the most natural question about any ship: where does she go next? It is built from what her size band actually did - every observed move in our voyage history is counted: after discharging at port D, where did band peers sail to load next; and for a laden ship, where cargo loaded at port A typically gets discharged.

You get the top-3 candidate ports with probabilities, the evidence behind each (how many peer moves), distance and approximate sailing days. For a laden vessel the card shows the expected discharge first, then the likely reload conditional on it. Every answer states its evidence basis honestly: the most specific evidence available - exact-port history when it runs deep enough, broader cohort behaviour as an honest fallback when it is thin - and a THIN flag when the sample is small.

This is a behavioural projection, not a fixture prediction: single-ship decisions depend on private fixtures no one can see in AIS. That is why every forecast is also logged and later graded against the port the ship really loaded at next - the accuracy record builds in the open, the same out-of-sample discipline as the annual schedule and the market forecast.

Deep-history overlay: the suggested load ports now include ports that regularly serve this ship's size across the full berth-call record - marked with a green dot - even if no peer loaded there in the recent window. A quiet week no longer hides an established load port for her class. The live peer-demand ranking is unchanged; these are added below it, clearly flagged.

Scored from where she opens: a laden ship (or one steaming to a declared open port) is scored from the country she discharges in - she ballasts to her next load from there, so the candidate load regions are the ones ballast.json says she can reach from that open region for her tonnage, not whatever is near her current mid-voyage position.

Operational feasibility - vessel age & trading history

The where-to-load recommendation and the My Fleet open-tonnage board check each candidate against what the ship can operationally do, so the engine never steers a vessel into a market it realistically can't work. Two checks re-weight every candidate (the candidate list is unchanged - only the ranking moves):

Vessel age vs market - learned from real data. For every country and ship-size class we measure, from our own voyage history, the ages of the ships that have actually loaded there, and take the practical ceiling (the 90th-percentile age). A vessel over that empirical ceiling for a market is never recommended there - it still appears in the candidate list, marked with the reason, but it can't be the headline pick. This is fully data-driven: which markets are age-strict and at what age emerges from the data, not from a fixed rule - iron-ore majors (Brazil, Australia) come out young and strict for big ships, while scrap and small-bulk ports run far more lenient, and the ceiling auto-updates as more voyages accrue. It is an observed-fleet-age signal (a proxy for terminal and charterer age vetting), not a published policy.

Trading history. The engine also compares each candidate against the countries the ship has actually traded; a region she has worked ranks at full weight, one she has never been to is nudged down slightly. Ships with little or no history aren't penalised - they rank exactly as the pure-earnings model would, so the safeguard only ever removes operationally-implausible advice, never invents it.

Country-level recommendations. Where-to-load now ranks individual countries (not broad basins) for every ship size: each reachable country is valued by its region's live $/day, then re-weighted by the empirical per-country age ceiling and the ship's own trading history, so you see exactly which countries pay best and will take your vessel given her age. The top 20 are shown (with a ‘show more’), each tagged with its basin.

Scenario compare - optimise for cost, money or carbon

Right under the next-port forecast, the Scenario compare strip answers the question every owner actually argues about: follow the market, or optimise? It scores the same candidate universe as the Reposition advisor and the live-market cards - every load region that is ballast.json-reachable from where she next opens, vetted for her age and size, drawn from next_voyage_options and anchored on her open/discharge region - if she is laden or steaming to a declared open port, the search starts from that region's country (she ballasts to her next load from there), not her mid-voyage AIS waypoint. Out-of-range now means not ballast.json-reachable for her tonnage, not merely far. Each region carries one net round-trip TCE; the four policies simply re-rank that single set:

Each tile reads load region → discharge region with the single net TCE/day figure, the empty miles, the CO2 per laden day, and the dollar delta against Market-follows - so a trade-off like “+$4,000/day AND less CO2 by NOT following the crowd” is visible at a glance. Rates come from the live lane model, fuel from her class profile at the latest VLSFO price. A screening comparison, not a fixture calculation - the assumptions are printed under the strip.

Ranked by activity (PAI): the reachable load regions are ordered by their Port Activity Index - how busy the busiest loading port in that region is for her tonnage - with the net $/day on every card, so you see where the cargo actually is first and the earning rate alongside. The green-highlighted card stays the best-$/day pick.

Idle cost - the demurrage meter

Idle cost (demurrage meter). The performance tab now shows the opportunity cost of waiting: the days the ship sat at anchorage (awaiting a berth or orders) valued at her band's daily market hire - the money she could have earned steaming a cargo instead. Berth time (working cargo) is excluded; that is productive. It is indicative (hire is the live band rate, not a fixture), but it puts a dollar figure on idle time that the utilisation percentage alone hides.

Where to load: Demand vs Supply for ships like her + busiest load ports

On the Where to load service page, below the “Where should she load today?” verdict, two reads make the call concrete. Demand vs Supply (ships like her) runs the same demand-vs-supply verdict you see on the Market page, but scoped to her peer cohort - every ship within ±10% DWT and ±3 build-years of her. For each region those peers loaded, a coloured chip reads demand-led (cargo getting abundant), supply-led (ships getting scarce), cooling or balanced; the region recommended above is marked with a ★. Demand is read off how heavily the cohort actually loaded (median load factor); supply from her band’s inbound-ballast change. It is a present-state positioning read, not a forecast, and a single cohort slice is thin - regions without enough loads show ‘thin sample’ honestly.

Busiest load ports. Once a region is recommended, the page lists the specific load ports inside that region that ships like her actually use - ranked by peer demand, each with a PAI loading-activity badge, the number of peers that loaded there, and the ballast distance. So the advice is ‘load at this port in the region’, not just the region. Every port shown is guaranteed to sit inside the recommended region.

Vessel particulars (measured) - speed, consumption & capacity

The right-hand Performance & capacity card on a ship page shows her measured particulars - drawn from a curated per-ship database, not guessed from her size band. When we hold them, you see her real:

These are warranted, approximate figures (a ship is quoted with an about-half-a-knot and about-5% tolerance) and the card is display-only for now - it does not change the earnings, TCE or rankings numbers elsewhere on the site. The card appears only for ships we hold particulars for, and carries a measured tag so you can tell a real curve from a band default. A later step will let these measured curves drive the per-ship voyage P&L and CII once each ship's figures are confirmed.

Agency fee (PDA) estimate

The ship page gives the agency fee two ways. The Agency fee (PDA) estimate card has a port picker - start typing a port name or LOCODE, choose it, and see her indicative agency fee there. And on the voyage timeline, each loading / discharge call now carries an Est. PDA line, so you can read the agency-fee component port-by-port across her recent voyages (anchorage calls included).

It is an indicative agency-fee component only - a quick size-and-port-scaled figure, not a full proforma DA (it excludes pilotage, towage, port dues, cargo-handling). Always confirm with your agent. The raw rates are commercial and members-only; the page shows only the computed fee.

One engine behind every $/day on this page

The same ship, the same number, everywhere. Every earnings-per-day figure on a ship’s page - the Market tab’s “best net TCE from here,” each leg of the forward voyage chain, and the Fix This Cargo quote - is now computed by the one voyage scorer that drives the My Fleet board. So a hull can no longer show one $/day on one card and a different $/day on another: they all run the full-cycle net time-charter equivalent (hire minus ballast bunkers, port days and canal tolls), from her real open position.

Where a page also shows the raw lane rate, it is now labelled plainly as gross hire and kept as a secondary column, so you can see both the headline market rate and what this specific ship actually nets after repositioning. In the Speed & carbon optimiser the sweep still holds the cargo’s gross freight fixed (that is the correct basis for a speed decision - netting it would double-count fuel the sweep is already re-optimising), and the ship’s net employment TCE is shown right beside it as the board-consistent reference.

Route Yield Calculator (July 2026)

The ship page now has a Route Yield section: pick any load region and any discharge region and see what that trade pays for this vessel - the market lane rate (position-neutral daily hire for the size class, the same figure the globe and board publish) next to this ship's net daily (its expected TCE from its current position, after the ballast leg and its real fuel and speed - the same engine behind the fleet board). Hover any basin on the built-in map to see today's lane rates from there to every other basin for this ship's size class, or pick two exact ports (e.g. Izmir to Jebel Ali): regional rates are referenced at each basin's bunker hub, and the hub-to-port steaming legs are added at the ship's own speed and consumption for a port-adjusted daily figure. A forward strip also projects what she would earn on the same route in each of the coming months, re-anchored month by month on the forward curve for her size class.

Max-Lift Intake Envelope (Route Yield)

On the Route Yield page, picking a load and discharge port also runs the Max-Lift Intake Envelope - an evidence-backed answer to one question: how many more tonnes can this ship provably lift on this pair? The envelope is the tightest of four limits: the deepest observed laden departure draft at the load port, the deepest observed laden arrival draft at the discharge port (both from ships in the same DWT band, with dated examples you can verify with your agent - sister ships are highlighted), and the published maximum draft at either end. Metres convert to tonnes via the ship's own TPC.

The card is honest by design: a single observation is labelled thin evidence, gaps smaller than the 0.30 m draught noise floor are called out as measurement noise, fresh-water ports are flagged (no allowance applied yet), and if nothing is observable it says so instead of guessing. When the envelope is deeper than the ship's marks, that is proof peers sailed full; when it is shallower, the card shows the tonnes the port provably costs her.

More guides