California Coastal Monitoring / Harmful Algal Bloom Prediction

The bloom arrives
before the warning does.

Harmful algal blooms close beaches, poison shellfish, and kill marine mammals. We predict them 7 days out using NDBC buoy sensor arrays and machine learning.

LOADING STATION DATA…
View live risk dashboard

Why it matters

$100M+
Annual aquaculture losses
A single large bloom event can trigger shellfish harvest closures from San Diego to the Oregon border — shutting down an industry that employs tens of thousands of Californians.
7 days
Advance warning we provide
Enough time for fisheries managers to suspend harvests, for beach managers to post advisories, for aquaculture operators to move their stock before domoic acid reaches toxic levels.
10
CalHABMAP stations monitored
From Trinidad Pier in Humboldt County to Scripps Pier in San Diego — 10 NOAA NDBC buoy stations trained into a statewide bloom risk model updated every week.

Methodology

From buoy to bloom probability.

Every week, NOAA NDBC buoys record sea surface temperature, wind speed, wave height, and atmospheric pressure along the California coast. That data, combined with chlorophyll readings and historical CalHABMAP bloom observations, feeds two trained machine learning models.

01
NDBC Buoy Data Ingestion
SST · wind · wave height · chlorophyll · atm pressure
02
Feature Engineering
14-day SST rolling mean · temp anomaly · lag features
03
Model Inference
Random Forest + XGBoost classifiers (binary: harmful / not harmful)
04
Weekly Risk Output
Probability score per station → Low / Elevated / High classification
10 CalHABMAP stations · real-time risk
High
Elevated
Low

Stations: Trinidad Pier · Humboldt · Santa Cruz · Monterey · Cal Poly · Santa Barbara · Santa Monica · Newport Beach · Scripps Pier

Field note

Alexandrium catenella has been blooming off the California coast for longer than the state has existed. The paralytic shellfish toxins it produces — saxitoxins — survive cooking at any temperature and persist in shellfish tissue for weeks after the bloom subsides. A single contaminated mussel can cause paralytic shellfish poisoning in under an hour. The blooms are ancient, natural, and indifferent to harvest schedules. What's changed is our ability to see them coming.

— HAB Predictor research team, based on CalHABMAP and CDPH toxicology data

Prediction models

Two models.

The dashboard runs both models simultaneously. Compare their outputs.

Model 01
Random Forest
700 decision trees trained on CalHABMAP weekly observations from 2008–2024. Balanced subsampling handles the class imbalance between rare harmful bloom events and the majority of non-harmful weeks. Threshold optimized for maximum F1 on a held-out 2025 validation set.
0.88
AUC-ROC
700
Trees
6
Max depth
Model 02
XGBoost
Gradient boosted trees trained on the same feature set. XGBoost's sequential boosting focuses on the hard-to-classify weeks — the edge cases where a bloom is borderline. Provides a second opinion where the Random Forest is uncertain.
XGB
Algorithm
F1
Optimized
2025
Val set

Latest dataset snapshot

Model-estimated risk.

10 CalHABMAP-linked station locations along the California coast
2 high-risk model estimates in the displayed dataset snapshot
4 low-risk model estimates
4 elevated model estimates
Latest available dataset week: 2026-03-23

The dashboard shows model-estimated harmful bloom risk for the latest available station-weeks in the dataset. These outputs are research estimates from Random Forest and XGBoost models, not public health guidance.

Open risk dashboard → ↑ How it works