← Folly Surf

Open formula · Version 4

The Folly Index

A 0–100 summary of modeled surf potential, built from nearshore waves and local wind.

The Folly Index combines nearshore wave height, peak period and local wind into a single score. Higher scores favour moderate waves, longer peak periods and lighter, better-aligned winds. The implementation and full formula are open source.

Inputs and source basis

SymbolInputSource and meaning
HNearshore significant wave height, metresModeled significant wave height at the selected NOAA NWPS point near the five-metre depth contour.
TpPeak wave period, secondsPeak period at the same NWPS point and forecast hour.
VWind speed, mphCurrent local Open-Meteo forecast hour.
DWind direction, degreesThe direction the wind comes from, clockwise from north. A representative offshore bearing of 315° is used for Folly.
UWind gust, mphThe matching local weather forecast hour.

The score uses nearshore significant wave height and peak period from the selected Folly area, paired with local wind and gusts for the same hour. Offshore waves and breaking-surf reports are displayed separately.

NWPS forecasts must be within 18 hours of their model cycle, and weather data within six hours. Both must cover the current forecast hour. Cached data remain usable within those limits, with their status shown. Age is measured from issue time when available, otherwise retrieval time.

The exact formula

Let clamp(x) = min(1, max(0, x)). All three factors lie between zero and one:

Q = round(100 × A × P × W)

The three factors multiply together. Wave height and period set the potential; the combined wind and gust response adjusts it for surface conditions.

1. Moderate-wave preference: A

If H ≤ 1.2 m:       A = clamp(H / 1.2)
If 1.2 < H ≤ 1.8 m: A = 1
If H > 1.8 m:       A = clamp(1 − (H − 1.8) / 3)

The factor reaches one at 1.2 m, stays there through 1.8 m and falls to zero at 4.8 m.

2. Peak-period preference: P

Pold = clamp((Tp − 3) / 10)
x = clamp((Tp − 3) / 4)
Pplateau = x² × (3 − 2x)
P = 0.5 × Pold + 0.5 × Pplateau

Version 4 averages two period factors: v2’s linear curve and v3’s seven-second plateau. The two factors receive equal weight. The size and wind factors remain unchanged.

Peak periodOld factorPlateau factorCurrent blend
3 s000
6 s0.30.843750.571875
7 s0.410.7
8 s0.510.75
10.9 s0.7910.895
13 s and above111

The blend gives 6–8-second periods more credit than v2 while retaining a gradual increase beyond seven seconds. It reaches one at thirteen seconds and stays there for longer periods.

For the rounded Pier inputs discussed on October 21, 2026—3.1 ft nearshore significant height, 10.9 s peak period, 10 mph wind from 17° and 13 mph gusts—v2 gives 46, v3 gives 61 and v4 gives 55.

3. Wind and gust response: W

Let δ be the smallest circular difference between D and 315°, from 0° to 180°. Define a wind input E and alignment o:

E = max(V, 0.7 × U)
o = (1 − cos(δ × π / 180)) / 2
W = clamp(1 − E × (0.012 + 0.040 × o)
            − max(0, E − 12) × 0.025)

Northwest wind has o = 0; southeast wind has o = 1. Other directions vary continuously. All directions lose points as E rises, with a stronger penalty above 12 mph. Gusts change E only when 70% of the gust exceeds sustained speed.

V2 multiplied sustained-wind and gust factors and applied a gust ceiling. V3 introduced one wind response, retained in v4, to reduce overlapping penalties.

What the bands mean

ScoreBandReading
0–19LowThe modeled ingredients provide little potential.
20–39MarginalOne or more ingredients substantially limit the setup.
40–59FairSome potential, with meaningful limitations.
60–79PromisingWaves and wind align favourably.
80–100StandoutA strong combination of waves and wind.

The five bands divide the 0–100 score into equal intervals.

Missing, inconsistent or stale inputs

With usable gusts, calculate E normally. If direction is unknown, Wbest uses o = 0 and Wworst uses o = 1. With known direction, both use the supplied alignment.

Known gusts, unknown light-wind direction:
minimum = round(100 × A × P × Wworst)
maximum = round(100 × A × P × Wbest)

Unknown or inconsistent gusts:
minimum = 0
maximum = round(100 × A × P × Wbest evaluated at E = V)

In either case: score = unavailable; band = unavailable

For unknown gusts, the upper endpoint uses the supplied direction if available, otherwise the best alignment. The lower endpoint allows a gust large enough to reduce W to zero. Wind direction remains part of the calculation when gusts are present or unknown.

Nearshore modeling

NOAA NWPS accounts for shoaling, refraction, depth-induced breaking, wind forcing and other wave processes. The Folly Index uses the resulting nearshore height and peak period directly. Its factors rank that modeled setup.

The five-metre contour identifies the water depth of the forecast points. Our research notes cover the model sources, local bathymetry and observation study.

Other information on the dashboard

Offshore swell, approach direction, tide height and stage, Edisto buoy measurements, temperature, daylight, traffic and cameras provide additional context. The score uses only the nearshore wave and local wind inputs listed above. NWS rip-current risk and beach alerts are displayed separately.

What the archival reports add

Our reviewed archive contains 105 timed beach reports with 101 matched Edisto buoy wave records. Of 17 matched reports explicitly tagged “fun,” 11 had offshore dominant periods below eight seconds. The “fun” and “weak” groups both had a median period of 7.69 seconds. Four reports described waves as both weak and longboardable. These findings support examining the old period penalty and keeping board suitability separate from wave power.

V4 retains the original size curve and incorporates the revised period preference. The archival study and source details are in our research notes.

Observation and refinement plan

Our target is worthwhile surf at a named Folly spot for a specific board and skill level. The next stage pairs forecasts with beach observations to refine the score:

  1. Collect timestamped, independent beach observations at named Folly locations, including wave quality, observed size, wind, tide, sandbar context and a consistent observer rubric.
  2. Preserve the forecast available before each observation, with its issue time, retrieval time and formula version.
  3. Group observations by swell or weather event, then keep entire events out of calibration. Evaluate on those held-out events.
  4. Compare the index with simple baseline rules and report sample counts, missing-data rates, band confusion, variation between observers and results by location and season. Use uncertainty estimates that respect event grouping.
  5. Compare v4, archived v2 and v3, a simple height-and-wind baseline and a period-free variant. Test whether period, angle and tide improve predictions on held-out events. Publish the results and evaluate fitted changes on a further set of independent events.

Public foundations

These sources describe the wave variables, model physics and local surf context behind the index.