Home / Science / Weather, ocean and climate / Hydrology and water resources / Flood frequency analysisTool #142

Flood frequency analysis: 100-year flood from annual peaks with GEV, log-Pearson III and Gumbel

Fit GEV, log-Pearson type III and Gumbel distributions to a record of annual peak flows to estimate the 10-, 100- or any-year flood, with bootstrap ranges, the return period of a given flow, the chance of a flood over a span of years, plotting positions and a Grubbs-Beck outlier screen. Paste or open a file.

Keep it one tap away for everyday use.

Bookmark Flood frequency analysis?

Press Ctrl + D now. Your browser opens its own bookmark box, where you choose the name and folder.

  1. Peaks
  2. Fit
  3. Return years
  4. Design flood
Nothing is uploadedWorks offline once open

Annual peak flows

One row per year: the year and that year's largest flow (or one column of flows). Only the first two columns are read; empty or non-numeric rows are skipped. Use the annual maximum series, one value per year, from a gauge with no big changes upstream. 10 to 1,000 years. The example record is made up.

Flood frequency

The range comes from refitting the main distribution to 1,000 resampled records (the same years drawn again at random, with a fixed seed so it is repeatable). It shows how much a record of this length can tell you; it does not cover a changing climate or catchment. Estimates for return periods much longer than the record are extrapolation: treat them with care.

Download

What it does

A “100-year flood” is the flow with a 1 % chance of being equalled or beaten in any year. It is estimated by fitting a probability distribution to the largest flow of each year at a river gauge, the annual maximum series, and reading off the flow for the return period you need.

This tool fits four common distributions side by side:

  • GEV (generalised extreme value) by L-moments, used in the UK and many other countries.
  • Log-Pearson type III on the logarithms of the flows, the long-standing US method, with the station skew or one you type (for example a regional skew).
  • Gumbel, by L-moments and by ordinary moments, the simplest choice.

It shows the flood for any return period with a bootstrap range, the return period of a flow you give, and the chance of at least one such flood over a span of years.

How to use it

  1. Paste a year and the year’s peak flow per row, or open a CSV or text file. A single column of peaks also works. Use 10 to 1,000 years.
  2. Type the flow unit for the labels.
  3. Choose the main distribution. All four appear in the table and chart; the main one gets the range and the headline.
  4. For log-Pearson III, leave the skew blank to use the record’s own skew, or type a regional skew.
  5. Type the return period you want, a flow to find its return period, and a span of years (such as a mortgage or a design life) for the chance of a flood in that time.

What the results mean

  • The chart has the recorded peaks at their plotting positions (the largest of n years plots at n + 1 years with Weibull) and the four fitted curves. Where the curves agree, the answer is fairly safe; where they spread apart, the choice of distribution matters.
  • The range comes from 1,000 resampled records. A 40-year record cannot pin down a 500-year flood, and the range says so.
  • L-skewness τ3 describes the shape: about 0.17 for a Gumbel shape, higher for records with a few very large floods.
  • The Grubbs-Beck screen flags peaks that look too large or too small for the rest; check them (a dam break, a gauge fault, a dry year) rather than deleting them blindly.
  • The chance in a span of years is 1 − (1 − 1/T)^N: a 100-year flood has about a 26 % chance of happening at least once in 30 years.

Worked example

The made-up record has 40 annual peaks from 1985 to 2024, averaging 484 m³/s, with a largest of 920 m³/s. L-skewness is 0.169, close to the Gumbel shape, so the GEV shape k is almost 0. The GEV gives a 100-year flood of about 1,016 m³/s; log-Pearson III with the station skew (−0.05) gives 987 m³/s, Gumbel by L-moments 1,017 m³/s and by moments 996 m³/s. A flow of 800 m³/s has a return period of about 20 years (GEV) or 21 years (log-Pearson III). No outliers are flagged.

FAQ

Which distribution should I use? Follow the guidance in your country: GEV or generalised logistic in the UK, log-Pearson III in the US, GEV or LP3 in Australia and Canada. If they disagree a lot, the record is too short to tell, and the range is the honest answer.

Can I use daily flows? No. Use one value per year, the largest. Taking several floods from one year breaks the independence the method assumes. Peaks-over-threshold analysis is a different method.

