1 Exploratory Data Analysis

Before writing the formal analysis, we look at each dataset to understand what it actually shows. Exploratory data analysis — EDA — is how scientists get to know their data before drawing conclusions. Look for patterns, surprises, and anything that does not look right.

1.1 Reservoir storage: the full picture

EDA: Pactola Reservoir storage, WY2026 — raw data including the January 31 anomalous value. Does the spike look like a real storage event, or a data problem?

EDA: Pactola Reservoir storage, WY2026 — raw data including the January 31 anomalous value. Does the spike look like a real storage event, or a data problem?

# Inspect the values surrounding January 31 to decide whether
# the spike is real or an artifact
bor_af_raw %>%
  filter(date >= as.Date("2026-01-25"),
         date <= as.Date("2026-02-07")) %>%
  select(date, value) %>%
  print(n = 14)
## # A tibble: 14 × 2
##    date       value
##    <date>     <dbl>
##  1 2026-01-25 46902
##  2 2026-01-26 46880
##  3 2026-01-27 46872
##  4 2026-01-28 46857
##  5 2026-01-29 46865
##  6 2026-01-30 46880
##  7 2026-01-31 47645
##  8 2026-02-01 46917
##  9 2026-02-02 46924
## 10 2026-02-03 46939
## 11 2026-02-04 46962
## 12 2026-02-05 46969
## 13 2026-02-06 46984
## 14 2026-02-07 46999

1.2 Streamflow data range check

# How far does the flow_above record extend into WY2026?
expected_n <- as.integer(flow_above_max_date - as.Date("2025-10-01")) + 1

cat("Most recent date in flow_above:", format(flow_above_max_date), "\n")
## Most recent date in flow_above: 2026-05-04
cat("WY2026 rows in flow_above:     ", flow_above_wy2026_n, "\n")
## WY2026 rows in flow_above:      215
cat("Expected rows (Oct 1 to pull): ", expected_n, "\n")
## Expected rows (Oct 1 to pull):  216
cat("Difference (missing days):     ", expected_n - flow_above_wy2026_n, "\n")
## Difference (missing days):      1

1.3 Streamflow: the long view

EDA: Rapid Creek inflow above Pactola Reservoir, 2000-present. Look for seasonal cycles and year-to-year variation. The dotted line marks the most recent date in the dataset.

EDA: Rapid Creek inflow above Pactola Reservoir, 2000-present. Look for seasonal cycles and year-to-year variation. The dotted line marks the most recent date in the dataset.

1.4 Streamflow: how does WY2026 compare?

EDA: Rapid Creek inflow by water year, 2001-present. Each gray line is one water year; WY2026 is highlighted in blue. WY2026 ends at the most recent date in the dataset -- the water year is still ongoing.

EDA: Rapid Creek inflow by water year, 2001-present. Each gray line is one water year; WY2026 is highlighted in blue. WY2026 ends at the most recent date in the dataset – the water year is still ongoing.

1.5 Snowpack: the full record

EDA: Snow water equivalent at Blind Park SNOTEL (354), full period of record 1989-present. Each gray line is one water year; WY2026 is highlighted in blue.

EDA: Snow water equivalent at Blind Park SNOTEL (354), full period of record 1989-present. Each gray line is one water year; WY2026 is highlighted in blue.

1.6 Key numbers at a glance

Key numbers from the exploratory analysis. These values inform the Results and Discussion sections.
Indicator WY2026 Context
Reservoir storage — Feb 1 46,917 af Just below concern threshold (48,950 af)
Reservoir storage — Apr 28 47,879 af 86% of active capacity
Change in storage (ΔS) +962 af Storage increased — counterintuitive
Peak SWE — Blind Park (354) ~4.5 in. ~63% of 1991-2020 median (~7.2 in.)
Peak SWE date ~March 1 ~4-5 weeks earlier than historical median
Melt-out date Late April ~70 days earlier than normal
Basin SWE, % of median (Apr 28) 7-11% Source: NRCS iMap
April 1 inflow forecast, % median 32% Source: NRCS iMap
Streamflow data pull date 2026-04-21 WY2026 record is complete through this date

