# Visibility categories and where they come from

> Why the low visibility product sets no thresholds, and which four sources are fused into each area.

Developers · Concept · https://wxalerts.org/docs/developers/concepts/visibility-categories/

The routes, categories and fields are on the
[low visibility reference](/docs/api/visibility/).

## WxAlerts sets no thresholds

This product describes; it does not decide. It never says "dangerous", never
issues an alert, and never hides a category as too minor to show. Every area
carries its category, confidence, cause and sources, and what is worth drawing
or alerting on is your call. A traffic app might alert only on `very_low` and
worse at `medium` confidence or higher; a marine app might care about any
`marine_fog`. Filter on the fields.

## Where it comes from

Four independent sources, fused on a 2.5 km grid:

| source | what it adds |
| --- | --- |
| `analysis` | NOAA's RTMA Rapid Update visibility analysis, every 15 minutes, the base layer everywhere |
| `station` | airport (METAR) and buoy (NDBC) visibility, which pulls the analysis toward the measurement within 15 km |
| `advisory` | NWS Dense Fog, Marine Dense Fog, Freezing Fog and Dense Smoke Advisories. Inside one, the category is at least `very_low` and the cause is the advisory's |
| `reports` | clusters of anonymized driver reports from partner apps. No single driver is trusted: ten or more independent reporters within 2 km and 30 minutes create an area, marked `reported: true`. Individual reports are never served by this API |

`sources` on each area lists the ones that agree with it.
