The main purpose of the software is to model energy use for individual and community scale solar water heating projects in California. Usage The user provides a climate zone for a project, an occupancy for each household and whether any of the occupants stay at home during the day. The software can then load a set of example California specific hourly domestic hot water end-use load profiles from a database, size and locate the systems. The user can now simulate the hourly system performance over a period of one representative year, visualize and explore the simulation results using time-series plots for temperature profiles, heat and power rates, or look at annual summaries. Similarly, the user can model individual household solar water heating projects and base case conventional gas tank water heater systems, such that the results can be compared between the individual, community, and base case systems. This functionality is readily available through a Jupyter notebook and a Django web framework, depending on what level of detail the user would like to access. Features - Python module to calculate solar irradiation on a tilted surface - Python module with simplified component models for Converter (solar collectors, electric resistance heater, gas burner, photovoltaic panels, heat pump), Storage (solar thermal tank, heat pump thermal tank, conventional gas tank water heater), and Distribution (distribution and solar pump, piping losses) components - Python module with preconfigured system simulation models for: base case gas tank water heaters, solar thermal water heaters (solar collector feeding a storage tank, with a tankeless gas water heater backup in a new installation cases and a base case gas tank water heater in a retrofit case) and solar electric water heaters (heat pump storage tank with an electric resistance backup) - Database with component performance parameters, California specific weather data and domestic hot water end-use load profiles - Django web framework to configure project, parametrize components and run simulation from a web browser The package contains functional and unit tests and it is structured so that it can be extended with further technologies, applications and locations.