Dissolved Oxygen Saturation Calculator
Calculate dissolved oxygen saturation from water temperature, with altitude and salinity corrections.
Verdicts for trout, fisheries, and aquaculture.
Dissolved oxygen (DO) is the single most important water-quality indicator for fish, invertebrates, and most aerobic life in lakes, rivers, and aquaculture tanks. Cold water holds far more oxygen than warm water, which is why summer heat waves are deadly for trout streams.
The Benson-Krause polynomial (freshwater, sea level):
DO_sat = 14.62 − 0.3898·T + 0.006969·T² − 0.00005896·T³ (mg/L)
T is in °C. This is a polynomial fit to the standard USGS Benson-Krause equations, accurate to better than 1% for 0–40 °C of freshwater at 1 atm.
Why temperature matters so much: At 0 °C, water can hold about 14.6 mg/L of dissolved oxygen. At 25 °C it drops to about 8.3 mg/L. At 35 °C it is down to 6.9 mg/L. A 10 °C rise in water temperature cuts DO by roughly 25%, while simultaneously raising fish metabolic demand by about 2× (the Q10 rule). That double squeeze is why fish kills cluster around summer afternoons in shallow lakes and slow-moving streams.
Survival thresholds for common species:
| DO (mg/L) | Aquatic health |
|---|---|
| 9–14 | Excellent. Cold-water species (trout, salmon, char) thrive |
| 6.5–9 | Good. Most freshwater fish do well |
| 5–6.5 | Marginal. Minimum survival for many warmwater species |
| 3–5 | Stress. Sensitive species cannot survive long; growth and reproduction impaired |
| Below 3 | Hypoxic. Fish kills likely; only tolerant species (some catfish, carp) hang on |
| Below 2 | Anoxic. Nearly everything dies; only anaerobic bacteria function |
Worked example, mountain stream: A spring-fed stream measures 8 °C.
DO_sat = 14.62 − 0.3898×8 + 0.006969×64 − 0.00005896×512 = 14.62 − 3.118 + 0.446 − 0.030 = 11.92 mg/L (excellent for brook trout)
Worked example, July lake: A shallow lake hits 28 °C during a heat wave.
DO_sat = 14.62 − 0.3898×28 + 0.006969×784 − 0.00005896×21,952 = 14.62 − 10.914 + 5.462 − 1.294 = 7.87 mg/L (marginal — sensitive species under stress)
Saturation vs. actual measured DO: The polynomial gives the maximum oxygen the water can hold. The actual amount in your lake or tank may be much lower if there is heavy biological oxygen demand (BOD) from decomposing organic matter, sewage, or algal blooms. Healthy streams typically run at 80–100% saturation. Eutrophic lakes can sit at 30–50% during summer, with deeper layers going anoxic.
Corrections you may need:
- Salinity: every 1 ppt of salt cuts DO by about 1%. Marine water at 35 ppt holds roughly 80% of freshwater DO at the same temperature.
- Altitude: lower atmospheric pressure reduces the driving force for gas exchange. A rough rule: DO drops about 1.4% per 100 m of elevation gain (so a 1,500 m lake holds ~80% of sea-level DO).
- Salinity + altitude together: these multiply. A saltwater lake at altitude needs both corrections applied.
Why aquaculture operators obsess over DO: Fish farms run dissolved oxygen meters 24/7. A salmon-farming pen at 12 °C should have DO above 7 mg/L; below 5 mg/L for any sustained period and growth stops. Below 3 mg/L for hours and you can lose the whole pen. Surface aerators, paddle wheels, and pure-oxygen injection are routine equipment. Backup systems are routine equipment too, because power outages kill fish.
Why wastewater plants track DO: The aerobic bacteria that break down sewage need oxygen to function. Activated-sludge basins are aerated to keep DO around 2 mg/L; too high wastes energy, too low and the bacteria die and the plant stops treating waste. The polynomial here is the upper bound those plant operators are constantly fighting to keep their tanks below (because they want as much oxygen as possible going into bacteria, not staying in solution).