How to Read a Buoy Report
NDBC looks like alphabet soup at first. Ten minutes from now, you’ll read it like a forecaster.
The NDBC website looks like alphabet soup at first. WVHT, DPD, APD, MWD — what are you even looking at? Stick with me for ten minutes and you’ll come out the other side reading the buoy like a forecaster does, and probably catching things your forecast app glosses over.
What a buoy is actually doing
A wave buoy is a floating platform tethered to the seafloor in deep water. It moves up and down (and side to side on directional ones) continuously as waves pass underneath. Every 20 minutes, it sends a summary of how it’s been moving over that window. That summary becomes the numbers you see on the NDBC page.
The buoy isn’t measuring “waves” the way you’d measure with a ruler. It’s measuring its own motion. From that motion, the onboard computer figures out how big the waves are, how often they’re passing, and (on directional buoys) which way they’re coming from.
The four numbers that matter
Every NDBC report has these four headline numbers. They’re all derived from the buoy’s motion record. Here’s what each one actually tells you:
WVHT (significant wave height). How big the waves are. Specifically, it’s a measure of “what waves you’d actually notice” — not every tiny ripple, but the biggest third of what’s passing under the buoy. If a friend on the buoy described the conditions, this is roughly the size they’d give you.
DPD (dominant period). The number of seconds between the most energetic waves. The buoy picks out the loudest rhythm in the water and reports its period. If most of the energy is in long, organized groundswell, the DPD will be long — 12 seconds, 16 seconds, even 20+. If most of the energy is short, choppy wind waves, the DPD will be short — 4 to 7 seconds.
APD (average period). Same idea as DPD, but averaged across everything in the water — the dominant rhythm, the chop on top, the cross-swells, all of it. This is the key: DPD picks out the loudest rhythm, APD averages all of them.
MWD (mean wave direction). The compass direction the dominant waves are coming from. 270° is straight west, 180° is south, 90° is east.
That’s it. Every other “swell” and “wind wave” number on the page is derived from these.
The gap between DPD and APD is the most useful thing on the page
This pairing takes a minute to understand, but once it clicks you’ll start using it on every check.
Think of DPD as the loudest drummer in the ocean and APD as the average of every drummer playing. If only one drummer is playing, those two numbers will be close to each other — one rhythm, one period. If five drummers are playing different rhythms at once, the DPD picks the loudest, but the APD pulls toward all of them.
In wave terms:
- DPD and APD close together (e.g., DPD 16 s, APD 13 s): the ocean has one organized rhythm. A single clean groundswell is carrying most of the energy. At the beach, you’ll see smooth wave faces and good lines.
- DPD and APD far apart (e.g., DPD 16 s, APD 7 s): a long-period swell exists, but most of the energy is in short-period wind chop sitting on top. The headline DPD looks great. The reality at the beach will be bumpy and disorganized.
- Both DPD and APD short (e.g., DPD 6 s, APD 5 s): there’s no groundswell. Everything in the water is local wind chop. Not surf.
Rule of thumb: if APD is within 2 seconds of DPD, the swell is clean. If APD is half of DPD or less, expect bumps.
This is why WVHT alone doesn’t tell you whether a spot will fire. A 6-foot WVHT with DPD 14 s and APD 12 s is gold. A 6-foot WVHT with DPD 14 s and APD 6 s is a windy mess. Same headline size, completely different sessions.
Read the breakdown, not just the headline
The four bulk numbers are summaries. NDBC also publishes the full breakdown — how much energy is sitting at each different wave period. On the NDBC page it’s called the “spectral wave data” or “spectral plot.” That breakdown is the truth; the bulk numbers are abbreviations of it.
NDBC also automatically separates the breakdown into “swell” and “wind waves” and reports them separately. So you might see a 6-foot total WVHT broken into 4 ft of 14-second swell + 2 ft of 6-second wind chop. That tells you exactly what’s in the water — much more useful than the single headline number.
When something looks weird on the bulk parameters, click through to the breakdown. It almost always explains it.
Pick two buoys, not one
The single biggest mistake in buoy reading is using only one. The fix is to read two:
- A deep-water buoy — far offshore, in 200+ meters of water — shows the raw open-ocean signal. What’s coming.
- A nearshore buoy — closer to your spot, in 50–200 meters of water — shows what’s actually arriving after the swell bends around islands, refracts over the continental shelf, and loses some energy along the way.
Some pairings for major US surf coasts:
- SoCal: NDBC 46086 (San Clemente Basin, offshore) + CDIP 067 (Harvest, off Pt Conception) for nearshore.
- NorCal: NDBC 46059 (West California, 250 nm offshore) + CDIP 029 (Mavericks) or 158 (Half Moon Bay).
- Mid-Atlantic to Northeast: NDBC 41001 (East Hatteras) offshore + NDBC 44025 (Long Island) nearshore.
- Southeast: NDBC 41002 (South Hatteras) + 41010 (Canaveral East).
- Hawaii: NDBC 51001 (NW Hawaii) + CDIP 098 (Mokapu Point) or 165 (Hilo).
- Pacific Northwest: NDBC 46005 (West Washington) + 46211 (Grays Harbor) or 46248 (Astoria Canyon).
Lead time: how far ahead is the buoy seeing?
A swell travels at a predictable speed. The formula surfers care about is Cg ≈ 0.78·T meters per second, where T is the period in seconds.
So for a 16-second swell:
- Speed = 0.78 × 16 = 12.5 m/s
- A buoy 500 km offshore gives 500,000 / 12.5 / 3600 ≈ 11 hours of warning
- A buoy 250 km offshore gives about 5.5 hours
Use this to time your check-in. If a long-period swell shows up on the SoCal deep-water buoy (46086, ~150 km offshore), the beach will see it in 3–5 hours. If it shows up on the NorCal deep-water buoy (46059, ~470 km offshore), you have 10–14 hours.
Short-period wind chop travels at half the speed of long-period swell, which is why local chop almost never arrives intact from a distant buoy. Long-period swell is the only useful long-distance signal.
Worked example. NDBC 46086 reports WVHT 8.2 ft, DPD 14 s, APD 9 s, MWD 290°. Reading: a real NW groundswell (14 seconds) is in the water, but the gap between DPD (14) and APD (9) means a meaningful wind sea is mixed in. The 8.2 ft WVHT is probably more like 5–6 ft of clean swell with 2–3 ft of wind chop on top. Direction is solid NW. SoCal beaches see it in 3–5 hours.
Things to watch out for
- DPD flicker. A buoy reporting “DPD 13 s … 9 s … 14 s” in successive hours isn’t seeing three swells. It’s seeing two swells of similar energy and the algorithm flips back and forth on which one is slightly bigger. Look at the breakdown.
- Stale data. NDBC buoys go offline. Always check the timestamp on the most recent observation. Anything older than an hour, don’t trust.
- Units. NDBC reports meters and meters-per-second. Most surf apps display feet and knots. Times are UTC, not your local time.
- MWD is the dominant direction, not the average. A bimodal swell — say a NW component AND a S component — will report MWD for whichever is slightly stronger. The other won’t appear in the bulk parameters.
- In big winds, WVHT runs high. The 3-meter discus buoys overestimate height by 5–10% in winds over 20 knots. Storm and hurricane numbers are biased high.
How to use this
- Read two buoys. Deep water for what’s coming, nearshore for what’s arriving.
- Always look at DPD AND APD. The gap tells you cleanliness.
- Click through to the breakdown when something looks weird. It almost always explains it.
- Check the timestamp. Stale data is worse than no data.
- Compute lead time with Cg ≈ 0.78·T. A long-period swell at a deep-water buoy gives you anywhere from 3 to 14 hours of warning, depending on distance.
The buoy is the most concentrated source of real-time wave information you have. Learn to read it directly and you’ve cut out a layer of forecast interpretation — when an app says “4 ft @ 14 s,” you can now go straight to the buoy and verify it, and see what the app left out.
Collins, C.O. et al. (2022). Tilt error in NDBC ocean wave height records. Journal of Atmospheric and Oceanic Technology 39(7).
Earle, M.D. (1996). NDBC Technical Document 96-01: NDBC Wave Data Analysis and Processing.
Gilhousen, D.B. & Hervey, R. (2001). Improved estimates of swell from moored buoys. Proceedings of WAVES 2001, ASCE, 387–393.
Hanson, J.L. & Phillips, O.M. (2001). Automated analysis of ocean surface directional wave spectra. Journal of Atmospheric and Oceanic Technology 18(2), 277–293.
Kuik, A.J., van Vledder, G.Ph. & Holthuijsen, L.H. (1988). A method for the routine analysis of pitch-and-roll buoy wave data. Journal of Physical Oceanography 18(7), 1020–1034.
Longuet-Higgins, M.S., Cartwright, D.E. & Smith, N.D. (1963). Observations of the directional spectrum of sea waves using the motions of a floating buoy. Ocean Wave Spectra, Prentice-Hall, 111–136.
NDBC Technical Document 03-01: Handbook of Automated Data Quality Control Checks and Procedures.
O’Reilly, W.C. et al. (2016). The California coastal wave monitoring and prediction system. Coastal Engineering 116, 118–132.