How our fishing times are calculated
FishDataPoint brings together moon and sun timing, tide predictions and weather forecasts so you can plan your own trip. This page explains exactly what each number means, and what it doesn't.
Solunar fishing windows (rule: solunar-v1)
Solunar theory says fish may be more active around certain positions of the moon. We use it as a planning convention, not a proven predictor.
For every place and date we calculate four kinds of moon event with Astronomy Engine, a published open-source astronomy library:
| Window | Centred on | Width |
|---|---|---|
| Major | The moon directly overhead (upper transit) or directly underfoot (lower transit) | 2 hours: 1 hour before to 1 hour after |
| Minor | Moonrise or moonset | 2 hours: 1 hour before to 1 hour after |
- Major and minor windows are the same width in solunar-v1. Some other sites draw minor windows as one hour; we chose one consistent rule and say so.
- The second transit of the day is calculated, not assumed to be 12 hours after the first.
- A window that crosses midnight is kept whole and marked "(previous day)" or "(next day)".
- Some days have no moonrise or no moonset. When that happens, there is simply no window for it. We never invent one.
What a window is and isn't
- A window is a time to consider, not a forecast that fish will bite.
- We don't give a catch percentage, a star rating or a "best day" score. No published rule we could verify supports one.
- Species, season, water temperature, clarity, structure, bait and technique matter as much as, or more than, the moon. Use the windows alongside the tide and weather on the same page.
- If we ever add a planning score, it will be versioned, its factors will be shown, and it will never be labelled a probability.
"Best" windows in the 7-day outlook
The 7-day outlook lists every window for each day and marks the top two as "Best". The ranking is simple and fixed:
- Windows that overlap dawn or dusk twilight for more minutes come first.
- Then major windows before minor ones.
- Then the earlier window.
"Best" is a way to order windows for planning. It is not a bite prediction, a catch probability or a rating of the day.
Sun and moon
- Sunrise, sunset, moonrise and moonset are calculated for a sea-level observer using the library's standard apparent-horizon convention, which accounts for atmospheric refraction. Hills, mountains or buildings can change the moment you actually see the sun or moon.
- Moon phase and illumination are calculated at the midpoint of the local day. The moon drawing is illustrative, not an exact picture of the moon's orientation.
- Daylight length is the time from sunrise to sunset.
- Near the poles, the sun or moon may not rise or set at all on some dates. We show "No event today" rather than a made-up time.
Dawn and dusk
We use civil twilight:
- Civil dawn is the moment the sun's centre rises to 6° below the horizon. Morning twilight runs from civil dawn to sunrise.
- Civil dusk is the moment the sun sinks to 6° below the horizon. Evening twilight runs from sunset to civil dusk.
A fishing window is marked as overlapping dawn or dusk only when it actually intersects one of those periods (civil dawn → sunrise, or sunset → civil dusk). We show how many minutes the two overlap. On days with no sunrise or sunset, for example near the poles, there is no twilight period to overlap, and no marker is shown.
Local time, always
- Every time is shown in the selected place's own time zone, not your device's, so a San Diego forecast reads correctly from anywhere. The one exception is the "saved" time on an offline copy, which uses your device's time zone.
- We store event times in UTC and convert them for display, which handles daylight-saving changes correctly. Days when the clocks change are 23 or 25 hours long.
Monthly fishing calendar
- The calendar uses the same window calculations as the daily page and the 7-day outlook, so the same window shows the same times everywhere.
- Grid view: each day shows the moon phase, sunrise and sunset, and that day's top-ranked window, using the same order as "Best" in the 7-day outlook. The four principal phases (new, first quarter, full, last quarter) are highlighted.
- List view: each day shows every window, marked Major or Minor and AM or PM by when the window starts on that day.
- A window that started before midnight and runs into the day is labelled "from previous evening". It isn't moved to the next morning.
- Weather appears only for the next 7 days, within the forecast range. Every other day shows astronomy only.
- The calendar covers 12 months either side of the current month. Every time is local to the place.
- It prints as a grid without the site's navigation.
Downloads (.ics and PDF)
- Calendar file (.ics):
- Each solunar window is one event, titled for example "Major solunar window — San Diego, CA".
- The event notes give the reason (moon overhead, moonrise…), any dawn or dusk overlap, the reminder that it is a planning window, not a bite prediction, and a link back to the place page.
- Start and end times are stored in UTC, so your calendar app shows them in your own time zone.
- Each event keeps the same ID every time you download it, so re-importing updates events instead of duplicating them.
- It covers the next 30 days by default (up to 31), solunar windows only.
- PDF calendar:
- One landscape US Letter page with the same month grid as the calendar page.
- It is astronomy only, because weather and tide forecasts change after you print.
- The footer reads "FishDataPoint · fishdatapoint.com · {time zone} · Generated {date and time UTC}", so a printed copy always shows when it was made.
- Both use the same window calculations as the rest of the site (solunar-v1), so times match the pages exactly.
Tides
- Tide heights are NOAA predictions for a named tide station, calculated from that station's long-term harmonic constants. They are not live water-level measurements. Wind, river flow and air pressure can make the real water level differ.
- Heights are measured above Mean Lower Low Water (MLLW), the average of each day's lower low tide. A negative height means the water is predicted to fall below that average, which is normal on some low tides.
- High and low tide times come from NOAA's high/low product. The curve joins NOAA's hourly predicted values. Where a station only provides high/low times, we show the times and don't draw a curve.
- Each place uses a station we chose by hand for being on the same body of water, not simply the nearest one. The station name, ID and the reason for choosing it are shown on the place page. Conditions at the station can still differ from your exact spot.
- One station (San Francisco, Rincon Point 9414317) is a harmonic prediction station whose physical gauge was removed in 1981. NOAA still publishes predictions for it, and we label it "NOAA tide predictions (harmonic station; no live gauge)".
- "Tide right now" (shown on a tides page for today) is interpolated between the predicted high and low on either side of the current time. It is not an observation.
- Rising means the next predicted event is a high; falling means it is a low.
- The countdown is to that next predicted high or low.
- The estimated height follows a smooth curve between the two predicted heights, using the real time gap between them, because tides aren't symmetric.
- If there isn't a predicted high or low on both sides of now, we don't show an estimate.
- The 14-day tide table lists NOAA's predicted highs and lows for each local day, at the place's reviewed station.
- Tide predictions don't tell you current speed or direction.
- Inland lakes have no ocean tide, so their pages show no tide data.
Weather
- Weather comes from computer forecast models (via Open-Meteo), not from a weather station at your spot. Values describe a model grid cell, which may be a few kilometres across.
- Air temperature is not water temperature.
- Wind direction is where the wind blows from.
- "Rain chance" is the model's probability of precipitation for that hour, not an amount of rain.
- Pressure is sea-level pressure in hPa.
- Pressure trend is the change in modelled sea-level pressure over 6 hours, taken from the same model series.
- Today: from the current hour to 6 hours later.
- Other dates: from 6 AM to noon, local time.
- We call it rising if pressure goes up by more than 1.5 hPa, falling if it drops by more than 1.5 hPa, and steady otherwise. The change itself is shown in hPa.
- The 1.5 hPa threshold is our display rule and may be adjusted. Some anglers watch pressure changes, but there is no evidence that all fish species respond to them the same way, and the trend is not a bite prediction.
- UV max is the highest hourly modelled UV index during the place's local day (midnight to midnight, local time). We calculate it from the hourly values ourselves, rather than using the provider's daily figure, which is based on GMT days.
- Weather is shown only as far ahead as the provider's forecast goes, about a week. Further-out dates show astronomy and tides only, and the page says so.
- Daily highs and lows are calculated from the hourly values for that local day.
Sea conditions
- On open-coast places, the "Sea conditions" panel shows modelled sea state, not observations: hourly wave height, period and direction, and swell where the model provides it.
- Directions are where the waves or swell come from. Heights are in feet or metres (your units setting), and periods in seconds.
- Values are for the offshore model grid cell named on the panel. Breaking waves at the beach, and conditions on a pier or in a harbor, can differ a lot.
- Sheltered bays and harbors show "Not applicable — sheltered bay". Lakes and searched locations have no sea panel.
- It isn't a surf report or a safety assessment.
Lake level (Lake Tahoe)
- The Lake Tahoe page shows the latest reported lake elevation from the USGS gauge at Tahoe City, in feet above the Lake Tahoe datum (USBR), with the gauge's raw reading and the time it was taken.
- USGS marks recent readings provisional; they can be revised. A reading more than 48 hours old is marked "older reading".
- We don't say whether boat ramps are open or usable. Check ramp status with the operator.
- Other lakes don't show a level yet.
How fresh is the data
Every card shows its source and when its data was retrieved or calculated. A card can be in one of these states:
| State | Meaning |
|---|---|
| Fresh | Recently retrieved from the provider, or calculated |
| Unavailable | No usable data: the data service couldn't be reached from your browser, or we've switched it off. We don't show older copies instead. For alerts, this reads "Alert status unknown", which never means there are no alerts |
| Not applicable | Doesn't apply here, e.g. ocean tides at a lake, open-ocean wave data inside a sheltered bay, tides at a searched point whose tide station we haven't reviewed, or weather beyond the forecast range |
| Offline | You have no connection and opened a page you viewed before. A banner says "You're offline. This forecast was saved {time} and may be out of date." The saved time is shown in your device's time zone (and your 12/24-hour setting), because it's when you saved the page. Everything else on the page stays in the place's own time zone. Every card keeps the retrieval time it was saved with; nothing is updated until you're back online |
A problem with one data service never removes the others: astronomy is calculated by our own code and is always available. A missing value is shown as "—", never as zero.
Live data is fetched by your browser, directly from each data service, when you open the page; your browser may reuse a recent answer from its normal web cache. "Retrieved" is when your browser fetched it, which is not the time the weather model was run.
Who reviews these places
Each place on this site comes with notes on its access point, tide station and the agencies whose rules apply. Here's how those notes are written and checked.
- Who reviews them. The FishDataPoint team. For now, the site's owner has delegated approval to the team and will review every note. Each place shows the date its location details were last reviewed.
- What we check. For each place, we check the access point the forecast is calculated for, its NOAA tide station (coastal places only), its National Weather Service alert zones and the agencies that set its fishing rules. Every fact is checked against the sources listed on that place's page. Status lines, such as closures and boat-ramp conditions, carry the date we checked them.
- How notes are written. We draft the notes with the help of AI tools. Each claim is then checked against its cited source, opened on the day of the check; those checks are AI-assisted too. Anything we can't confirm from an official or cited source is taken out. A second reviewer on the team spot-checks a sample before a note is approved.
- What we don't claim. We aren't fisheries biologists, licensed guides or a government agency. We don't state bag limits, size limits, seasons or advice on eating fish. Instead, we link to the agencies that publish them, such as CDFW, the Nevada Department of Wildlife and OEHHA.
- Corrections. Each place lists dated note updates at the end of its notes. If you spot something wrong, please tell us.
What we don't do
- We show official NWS alerts for our reviewed places, exactly as the NWS words them, but we don't issue warnings or safety advice of our own. If our alert check fails, the page says "Alert status unknown", which never means there are no alerts. See data sources and the terms.
- We don't summarise fishing regulations. Each place links to the official rules authority.
- We don't predict catches.
Questions about a number? See data sources and coverage.
Fish