P8 icon

The P8 (Program for Predicting Pollution Particle Passage through Pits, Puddles, and Ponds) Urban Catchment Model is a physically-based stormwater quantity/quality model. P8 predicts the generation and transport of stormwater runoff and associated pollutants from urban watersheds and predicts runoff and pollutant removal at user defined stormwater BMPs through the processes of sedimentation, filtration, and infiltration. The model simulates runoff and pollutant transport for a maximum of 250 watersheds, 75 stormwater best management practices (BMPs), 5 particle sizes classes (including soluble fraction), and 10 water quality components. The model simulates pollutant transport and removal in a variety of BMPs including swales, buffer strips, detention ponds (dry, wet and extended), flow splitters, infiltration basins, filtration basins, street sweeping, and user defined “General” devices. Model simulations can be run for a long duration (e.g., 50 years) and require inputs such as continuous, hourly rainfall and daily temperature data, and inputs related to particulate and pollutant loading. An extensive user interface providing interactive operation, spreadsheet-like menus, help screens and high resolution graphics facilitate model use.

P8 is a highly-versatile program suitable for TMDL applications ranging from TMDL development, to demonstrating WLA and permit compliance from individual municipal separate storm systems (MS4s). Download links for the P8 model and related documentation are provided below.

Note: information provided in the following subsections does not reiterate or re-present information readily available in model documentation files. Instead, guidance provided in this document provides engineers and planners with recommendations for development of model inputs, provides guidance for interpreting and summarizing model results, provides supplementary information not included in model documentation, and provides example case studies showing how P8 can be used to demonstrate TMDL compliance.

Training and tutorials

The P8 model is a relatively complex tool. Using it likely requires some training. The following pages provide guidance and examples useful for learning the P8 model. Training workshops are periodically offered by various entities, including the University of Minnesota.

Applicability to demonstrating WLA compliance

Information: P8 may underestimate phosphorus reductions (overestimate phosphorus loading) when coarse organic fractions constitute an important phosphorus source. This would be the case in areas with significant contributions from leaves, grass clippings, and other organic materials.

P8 is a continuous water quality model capable of summarizing runoff and associated total suspended solids (TSS) and total phosphorus (TP) generation, removal, and outflow loading from individual catchments, individual BMPs and pipes (referred to as “devices”), or as a model wide summary. Additionally, because P8 is a physically-based model which continually evaluates the pollutant particle scale distribution (PSD), BMP loading, capacity, and bypass, the model is capable of accurately predicting pollutant removal through BMPs in series as well as predicting runoff and pollutant bypass from undersized BMPs. Due to this flexibility, P8 is capable of providing accurate pollutant removal estimates regardless of BMP network and subwatershed configuration, and is capable of demonstrating compliance to mass-based WLAs (e.g. pounds of TSS per year), concentration-based WLAs (e.g., mg/L of TSS), and areal-loading based WLAs (e.g., pounds of TSS per acre per year) for both TSS and TP.

Model inputs

The following subsections outline data sources and special consideration related to model inputs, model setup, and model initialization. Note: these sections do not represent information readily available in Model documentation, but instead highlight data sources (e.g., spatial datasets), special consideration, and important notes for engineers and planners to consider while generating model inputs.

General case specifications: temperature and precipitation

P8 requires a daily temperature input file and hourly precipitation file to simulate rainfall, runoff, and associated particulate and pollutant mobilization. Although P8 provides a default precipitation and temperature file (“p8_default.pcp” and “p8_default.tem”, respectively), these files should not be used for modeling purposes. These files are provided only as example files of how the precipitation (“.pcp”) and temperature (“.tem”) files should be formatted. It is critical for the engineer or planner to develop rainfall and temperature input files specific to the area modeled.

The National Oceanic and Atmospheric Administration (NOAA) maintains a searchable database that can be used to search for daily temperature average and hourly precipitation data based by city or geographic region (e.g., zip code). Local area airports (e.g., Minneapolis Saint Paul International Airport), local government units, and area watershed management organization (WMOs) and watershed district (WDs) are additional resources that can be used to develop required temperature and precipitation data inputs.

