How the bite score works
The bite score is a 0–100 heuristic built from four weather and astronomical factors that most consistently correlate with fish activity. Each factor contributes up to 25 points, with a small bonus or penalty layered on for barometric pressure trend.
The four factors
| Factor | What we look for | Why |
|---|---|---|
| Barometric pressure | 1015–1018 hPa is the narrow sweet spot for 25/25; 1011–1022 still scores well. Trend over the past 6 hours can add up to +6 or subtract up to −5. | Falling pressure ahead of a front often triggers a feeding spike. Sharply rising pressure after a front shuts the bite down. |
| Temperature | For Lake Superior–fronted cities, surface water temperature is used; for inland-only cities, air temperature stands in. The prime band is narrow and shifts with the species filter (e.g. 44–52°F for Lake Trout, 68–75°F for Bass). | Water temperature drives fish metabolism directly, and the “ideal” band varies by species — pick a group with the “Score for” dropdown to recompute the whole forecast against that target. |
| Wind | 5–8 mph is the narrow ideal; 3–12 mph still scores well. Wind from W, SW, or S gets a small bonus on top. | Light chop oxygenates and breaks up the surface, hiding predators. Easterly wind has a long folk-wisdom track record of slow days. |
| Moon phase | 25/25 requires being within ~14 hours of a new or full moon; close-but-not-peak phases score 20 or 15. | Solunar theory: gravitational influence aligns with predictable feeding windows around moonrise and moonset. |
Modifiers (small bonuses)
Beyond the four full factors above, smaller signals nudge the score by a few points. These are shown as dashed chips beneath the factor grid so it's clear they aren't full 25-point factors.
| Modifier | Range | Why |
|---|---|---|
| Pressure trend | −5 to +6 | Built into the pressure factor — falling pressure ahead of a front adds; sharp rising after a front penalizes. |
| Humidity (dew-point spread) | −2 to +3 | Small spread = muggy, often pre-frontal, reinforcing a falling-pressure signal. Wide spread = dry, stable high-pressure air, classic post-front lull. Capped low because it overlaps with pressure trend and cloud cover. |
| Dawn / dusk window | 0 to +6 | Bite frequently peaks during the light-transition windows. Bonus is +6 within 30 min of sunrise or sunset, decays through +4 (1h), +2 (1.5h), +1 (2h), then 0. Computed from Open-Meteo's sunrise/sunset times for the city's coordinates. |
| UV / sun intensity | −3 to 0 | Intense midday sun pushes fish deep. Penalty grows with UV index — soft light (UV<3) is neutral, bright sun (3–6) is −1, intense (6–8) is −2, extreme (8+) is −3. Combines sun-angle and cloud-cover effects in one number. |
| Recent rain (48h) | −2 to +1 | Aggregates the past 48 hours of precipitation. Light rain (0.05–0.3″) oxygenates and concentrates fish near tributaries (+1); heavy rain (1–2″) muddies water (−1); flooding (2″+) disperses fish (−2). Suppressed below 0.05″ since most hours are dry. |
Score bands
| Score | Verdict |
|---|---|
| 80–100 | Excellent — strong feeding window. |
| 65–79 | Good — conditions favor active fish. |
| 50–64 | Fair — mixed signals, worth a try. |
| 35–49 | Slow — downsize and slow down. |
| 0–34 | Poor — tough day on the water. |
Picking a spot
Choose any city in Houghton, Keweenaw, or Baraga county from the dropdown on the home page. The bite score uses that city's coordinates as the weather sample point. The graph plots the bite score for every hour over the next 7 days, with a dashed "now" marker, day separators, and a highlighted peak so you can pinpoint specific feeding windows.
Data sources
- Open-Meteo Forecast API for current conditions and forecasts up to 16 days out.
- Open-Meteo Marine API for Lake Superior surface temperature on cities with shore frontage.
- USGS Water Services for real-time stream temperature and discharge on river cities (Tapiola, Pelkie, Alston use Sturgeon River gauge 04043050).
- Moon phase is computed locally using the Conway approximation — accurate within a day.
Caveats
- For inland-only cities we still use air temperature as a proxy; lake-specific temps aren't available via public API. On Lake Superior, water lags air by weeks; on inland lakes, the lag is shorter.
- If the marine API has no data for a coordinate (coverage gaps, service issues), the city falls back to air-temp scoring.
- This is a heuristic, not a prediction. Species, structure, presentation, and pure luck still rule.
- Open-Meteo's archive trails real-time by ~5 days. Same-week historical lookups use the forecast endpoint's past-data window.