Overwatch receives live AIS position reports through AISStream and stores them so that maps, investigations, and cargo estimates always reflect current vessel activity.
By default, Overwatch subscribes to AIS data around each monitored port. Two environment variables let you control how much ocean area is covered.
Coverage modes
Port-based coverage (default)
Overwatch computes a bounding box around each port zone polygon and subscribes to AIS messages within that area. The AISSTREAM_BBOX_BUFFER_DEG variable controls how far the bounding box extends beyond the port boundary.
| Value | Approximate radius | Typical vessel count |
|---|
0.5 | ~55 km | ~1–2 K |
2.0 (default) | ~220 km | ~3–5 K |
5.0 | ~550 km | ~10–20 K |
A larger buffer catches vessels that are in transit approaching or departing a port, so map views populate before a vessel reaches anchorage.
# Increase the buffer to ~550 km around each port
AISSTREAM_BBOX_BUFFER_DEG=5.0
Global coverage
Set AISSTREAM_GLOBAL=1 to subscribe to a single planet-wide bounding box (-90/-180 to 90/180). This replaces all port-derived bounding boxes and delivers positions for every vessel broadcasting AIS worldwide.
# Enable global AIS coverage
AISSTREAM_GLOBAL=1
Global coverage delivers 100,000–300,000 vessel positions at any given time compared to approximately 3,000–5,000 with port-based coverage. Make sure your database and infrastructure can handle the increased write volume before enabling this option.
Environment variables
| Variable | Default | Description |
|---|
AISSTREAM_BBOX_BUFFER_DEG | 2.0 | Buffer in degrees added around each port zone polygon when computing bounding boxes. Ignored when AISSTREAM_GLOBAL=1. |
AISSTREAM_GLOBAL | 0 | Set to 1 to subscribe to a single worldwide bounding box, bypassing port-derived boxes entirely. |
When to adjust coverage
- Maps look empty far from port — increase
AISSTREAM_BBOX_BUFFER_DEG to catch in-transit vessels earlier.
- You need full ocean tracking (dark fleet detection, open-ocean STS monitoring) — enable
AISSTREAM_GLOBAL=1.
- Storage or compute costs are too high — reduce
AISSTREAM_BBOX_BUFFER_DEG to limit data volume.
Position data is automatically downsampled and archived over time to manage storage. See data retention and downsampling for details on retention windows and resolution tiers.