Special consideration(s):

  • Refer to the default precipitation (“p8_default.pcp”) and temperature (“default.tem”) files to establish the correct units and formatting. Note that hourly precipitation data is entered in hundredths of an inch (e.g., 0.27 inches is entered as “27”), and daily temperature is entered in Fahrenheit.

General case specifications

P8 documentation does provide default or suggested inputs for several general case specifications related to general inputs (e.g., start date, stop date, time steps per hour). Below is a brief description of each general input parameter, as well as suggested inputs for each.

  • Air Temperature Offset (degrees): offsets the daily air temperature file (“.tem”) by a fixed number of degrees. Default value of zero should be applied unless there is a known shift in the temperature input file.
  • Passes Thru Storm File: a whole-number integer that specifies the number of times P8 will simulate the rainfall input before conducting the reported simulation with the final pass. P8 uses these passes to ensure that the permanent pool of each BMP has reached a steady-state pollutant concentration that can properly initialize the final pass through the simulation. Typically a value of “5” will be sufficient to initialize the model, but may need to be increased if there are BMPs with very large permanent pool volumes (e.g., large stormwater ponds and stormwater wetlands) relative to the tributary runoff volume.
  • Precipitation Scale Factor: scales the hourly rainfall file (“.pcp”) by the specified scale factor. Default value of one should be applied unless there is a known shift in the precipitation input file (e.g., if precipitation values in the file were known to under-predict observed precipitation by 20%, a value of 1.2 should be used to correct for this recording error).
  • Start Date / Keep Date / Stop Date: specifies the date in which simulation would start (Start Date), the start date which P8 will start to record and summarize model outputs (Keep Date), and the date the model simulation will stop (Stop Date). Typically, the user will enter the same date for the “Start Date” and “Keep Date”. The main reason to have an earlier “Start Date” than “Keep Date” is to help initialize model conditions, but if the “Passes Thru Storm File” has been applied correctly, it is typically not necessary to specify a “Start Date” earlier than the “Keep Date”.
  • Rainfall Breakpoint (inches): specifies the rainfall depth “breakpoint” for which to apply the runoff coefficient entered for impervious runoff from each subwatershed (for precipitation amounts less than or equal to “breakpoint”) or a coefficient of 1.0 (for precipitation amounts greater than the “breakpoint”). The default value of “0.8” inches should be applied, as this value was determined through experimental calibration of P8 model results.
  • Time Steps Per Hour: this whole number integer specifies the integration step size used for solving the P8 differential equations. For models with simple P8 devices and routing, the default value of four (4) is recommended. If the specified value is too low, P8 will be unable to resolve inflow and outflow loading and will report a hydraulic continuity error. If this occurs, the user can increase the number of “Time Steps Per Hour” to increase calculation resolution and reduce model error.
  • Maximum Continuity Error: this value has no impact on model calculations. This value only functions to trigger when P8 will return a hydraulic continuity error message after a simulation is complete. It is recommended that the default value of 2 percent be applied.

Particles and water quality components

P8 requires the user specify information regarding characteristics of the five (5) modeled particle size fractions (i.e., “Particle Parameters”), which includes one soluble (dissolved) fraction, as well as pollutant particle composition associated with each particle size (i.e., “Water Quality Components”). These parameters establish how particles are generated by watersheds (e.g., build-up and wash-off from impervious surfaces and event mean concentration loading), how particles are removed by water quality BMPs (e.g., settling velocity and filtration efficiency), and the amount of pollutant associated with each particle class (e.g., 3,850 mg TP per kg of the P10% particle class).

