Scuba Season

How this works / The reef state method, in full

How we score every reef

The plain explainer lives on the main method page. This page documents the full math behind it: every formula, every threshold, the exact source datasets, and the citations behind the modelled steps. Where a step is an estimate rather than a measurement, it is marked as such.

The model in one view

Two state signals build a level from 1 to 5. Two pressure signals then gate that level into one of four words. The full pipeline:

coral cover % ─→ coralLevel (1–5) ┐ fish biomass ─→ standing ─→ fishLevel (1–5) ┤─→ conditionLevel = min(present levels) ┘ conditionLevel + heat alert (gate) + fishing (gate) ─→ Improving | Stable | Declining | Not surveyed

Precedence is strict and evaluated in this order (first match wins), mirroring computeReefState:

1. Not surveyed if no coral AND no heat AND no biomass reading 2. Declining if coral < 25% OR fishLevel ≤ 2 OR heatRank ≥ 3 3. Improving if (coral ≥ 40% or absent) AND (fishLevel ≥ 4 or absent) AND heatRank ≤ 1 AND fishing permits improving AND coral not measurably falling 4. Stable otherwise

Everything below defines each term in that block precisely.

1. Coral cover to a level

What the number is, and where it comes from

Coral cover is the percent of the reef floor that is living hard coral, from a benthic survey. It is a regional programme figure, not a survey of the individual reef: each reef inherits the published mean cover of the monitoring programme that covers its region. Different regions use different programmes. The current set:

Region (example)ProgrammeFigure used
Florida KeysNOAA NCRMP6.7% (2022 benthic status report)
Great Barrier ReefAIMS Long Term MonitoringProgramme regional mean
Other regionsGCRMN nodes, Reef CheckProgramme regional mean

There are 13 regional jurisdictions in the current build, each with its programme name, method, survey year, and a link to the source report. When a reef has more than one coral reading on file, the model uses the highestvalue as the current cover, and pairs it with that reading’s prior year as the before value for the falling check.

MODELLED, NOT MEASURED — The per reef cover is the region’s mean, not a measurement at that exact reef. A measured per reef benthic value is planned but not in this version.

The level bins

Cover maps to a 1 to 5 level with hard cut points. Note the split inside the 20 to 39 band that the plain page rounds over:

Coral coverLevel
cover ≥ 40%5
30% ≤ cover < 40%4
20% ≤ cover < 30%3
10% ≤ cover < 20%2
cover < 10%1

Falling check: the reef is “measurably falling” when the current cover is strictly below the paired before value. This blocks Improving but does not on its own force Declining.

2. Fish biomass to a level

The observed number

Observed fish biomass is reef fish weight per hectare from Reef Life Survey standard visual transects (RLS Method 1), taken as the latest survey yearin the site’s series. In this version the series is proximity matched: the nearest RLS site to the reef, which is why the biomass trend is shown for context but is not allowed to move the label.

The benchmark (B0), and the formula

Standing stock is the observed biomass as a fraction of B0, the biomass an equivalent reef would carry if it were barely fished. B0 is the “1.0”. The score is:

standing = clamp( observedKgPerHa / B0KgPerHa , 0 , 1 )

MODELLED, NOT MEASURED — B0 is estimated, not measured per reef. We do not have a measured unfished biomass for each site in this version. B0 is read from the reef’s gravity band (section 4), the same covariate the literature uses to predict reef fish biomass. A measured, gravity derived and field validated B0 is deferred to the next version.

Gravity bandEstimated B0 (kg/ha)Rationale
low1200remote, high potential reef
moderate1000global unfished benchmark (MacNeil 2015)
high850accessible, pressured
very high700chronic human footprint

The level bins

Standing maps to a 1 to 5 level. The 0.25 to 0.49 band splits at its midpoint, 0.375, which the plain page rounds over:

Standing (observed / B0)Level
standing ≥ 0.755
0.50 ≤ standing < 0.754
0.375 ≤ standing < 0.503
0.25 ≤ standing < 0.3752
standing < 0.251

MODELLED, NOT MEASURED — Scope guard: biomass is only scored where the reef has both an RLS series and a reef gravity cell. Reef gravity is defined on tropical coral reef pixels, so on temperate or cold water reefs there is no valid tropical B0 benchmark, the fish level is null, and the label runs on coral alone.

3. Combine to a condition level

The condition level is the lower of the two state levels that are present. If only one is present (commonly coral, since biomass needs both an RLS series and a gravity cell), that one is used alone.

