Research & modeling

The data, the methods, and the honest line between them.

Everything below is reproducible from two files: a hand-kept catch log and a public NOAA weather record. Measured results are shown in solid teal. The one thing we estimated — water temperature — is shown in dashed amber and treated as a model, not a measurement.

Methods

What is real, and what is modeled

Measured

  • Catch log — species and counts recorded by hand, 11:00–17:00, every fishing Saturday. 427 hourly rows across 61 sessions. (Some hours were missed; gaps are left as gaps.)
  • Daily air temperature — official daily high/low (TMAX/TMIN), NOAA NCEI, Washington Dulles (USW00093738).
  • Rainfall & wind — daily precipitation and average wind from the same NOAA station, joined on date.

Modeled

  • Hourly air curve — we did not have an hourly thermometer at the pond, so the within-day curve is interpolated between the NOAA daily high and low.
  • Water temperature — no in-pond sensor existed for this basin. Water temperature is a model estimate, derived from the air curve with a time lag (details below).
  • Both are flagged as estimates everywhere they appear, and neither is used as if it were a field reading.

This separation is deliberate. A study is only as trustworthy as its weakest unlabeled assumption, so the assumptions are labeled.

Findings — from the real catch log

When the fish bite

Catch by time of day

Measured

Total fish recorded in each hourly slot, summed across all 61 sessions. The bite is steadiest through the early afternoon and softest right at the 11:00 start.

Peak hour → 14:00 (169 fish). Slowest → 11:00 (130 fish). Midday (12:00–15:00) holds ~60% of the total catch.

Catch vs. daily high temperature

Measured

Each dot is one Saturday: that day's NOAA high (°F) against total fish caught. The amber line traces the average within four temperature bands. Catch rises into the mid-80s, then falls off on the hottest days.

Average catch by band → under 80°F: 14.7 · 80–85°F: 18.6 · 85–90°F: 19.2 · 90°F+: 16.7. The drop on 90°F+ days is consistent with heat stress and lower dissolved oxygen — a hypothesis the water-temperature model (below) is built to test.

Rain vs. dry days

Measured

Average catch on days NOAA recorded rain vs. none.

Essentially no difference (17.4 vs 18.0). A real null result — reported, not buried.

Year over year

Measured

Average fish per session, by season. 2026 is partial (8 of ~18 Saturdays).

Stable effort, stable fishery: ~17–18 fish/session across full seasons.

Modeling — estimated, not measured

Estimating water temperature where we couldn't measure it

The single biggest data gap in this study is the one number we most wanted: pond water temperature. There was no sensor in this basin, and we did not pretend otherwise. Instead we built a small model to estimate it — and made the estimate honest by stating exactly how it's built and how it could be wrong.

How the model works

Two steps, both transparent:

1. Hourly air curve. Interpolate a smooth daily curve between the NOAA daily low (early morning) and high (mid-afternoon), so each fishing hour gets an estimated air temperature.

2. Time-lagged water response. Water warms slower than air and lags behind it. The model pushes a damped, delayed version of the air curve forward by a couple of hours — so estimated water temperature peaks in late afternoon rather than at the 3:00 air peak.

What the model is not

It is not calibrated against a single real water reading, because none exist for this pond. The lag and damping are reasonable assumptions, not fitted values. So the curve below shows the shape we expect, not a verified temperature.

Validation plan. A waterproof thermometer (~$15) or a submersible logger (~$30–80) dropped in on a few remaining Saturdays this summer would give real spot readings to test — and correct — this model. That's the next step.

Modeled curves for a hot day — July 8, 2023

Modeled estimate

Both lines are model output, not measurements. The point of the picture is the relationship: estimated water (heavier dashes) peaks around 16:00, lagging the estimated air peak at 15:00, and stays warm into the evening.

If validated, this lag is what would link a hot afternoon to the next morning's oxygen low — the mechanism behind the 90°F+ catch drop seen in the real data above.

Open data

Download the datasets

Everything on this page is reproducible. Measured files and the model file are kept separate — on purpose.