pnnl / tesp

Other
39 stars 36 forks source link

Add billing and price formation for flat and time-of-use rates #152

Closed lanesmith1 closed 2 months ago

lanesmith1 commented 2 months ago

This PR introduces two main additions to the postprocessing code:

  1. Allows billing information for consumers and DSOs at the aggregate level to be calculated for the flat and time-of-use rates. This not only includes calculating the billing information, but also discovering the prices used to calculate the billing information per cost-of-service regulation principles.
  2. Updates the case postprocessing script (run_case_postprocessing.py) to collect necessary information for the time-of-use and subscription rates. Namely, this allows period-specific metrics to be collected (e.g., off-peak-period and peak-period energy consumption) and enables the creation of demand and baseline demand profiles, both of which are necessary for the calculation of bills under the subscription rate.

To enable these changes, the following files are changed as follows:

All feedback is welcome, though I would especially appreciate feedback on some things in run_case_postprocessing.py in particular. Since this runs on the cluster, I am less familiar with the directory structure. What is the best way for the people who are running this script to include information on the rate scenario and the time-of-use parameters?

lanesmith1 commented 2 months ago

Following a discussion with @jk1066, the recent commit makes changes to run_case_postprocessing.py and dso_rate_making.py that should allow relevant rate scenario information to be pulled from existing files (e.g., the generate_case_config.json file). The changes also make use of existing relative paths for storing and accessing time-of-use parameters (i.e., the time_of_use_parameters.json file will be stored in the examples/analysis.dsot/data directory), as needed.

lanesmith1 commented 2 months ago

@d3j331 I added the change we just talked about. This should be good on my end now