PEST - the world’s most advanced software for model calibration, parameter estimation and predictive uncertainty analysis. The days of manual model calibration and data interpretation are over.

"Let PEST do the work while you do the thinking."

In recent months, the PEST web pages have been rebuilt, revised and have been re-launched. The PEST pages now reside at a new internet address:

These updated PEST pages have been developed to present information on PEST in an organized and easily-readable form, and to make file downloads easier for users of PEST. In addition, the PEST specifications and frequently asked question (FAQ) pages that were long planned have been added. There is also a plan to launch a PEST blog....

Information about the November 2009 PEST Conference and any upcoming courses can still be found here while information on downloads and updates will be found at the new pages at This includes the download for PEST version 12.0, which can be found at:

What PEST does

PEST is a nonlinear parameter estimation package with a difference. The difference is that PEST can be used to estimate parameters for just about any existing computer model, whether or not a user has access to the model's source code. PEST is able to "take control" of a model, running it as many times as it needs to while adjusting its parameters until the discrepancies between selected model outputs and a complementary set of field or laboratory measurements is reduced to a minimum in the weighted least squares sense.

Most parameter estimation packages suffer from two serious drawbacks that inhibit their ability to optimize parameters. The first of these difficulties is that a model normally needs to be partially recoded in order to communicate with an estimation program; this usually involves recasting the model as a subroutine which is then called by the estimator each time it needs to run the model. The second disadvantage is that the performance of many commercial and public-domain estimators is seriously degraded when optimizing parameters for large numerical models, or for the sometimes complex models used for simulating environmental processes.

PEST overcomes the first of these difficulties by communicating with a model through the model's own input and output files. Thus PEST adapts to the model, the model does not need to be adapted to PEST. It overcomes the second problem by implementing a particularly robust variant of the Gauss-Marquardt-Levenberg method of nonlinear parameter estimation. Furthermore, through adjustment of a number of control variables, a user is able to "tune" PEST's implementation of the method to suit the model for which parameters are sought.


PEST communicates with an existing model through the model's own input and output files.

Because PEST is model-independent, the "model" can, in fact, be a series of models which PEST runs in succession through a batch file; PEST can estimate parameters for one or all of the models simultaneously. Thus a first model can provide input data for a second model; a single model can be calibrated against a number of different historical datasets all at once; a preprocessor can be run, followed by the model, followed by a postprocessor; the possibilities are endless. The only requirements for the "model" are that it can be run from the command line and that it reads and writes ASCII files.


PEST can calibrate models encapsulated in batch or script files of arbitrary complexity.


Other PEST features include:

  • Individual model parameters can be designated as adjustable, fixed, or linked to other parameters; adjustable parameters can be log-transformed to increase optimization efficiency.
  • Prior information on parameters, or on relationships between parameters, can be incorporated into the estimation process.
  • Optimum parameter values can be constrained to lie between individually-specified upper and lower bounds; this is implemented using a mathematically advanced algorithm that actually regularizes the parameter estimation problem as bounds are imposed.
  • PEST execution can be interrupted at any time to inspect a detailed run record file; PEST can then be restarted exactly where it was interrupted.
  • All PEST data storage is dynamically-allocated; hence the problem size (including number of adjustable parameters and the size of the observation dataset) is limited only by the amount of memory installed on a user's machine.
  • Composite parameter sensitivities are continuously recorded to allow easy identification of troublesome parameters.
  • The user can intervene in the parameter estimation process, holding recalcitrant parameters fixed for a while; parts of the inversion process can then be repeated using previously calculated sensitivity information.
  • Parameters and observations can be divided into subgroups for allocation of variables controlling calculation of model derivatives on the one hand, and for assessing the contribution of various observations to the objective function on the other hand.
  • PEST calculates statistical data for optimized parameter values including 95% confidence intervals together with the parameter covariance and correlation-coefficient matrices together with a plethora of other statistics.
  • PEST has two additional, advanced, unique and extremely powerful modes of operation known as "predictive analysis mode" and "regularization mode".
  • If a model can calculate its own sensitivities, these can be supplied to PEST; this can result in huge increases in optimization efficiency.
  • Parallel PEST can be used to distribute model runs across a network; this can reduce processing time enormously.
  • If a model can calculate its own derivatives and pass them to PEST in a file, PEST can make use of these derivatives, thus saving it the trouble of having to calculate these by finite differences. This can increase the efficiency of the parameter estimation process enormously (especially if working with MODFLOW-2000).
  • If observations and prior information equations are correlated with each other, the covariance matrix pertaining to these correlated observations and items of prior information can be incorporated into the parameter estimation process.
  • A new PEST utility program allows the user to inspect the Jacobian matrix at any stage of the parameter estimation process.

Both PC and UNIX versions of PEST are available. Included with both the PC and Unix versions of PEST are a number of utility programs to assist in data preparation and management.

If a computer model is being used to understand or interpret data pertaining to a natural or man-made system, the chances are that the model's performance will be significantly enhanced through the use of PEST. PEST has been used successfully in most scientific fields including groundwater and surface-water hydrology, geophysics, geomechanics, chemical, aeronautical and mechanical engineering, biology, and soil science.

Often it is through the parameterization process that you learn most about the system that the model was built to simulate. Freed from the laborious task of manual parameter manipulation, the modeler is free to understand the system like never before: