How a FishIntel Report Is Made

Eleven data layers, an AI analysis pass over all of them at once, and a working captain's calibration underneath. This page is the whole method, including the parts that do not always work.

Written and maintained by Captain Kit Carson. See also the full list of upstream data sources.

The morning run

Every satellite, buoy, tide and forecast layer below is fetched at the same time, not one after another, for every active zone at once. Field reports from other anglers are read once the zone itself is resolved. When it is all in, the whole set goes to the AI analysis pass together. On a paid plan the finished report is on your dashboard and in your inbox by 5:30 AM Eastern.

The order matters less than the fact that nothing is analyzed alone. A temperature break on its own is a temperature break. A temperature break sitting on a color front, along a current edge, over productive water, is a place to fish.

What goes in

Each layer is fetched for your zone's own bounding box, from the stations and satellite grids nearest to it. Where a source is unavailable the report continues without it and says so.

Sea surface temperature

A 1 km satellite analysis of the water in your zone, fine enough to resolve a temperature break two miles wide. Coarser grids average that break away, which is a problem when the break is the thing you are looking for.

Water color and chlorophyll

Where green, bait holding water meets clean blue water, and how sharp that front is. Read from the same satellite grid that gives us productivity.

Plankton productivity

Net primary production, the bottom of the food chain. Productive water is where bait has a reason to be.

Salinity

Salinity fronts mark boundaries between water masses, and they often sit on top of temperature breaks and color fronts. Satellite salinity is weak close to land, so the report says when it could not read your reef line.

Geostrophic currents and sea level anomaly

Surface current speed and set, plus the sea level ridge that marks a major current and the eddies spinning off it. Current edges concentrate bait.

Buoy observations

Live water temperature, wind, pressure, seas and wave period from the NDBC stations nearest your zone. This is the ground truth the satellite layers get checked against.

Marine forecast and alerts

The National Weather Service coastal waters forecast, active advisories and warnings, and where published, the shoreward edge of the Gulf Stream given as distance and bearing from a named landmark.

Weather and sea state

Wind, seas, swell against wind wave, rain, visibility and the pressure trend that tells you whether you are ahead of a front or behind it.

Tides, moon and solunar

High and low water from the tide station nearest your zone, moon phase and illumination, sunrise and sunset, and the solunar windows built from them.

Satellite imagery, read by AI vision

On the paid plan, a second pass where an AI vision model looks at the rendered satellite charts themselves and picks up front shapes, eddy spirals and filaments that a grid of numbers cannot show.

Field reports from other anglers

What anglers in your zone have logged in the last 24 hours, including species, water temperature and color read off their own sounder.

Every source is named, with its update cadence, on the data sources page.

What the AI actually does

The analysis layer is given all of the above at once and asked to find convergence: the specific places where several favorable factors line up together. That overlap, rather than any single layer, is what the report ranks and puts a position on.

It is also given the units, explicitly, at the top of every request. Knots, feet, Fahrenheit, inches, nautical miles. Marine data arrives from upstream in a mix of metric and imperial, and the conversion happens once at each fetch boundary rather than being left to the model, because a model that converts some fields and not others produces a report that is wrong in a way nobody can see.

The model does not get the last word on position. Language models are poor at coordinates, and left alone this one tends to drop a marker on the highest chlorophyll reading in the box, which in the Keys is turbid Florida Bay water rather than anywhere you would run. Every convergence marker it produces is snapped to the nearest genuinely strong cell in our own computed grid before the report is written. The model keeps the reasoning and the label; the data keeps the pin.

Analysis runs through more than one AI provider, in order, each retried before the next is tried. That is there so a single provider outage costs you nothing. Two outages in late July 2026 are the reason it exists.

On the paid plan there is a second pass in which an AI vision model reads the rendered satellite charts as images. Front shapes, eddy spirals and filaments are visible in a picture and invisible in the grid of numbers behind it. That pass is most of the difference between the free report and the paid one, and it is the expensive part.

Where the captain comes in

The regional fishery models are not generic. Which species a region can name, the water temperature band each one is fished in, the major current, the floating structure that holds fish and the named reefs and landmarks the report can refer to are all properties of a region, chosen from your zone's coordinates. Every region is drafted to a written fishery standard built for exactly this job, and that standard, not any dataset, is what turns a coordinate into a species list. Drafting a region to the standard and having a captain who actually fishes that water check its bands against a season of observed temperature are two different jobs, and the report tells you which one has happened for yours.

The Atlantic bands were recalibrated on 27 July 2026 against the Islamorada fishery, replacing generic western Atlantic figures that ran too cool to be useful. Two kinds of evidence went into them: 100 days of this system's own recorded sea surface temperature for that zone, from April to July 2026, and how the Keys season actually runs, which in subtropical water discriminates far more than temperature does. Sailfish peak December through April. Wahoo November through March. Mahi April through August. No dataset tells you that.

