The water quality component may be added to a rainfall-runoff model to generate a time series of pollution concentration in the stormwater runoff. In XPSWMM/XPStorm, sub-catchment surface runoff to individual nodes is calculated in the Runoff mode (Rnf). When the water quality option is invoked, pollutographs are calculated for each contaminant at each active runoff node. These hydrographs and pollutographs may be stored on interface files that are input to the Sanitary mode (San) to model storage and treatment processes. The interface files may also be used as input to the Hydraulics mode (Hdr) to model the transport of contaminants through the network.

Modeling water quality in stormwater requires equations that describe the:

  • Build-up of pollutants in catchments during dry periods
  • Rate of pollutant wash off during storm events.

Typically, separate equations are developed for each pollutant-land use combination.

This tutorial demonstrates the simulation of total suspended solids (TSS) and biochemical oxygen demand (BOD) for the collection system developed in Tutorial 2 - Surface Water Hydrology. The pollutant build-up is not modeled. An infinite source is assumed to be available for wash off. Two wash off schemes are used. The TSS is modeled using the Event Mean Concentration (EMC) method. BOD is modeled with the rating curve:

C = Coeff × Rexp


 C = concentration in runoff, mg/L

 Coeff = user defined washoff coefficient

 R = runoff flow, m3/s

 exp = user defined exponent

The program has options for modeling Best Management Practices, such as street sweeping and pollutant removal in catch basins. The contaminant contributions from rainwater and groundwater can be simulated in Runoff mode. However, these advanced options are not included in this tutorial.

  • Define pollutant characteristics 
  • Define pollutant-land use buildup/wash off characteristics
  • Simulate stormwater quality in simple catchment system
Time1 hour
Data filesYarra60m.xp (starter file)

  1. Open the file Yarra60m.xp and set the Mode to Rnf.

  2. Add Landuse records in the Global Database and define the pollutant buildup parameters for Dust and Dirt:
    1. From the Configuration menu, select Global Data. 
    2. In the Data Base Type list, select (R) Landuse
    3. Type the name Forest in the user field and then click Add Record
    4. Select the Forest and click Edit.

    5. The default Dust and Dirt pollutant setting is DD Limit = 1E25 and the Buildup rate is linear with 1. This data is required for each land use record but is only used if the pollutant buildup option is Landuse. In that type of simulation, all pollutant buildup is tied to the buildup of dust and dirt as a fraction or factor. For this tutorial, set this data to default values and select OK. In this example, you will be defining pollutant wash off as ”None”.

    6. Repeat this step for land use types Grassland and Residential

  3. Define the parameters for each pollutant and each pollutant-land use combination according to the following table:

    1. From the Configuration menu, select Global Data. 
    2. In the Data Base Type list, select (R) Pollutant

    3. In the Record Name, select TSS and then click Edit. As shown below, enter the Unit label (mg/l) and the Daily Decay Rate (0.0) for TSS.

    4. Click the Landuse specific data button to define TSS’s pollutant’s wash off characteristics for each Landuse. 
    5. Click the Buildup/Washoff button to open the Buildup/Washoff dialog. 

    6. Add Records for TSS-ForestTSS-Grassland, and TSS-Residential in the Buildup/Washoff characteristics.Select TSS-Forest in the left panel and then click Edit

    7. For Buildup, select None. For Washoff, select EMC


    8. Click EMC. Set the Mean Concentration to 40. Click OK twice to return to the Select dialog for Buildup/Washoff and then click Select to enter this record choice for the TSS-Forest pollutant and landuse combination.


    9. Repeat the input for the Buildup/Washoff data for TSS-Grassland and TSS-Residential, following the table and the interim steps from major step 3.
  4. Add BOD buildup/washoff data: 
    1. Repeat Steps 2 and 3 for pollutant BOD
    2. Add Buildup/Washoff records for BOD-ForestBOD-Grassland, and BOD-Residential.
    3. Set Washoff to Rating Curve and add the data for each BOD-landuse combination.

    4. Close all dialogs to return to the network view.

  5. Set Runoff Job Control:

    1. In the Configuration menu, select Job Control > Runoff

    2. Double-click the Water Quality button to launch the Water Quality dialog.

    3. Click the Pollutant List button.


    4. Select TSS and BOD from the Pollutants list and add them to the Use Pollutants list. Click OK.

    5. In the Water Quality dialog, select Landuse List. Add Forest, Grassland, and Residential to the Use Land Uses list. Click OK.

    6. Click OK to return to the network view.