How Fast Are California Reservoirs Filling Up?

Posted In: Water

Update: I added a date slider to let you scrub through dates as well as the ability to pause the animation.

In my California water levels visualization, I presented a “bar graph” showing the amount of water currently in California’s reservoirs.  However, I thought it’d be interesting to see how this has changed over the course of the last few months, since the state has gotten alot of rain and snow recently.  

This visualizations “animates” the graph for recent history (going back to October 1, 2015) showing how the recent rains (or lack thereof) has been caused the levels of the reservoirs in California to rise (and fall).  

The historical average represents a daily average reservoir level. It changes for each day of the water year to represent seasonality of precipitation and runoff.

Click the “animate” button below the figure and you can use the slider to change the speed of animation as it cycles through the days. I added a Date slider which lets you scrub through all the dates and animate from different points. 

The last few years have seen a bit of whiplash in terms of California water, with very high levels as well as very low levels in the state’s reservoirs.


Sources and Tools: This graph is updated daily and is made in javascript, html and css. The data is automatically downloaded daily from the California Department of Water Resources website using python.











25 Responses to How Fast Are California Reservoirs Filling Up?

  1. Anthracyda says:

    And the aquifers are still depleted. Reservoirs are not the only things you need to track.

    • FishyObserver says:

      Good point but where are the places to do this? There does not seem to be an infrastructure in place to do that other than farmers wells.

  2. Paul Raveling says:

    Good graphic depiction of storage. This year’s challenge is recognizing total inflow rather than storage. Most of California’s reservoirs have been dumping inflow to outflow to comply with TOC limits (Top Of Conservation), the metric used to assure adequate empty volume in the flood pool. In dry years reservoir storage is the best metric for water supply that can be observed daily. In wet years, especially now, California dams have already dumped massive amounts of water to comply with their TOC limits.

    It would be interesting to see a metric for total accumulated inflow — basically what nature supplies instead of what human regulation lets the dams keep. My local example, Folsom Lake, ran outflow at maximum rate starting on 12/31/2022, the day its inflow was about 200,000 acre feet —.about 20% of Folsom Lake’s total capacity. It took nearly a month to get down to TOC and stabilize at about 10% or less below TOC. A total accumulated inflow metric would measure what weather and climate provide, not just how much human regulation lets us keep. That regulation is absolutely needed for safety, but I’d like to see accumulated inflow as a metric for tracking watershed availability of water.

  3. Tim McNaughton says:

    Great work Your are a d3 master (no mean feat!). Do you use “Observable?” Would love to see all your charts on an Observable worksheet – great way to integrate your narrative and charts.

    I think it would be an interesting view to do a 2-chart panel combining your “how fast” animation at:
    with your stacked line chart showing reservoir history at:
    Side by side charts could be linked with a horizontal xrule that ties the data together.

    Thanks for this great work!

    • Kelly says:

      Hi: the California water levels graphic doesn’t have the same data as other sources for today (historic and current). Too low!

      Love your site.

  4. Jim G says:

    So pleased with the new changes and used them to calculate the delta between the historical averages for the date 1/14. So for the years 2016-2022 on average we have been at 91.5% of the historical average and 55.2% of capacity on average. This exercise was a bit manual as I had to move the slider to each date, enter the values in a Google sheet and enter formulas to calculate.

    A couple simple additions to the chart would automatically do this! Add % values below each of the 3 values on the chart. So below the date-specific Storage Level kaf, add the % of historical average and % of capacity below the kaf value. Ex: for 1/14/22, it would read “86.4% H, 55.2% C” where H=Historical and C=Capacity. Then below the Historical Avg kaf value, and the Capacity kaf value add the % avg for 2016-current year. So for 1/14 that value is 91.5% for Historical and 55.2% for Capacity. That way on any specific date- you can see how the current day’s capacity compares to the historical average of 2016-current as a %. So for 1/14/22 we are at 86.4% of historical vs 91.5% for the average of 2016-22- so we are getting very close to a “true normal” over the last 7 years.

    The thing that was tough with the date slider is to get to a specific date- it is nearly impossible. So adding a simple – and + button to each end of the slider that goes in one day increments would really help. So for my sheet i created some dates were for 1/13, pr 1/14 or 1/15 as I could never get the slider onto the exact 1/14 date for each year.

    Thanks for listening and thanks for all you have done on this!

  5. Vince says:

    Thanks, the slider is really nice!

    The [Animate/Pause] button stays as [Pause] at the end of the animation.
    Then if you move the slider at the beginning it still says [Pause] although it works as an [Animate] switch.
    Maybe you need to change it to something like Reanimate, or back to Animate once you move the slider.

  6. Eric W says:

    Just wanted to say I’m a huge fan of the work you’ve done on these pages.

  7. Jim G says:

    Thanks so much for the new pause button and date slider that made it so much easier to use/compare/analyze. Thank you!

    • Brian says:

      Really cool graph but one part is very unclear to me and that is the historical average. It moves around a lot – which makes it feel like it’s more of a trailing 12 months vs a “historical” average which would be probably at least 5 years or maybe 7-ish to stay in cycle with El Niño/la Nina weather cycles.

      As it is now it’s giving the false impression by showing that 10k kaf is the historical average and then 2 years later 20k kaf is the historical average – which seems much too wide a swing for a historical average.

      • chris says:

        Historical average is the average reservoir level for that day of the water year. So for every day of the year the historical average changes due to seasonality of rains and snowmelt. So if you look at every October 1 across different years, you’ll see the same historical average.

        I’m not sure where you see 10,000 kaf as a historical average anywhere.

  8. Peter Harrison says:

    Another stupendously effective data display. Best I’ve ever seen of CA water resource status and trends. Thank you. My only suggestion is the ability to pause that animated graphic and a slider that can move the graphic through time.

    • Jim G says:

      Yes please- adding a pause button and a tabular version or the ability to enter specific dates that then show that date for the current year vs the historical average would be amazing. Thanks for all you do to make this easy to read!

  9. Patrick says:

    I am stunned and grateful that you put this (and so much of your other charts) together. I stumbled on one that was exactly what I was looking for and then failed to get my work done for the next 1.5 hours because all of the other stuff was just so engrossing. This hits my nerd bells big time! Thank you, thank you, thank you.

  10. Rick says:

    This is great. But something happens around 12/5/2018, and suddenly it updates at a rate of several seconds per day. I’ve tried it on Safari and Chrome.

    Any chance of a slider from the start of the data to the most recent that we can drag back and forth?

  11. Interested observer says:

    Starts really fast, then slows down around 2018-2019, and chugs along, 1-2 seconds per day, even at the fastest setting. Firefox too slow to keep up?

    Maybe allow a start/end date? I don’t really care *THAT* much about the change in levels in 2017 – I want to see 2022’s change levels.

  12. Chani says:

    Thank you for putting this together! Wonder if a quick status can be developed from this data to drive conservation: green, amber or red. Would link a zip code to its water supply source, and calculate status for that zip code based on current water level, plus estimated inflow and outflow over the following 12 months.

  13. Brooke Robbins says:

    This is by far the best representation of CA’s water resources available. A really useful effort and greatly appreciated.

  14. Cheery says:

    Great graph!

  15. Richard kunz says:

    Realistically how close to 100% capacity will the water managers allow the reservoirs to get to. ???

    • chris says:

      Probably not that close. Given what’s happening at Oroville, it makes sense to keep a little bit of buffer (unfilled capacity) in the system to prevent any big storms from creating emergencies.

Leave a Reply

Your email address will not be published. Required fields are marked *