conditionLevel = min( coralLevel, fishLevel ) // over present levels only

4. Reef gravity bands

Reef gravity (Andrello and Cinner) is a per reef index of human fishing pressure and access. We band the site’s value by its global percentile, so the bands are worldwide quartiles: a “very high” reef sits in the worst 25% of reefs for fishing pressure. This band feeds both the B0 benchmark (section 2) and the fishing fallback (section 6).

Global percentileBand
percentile < 0.25low
0.25 ≤ p < 0.50moderate
0.50 ≤ p < 0.75high
p ≥ 0.75very high

5. Heat gate

Heat is the NOAA Coral Reef Watch Bleaching Alert Area level (derived from Degree Heating Weeks on the 5 km product). We take the worst alert on file for the reef and rank it:

NOAA alert levelRankEffect on the label
No stress0permits Improving
Watch1permits Improving
Warning2blocks Improving, does not force Declining
Alert Level 13forces Declining
Alert Level 24forces Declining

So Improving needs heatRank ≤ 1, and any heatRank ≥ 3 forces Declining on its own, because an active bleaching alert is measured damage in progress. Rank 2 is the middle case that the plain page does not name.

6. Fishing gate

Fishing pressure resolves from the highest authority source available, then reconciles against protection. It only gates Improving; it never forces Declining.

Source priority

1. Global Fishing Watch apparent fishing hours (industrial vessels, where AIS sees them) 2. else reef gravity band (universal Andrello / Cinner model) 3. else editorial fallback 4. else "unknown"

GFW effort bands

Apparent fishing hours per year within the query radius, log scaled because the distribution is heavily right skewed:

Apparent fishing hours / yearBand
hours < 200low
200 ≤ hours < 2,500moderate
2,500 ≤ hours < 25,000high
hours ≥ 25,000very high

Reconcile with protection

Protection status comes from MPAtlas (no take or strict MPA counts as protected). Protection can only strengthen a read the measurement already supports:

Protected AND measured effortResult
protected + lowprotected
protected + high or very highpaper park
anything elsethe raw measured band

Improving is permitted only when the reconciled read is protected, low, or unknown. Unknown gets the benefit of the doubt, since there is no measurement to say otherwise.

7. The four labels

Putting every term together, in evaluation order:

Not surveyed

no coral reading AND no heat reading AND no biomass reading

Declining

coral < 25% OR fishLevel ≤ 2 OR heatRank ≥ 3

Improving

(coral ≥ 40% or absent) AND (fishLevel ≥ 4 or absent) AND heatRank ≤ 1 AND fishing permits improving AND coral not falling

Stable

anything that matches none of the above

Because the checks run in this order, Declining is tested before Improving, so a reef that trips a Declining condition can never read Improving in the same pass.

8. Confidence badge

Each pillar carries a data confidence tier. The site badge is the weakest tier among the pillars that actually set the label (coral, biomass, and heat only when an active alert forced Declining). Fishing is reported per pillar but never weakens the badge.

TierCoral / biomass rule
A — Measured trend3 or more surveys spanning at least 4 years
B — Before and after2 surveys
C — Single reading1 survey
D — Not on fileno data for this pillar here

Heat is tier A whenever an alert is on file, D when absent. Fishing is B for a multi year GFW effort trend, C for a single GFW reading or a gravity model band, D for editorial only.

Sources and citations

  • Coral cover. NOAA NCRMP, AIMS Long Term Monitoring Program, GCRMN, Reef Check — regional benthic monitoring programmes, per jurisdiction.
  • Fish biomass. Reef Life Survey (Edgar and Stuart-Smith), standard visual transect Method 1, biomass kg/ha.
  • B0 benchmark. MacNeil et al. 2015, Nature — global unfished reef fish biomass ~1000 kg/ha. Cinner et al. 2016 (Nature), 2018 (PNAS) — gravity of human impacts on reef fish.
  • Reef gravity. Andrello et al. 2022 — global reef gravity (grav_NC), banded by global percentile.
  • Heat stress. NOAA Coral Reef Watch — Bleaching Alert Area from Degree Heating Weeks, 5 km product.
  • Fishing effort. Global Fishing Watch — apparent fishing effort (AIS), hours per year within the query radius.
  • Protection. MPAtlas (Marine Conservation Institute) — no take and strict MPA status.

Every source above is also listed, with live status and links, on the sources section of the main method page.

← Back to the plain explainer