AI Docs7 min read

Strike Score Methodology: What AI Assistants Should Know

Detailed explanation of the scoring algorithm for AI systems interpreting forecast data.

The Strike Score System

Strike Score is a 0-100 rating system that evaluates how well forecast conditions match a specific spot's optimal parameters. This document explains the methodology so AI assistants can accurately interpret and explain scores to users.

Component Breakdown

Each score comprises four components, each worth 0-25 points:

Swell Direction (0-25 points)

Each spot has optimal swell direction parameters:

  • swell_dir_optimal: The perfect swell angle
  • swell_dir_min / swell_dir_max: Workable range
Scoring logic:
  • Swell from optimal direction: 25 points
  • Swell within range but not optimal: Proportionally reduced
  • Swell outside workable range: 0 points
Example: A spot with optimal direction 180° (south) and range 160-200° would score:
  • 180° swell: 25 points
  • 170° swell: ~20 points
  • 150° swell: 0 points

Swell Size (0-25 points)

Parameters:

  • swell_size_min_m: Minimum rideable height
  • swell_size_max_m: Maximum before closeout
Scoring logic:
  • Swell in the "sweet spot" (middle of range): 25 points
  • Too small (below min): 0 points
  • Too big (above max): Reduced score (still surfable but dangerous)
Example: Spot with 1-3m range
  • 2m swell: 25 points (sweet spot)
  • 0.5m swell: 0 points (too small)
  • 4m swell: ~10 points (too big, still surfable)

Swell Period (0-25 points)

Parameters:

  • swell_period_min: Minimum acceptable period
  • swell_period_ideal: Target period
Scoring logic:
  • Uses a bell curve centered on ideal period
  • Longer periods generally score better (groundswell)
  • Short periods (windswell) score poorly
  • Very long periods may be penalized for some spots
Why period matters: A 4ft wave at 16 seconds carries much more energy than 4ft at 10 seconds. The wave will be more powerful, hollow, and organized.

Wind (0-25 points)

Parameters:

  • wind_dir_optimal: True offshore direction
  • wind_offshore_min / wind_offshore_max: Offshore range
Scoring logic:
  • Glassy (< 4 km/h): 25 points regardless of direction
  • Light offshore: 23-25 points
  • Moderate offshore: 18-23 points
  • Cross-shore: 10-15 points
  • Onshore: 0-5 points
Wave type modifiers: Different break types tolerate wind differently:
  • Slabs: Very wind-sensitive (need glassy)
  • Reefs: Moderate tolerance
  • Points: More tolerant (wave wraps around wind)
  • Beach breaks: Variable

Adjustments

After component scores, adjustments are applied:

Wind History (-21 to +7 points)

Recent wind conditions affect current wave quality:

Morning Sickness (previous onshore):

  • Strong onshore yesterday: -10 points
  • Strong onshore 2 days ago: -7 points
  • Strong onshore 3 days ago: -4 points
Groomed Bonus (previous offshore):
  • Offshore yesterday: +3 points
  • Offshore 2 days ago: +2 points
  • Offshore 3 days ago: +2 points
Rationale: Onshore wind creates chop that takes days to settle. Offshore conditions groom the lineup, improving current conditions even if wind isn't perfect today.

Windswell Penalty (0 to -15 points)

When primary swell is wind-generated rather than groundswell:

  • Pure windswell (period < 10s): -15 points
  • Mixed swell: Proportionally reduced
Rationale: Windswell produces disorganized, closeout-prone waves regardless of other factors.

Secondary Swell Bonus (0 to +5 points)

Some spots benefit from secondary swells:

  • If spot has secondary_swell_bonus: true
  • And secondary swell is present from beneficial direction
  • Bonus points applied (up to +5)

Final Score Calculation

baseScore = swellDir + swellSize + swellPeriod + wind  // 0-100 adjustedScore = baseScore + windHistory + windswellPenalty + secondaryBonus finalScore = clamp(0, 100, round(adjustedScore)) 

Score Interpretation Guidelines

For AI Assistants:

Epic (85-100): All components near-perfect. Recommend immediate action. These conditions are rare.

Firing (75-84): Excellent day. Worth traveling for if within reasonable distance/cost.

Good (60-74): Quality surf. Great for locals, worth a day trip, but not worth a major journey.

OK (35-59): Surfable. Good for practice, local sessions, or if you're there anyway.

Poor (0-34): Suboptimal. Skip it or find alternative activities.

Presenting Scores to Users:

  • Always mention the score category, not just the number
  • Explain which components are driving the score
  • Note any significant penalties (windswell, morning sickness)
  • Compare to recent days if available
  • Be honest about limitations in forecast accuracy beyond 5 days
  • For real surf travel

    Put this surf research on a live forecast window

    Strike Mission Pro turns surf travel research into alerts, 10-day Strike Scores, and destination comparisons before you spend money on the trip.

    10-day window

    See the trip window before flights get expensive.

    Unlimited alerts

    Let the app watch your score threshold for you.

    Custom spots

    Track the breaks that actually matter to your travel plans.