The Outlaw Ocean Project · In development

Bait to Plate

One of the largest seafood supply chain accountability databases in development — linking fishing vessels, labor records, and catch data to trace accountability from ocean to consumer.

Role

Lead data scientist and data engineer

Organization

The Outlaw Ocean Project

Status

Pending publication, fall 2026

Bait to Plate — project introduction. Edited and narrated by Gregory Maly.

Who caught your fish — and under what conditions?

A can of pet food or a fillet at the supermarket carries no memory of the boat it came from. Between the vessel and the plate sit reefers that meet fishing boats far offshore, fishmeal plants that blend catch from dozens of sources, feed mills, farms, processors, importers, and brands — each a handoff where provenance is lost. That opacity is not an accident. It is what lets forced labor, illegal fishing, and environmental harm survive contact with a global market that would otherwise reject them.

Bait to Plate is built to close that gap for one of the hardest-to-trace commodities in the food system: the fishmeal and fish oil (FMFO) that feeds farmed seafood. The database reconstructs the chain link by link — vessel to reefer, reefer to plant, plant to feed mill, feed mill to farm, farm to the brands on a shelf — so that a documented abuse at sea can be followed forward to the companies that ultimately profit from it.

A near-complete map of the fishmeal economy

852,000+

Vessels in the reference fleet

5,500+

Companies, plants & farms profiled

7,600

Supply-chain links mapped

200+

Flag states & jurisdictions

Core supply-chain actors: 1,430 fishmeal plants, 1,019 registered ship owners, 860 importers, 710 retailers, 500 ship operators, 484 brands, 156 fish farms, 145 feed mills, 101 parent companies, 78 processors, 12 reefers. Of the vessel reference layer, 64,368 carry an IMO number.

Globe view of the Bait to Plate tool showing 1,414 fishmeal plants plotted worldwide, densely clustered along the coasts of East and South Asia.
Every fishmeal plant in the database, plotted. Of more than 1,400 plants examined across 64 countries, over 370 were found to have at least 930 unique crimes or concerns — either at the plant itself or within its supply chain. The clustering along East and South Asian coastlines is where the fishmeal economy concentrates.

Matching entities across sources that were never meant to connect

  1. 01

    Ingesting the raw record

    Records arrive from available trade data, Global Fishing Watch vessel and encounter data, government and registry lists, certification bodies, corporate registries, and hundreds of news outlets and worker testimonies. Each feeds a dedicated pipeline that normalizes it into a shared shipment and entity model.

  2. 02

    Deciding when two names are one company

    The hard part. A single fishmeal plant appears as a dozen spellings across manifests, registries, and languages, and none of the sources share an identifier. Fuzzy matching, corporate-suffix normalization, and a deduplication pass collapse these into one canonical entity — with a human review gate before anything merges, because a wrong merge silently rewrites the supply chain.

  3. 03

    What a claim must clear

    Nothing enters as fact by default. Automated extractions land as “needs review,” each carrying its source and, where possible, an archived snapshot of the page it came from. Company sustainability claims are re-checked against the live web; a claim that can’t be verified on the page is rejected, not stored.

  4. 04

    Walking a plate back to a crew

    Every resolved link is written to a graph, so a single brand can be traversed backward through its importers, processors, farms, and feed mills to the plants and the vessels that supplied them — and forward from a documented abuse at sea to the products it ends up in.

Force-directed graph of the seafood supply chain: thousands of labelled nodes clustered around fishmeal plants, colour-coded by entity type, with a country filter panel down the left.
The supply chain as a graph. Vessels (teal) cluster around the fishmeal plants (orange) they deliver to; processors, farms, mills, importers, and retailers chain outward toward the brands on a shelf. Filters down the left isolate a single country’s feed mills, farms, or plants. Screenshot from the internal explorer.

From an anonymous shipment to a named company

The value isn’t any single record — it’s the connections. A worker’s account, a vessel’s transshipment history, and a shipment manifest that individually mean little become, once linked, a documented path from a specific harm to a specific company. Questions that used to take weeks of manual cross-referencing — who buys from this plant? which brands are downstream of this fleet? — become a single traversal.

The database is built to serve reporters chasing a story, editors checking what’s defensible, and — over time — the regulators, importers, and advocates who need to know who they’re actually buying from.

Globe view tracing supply chain routes: directional arrows run from plants and processors in Asia outward to mills, farms, importers, and retailers across Europe, Africa, and the Americas.
One traversal, drawn across the world. Directional arrows follow shipments outward from plants and processors to the mills, farms, importers, and retailers downstream. Markers group by country until you zoom to precise locations; colour marks the entity type — ship, plant, processor, farm, mill, importer, retailer.

Built to run itself and defend every number

A data engineering pipeline feeds a graph database, where every company, vessel, plant, and shipment is a node and every relationship an edge — which is what makes the chain traversable in either direction. Ingestion, deduplication, classification, monitoring, and archival run as automated workflows on their own schedules, with failures surfaced to the newsroom rather than discovered months later.

AI agents do the work that doesn’t scale by hand: reading documents, extracting entities, classifying records, and checking public claims against their sources. Nothing they produce enters as fact. Every automated judgment lands as a reviewable item with its provenance attached, so any number on the page can be traced back to the record it came from.