Inspiration
About a fifth of the world's oil passes through the Strait of Hormuz. We wanted to see whether tanker movements there can be tracked with open data and connected to oil prices in near real time.
What it does
HORMUZ WATCH collects real vessel positions near Hormuz, identifies which vessels are tankers, and detects when a vessel crosses a virtual gate across the strait. It combines this with daily oil flow estimates (IMF PortWatch) and Brent prices (FRED) in a Power BI dashboard with KPIs, trends, oil flow–price elasticity and a tanker map on Azure Maps.
How we built it
- Collect: Python recorder pulls AIS positions from VesselAPI in a Hormuz bounding box, now and for past days
- Vessel types: one lookup per vessel; anything unconfirmed stays Unknown, never guessed
- Detect: normalizer + gate-crossing detector (segment intersection with Shapely) → SQLite, no duplicate rows on re-runs
- Market data: IMF PortWatch daily transits and FRED daily Brent price
- Export: one Excel file (Tanker, Oil, Oil Price) joined on date
- Dashboard: Power BI with Power Query, DAX and Azure Maps
- Optional live pipeline to Azure SQL every 30 minutes; 125 automated tests
Challenges we ran into
- Our first AIS source (aisstream.io) returned zero messages for Hormuz, so we switched to VesselAPI
- The free feed only covers the west coast of Musandam, not the main shipping lanes
- 150 API calls/month forced a quota-aware recorder
- AIS has no cargo data, so oil flow had to be estimated from PortWatch
Accomplishments that we're proud of
- A working end-to-end pipeline on real data: 266 positions from 14 vessels
- Our first real gate crossing: AL- NOOR, 27 Sep 03:33 UTC, outbound
- Real, estimated and simulated data are strictly separated — no made-up values
What we learned
- Oil flow vs. price: we learned how to measure whether changes in oil flow through Hormuz move oil prices, using daily percentage changes and a flow–price elasticity. Over a short window the relationship is an association, not proof of cause — prices also react to OPEC+ decisions, inventories, geopolitics and market expectations.
- Working with real data: open maritime data has big coverage gaps, so being honest about what the data can and cannot show matters as much as the dashboard itself.
- GitHub and teamwork: this was our first time building a project together with GitHub — splitting the work (data pipeline vs. detector and dashboard), agreeing on a shared data format, committing, pushing, and merging our work into one repository under a deadline.
What's next for HORMUZ WATCH
- Satellite AIS for full coverage of the strait
- Official gate coordinates and more days of data for more real crossings
- Running the live Azure SQL pipeline in production


Log in or sign up for Devpost to join the conversation.