Our Methodology

Full transparency on how we collect, process, and present surf data for the Peruvian coast.

Open-Meteo

Marine & Weather API

Our primary data source comes from Open-Meteo, a free and open API that provides high-quality marine and weather data.

  • Marine API: wave height, swell period, wave direction, and sea surface temperature.
  • Weather API: wind speed and direction, UV index, and sunshine hours.
  • Update frequency: every 3 hours
  • Coverage: 72-hour forecast
  • Source: NOAA GFS and ECMWF models

Copernicus CMEMS

EU Marine Service

We complement with data from the Copernicus Marine Environment Monitoring Service (CMEMS), offering superior spatial resolution and extended forecasts.

  • Extended waves: significant height, peak period, direction, secondary swell.
  • Resolution: ~9 km (0.083°)
  • Update frequency: every 6 hours
  • Coverage: up to 240 hours (10 days)
Merge rule: for the first 72 hours, Copernicus supplements Open-Meteo data with additional variables. From 73 to 240 hours, Copernicus extends the forecast.
Wind data note: Copernicus Marine only provides wave and current data. Wind data comes exclusively from Open-Meteo (first 72h). For forecasts beyond 3 days, wind is shown as "N/A" (Not Available).

Tide Prediction

Local Harmonic Calculation

Tides are calculated locally using harmonic prediction, with no reliance on external APIs.

Formula: h(t) = Z0 + Σ Ai·cos(ωi·t - gi)

Where Z0 is the mean level, Ai the amplitude, ωi the angular speed, and gi the phase of each constituent.

  • 6 reference stations along the Peruvian coast: Paita, Salaverry, Chimbote, Callao, San Juan, Mollendo
  • 8 harmonic constituents per station (M2, S2, N2, K2, K1, O1, P1, Q1)
  • Calculation: twice daily
  • Coverage: 7-day prediction

Peru has a microtidal regime (range ~0.05 to 0.80 m), with a mixed semidiurnal pattern.

Condition Scoring

Rating Algorithm 1-10

Each forecast hour receives a score from 1 to 10, calculated by adding points for different factors:

Wave Height (0-4 pts)

< 0.3m = 0 pts | 0.3-0.8m = 1 pt | 0.8-1.5m = 2 pts | 1.5-2.5m = 3 pts | > 2.5m = 4 pts

Swell Period (0-3 pts)

< 8s = 0 pts | 8-11s = 1 pt | 11-14s = 2 pts | > 14s = 3 pts

Wind (-2 to +2 pts)

Light wind (5-10 km/h) always adds +1. Moderate wind (10-20 km/h): offshore +2, onshore -1. Strong wind (> 20 km/h): offshore +1, onshore -2.

Secondary Swell (+1 pt)

If a secondary swell with height ≥ 0.3m exists, 1 additional point is added.

Rating by score:

Flat (1-2) Poor (3-4) Fair (5-6) Good (7-8) Epic (9-10)

Derived Metrics

Additional Calculations

From the base data, we calculate additional metrics to help you plan your session:

Wave Energy

Calculated as H² × T (height squared times period). Indicates wave power. Color coding: gray < 5 kJ, green 5-15, orange 15-30, red > 30.

Wetsuit Recommendation

Based on sea surface temperature (SST). We suggest the appropriate neoprene thickness.

Moon Phase

We display the current moon phase, relevant for its influence on tides and general conditions.

Best Hour of the Day

We identify the time window with the best score within each day to optimize your session.

Community Data

User-Generated Content

Our community actively contributes to improving the available information:

  • Beach submissions: users can suggest new spots that are reviewed by moderators before publishing.
  • Edit suggestions: any registered user can propose improvements to existing beach information.
  • Community photos: user-uploaded photo gallery for each spot, moderated before publishing.

Update Summary

Source Frequency Coverage
Open-Meteo Update frequency: every 3 hours 72h
Copernicus CMEMS Update frequency: every 6 hours 240h (10d)
Tide Prediction Calculation: twice daily 7d