Home / Science / Ecology and organisms / Fisheries science / Von Bertalanffy growth fitterTool #340

Von Bertalanffy growth curve fitter: L∞, K and t0 from fish length-at-age, with confidence intervals, Ford-Walford plot and φ'

Fit the von Bertalanffy growth curve to fish length-at-age data by nonlinear least squares. Get L∞, K and t₀ with standard errors and 95 % intervals, the growth performance index φ', a Ford-Walford plot and charts. Paste ages and lengths or open a CSV or Excel file.

Keep it one tap away for everyday use.

Bookmark Von Bertalanffy growth fitter?

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

  1. Ages
  2. Fit curve
  3. L∞ and K
  4. Walford
Nothing is uploadedWorks offline once open

Length at age

Ages in years, from otoliths, scales or known-age fish; fractional ages (such as 2.5 for a fish caught mid-year) are fine. A first row of names is skipped, and extra columns are ignored. The unit only labels results and sets φ', which is defined with L∞ in cm. Up to 50,000 fish. The example (50 fish aged 1 to 10) is made up.

Growth curve

Ford-Walford plot

Mean length at each age (table)
Download

What it does

Most fish grow fast when young and slow down as they approach a maximum size. The von Bertalanffy growth function describes this:

L(t) = L∞ × (1 − e^(−K (t − t₀)))

  • L∞ is the asymptotic length, the mean length fish would reach if they lived for ever.
  • K is the growth coefficient (per year): how quickly length approaches L∞. A fish covers about half the distance to L∞ in ln 2 ÷ K years.
  • t₀ is the theoretical age at which length would be zero; usually slightly negative and of little biological meaning.

The tool fits the curve to your fish by nonlinear least squares (Levenberg-Marquardt) and gives each parameter with its standard error and 95 % interval (Student’s t). It also gives:

  • the growth performance index φ’ = log₁₀ K + 2 log₁₀ L∞ (L∞ in cm), used to compare growth between stocks and species, because K and L∞ trade off against each other;
  • the Ford-Walford plot: mean length at age t + 1 against mean length at age t. For von Bertalanffy growth the points lie on a straight line L(t+1) = a + b L(t), giving K = −ln b and L∞ = a ÷ (1 − b), where the line crosses the 1:1 line. It is a quick check and supplies the starting values for the fit.

How to use it

  1. Paste or open one row per fish: age in years and length. Fractional ages are fine.
  2. Pick the length unit (cm, mm or inches). It labels the results and converts L∞ to cm for φ’.
  3. Read L∞, K and t₀, check the curve against the points, and look at the table of mean length by age for systematic misfit.

Worked example (made-up fish)

Fifty fish aged 1 to 10 years, from 14.7 to 55.3 cm. The fit gives L∞ = 60.9 cm (± 3.11; 95 % interval 54.6 to 67.1), K = 0.212 per year (± 0.0303; 0.151 to 0.273) and t₀ = −0.697 years (± 0.22). The residual standard deviation is 2.45 cm, and φ’ = 2.9. The Ford-Walford line through the mean lengths at ages 1 to 10, L(t+1) = 12.1 + 0.800 × L(t), gives a close check: L∞ 60.4 cm and K 0.223.

Tips

  • Old, large fish carry most of the information about L∞. With few of them, L∞ is uncertain and strongly correlated with K, which is why φ’ is often compared instead.
  • Gear that misses small young fish, or only catches the fastest-growing ones, biases the curve. Sample the full size range if you can.
  • Compare sexes or stocks by fitting each separately and comparing the intervals.

FAQs

Why is t₀ negative? Larval and juvenile growth does not follow the adult curve, so extrapolating back to length 0 rarely lands at age 0.

Can I fit weight at age? Not here; weight follows a related curve with an exponent of about 3.

Is my data uploaded? No. Everything runs in your browser.

Where the numbers come from

  • Von Bertalanffy growth function L(t) = L∞(1 − e^(−K(t − t0))) (L. von Bertalanffy 1938; R. J. H. Beverton and S. J. Holt 1957); Ford-Walford plot (E. Ford 1933; L. A. Walford 1946); growth performance index φ' = log10 K + 2 log10 L∞ (D. Pauly and J. L. Munro 1984, Fishbyte 2: 21). Method only.
  • Fitting by Levenberg-Marquardt with standard errors from s²(JᵀJ)⁻¹. Checked in the tests against SciPy's scipy.optimize.curve_fit (parameters, standard errors, t intervals) and scipy.stats.linregress (Ford-Walford line). The example fish are made up.

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-09.

Related tools

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. Binding curve fitter #114 Paste ligand concentrations with total and non-specific binding, or a titration signal, and fit one site, one site with non-specific binding, two sites, Hill or tight binding with ligand depletion. Get Kd, Bmax and the Hill coefficient with errors, a model comparison by AICc, the Scatchard plot and an IC50 to Ki converter. Calibration curve with LOD and LOQ #28 Paste your standards and get the calibration line, R², limits of detection and quantitation (ICH Q2), and the concentration of each unknown with a 95 % interval. CPUE trend calculator #339 Work out catch per unit effort (CPUE) from catch and effort records: nominal CPUE by year, a standardised index from a log-linear model with year plus factors such as vessel, area or gear, 95 % intervals, factor effects and the yearly trend, with a chart. Paste records or open a CSV or Excel file. Yield per recruit and MSY calculator #341 Work out Beverton-Holt yield per recruit against fishing mortality and age at first capture, with the reference points F0.1 and Fmax. Then get MSY, BMSY and FMSY from the Schaefer or Fox surplus production model, from your own r and K or fitted to a series of catches and CPUE. 1D Schrödinger solver #923 Choose a textbook potential, type a formula or draw your own, and get the lowest energy levels and wavefunctions of the one-dimensional Schrödinger equation by the matrix (finite-difference) method, with the exact levels alongside for the box, harmonic oscillator, finite well, Morse, linear and Pöschl–Teller potentials.