6  Regulatory Limits

We calculated regulatory limits based on freshwater quality standards listed from state and federal regulatory agencies. Some regulatory threshold values are static and do not depend on additional environmental parameters, while some threshold values depend on local conditions like hardness, temperature, or pH.

We discuss how various parameters are assessed against standards below.

6.1 Metals

6.1.1 Metals with Static Regulatory Threshold Values

The metals parameters in the downloadable table below have static thresholds assigned.

Static regulatory values are represented as solid horizontal lines in the parameter-specific chapters that follow. (to do: show graphic example of values above horizontal line here)

Show the code
# read in static reg values in wide format
static_metals_reg_vals <- read_xlsx("other/input/regulatory_limits/master_reg_limits.xlsx", sheet = "static_regulatory_values") %>%
  filter(static_category == "static_metals",
         standard_type %in% c("drinking_water","irrigation_water","stock_water")) %>%
  remove_empty() %>%
  select(parameter_baseline_name,standard_type,reg_value,reg_unit,agency,source) %>%
  pivot_wider(names_from = standard_type, values_from = reg_value) %>%
  rename(characteristic_name = parameter_baseline_name,
         reg_agency = agency,
         reg_agency_source = source) 

# source formatted data
dat <- read.csv("other/output/analysis_format/baseline_analysis_format.csv")
  

# join static regulatory values to parameter results, and identify when/where exceedences occur
static_metals_thresholds <- left_join(dat,static_metals_reg_vals) %>%
  mutate(drinking_water_exceed = case_when(
    drinking_water >= result_measure_value ~ "Y")) |>
  mutate(stock_water_exceed = case_when(
    stock_water >= result_measure_value ~ "Y")) |>
  mutate(irrigation_water_exceed = case_when(
    irrigation_water >= result_measure_value ~ "Y")) 

6.1.2 Metals with Hardness-Dependent Regulatory Values

Some regulatory values for metals are not simple static values, and are instead hardness-dependent (i.e. toxicity depends on calcium (Ca) and magnesium (Mg) concentrations). The metals parameters in the downloadable table below have hardness-dependent thresholds assigned.

Show the code
# hardness-dependent criteria
# see page 29 of "Alaska Water Quality Criteria Manual for Toxic and other Deleterious Organic and Inorganic Substances" for parameters and formulas

# read in parameters which have hardness dependent criteria
diss_metals_hard_param <- read_excel("other/input/regulatory_limits/master_reg_limits.xlsx", skip = 1, sheet = "diss_metals_hard_parameters") %>%
  remove_empty() %>%
  select(-parameter_agency_name) %>%
  filter(!is.na(characteristic_name),
         !is.na(m_a))

# make downloadable list metals which have calculated parameters
dir <- "other/input/regulatory_limits/formatted_reg_vals/calculated_metals_list.csv"
write.csv(diss_metals_hard_param,dir, row.names = F)
embed_file(dir, text = "Download List of Metals with Hardness-Dependent Regulatory Threshold Values")


Hardness varies by site, by season, and with hydrologic conditions. We calculated hardness according to the following formula:

Hardness = 2.497(Total Calcium in mg/L) + 4.119(Total Magnesium in mg/L)

For sampling events with duplicate samples, we calculated average hardness.


6.1.2.1 Acute and Chronic Hardness-Dependent Regulatory Threshold Values

Separate hardness-dependent standards often apply for acute vs. chronic metals toxicity.

We calculated hardness-dependent regulatory criteria based on formulas published on the Alaska Department of Environmental Conservation’s Water Quality Standards Section website (https://dec.alaska.gov/water/water-quality/standards/). The “Alaska Water Quality Criteria Manual for Toxic and other Deleterious Organic and Inorganic Substances” (2022) document, along with the “Inorganic Toxics Criteria Worksheet” provide parameter-specific formulas for many substances.

Hardness-dependent criteria is calculated from the following formula for metals in freshwater:

Acute (dissolved) = exp{mA[ln(hardness)]+ bA} (CF) Chronic (dissolved) = exp{mC [ln(hardness)] + bC} (CF)

where mA, bA, mC, and bC are numerical parameters specific to each substance, and CF is the conversion factor for acute vs. chronic criteria.

These values are graphically displayed in the following chapters. Rather than juxtaposed against static horizontal lines, instead they are highlighted by shape or color when the calculated threshold is exceeded; specific to that sampling event’s hardness conditions. See figure X for an example

(to do: show graphic example of values above threshold as colored asterisks here)

Show the code
# possible general approach for graphic plots: export sheets of static and hardness-dependent results; use this to intake for all figures


6.2 Hydrocarbons

Note: the 2016 baseline report presents hydrocarbon data chapters structured as follows:

  • Diesel Range Organics

  • Gasoline Range Organics

  • Residual Range Organics

However, as of 2025-01-10 it is unclear which specific hydrocarbon parameters, or grouped sums of parameters, have equivalent names in our data set downloaded from the EPA WQX. As a result, in this report we will structure data to simply assess BTEX values against the ADEC regulatory standard. There may be federal standards that also apply, to be addressed later.

6.2.1 Total BTEX

Total aromatic hydrocarbons (TAH) means the sum of the following volatile monoaromatic hydrocarbon compounds: benzene, toluene, ethylbenzene, and the xylene isomers, commonly called BTEX. The Alaska Dept of Environmental Conversation describes a maximum static regulatory value of 10 ug/l BTEX..

For each sampling event with available data, we calculated the sum of the parameters that compose BTEX and compared them to a static threshold value.

To prepare our existing data to be assessed against this standard, we addressed the following issues:

  • In some cases, BTEX is quantified as a total mixture. In other cases, the individual substances are quantified separately. In yet other cases, both the individual values and the total mixture values are reported separately. To create a consistent parameter, we summed the total quantities of benzene, toluene, ethylbenzene, and xylene by unique sampling event (unique location/time) when it had not already been reported as such.

  • In some cases, multiple isomers of the same hydrocarbon are quantified (e.g. o-xylene vs m,p-xylene). In these cases, we summed the total quantity of the substance for all isomers.


6.3 Nutrients (Nitrogen and Phosphorus)


6.4 Bacteria


6.5 Total Suspended Solids


6.6 Other Parameters

Show the code
# end of script task: combine dataframes from all parameters evaluated against regulatory thresholds. export into "other/output/analysis_format", then source this table for the boxplot and table download functions

# Metals with Static Regulatory Threshold Values
## static_metals_thresholds

# Metals with Hardness-Dependent Regulatory Threshold Values
## hardness_dependent_metals_thresholds

# Hydrocarbons
## 

# Nutrients

# Bacteria

# Total suspended solids

# Field parameters