2 Introduction

Pactola Reservoir, located in the upper Rapid Creek watershed of the Black Hills, is a central component of Rapid City’s municipal water supply. The reservoir is managed by the Bureau of Reclamation and monitored by the U.S. Geological Survey, and it serves as the primary surface water source during periods of high summer demand when groundwater from the Madison Aquifer alone is insufficient.

On April 1, 2026, the City of Rapid City implemented outdoor watering restrictions two months ahead of the typical schedule, citing concern-status reservoir levels and a National Weather Service forecast of below-normal precipitation and above-normal temperatures through summer (Boyda, 2026). At the time restrictions were implemented, Pactola was at approximately 86% of capacity — a level that might appear adequate for near-term supply. This project asks: why did water managers restrict outdoor use when the reservoir appeared nearly full?

To address this question, we construct a simplified water budget for the Pactola system using publicly available data from the U.S. Geological Survey (USGS), the Bureau of Reclamation (BOR), and the NRCS SNOTEL network. The water budget equation applied here is:

\[\Delta S_{\text{Pactola}} = P_{\text{snow}} + P_{\text{rain}} + Q_{in} - ET - Q_{out}\]

where \(\Delta S\) is the change in reservoir storage, \(P\) terms represent precipitation inputs (snow and rain), \(Q_{in}\) and \(Q_{out}\) are stream inflow and regulated outflow, and \(ET\) is evapotranspiration.


3 Data

Five data sources provide the terms of the water budget equation. Daily reservoir storage data from the Bureau of Reclamation serves as the primary measure of \(\Delta S\); two USGS stream gages measure \(Q_{in}\) and \(Q_{out}\); and NRCS SNOTEL provides the \(P_{snow}\) record.

Data sources for the Pactola water budget analysis. USGS reservoir site 06411000 returns no usable daily values via dataRetrieval; storage data was obtained directly from the Bureau of Reclamation hydromet portal (station PTR). One anomalous BOR storage value on January 31, 2026 (47,645 af; ~765 af above trend) was identified as a telemetry artifact during EDA and removed prior to analysis.
Term Source Site / ID Notes
\(Q_{in}\) USGS NWIS 06410500 — Rapid Creek above Pactola Daily discharge (cfs); pulled 2000–2026-04-21
\(\Delta S\) Bureau of Reclamation Station PTR — Pactola Reservoir Daily storage (af), elevation (ft), inflow, outflow — WY2026
\(Q_{out}\) USGS NWIS 06411500 — Rapid Creek below dam Daily discharge (cfs); pulled 2000–2026-04-21
\(P_{snow}\) NRCS SNOTEL Blind Park (354) — Pennington Co.  Daily SWE (in.); record starts 1989; 1991-2020 median computed
\(P_{rain}\) PRISM 30-yr normals Precipitation normals; not directly used in analysis
\(ET\) Derived Not estimated quantitatively in this analysis

4 Methods

4.1 Study Area and Control Volume

The study area is Pactola Reservoir, upper Rapid Creek watershed, Black Hills, South Dakota. The control volume is the reservoir itself, with the upstream boundary at the watershed divide above the reservoir and the downstream boundary at Pactola Dam. The study period is Water Year 2026 (October 1, 2025 through April 28, 2026).

4.2 Water Budget Equation and Assumptions

Three terms from the full water budget equation were omitted from this analysis:

  • Groundwater (\(GW\)): Exchange between the reservoir and surrounding groundwater is small relative to surface flows over this timescale and is unmeasurable with publicly available data.
  • Soil moisture: No reliable soil moisture measurements are available at the spatial resolution needed for the Pactola watershed.
  • Consumed water (\(W_c\)): Major water users — Rapid City’s municipal system and agricultural users — withdraw water downstream of Pactola Dam, outside the control volume.

The simplified working equation is therefore:

\[\Delta S_{\text{Pactola}} = P_{\text{snow}} + P_{\text{rain}} + Q_{in} - ET - Q_{out}\]