P8 contains a default particle file (“p8_default.p8c”) as well as two particle files based on findings from the EPA’s National Urban Runoff Pollutant study (“nurp50.p8p” and “nurp90.p8p”; Cole et al., 1983). These particle files specify both all “Particle Parameters” and “Water Quality Components” input parameters. The “NURP50” and “NURP90” particle files are based on the 50th and 90th percentile results from the nationwide NURP study, respectively. If sediment and pollutant sampling have not been conducted from the study area, it is recommended that the NURP50 (“nurp50.p8p”) default value be used.

Special Consideration(s):
The default filtration efficiency values for the dissolved (P0%) and particulate (P10% through P80%) particles are 90% and 100%, respectively. Based on information and sources presented in the Minnesota Stormwater Manual, it is recommended that the filtration efficiency values shown in the table below be used. The same filtration efficiency values would generally be applicable for modeling other filtration practices (e.g., permeable pavement, tree trench with underdrain, etc.). Since the values shown below are constants that are applied to all modeled BMPs, the Particle Removal Scale Factor can be changed in P8 for individual practices to account for pollutant removals that are expected to differ from the constants.

Recommend filtration efficiency for P8
Link to this table

Filtration type Filtration efficiency (% removal)
Dissolved (P0%) Particulate (P10%) Particulate (P30% through P80%)
Sand filters and biofiltration [1] 0% 25% 100%
Iron-enhanced sand filter [2] 60% 25% 100%

Evapotranspiration and snowmelt

Evapotranspiration (ET) input parameters are only required if the model contains an “Aquifer” device for computation of baseflow. If using an aquifer device to model baseflow, update monthly ET coefficients based on information specific to the modeled region. If no such devices are modeled, the user can retain the default values in the ET table.

Snowmelt parameters define, based on daily average temperature, when precipitation is delivered as snowfall, when snowmelt begins, and antecedent moisture conditions throughout the growing and non-growing season. Values should be reviewed, but it is recommended that default parameters be retained for most areas in Minnesota.


P8 allows the user to specify input parameters for up to 250 subwatersheds. The program uses the curve number method (USDA, 1986) to model runoff from pervious and indirectly connected impervious surfaces. Directly connected impervious runoff is generated for precipitation amounts larger than the depression storage, with excess precipitation multiplied by the impervious runoff coefficient up to the breakpoint precipitation amount. Impervious runoff pollutant loading is generated from buildup/washoff routines, while pervious runoff pollutant concentrations are simulated from exponential relationship with rainfall precipitation rate. Additionally, the user can specify street sweeping scheduling (e.g., start date, end date, and frequency) and the fraction of impervious area that is “vacuum swept” (i.e., vacuum based street sweeping) versus “not swept”. It is recommended that the engineer or designer use methodology outlined in the USDA TR-55 manual (USDA, 1986) to calculate the pervious curve number for each modeled watershed, which will be weighted with the indirectly connected impervious fraction by the model.

Model results are highly-sensitive to the fraction of directly and indirectly connected impervious area. For this reason, it is recommended that directly and indirectly connected impervious area be estimated based on site-specific information when possible. For large watershed areas where individual review of directly versus indirectly connected impervious area is not feasible, directly connected impervious area can be estimated from land use spatial datasets, total impervious area spatial datasets, and land use-based directly connected impervious area fractions included in P8 documentation.

Special Consideration(s):

  • Open water area should be removed from the total area and directly connected impervious area modeled. P8 does not distinguish between open water and other sources of impervious area in the watershed. For this reason, if open water is modeled as impervious area, P8 will generate particle and pollutant loading, including build-up and wash-off, from open water surfaces, which can greatly over-estimate pollutant loading. For this reason, it is recommended that open water area be removed from the total area and total directly connected impervious area modeled.


Water quality BMPs and other hydraulic routing elements in P8 are referred to as “devices”. The following subsection provide background and special considerations related to each device type.


