Ocean FishingFFXIV reference —

Notes & method

How this reference was built, what is verified, and the traps to avoid.

Schedule

Voyages leave every 2 hours on odd JST hours = even UTC hours, and the destination/time sequence is fully deterministic, so the route can be computed from a Unix timestamp:

vn = floor(unix_ms / 7200000)
Indigo: INDIGO[(88 + vn) % 144]
Ruby: RUBY[vn % 144]

Both cycles are 144 voyages = 12 days. Indigo's day-blocks rotate one left each day; Ruby is a flat 144-entry table of 9 routes.

Bite times

Bite times are the whiskers of a boxplot over Teamcraft's sample data: compute quartiles with R's type-7 quantile algorithm, then discard samples more than 1.5 × IQR from the median. That makes them a stable “normal range”, not a hard limit — player-tested timings can be tighter.

Ranges are per fish per bait; the underlined bait is the sheet's recommended pick (usually the fish's desynthesis bait, preferring ocean-fishing baits unless the goal is Fisher's Intuition).

Availability

☀️🌅🌙 mark the times of day a fish can be caught. Indigo stops are labelled by time; on Ruby the time varies by route, so the availability column tells you what still bites when a stop lands on a different hour.

Traps & corrections

Timezone. The tracker's own example schedule renders in the viewer's timezone. Always compute from UTC milliseconds — never hard-code a local time.
Pre-7.5 data is a trap. The older community site predates Patch 7.5 (2026-04-28), which added the Thavnairian coast Ruby route. Its dataset has 23 fishing spots and none of the Unnamed Island / Thavnair fish. Its 6-route Ruby model still describes the One River and Ruby Price paths correctly, but it is incomplete: Ruby is 9 routes.
Point values vs. real score. “Points” here are the base per-fish value; your voyage total is those points multiplied by the content bonuses on the Rewards page.

What is in this site

Scope: built for private use — English names only, no localised strings.