\(\Delta S\) was calculated as the difference in BOR-reported storage between February 1, 2026 (peak snowpack anchor date) and April 28, 2026 (melt complete). One anomalous BOR storage value on January 31, 2026 (47,645 af, approximately 765 af above the surrounding daily trend) was identified as a telemetry artifact during exploratory data analysis and removed prior to analysis; the February 1 anchor value is unaffected. Streamflow data were standardized using a cleanup script (wk13_cleanup.R) that detects and resolves column name differences between the legacy readNWISdv() and current read_waterdata_daily() functions in the dataRetrieval package. SNOTEL data were pulled directly from the NRCS web service using a URL-based approach, as dataRetrieval does not reliably reach SNOTEL stations. USGS streamflow data for WY2026 extends through April 21, 2026 (the data pull date); all streamflow analysis is bounded by this date.


5 Results

5.1 Reservoir Storage

Pactola Reservoir storage, Water Year 2026. Vertical dashed lines mark the February 1 and April 28 anchor dates used for the delta-S calculation. Storage increased by +962 acre-feet over this period despite below-normal snowpack. One anomalous value on January 31 was removed prior to plotting. Source: U.S. Bureau of Reclamation, station PTR.

Pactola Reservoir storage, Water Year 2026. Vertical dashed lines mark the February 1 and April 28 anchor dates used for the delta-S calculation. Storage increased by +962 acre-feet over this period despite below-normal snowpack. One anomalous value on January 31 was removed prior to plotting. Source: U.S. Bureau of Reclamation, station PTR.

Pactola Reservoir storage increased from 46,917 acre-feet on February 1, 2026 to 47,879 acre-feet on April 28, 2026, a net change (\(\Delta S\)) of 962 acre-feet (Figure 5). Storage was broadly stable through the winter months before rising gradually through February and March, with no sharp drawdown or large inflow pulse visible in the time series.

5.2 Streamflow

Pactola Reservoir daily mean inflow (blue) and outflow (red), Water Year 2026. No spring melt pulse is visible in April inflow. Outflow held near 25 cfs from February onward, consistent with the minimum regulated release for downstream trout habitat. Source: U.S. Bureau of Reclamation, station PTR.

Pactola Reservoir daily mean inflow (blue) and outflow (red), Water Year 2026. No spring melt pulse is visible in April inflow. Outflow held near 25 cfs from February onward, consistent with the minimum regulated release for downstream trout habitat. Source: U.S. Bureau of Reclamation, station PTR.

Monthly mean inflow and outflow at Pactola Reservoir, WY2026. Outflow reflects minimum regulated releases (~25 cfs) from February onward. Source: U.S. Bureau of Reclamation, station PTR.
Month Inflow (cfs) Outflow (cfs)
October 37.1 41.9
November 29.1 37.8
December 33.7 35.5
January 26.9 27.6
February 30.7 26.1
March 33.1 24.6
April 29.4 25.1

Mean daily inflow averaged approximately 31.6 cfs from October 2025 through April 2026 (Table 2). No spring melt pulse is visible in April — inflow remained flat at approximately 29–33 cfs through the entire study period. Outflow exceeded inflow from October through December as gate operations maintained higher releases; from February onward, outflow was held at approximately 25 cfs — consistent with the minimum flow required for downstream trout habitat in Rapid Creek.

5.3 Snowpack

Snow water equivalent (SWE) at Blind Park SNOTEL station (354), Pennington County SD. The solid blue line shows WY2026; the dashed gray line shows the 1991-2020 median. WY2026 snowpack peaked approximately 4-5 weeks earlier than the historical median and melted out by late April, roughly 70 days ahead of normal. Source: NRCS SNOTEL.

Snow water equivalent (SWE) at Blind Park SNOTEL station (354), Pennington County SD. The solid blue line shows WY2026; the dashed gray line shows the 1991-2020 median. WY2026 snowpack peaked approximately 4-5 weeks earlier than the historical median and melted out by late April, roughly 70 days ahead of normal. Source: NRCS SNOTEL.