Pond devices are used primarily to model wet and dry pond BMPs. The pond device type requires that the user input information related to dimensions of the BMP (e.g., permanent pool volume, flood stage area, etc.) and routing (e.g., downstream device for normal outflow, flood outflow, etc.). In addition to modeled wet and dry pond BMPs, “Pond” devices can also be used to model infiltration and filtration BMPs by assigning an infiltration rate to the permanent pool and/or flood pool. This strategy is useful for modeling infiltration devices that have a normal outlet (e.g., a pipe or orifice outlet).

Special Consideration(s):

  • P8 does not model sediment scour and resuspension of previous-settled particles. For this reason, P8 can overestimate removal of dry ponds and wet ponds with shallow permanent pools. It is recommended that the user reduce the particle removal scale factor (PRSF) for shallow permanent pool depths and/or other BMPs that do not meet flow-through criteria specifically designed to control scour or resuspension of settled sediment. Guidance for designing and sizing wet ponds to control pond scour is provided in the Minnesota Stormwater Manual.
  • The “flood pool” volume (acre-feet) P8 requires is the flood storage between the permanent pool and flood stage, not the cumulative volume including the permanent pool. Including the permanent pool volume in the flood pool volume will cause P8 to overestimate sediment and pollutant removal.

Infiltration Basin

Infiltration basins are used to model simple storage features which infiltrate a fixed volume of water and have no defined outlet (e.g., a residential raingarden).

Special Consideration(s):

  • If the infiltration/filtration BMP has a normal outlet (e.g., a pipe or orifice outlet), it is more accurate to model using a “Pond” device with infiltration rates applied to the permanent pool and/or flood pool.
  • If the infiltration device is assigned as “*OUT*” (the default entry), P8 will model the device as an infiltration BMP (i.e., dissolved pollutants associated with infiltration are “removed”). If a downstream device is assigned, the device is modeled as a filtration BMP (i.e., filtration efficiencies assigned in the “Particle Parameters” dialog box are used to calculate particulate and pollutant removal [3]).
  • Filtration efficiency in the “Particle Parameters” dialog box should be adjusted based on the filtration media of the BMP (see suggested filtration efficiencies for standard media and iron-enhanced media).


“Swale” devices are used to model infiltration and filtration swales. Special considerations related to “swale” devices are outlined in the “Infiltration Basin” section.


“General” devices are used to model complex or unique BMP types that cannot be modeled using the specific BMP types discussed above (e.g., a wet pond with a two-stage outlet). “General” devices allow the user to input unique normal, spillway, and infiltration rating curves. Because “General” devices can be used to model a variety of BMP types, the special considerations discussed above should be reviewed.


A “pipe” device is used solely for routing volume through the network. The only inputs required for a pipe device are time of concentration (ToC) and normal outflow device.

Special Consideration(s):

  • The ToC of the pipe must be a whole-number integer of the time (in hours) of concentration for the upstream watershed(s) flows. Higher ToC values will stretch the flow response (by reducing the peak flow) out over longer times while preserving water and pollutant mass balances. The ToC is defined as the time required for 95% outflow response.


A “Splitter” device splits flow to two (2) different outflow devices. Note: the function of a “Splitter” differs from modeling a “General” device, which allows the user to more-control over the rating curves used to split flow to the two receiving devices. The “Splitter” tracks the estimated water surface, and routes flow to, one downstream device until it exceeds the threshold elevation, above which, it then routes flow to a second specified device.


An “Aquifer” device provides storage and discharge of percolation from watersheds and infiltration devices. Evapotranspiration losses are modeled from aquifers, so it is critical for the engineer or designer to review evapotranspiration parameters when modeling an “Aquifer” device.

Model outputs