Species that live below the thermocline are deliberately given no surface band at all. Swordfish and rockfish are caught well beneath the layer that surface temperature describes, so the report says surface conditions affect your ride and your drift rather than inventing a temperature window that would look authoritative and mean nothing.

The limits are stated in the report, not hidden. The observed record for the Atlantic bands starts in April, so the cold ends of those bands rest on seasonality rather than measurement, and they are the weaker half. The Atlantic bands are also, for now, the only ones calibrated against observed water. FishIntel models six regions in total: the Atlantic corridor above, Mississippi Sound, the West Florida Shelf, Chesapeake Bay, Southern California and Central and Northern California. The five newer regions are drafted to the same written standard, with species sourced and dated, but every one of them ships with its bands marked uncalibrated, because no captain who fishes that water has checked them against a season of its own temperature record yet, and the report says so plainly wherever it applies. Water that falls outside all six regions is not refused, and it is not handed a borrowed species list either. That zone still gets the full set of ocean, weather and tide conditions every report carries, names no species, and says so both the moment you pin it and in the report itself. A band, calibrated or not, is direction, never a verdict, and nothing in a FishIntel report will tell you not to go fishing on the strength of a temperature reading.

Freshness, stated per layer

A fishing report is not one age. It is nine or ten different ages wearing the same date. A daily satellite temperature analysis lands about a day behind. Ocean color can be days old under cloud. Satellite salinity composites are slow by nature. A buoy can go quiet for a week and still hand you its last reading as though nothing happened.

So every report carries, for every layer: when the observation behind it was actually taken, how old that makes it, which dataset answered, and whether that age is past what the layer is allowed to be. If you check our water temperature against your own sounder and find it two days stale, we would rather you had read that on the report first.

Stale

The layer arrived, but the newest observation behind it is older than that layer is allowed to be. Each layer has its own shelf life, because a daily temperature analysis and a multi day salinity composite are not late at the same age.

Degraded

The preferred source failed and a backup answered instead. The data may be perfectly current, just not from the instrument we would have chosen, and the report names which one served it.

Missing

Nothing usable came back for that layer today. Cloud blocks ocean color; land and shallow water defeat satellite salinity. The report says the layer is missing rather than filling the gap with a guess.

Limited data

A single flag raised when any of the three above is true, so the whole report can be marked as built on partial information instead of leaving that fact buried in a sentence the model may or may not have written.

When a source breaks, we say so

This is the part most services leave out, so here it is plainly.

The dangerous failure in ocean data is not the one that errors. It is the upstream that freezes and keeps answering. A retired satellite dataset will return a complete, correctly shaped grid with a perfectly healthy response, forever, and nothing about that response says the numbers in it stopped being current months ago.

We know because it happened to us. A current dataset this pipeline read stopped updating in late March 2026 and went on serving that same March file into daily reports for four months. Its own metadata said so the whole time. Nothing in the system was looking at the observation date, so nothing disagreed.

What came out of that is the freshness accounting above, and three standing rules:

  • Every layer has more than one source behind it, and they fail differently. A backup on the same host as its primary is not a backup, because the host is what fails. A backup on the same satellite as its primary is not a backup either. Where we can, the standby is on different infrastructure, from a different producer, reading a different instrument.
  • Backups are monitored as closely as primaries. A backup nobody measures is a promise nobody has checked. An automated sweep reads the publication date of every member of every chain, primary and standby alike, and raises an alert when one falls behind. It found two silently dead backups the day it was first pointed at them.
  • A missing layer beats a stale one. A dataset that has frozen is not kept as a last resort fallback. If everything behind a layer is unusable, the report says the layer is unavailable and analyzes what it has.

Where we have a known weakness we would rather tell you than wait for you to find it. As of August 2026 the productivity layer is the weakest chain in the system: both of its sources sit on one host and one satellite family, so a single outage takes both, and it has. We went looking for an independent replacement and the honest answer is that a suitable one does not currently publish daily at global scale. That gap is measured and written down rather than quietly tolerated, and the report tells you on the days it bites.

What this is not

FishIntel is an analysis of ocean conditions. It is not a guarantee of fish, and it is not a safety product. Check the National Weather Service forecast and the current advisories before you leave the dock, every time, no matter what any report says about the fishing.

Satellite and model data carry real inaccuracies, and the providers say so themselves. Their disclaimers are quoted in full on the data sources page.

See it on your own water

A free account gets one full report for a zone you choose, built on any NOAA station in US waters.

Get Started Free