Snow water equivalent at Blind Park SNOTEL (354) peaked at 4.4 inches on February 26, 2026, compared to a 1991–2020 median peak of approximately 7.2 inches occurring in early April — roughly 4–5 weeks later (Figure 7). WY2026 snowpack tracked below the median from the start of the water year, with the gap widening through winter. Snowpack melted out by approximately March 2026, roughly 70 days earlier than the normal melt-out in late June or early July. Basin-wide SWE stood at 7–11% of the 1991–2020 median by April 28 (NRCS iMap, 2026).


6 Discussion

There are two factors that explain this apparent paradox. First, winter outflows from Pactola were held near the minimum release required for downstream ecological and municipal needs. Even though inflow was well below normal, it consistently exceeded outflow for much of February and March, allowing the reservoir to accumulate water slowly. Second, the reservoir entered February with substantial carryover storage from the previous fall, meaning that even modest positive net inflow was enough to produce a measurable increase in storage. Looking forward, the increase in storage does not eliminate the underlying supply risk. The April 1 NRCS forecast projected Rapid Creek inflow at only 32% of median, and Blind Park SNOTEL showed a peak SWE of just r round(peak_swe,1) inches — roughly 63% of normal — with melt-out occurring nearly 70 days earlier than average. With such limited snowpack available to sustain spring and early‑summer inflows, managers faced the prospect of entering the high‑demand season with little additional water expected to arrive. The snowpack record reinforces this concern. WY2026 was among the lowest SWE years on record at Blind Park, and its early melt-out meant that the basin lost its primary natural buffer well before summer demand peaks. In this context, the decision to implement early watering restrictions reflects a forward‑looking assessment: even though Pactola was 86% full in early April, the inflow outlook was too weak to support normal summer withdrawals without risking a rapid decline in storage. This analysis has limitations. The simplified water budget does not explicitly model evaporation, groundwater interactions, or short‑term operational decisions, and it relies on a single SNOTEL site as a proxy for basin‑wide snowpack. Nonetheless, the core conclusion is robust. Water managers restricted outdoor use not because the reservoir was low in April, but because the snowpack and inflow outlook made it unlikely that Pactola could sustain normal summer demand without falling to critically low levels.

The water budget analysis reveals a counterintuitive result: Pactola Reservoir storage increased by 962 acre-feet from February 1 to April 28, 2026, despite a winter snowpack that peaked at only 4.4 inches at Blind Park SNOTEL — roughly 63% of the 1991–2020 median peak. Two factors explain this apparent paradox.


7 References

Boyda, E. (2026, March 30). Rapid City water restriction press conference [Press conference]. Rapid City, SD.

Espinoza, F. (2026, April 1). Rapid City implements watering restrictions: Conservation measures to start early this season. Rapid City Journal.

National Resources Conservation Service. (2026). SNOTEL station data: Blind Park (354), Pennington County, SD. U.S. Department of Agriculture. Retrieved from https://wcc.sc.egov.usda.gov/reportGenerator/

U.S. Bureau of Reclamation. (2026). Daily hydromet data for Pactola Reservoir, station PTR, Water Year 2026. Missouri Basin Regional Office. Retrieved from https://www.usbr.gov/gp-bin/arcweb_ptr.pl

Wickham H, Averick M, Bryan J, Chang W, McGowan LD, Fran<U+00E7>ois R, Grolemund G, Hayes A, Henry L, Hester J, Kuhn M, Pedersen TL, Miller E, Bache SM, M<U+00FC>ller K, Ooms J, Robinson D, Seidel DP, Spinu V, Takahashi K, Vaughan D, Wilke C, Woo K, Yutani H (2019). “Welcome to the tidyverse.” Journal of Open Source Software, 4(43), 1686. doi:10.21105/joss.01686 https://doi.org/10.21105/joss.01686.

@Article{, title = {Welcome to the {tidyverse}}, author = {Hadley Wickham and Mara Averick and Jennifer Bryan and Winston Chang and Lucy D’Agostino McGowan and Romain Fran<U+00E7>ois and Garrett Grolemund and Alex Hayes and Lionel Henry and Jim Hester and Max Kuhn and Thomas Lin Pedersen and Evan Miller and Stephan Milton Bache and Kirill M<U+00FC>ller and Jeroen Ooms and David Robinson and Dana Paige Seidel and Vitalie Spinu and Kohske Takahashi and Davis Vaughan and Claus Wilke and Kara Woo and Hiroaki Yutani}, year = {2019}, journal = {Journal of Open Source Software}, volume = {4}, number = {43}, pages = {1686}, doi = {10.21105/joss.01686}, } > citation(“dataRetrieval”) To cite dataRetrieval in publications, please use:

De Cicco, L.A., Hirsch, R.M., Lorenz, D., Watkins, W.D., Johnson, M., Blodgett, D.L., Hinman, E.D., Zemmels, J., 2026, dataRetrieval: R packages for discovering and retrieving water data available from Federal hydrologic web services, v.2.7.24, doi:10.5066/P9X4L3GE

@Manual{, author = {Laura DeCicco and Robert Hirsch and David Lorenz and Jordan Read and Jordan Walker and Lindsay Platt and David Watkins and David Blodgett and Mike Johnson and Aliesha Krall and Lee Stanish and Joseph Zemmels and Elise Hinman and Michael Mahoney}, title = {dataRetrieval: R packages for discovering and retrieving water data available from U.S. federal hydrologic web services}, publisher = {U.S. Geological Survey}, address = {Reston, VA}, version = {2.7.24}, institution = {U.S. Geological Survey}, year = {2026}, doi = {10.5066/P9X4L3GE}, }

To cite lubridate in publications use:

Garrett Grolemund, Hadley Wickham (2011). Dates and Times Made Easy with lubridate. Journal of Statistical Software, 40(3), 1-25. URL https://www.jstatsoft.org/v40/i03/.

A BibTeX entry for LaTeX users is

@Article{, title = {Dates and Times Made Easy with {lubridate}}, author = {Garrett Grolemund and Hadley Wickham}, journal = {Journal of Statistical Software}, year = {2011}, volume = {40}, number = {3}, pages = {1–25}, url = {https://www.jstatsoft.org/v40/i03/}, }

M<U+00FC>ller K (2025). here: A Simpler Way to Find Your Files. doi:10.32614/CRAN.package.here https://doi.org/10.32614/CRAN.package.here, R package version 1.0.2, https://CRAN.R-project.org/package=here.

A BibTeX entry for LaTeX users is

@Manual{, title = {here: A Simpler Way to Find Your Files}, author = {Kirill M<U+00FC>ller}, year = {2025}, note = {R package version 1.0.2}, url = {https://CRAN.R-project.org/package=here}, doi = {10.32614/CRAN.package.here}, } To cite package ‘knitr’ in publications use:

Xie Y (2025). knitr: A General-Purpose Package for Dynamic Report Generation in R. R package version 1.51, https://yihui.org/knitr/.

Yihui Xie (2015) Dynamic Documents with R and knitr. 2nd edition. Chapman and Hall/CRC. ISBN 978-1498716963

Yihui Xie (2014) knitr: A Comprehensive Tool for Reproducible Research in R. In Victoria Stodden, Friedrich Leisch and Roger D. Peng, editors, Implementing Reproducible Computational Research. Chapman and Hall/CRC. ISBN 978-1466561595

To see these entries in BibTeX format, use ‘print(, bibtex=TRUE)’, ‘toBibtex(.)’, or set ‘options(citation.bibtex.max=999)’. To cite package ‘kableExtra’ in publications use:

Zhu H (2024). kableExtra: Construct Complex Table with ‘kable’ and Pipe Syntax. doi:10.32614/CRAN.package.kableExtra https://doi.org/10.32614/CRAN.package.kableExtra, R package version 1.4.0, https://CRAN.R-project.org/package=kableExtra.

A BibTeX entry for LaTeX users is

@Manual{, title = {kableExtra: Construct Complex Table with ‘kable’ and Pipe Syntax}, author = {Hao Zhu}, year = {2024}, note = {R package version 1.4.0}, url = {https://CRAN.R-project.org/package=kableExtra}, doi = {10.32614/CRAN.package.kableExtra}, }

# Run these in the console and paste the output into your references
citation("tidyverse")
citation("dataRetrieval")
citation("lubridate")
citation("here")
citation("knitr")
citation("kableExtra")