P8 provides a wide variety of model outputs which can be used by engineers and planners to evaluate and demonstrate WLA compliance. Model outputs and results can be reviewed in the following formats.

  • Output Explorer is a windowed pane within the P8 graphical user interface (GUI) that allows the user to use selectors and dropdown menus to review a variety of outputs in tabular form. The method allows for quick evaluation of model results, but typically only model-wide or BMP-specific model results.
  • Output Tables (accessed through the “List” menu) allow the user to export a variety of model inputs and outputs into a text or spreadsheet document. Output tables provide the most flexibility reviewing output results, and allow the user to review results at all BMPs simultaneously. Additionally, if the model is run in “Traced” model (“Run” --> “Model Traced”) the user can export results on a daily or hourly basis.
  • Output Charts (accessed through the “Charts” menu) allows to user to visualize model outputs summarized for the entire model run or by individual events. Additionally, the output charts spreadsheet provides a tabular summary of traced precipitation, inflow loading, and outflow loading results.

The following subsections provide guidance on how to interpret and check the quality of model outputs.

Interpreting model outputs and calculating WLA reporting terms

The figure at the right, generated from P8 model documentation, provides a summary of the fifteen (15) mass balance inputs and output used by P8 to track pollutant loading and removal at modeled devices. These are summarized in the following table.

P8 schematic
P8 mass balance terms

P8 mass balance terms
Link to this table

Mass balance term Description
Terms related to inflow
(01) Watershed Inflow Inflow from watershed(s) assigned to the device
(02) Device Inflow Inflow from upstream devices
(09) Total Inflow Total Inflow = (01) + (02)
Terms related to sedimentation, infiltration, and filtration
(03) Infiltration Outflow passing through bottom/sides of device
(05) Filtration Removal Pollutant removed through filtration through media
(04) Exfiltration Exfiltration = (03) - (05)
(08) Sedimentation + Decay Pollutant removed via sedimentation and/or decay
(13) Total Trapped Total Trapped = (05) + (08)
Terms related to outflow
(06) Normal Outflow Outflow passing thru the primary outlet
(07) Spillway Outflow Outflow passing thru the secondary outlet
(10) Surface Outflow Surface Outflow = (06) + (07)
(11) Groundwater Outflow Groundwater Outflow = (03) - (05) = (04)
(12) Total Outflow Total Outflow = (10) + (11)
Terms related to mass balance and error
(14) Storage Increase Increase in storage volume (or mass) from one time step (or event) to the next
(15) Mass Balance Check Error term in mass-balance equations. Error = (12) - (09)

A notable omission from the mass balance terms is a term summarizing total pollutant removal. The “Load Reduction %” presented in Output Explorer is calculated as the difference between “(09) Total Inflow” and “(10) Surface Outflow”. Although this calculation is correct for many varieties of BMPs, it is not correct for filtration BMPs (correct load reduction calculations shown here). For this reason, it is critical that the engineer or planner determine which forms of potential load reduction apply to each device and calculate removal from mass balance terms. The table below provides a summary of how to calculate load reduction at sedimentation, infiltration, and filtration BMPs. Additionally, the table provides a summary of how to calculate WLA reporting terms commonly required by TSS and TP TMDLs.

Using P8 to calculate load reduction and WLA reporting terms
Link to this table

Reporting term Infiltration/sedimentation BMPs Filtration BMPs
Pollutant Removal and Outflow Concentration Calculations
Applicable P8 Removal Terms (03) Infiltration; (08) Sedimentation + Decay (05) Filtration Removal; (08) Sedimentation + Decay
Pollutant removal (09) Total Inflow - (10) Surface Outflow (09) Total Inflow -(12) Total Outflow
Outflow Loading** (for outflow concentration summary) Surface outflow Total outflow
Watershed and Areal Loading Calculations
Directly contributing watershed area to a device (acres) Sum of all watersheds routing directly to BMP device
Cumulative contributing watershed area to a device (acres) Directly contributing watershed area + Directly contributing watershed area of all upstream devices
Watershed pollutant areal loading at device (pre-treatment) (lbs/acre/year) [(01) Watershed Inflow (lbs)] / [Directly Contributing Watershed Area (acres)] / [Simulation Duration (years)]
Pollutant areal loading from device (post-treatment) (lbs/acre/year) [Outflow Loading** (lbs)] / [Cumulative Contributing Watershed Area (acres)] / [Simulation Duration (years)]
Watershed pollutant areal loading model wide (pre-treatment) (lbs/acre/year) [Sum of (01) Watershed Inflow at all devices (lbs)] / [Total Model Watershed Area (acres)] / [Simulation Duration (years)]
Model Wide Outflow*** (lbs) [Sum of (01) Watershed Inflow at all devices (lbs)] - [Sum of (Pollutant Removal*) at all devices (lbs)]
Pollutant areal loading model wide (post-treatment) (lbs/acre/year) [Model Wide Outflow*** (lbs)] / [Total Model Watershed Area (acres)] / [Simulation Duration (years)]