Does it allow for climate change? No. It assumes the floods come from an unchanging distribution. Check the record for a trend first (the Trend and anomaly analyser can help) and follow local guidance on climate allowances. For design, use the official method and a qualified engineer.

Where the numbers come from

  • L-moments and the GEV fit by Hosking's (1985) approximation for the shape: Hosking, J. R. M. and Wallis, J. R. (1997), Regional Frequency Analysis: An Approach Based on L-Moments (equations only). Gumbel by moments and L-moments and the Kite standard error: standard hydrology texts such as Chow, Maidment and Mays (1988), Applied Hydrology.
  • Log-Pearson type III by moments of the log flows, the station skew, and the Grubbs-Beck outlier screen with its approximate K_N equation: US Interagency Advisory Committee on Water Data, Bulletin 17B (1982), public domain. The newer Bulletin 17C (2019) method (expected moments and the multiple Grubbs-Beck test) is not reproduced.
  • Plotting positions (Weibull, Gringorten, Cunnane) and the percentile bootstrap: standard statistics. The Pearson III frequency factors are computed exactly from the gamma distribution, not read from printed tables.
  • Checked against SciPy (pearson3, gumbel_r, genextreme, gammainc) in the tests. The example record is made up, drawn at random by fibub.

Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.

Last updated 2026-11-08.

Change log for Flood frequency analysis

  1. Add flood frequency analysis (#142) Details on GitHub

Every change to fibub

Related tools

Manning and weir flow calculator #140 Work out the discharge or normal depth in a rectangular, trapezoidal or triangular channel or a part-full pipe with Manning's equation, with velocity, Froude number, critical depth, specific energy, bed shear and a rating curve; and the flow over sharp-crested, V-notch, broad-crested or Cipolletti weirs, or the head for a given flow. SI or US units. Rainfall runoff calculator #141 Estimate the peak flow from a small catchment with the rational method (Q = CiA, Kirpich time of concentration, your own rainfall intensity curve) and the runoff depth, volume and triangular hydrograph from the SCS (NRCS) curve number method, with dry, average and wet ground. Area-weighted C and CN for mixed land use. SI or US units. Species sensitivity distribution #152 Turn toxicity values for many species into one protective concentration. Fit a species sensitivity distribution (log-normal, log-logistic or their AICc average), read off the HC5 or any other HCp with bootstrap limits, see the fraction of species affected at any concentration, and plot every species on the curve. Trend and anomaly analyser #138 Paste or open a time series (yearly, monthly or any steps) and test for a trend with Mann-Kendall, the Hamed-Rao autocorrelation correction or the seasonal test, get Sen's slope with its confidence interval, a Pettitt change point and anomalies from a baseline period. Evapotranspiration calculator #143 Work out daily reference evapotranspiration (ET0) with the FAO-56 Penman-Monteith equation from temperature, humidity, wind and sunshine or radiation, with shortcuts when humidity or radiation is missing, Hargreaves for comparison, crop water use with your own Kc, and a daily table you paste or open for a month or years of weather. Rating curve fitter #144 Fit a stage-discharge rating curve to your river gaugings, Q = a (h − h0)^b, with the zero-flow stage fitted or typed and an optional second segment above a break stage. See the scatter, gaugings that sit off the curve, a 95 % range, the discharge for any stage, the stage for any discharge and a rating table to download. Paste or open a file. Unit hydrograph builder #149 Build a unit hydrograph for a catchment from its area and time of concentration (a gamma curve with a peak rate factor, as in the SCS method, or a Nash cascade). Turn a series of excess rain into a storm hydrograph by convolution. Or derive the unit hydrograph from a storm you measured, with baseflow separation, a φ-index loss and a non-negative least-squares fit. Rain gauge network average #150 Turn point rain gauge readings into one rainfall figure for a whole catchment. Each gauge stands for the part of the catchment closest to it (its Thiessen polygon). Paste or open the boundary and the gauges, with any number of storms or days as columns. Get the areal rainfall, each gauge's area and weight, a map, and a comparison with the plain average. Missing readings redraw the polygons. Uncertainty propagation calculator #25 Type your formula and your measurements with their uncertainties, or paste repeated readings. Get the result with its uncertainty, which input matters most, and a Monte Carlo check.