What this is
A fictional traffic watch for the Vartunda Strait, covering 1 January 2024 to 31 December 2025. The records are synthetic and deterministic: a seeded generator, described below, produces about 60 000 movements, and the same seed produces byte-identical numbers on every machine and in every browser. Nothing here is fetched.
The data dictionary
| Field | Meaning | Units and range |
|---|---|---|
| timestamp | moment of the AIS position report that starts the transit | UTC, 2024-01-01T00:00 to 2025-12-31T24:00 |
| vessel class | Cargo, Tanker, Container, RoRo or Fishing | five values |
| route | which side of the separation scheme, or a coastal, approach or grounds transit | five values |
| length overall | hull length, lognormal per class | 8 to 341 m |
| draught | k × L0.78 scaled by how full the ship is, capped by the strait limit | 0.9 to 21.0 m |
| speed over ground | Froude-scaled service speed, shifted by the tidal stream along the route and reduced when the fairway is crowded | 0.1 to 41 kn |
| destination | port of arrival, weighted by class preference and port size | 14 named ports |
| queue | minutes waited before entering the fairway; lognormal around a congestion and storm driven median | 0 to 1200 min |
| anomaly | a rule applied to the finished numbers, not a random label: speed far outside its class envelope, draught beyond the hull-form envelope, over-long queue, or near-zero speed on a main route | none or one of four kinds |
The twelve named aggregates
A hidden reference block recomputes these by brute force - copy the matching subset into an array, sort it, take the number - with no index and no incremental help. The self-test sheet compares each of them against what the incremental counters say and prints both. The definitions are:
- movement records generated
- mean speed over ground of Cargo vessels in March of year two
- 95th percentile of queue minutes on winter weekends
- busiest single day, in movements
- Tanker share of all traffic
- median draught of all traffic
- 99th percentile of speed over ground for Container ships
- mean length overall of Fishing vessels between 00:00 and 05:59
- tallest Freedman-Diaconis bin of the draught histogram
- total movements to the busiest destination
- Pearson correlation of speed over ground against draught
- total queue minutes on the northbound separation
Keyboard
Tab reaches the filter bar, then each chart in reading order. Inside a chart, arrows walk its marks, Enter pins a filter, Shift adds to it and Escape clears it. U undoes, R resets, T toggles the self-test sheet. The view is carried in the URL hash, so the back button undoes and the address bar is a shareable link to exactly what you are looking at.
Method
See METHOD.md beside this file for the scale maths, the binning rules, the index structures, the re-aggregation strategy and the measured self-test results. It is a plain text file and it is the honest version of the numbers in the sheet.
Approximations, said plainly
- Percentiles in the reference block come from sorted arrays; the same percentile from the incremental side comes from a histogram, so it can only be accurate to a bin width. Those checks carry a stated tolerance instead of a fake exact match.
- Histogram bins are derived from the complete record set for the chosen variable, not from the filtered subset, so that panels stay comparable while you cross-filter. The rule and its inputs are printed above the panel.
- The density scatter is capped at about 1 600 hexbins regardless of how many records are in view; that is the point of density handling. A raw-points mode is available under 2000 visible records, and a stress run in the frame-time panel draws 20 000 raw marks per frame and reports what this machine managed.
- Colour is the one place where "perceptually ordered" is a claim about arithmetic, not about your monitor: the ramps are built as monotone lightness paths in Oklab and gamut-clipped by reducing chroma.