Leelanau Surf Report is a free, experimental independent conditions tool for watersporters on the Leelanau Peninsula — surfers, paddleboarders, swimmers, and anyone else who wants to know what Lake Michigan and Grand Traverse Bay are doing before they head out.
We show you what our model thinks the lake is doing and let you decide what that means for your activity and your skill level. The CLEAN / WASHED OUT / CALM / GLASSY / PADDLE statuses attempt to describe the physical state of the water at each spot — not whether you should or shouldn't go.
This site is not affiliated with any business, government agency, or organization.
Lake Michigan waves are entirely fetch-driven — there is no groundswell. Every wave you see was generated by wind blowing across open water. The longer the fetch (distance of open water in the wind direction) and the stronger the wind, the larger the waves.
Our primary open-water reference point is NOAA Buoy 45002, which sits at 45.344°N 86.411°W — roughly 20 miles due west of Empire Beach, halfway between North Manitou Island and Washington Island. When deployed (May through November), this buoy measures actual wave height, dominant period, water temperature, and wind at the open-lake surface.
We then apply bathymetric coefficients to translate open-lake conditions to each specific beach. Every beach is different:
| Spot | Coefficient | Why |
|---|---|---|
| Empire Beach | 1.00 | Nearly identical bathymetry to buoy location. Gradual sandy slope, full NW fetch exposure. |
| Good Harbor Bay | 0.55 | Sheltered bay geometry reduces effective fetch by roughly half. |
| Leland Beach | 0.75 | Harbor creates variable refraction. Sandbar position shifts seasonally. |
| Christmas Cove | 0.40 | Shallow rocky shelf forces early wave breaking. Very narrow window of clean conditions. |
| Peterson Park | 0.45 | Similar shallow profile to Christmas Cove, slightly more forgiving slope. |
Grand Traverse Bay is treated as an entirely separate body of water. It is east-facing, has its own wind system, and produces only wind chop — no swell. GTB statuses are driven by wind speed alone, not wave height.
| Source | What we use it for | Status |
|---|---|---|
| NWS Traverse City (APX) api.weather.gov |
Air temperature, wind speed and gusts, wind direction, precipitation probability, sky conditions. Updates hourly. Powers the weather strip and 12-hour forecast. | LIVE YEAR-ROUND |
| NOAA Buoy 45002 45.344°N 86.411°W ndbc.noaa.gov |
Open-lake wave height, dominant period, water temperature. The most accurate source for actual lake conditions near Leelanau. | MAY–NOV ONLY |
| NWS Wind Model Fallback when buoy offline |
When the buoy is out of the water for winter, we estimate wave height from NWS wind speed using a simplified fetch model. Less accurate than the buoy — particularly for residual swell after storms. | DEC–APR FALLBACK |
Data refreshes every 30 minutes. The page shows the most recent successful fetch. If a source is unavailable, we degrade gracefully — the weather strip and wind data remain live even when wave data is model-estimated.
Wind direction relative to each beach — live and accurate year-round. This is the most important factor in CLEAN vs WASHED OUT status.
Weather conditions — live and accurate year-round from NWS.
Wave height (May–November) — based on buoy 45002 with per-spot coefficients. Reasonably accurate for open-lake conditions; nearshore effects (sandbar shifts, refraction, upwelling) introduce local variation we can't model.
Wave height (December–April) — estimated from wind speed. May be off by 1–2 feet, particularly in the hours after a storm when swell is running without active wind. Treat these numbers as directional, not precise.
Christmas Cove and Peterson Park — Conditions inferred from chart bathymetry and the physics of shallow shelves. Local knowledge supersedes our model here.
Water temperature — buoy water temp when available. In spring and fall, upwelling events (strong NW wind pushes warm surface water offshore, cold water rises) can drop nearshore temps 10°F overnight. We flag sustained NW wind but cannot predict upwelling precisely.
Christmas Cove ⚠ — rocks offshore confirmed on NOAA chart. The shallow shelf forces waves to break further out than expected. The surfable window is narrow: approximately 2–3ft, 7+ second period, NNW swell, light offshore wind. Estimate 8–12 genuinely good days per year.
Leland Beach — deadheads (submerged logs) reported south of the harbor mouth. Variable sandbar position changes year to year. Check locally.
Empire Beach / Platte Bay — best and most forgiving bathymetry on the peninsula. The reference beach for our model.
Grand Traverse Bay — water is significantly warmer than Lake Michigan (often 8–12°F warmer in summer). Glassy conditions in the morning, choppier as afternoon W/NW winds build. Northport Point is the most exposed GTB location.
Lake Michigan is cold, powerful, and deadly. Even on good days, water temperatures below 60°F require a wetsuit. Below 50°F, cold shock can incapacitate a swimmer within minutes. Wear appropriate protection.
Lightning. When the lightning warning is active, leave the water immediately. Lake Michigan offers no shelter. A storm 10 miles away can strike your location without warning.
Rip currents. Lake Michigan produces rip currents, particularly at harbor mouths and during storm wave events. If caught, swim parallel to shore, not against the current.
Small craft advisories. NWS issues these when sustained winds exceed 18 knots or gusts exceed 22 knots. We display active advisories at the top of the page. Paddleboarders and kayakers should treat these as serious warnings.
No warranty. Leelanau Surf Report is provided as-is, for informational purposes only. We make no guarantees about the accuracy, completeness, or timeliness of any conditions data. Weather and lake conditions change rapidly and unpredictably. Do not rely on this website or its information, which may be inaccurate.
Not a safety system. This site is a general conditions reference tool, not a safety system. You are solely responsible for your own safety and the safety of those in your care. Always use independent judgment before entering the water.
Data attribution. Weather data is sourced from NOAA National Weather Service and NOAA National Data Buoy Center. Both are public domain. We do not claim ownership of any underlying data.
User-submitted check-ins. Conditions reports submitted through the check-in feature are contributed voluntarily. We do not verify their accuracy. By submitting a check-in you agree that the information is submitted in good faith and that you grant us the right to display it anonymously on the site.
No commercial use. This site and its data are for personal, non-commercial use only. Do not scrape, republish, or redistribute our processed conditions data without permission.
Privacy. We do not collect personal information. Check-ins are stored anonymously (spot name, condition, timestamp only). We use privacy-respecting analytics that do not track individuals or share data with third parties.
Changes. These terms may change at any time. Continued use of the site constitutes acceptance of the current terms.
Questions or local knowledge to share: hello@leelanausurfreport.com
This model improves with local knowledge. If you surf or paddle Leelanau regularly and notice the site is consistently wrong about a particular spot, we want to hear about it. The bathymetric coefficients and per-spot status logic are our best guesses from chart data and physics — ground truth from people who actually surf these spots is more valuable.
If you know these spots, get in touch.