See trade flows before the statistics.
Tankers, bulkers and port activity show where commodities are moving days or weeks before official numbers come out. SeaSignals turns those movements into clean, backtestable series.
from seasignals import Ocean ocean = Ocean() # Weekly laden VLCC departures from the Gulf flows = ocean.ports.calls( region="arabian_gulf", vessel_class="VLCC", laden=True, interval="1w", as_of="2024-06-01", # point-in-time ).to_pandas()
What SeaSignals gives you
Flow indices
Port calls and tonnage by vessel class, trade lane and region, rolled up daily or weekly.
Floating storage
Laden vessels that sit idle for long periods, a signal for contango and oversupply.
Supply shocks
Storms near export terminals and refinery ports, joined to the vessels and cargo they put at risk.
Backtest-ready history
Point-in-time data with as_of, so your models only see what was known at the time.
From signal to decision
Every layer shares one grid, one clock and one set of IDs, so combining them takes a single query instead of a data project.
Pick the flows you trade
Choose commodities, vessel classes, origin and destination regions, or specific terminals.
Test the signal on history
Pull years of point-in-time series and check how they lead the official data you care about.
Run it live
Stream the same series into your models and dashboards, with alerts on unusual moves.
Same dataset, other questions
Shipping & logistics
Fleet visibility, ETAs and port delays, with weather risk built in.
Learn more →Insurance & risk
Storm exposure, voyage risk scoring and behaviour anomalies.
Learn more →Offshore & energy
Weather windows, wave forecasts and site conditions.
Learn more →Research & conservation
Wildlife movement, ship-strike risk and illegal fishing signals.
Learn more →Developers & builders
One clean API for marine apps, maps, games and AI agents.
Learn more →Tell us what you're working on
We're shaping early access around real use cases.