Fronts and pressure
What a passing cold front changes on the lake, how the app finds fronts in weather data, and why the barometer itself is only a timing signal.
In plain words
A cold front is the leading edge of colder, drier air. Ahead of it the wind blows from the south or southwest, pressure falls and clouds build. As it passes the wind swings to the west or northwest, often with gusts; pressure bottoms out and starts to rise, and the air cools. Behind it come clear skies, bright light, cooler air and a steady northwest wind.
Anglers often report slower fishing for a day or two after a cold front. The app treats a front as a change in conditions: the day before a front moves the target depth band shallower, the two days after extend it deeper (Fish and temperature), and front days give vibration baits a floor in stained water (Scoring). These adjustments are Starting value: checked by the backtest.
What the barometer shows
From Oct 4 20:56 to Oct 13 12:56, 2019, sea-level pressure at Selfridge ranged from 1010.0 to 1029.9 hPa, a range of 19.9 hPa. A change of 15 hPa is the pressure of a column of water high:
A bass at 15 ft is under about 1,462 hPa (air plus water). A 15 hPa front changes that by 1.0%, the same as swimming 6 in up or down. So the pressure change itself is small next to what a fish meets moving through the water column. The app uses pressure as a timing signal only: it marks when the front passes. The changes that matter come with the front: the wind shift (and the waves and stirring it brings), the light once the sky clears, and the cooling of the air and the shallow water.
Physical constants on this page, not engine values: fresh water density 1000 kg/m³ (999.7 at 10 C), standard sea-level pressure 1013.25 hPa.
Table of values
| Local date | Sea-level pressure |
|---|---|
| Oct 4 20:56 | 1029.2 hPa |
| Oct 4 23:56 | 1029.9 hPa |
| Oct 5 02:56 | 1029.2 hPa |
| Oct 5 05:56 | 1027.1 hPa |
| Oct 5 15:56 | 1020.3 hPa |
| Oct 5 17:56 | 1018.6 hPa |
| Oct 5 20:56 | 1017.6 hPa |
| Oct 5 23:56 | 1014.8 hPa |
| Oct 6 02:56 | 1013.3 hPa |
| Oct 6 05:56 | 1014.3 hPa |
| Oct 6 07:56 | 1015.1 hPa |
| Oct 6 14:56 | 1016.5 hPa |
| Oct 6 17:56 | 1017.6 hPa |
| Oct 6 20:56 | 1018.8 hPa |
| Oct 6 23:56 | 1019.3 hPa |
| Oct 7 02:56 | 1018.7 hPa |
| Oct 7 05:56 | 1019.0 hPa |
| Oct 7 08:56 | 1020.2 hPa |
| Oct 7 11:56 | 1020.8 hPa |
| Oct 7 14:56 | 1019.3 hPa |
| Oct 7 19:56 | 1020.9 hPa |
| Oct 7 20:56 | 1021.9 hPa |
| Oct 7 23:56 | 1023.6 hPa |
| Oct 8 02:56 | 1023.9 hPa |
| Oct 8 05:56 | 1024.2 hPa |
| Oct 8 08:56 | 1026.1 hPa |
| Oct 8 10:56 | 1026.0 hPa |
| Oct 8 14:56 | 1024.2 hPa |
| Oct 8 16:56 | 1023.9 hPa |
| Oct 8 23:56 | 1024.2 hPa |
| Oct 9 02:56 | 1023.8 hPa |
| Oct 9 05:56 | 1024.6 hPa |
| Oct 9 08:56 | 1025.7 hPa |
| Oct 9 09:56 | 1026.0 hPa |
| Oct 9 14:56 | 1023.8 hPa |
| Oct 9 23:56 | 1023.9 hPa |
| Oct 10 02:56 | 1023.5 hPa |
| Oct 10 05:56 | 1023.6 hPa |
| Oct 10 08:56 | 1024.0 hPa |
| Oct 10 11:56 | 1024.2 hPa |
| Oct 10 14:56 | 1022.1 hPa |
| Oct 10 17:56 | 1021.6 hPa |
| Oct 10 20:56 | 1020.9 hPa |
| Oct 10 23:56 | 1020.7 hPa |
| Oct 11 02:56 | 1019.7 hPa |
| Oct 11 05:56 | 1019.0 hPa |
| Oct 11 08:56 | 1018.4 hPa |
| Oct 11 11:56 | 1017.0 hPa |
| Oct 11 14:56 | 1015.0 hPa |
| Oct 11 17:56 | 1012.2 hPa |
| Oct 11 20:56 | 1010.5 hPa |
| Oct 11 23:56 | 1012.0 hPa |
| Oct 12 02:56 | 1013.7 hPa |
| Oct 12 05:56 | 1015.1 hPa |
| Oct 12 07:56 | 1016.2 hPa |
| Oct 12 11:56 | 1017.3 hPa |
| Oct 12 15:56 | 1015.9 hPa |
| Oct 12 17:56 | 1015.6 hPa |
| Oct 12 23:56 | 1015.0 hPa |
| Oct 13 02:56 | 1013.9 hPa |
| Oct 13 05:56 | 1012.9 hPa |
| Oct 13 07:56 | 1012.3 hPa |
| Oct 13 11:56 | 1011.1 hPa |
| Oct 13 12:56 | 1010.0 hPa |
Troughs found by the engine's pressureTroughs (a minimum after a fall of at least 3 hPa in the 12 h before it), local time: Oct 6 02:56; Oct 11 20:56; Oct 13 12:56, the last sample, where the series ends while pressure is still falling. Samples about every 3 h (data/seed/pressure_samples_hourly.csv).
How the app finds fronts
Hourly rules (observed pressure)
Used when at least 12 hours of the day carry pressure. All thresholds are Starting value: to calibrate (SPEC 5.6).
- Before a front: pressure fell at least 3 hPa in 6 h or 6 hPa in 12 h, with the wind from 135-250 degrees.
- Front passing: within 3 h of a pressure trough, the wind from 250-30 degrees (through north), or gusts of 25 mph or more.
- First day after: the first day after the trough, if pressure rose at least 4 hPa in 12 h, or the wind was from 250-30 degrees most of the window, or the high was at least 8 F below the day before.
- Second day after: the second day after the trough, with high and steady pressure.
- Stable: pressure changed less than 1.5 hPa in 6 h and is at least 1016 hPa.
Daily rule (no pressure)
The NWS forecast has no pressure, so forecast days, and days without hourly data, use a daily rule: a front day is a day whose high is at least 8 F below the day before, with the daily mean (vector) wind from 240-30 degrees. The day before it is before a front; the two days after are the first and second day after.
On Selfridge's October data, 12 years (371 days), the engine's daily rule finds 15 front days in the Oct 3-15 windows and at least one front in Oct 7-11 in 6 of 12 years (computed now from data/seed/weather_daily_selfridge.csv). SPEC 5.6 records the same counts from the reference script.
Source: SPEC 5.6; reference/python/wx_analysis.py. Engine: packages/engine/src/fronts.ts.
Constants
| Constant | Value | In the code | Basis |
|---|---|---|---|
| Daily rule: drop in the high | 8 F | FRONT_HIGH_DROP_F | Working rule: from the trip analysis |
| Daily rule: wind from | 240-30 deg | DAILY_FRONT_WIND_DEG | Working rule: from the trip analysis |
| Pre-front pressure fall | 3 hPa in 6 h, 6 hPa in 12 h | PRE_FRONT_FALL_6H_HPA, PRE_FRONT_FALL_12H_HPA | Starting value: SPEC 5.6 |
| Pre-front wind from | 135-250 deg | PRE_FRONTAL_WIND_DEG | Starting value: SPEC 5.6 |
| Post-front wind from | 250-30 deg | POST_FRONTAL_WIND_DEG | Starting value: SPEC 5.6 |
| Front window around the trough | 3 h | FRONTAL_WINDOW_H | Starting value: SPEC 5.6 |
| Front gusts | 25 mph | FRONTAL_GUST_MPH | Starting value: SPEC 5.6 |
| Trough depth | 3 hPa in 12 h | TROUGH_DEPTH_HPA | Working rule |
| Post-front pressure rise | 4 hPa in 12 h | POST_FRONT_RISE_12H_HPA | Starting value: SPEC 5.6 |
| Stable pressure | change under 1.5 hPa in 6 h, at least 1016 hPa | STABLE_CHANGE_6H_HPA, STABLE_MIN_HPA | Starting value: SPEC 5.6 |
| Hours with pressure for the hourly rules | 12 | HOURLY_FRONT_MIN_HOURS (plan.ts) | Working rule |
Constants are in packages/engine/src/fronts.ts unless named otherwise.
Sources
- Iowa Environmental Mesonet, Selfridge ANGB (KMTC) hourly and daily observations.
- National Weather Service API (no pressure forecast; SPEC 16, item 11).
- Schramm, H. (2008). Need an excuse? Don't blame that front. Mississippi Sportsman.
- Links: References.