Special Consideration(s):

  • P8 calculates and presents “Load Reduction %” by comparing “(09) Total Inflow” to “(10) Surface Outflow”. This methodology is correct for infiltration (e.g., rain gardens) and sedimentation BMPs (e.g., wet ponds) but is not correct for filtration BMPs (i.e., BMPs with underdrains that pass filtered runoff and pollutants downstream). BMP removal calculations for sedimentation, infiltration, and filtration BMPs are summarized here. (13) Total Trapped from an overall mass balance summary would represent another option for estimating/checking whether the pollutant removal requirement(s) are met.

Quality (QAQC) checks of model results

The engineer or designer should perform a thorough review of all model inputs and outputs. Model inputs should be generated using best available datasets, including record drawings, development data, bathymetric surveys, and best-available spatial land use, land cover, and soil databases. Upon model completion, results should be reviewed to ensure devices were routed correctly, subwatersheds were routed correctly, and that pollutant removal and areal loading results are within typical ranges based on BMP and land use type, respectively. A general model result QAQC list and description of P8 outputs to review is provided here. Additionally, a literature review of typical average annual event mean concentration (EMC) values is provided here, and typical TSS and TP removal values for various BMP types is provided here.

General P8 result QAQC list
Link to this table

QA/QC review item Related P8 output1
Review device routing List → Inputs → Network
Review watershed routing List → Inputs → Case (Watershed Data)
Review total watershed area is correct List → Inputs → Case (Watershed Data)
Confirm daily precipitation total are correct List → Time Series → Daily Precip
Compare watershed pollutant concentration to tabled values "Explore" tab; Report: Conc ppm; Term: 01 watershed inflow
Compare TSS/TP removal rate to typical tabled values Calculate removal using guidance in tabled values and mass balance terms from: List → Mass Balance → By Device and Variable

1For majority of variables, there are several methods which can be used to export results from P8. Refer to model documentation

TSS and TP EMC literature values for TMDL modeling
Link to this table

Reference Average annual EMC (mg/L)
Residential (Pitt, 2011; NSQD, 2011/ Region 1) 135 0.4
Minnesota Stormwater Manual – Commercial 120-160 0.15-0.35
Minnesota Stormwater Manual – Industrial 130-170 0.15-0.35
Minnesota Stormwater Manual – Residential 100-170 0.2-0.6
Minnesota Stormwater Manual – Freeway/ Transportation 115-155 0.3-0.5
Nationally Pooled Urban EMCs (Lin, 2003) 54.5-78.4 0.266-0.315

Typical BMP TSS and TP removal rates from Minnesota Stormwater Manual
Link to this table

BMP type Typical pollutant removal rate (%)
Biofiltration 80 [4]
Sand filter 85 50
Iron enhanced sand filter 85 65 or 741
Dry swale 68 [5]
Constructed wet ponds 84 50 or 682
Constructed wetlands 73 38
Permeable pavement 74 41
Green roof 85 0

1Lower values are for Tier 1 design. Higher values are for Tier 2 design.
2Removal is for Design Level 2. If an iron-enhanced pond bench is included, an additional 40 percent credit is given for dissolved phosphorus. Use the lower values if no iron bench exists and the higher value if an iron bench exists.

Related pages