Use consistent variable labels and group names for O&M and energy variables#753
Conversation
Fixed, variable, and capacity variable labels start with "O&M" Fuel and replacement variables do not start with "O&M"
Use consistent labels for all financial models, except where meaning is different such as savings vs revenue for BTM vs FOM, or revenue to project for partnership models.
brtietz
left a comment
There was a problem hiding this comment.
Front of meter configurations look good, O&M section looks good, behind the meter configurations need some more work and discussion. I've flagged the issues with some screenshots for cashloan, host-developer appears to have the same problems. Let me know if you want to meet to discuss these.
|
|
||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_net", "Energy", "kWh", "", "Cash Flow", "*", "LENGTH_EQUAL=cf_length", "" }, | ||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_value", "Value of electricity savings", "$", "", "Cash Flow", "*", "LENGTH_EQUAL=cf_length", "" }, | ||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_net", "Electricity to grid net", "kWh", "", "Cash Flow Electricity", "*", "LENGTH_EQUAL=cf_length", "" }, |
There was a problem hiding this comment.
These labels don't translate well to cashloan. Here is a PV-Battery residential case with grid charging turned on:
First, note that "net" and "to grid" are the same number, despite a sizeable number of kWh from grid. It's unclear how much of this energy actually makes it to the grid, but the monthly powerflow outputs imply roughly half:
The metrics chart appears to have the correct net number for year one:
Second, the "from grid" label needs to discuss the system somehow, as a sizeable amount of grid power is going to load.
|
Good point. For BTM configurations, it probably makes sense to report a single energy value in the cash flow. We could revert to what is in SAM 2021.12.02, which is to show a single value, In both 2021.12.02 and this PR, and in the individual financial model compute modules, such as here for cashloan: https://github.com/NREL/ssc/blob/068cd4f83a0c0c8988a6d64797dfde4476bc798f/ssc/cmod_cashloan.cpp#L412 (I'm not sure when the annualoutput version is being used.) Should we use a single definition of |
|
Displaying one energy number in the cash flow like the release makes sense to me. As far as what that number is, it looks like all of the front of meter configurations have a line like this: whereas the BTM configurations use what comes out of common_financial. This means CF_energy_net is identical to CF_energy_sales for ~1700 lines of code in Single Owner. This is due to the way utility purchases were handled in 2020.11.29. Now that we've cleaned it up for 2021.12.02, I'm wondering if it makes sense to make sure net is always just "sum of gen" and the financial models should use sales (gross) or net appropriately. This has implications for CF_energy_curtailed but not much else. I must me missing something - to me it looks like cmod_annualoutput is abandoned code that's no longer used. If not I'd be curious about how it handles availability losses vs the financial models. |
|
@brtietz My latest commit shows only cf_energy_net in cash flow for BTM configs: |
sjanzou
left a comment
There was a problem hiding this comment.
Maybe review the "net" term in storage configurations per the comments?
|
|
||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_net", "Energy", "kWh", "", "Cash Flow", "*", "LENGTH_EQUAL=cf_length", "" }, | ||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_value", "Value of electricity savings", "$", "", "Cash Flow", "*", "LENGTH_EQUAL=cf_length", "" }, | ||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_net", "Electricity to grid net", "kWh", "", "Cash Flow Electricity", "*", "LENGTH_EQUAL=cf_length", "" }, |
There was a problem hiding this comment.
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_net", "Energy", "kWh", "", "Cash Flow", "*", "LENGTH_EQUAL=cf_length", "" }, | ||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_value", "Value of electricity savings", "$", "", "Cash Flow", "*", "LENGTH_EQUAL=cf_length", "" }, | ||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_net", "Electricity to grid net", "kWh", "", "Cash Flow Electricity", "*", "LENGTH_EQUAL=cf_length", "" }, | ||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_sales", "Electricity to grid", "kWh", "", "Cash Flow Electricity", "*", "LENGTH_EQUAL=cf_length", "" }, |
There was a problem hiding this comment.
@cpaulgilman How do you feel about these labels for behind the meter projects:
cf_energy_net: "Electricity net generation"
cf_energy_sales: "Electricity generation"
This avoids the issue @sjanzou points out here: NatLabRockies/SAM#927 (review) where we're putting values that go to load in a variable with a "to grid" variable.
There was a problem hiding this comment.
cf_energy_net: "Electricity net generation"
cf_energy_sales: "Electricity generation"
I think those are good labels for BTM.
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_value", "Value of electricity savings", "$", "", "Cash Flow", "*", "LENGTH_EQUAL=cf_length", "" }, | ||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_net", "Electricity to grid net", "kWh", "", "Cash Flow Electricity", "*", "LENGTH_EQUAL=cf_length", "" }, | ||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_sales", "Electricity to grid", "kWh", "", "Cash Flow Electricity", "*", "LENGTH_EQUAL=cf_length", "" }, | ||
| { SSC_OUTPUT, SSC_ARRAY, "cf_energy_purchases", "Electricity from grid", "kWh", "", "Cash Flow Electricity", "*", "LENGTH_EQUAL=cf_length", "" }, |
There was a problem hiding this comment.
This might need a new label as well - since this does not include electricity from grid to load. "Electricity from grid to system" would be accurate for BTM systems.
There was a problem hiding this comment.
"Electricity from grid to system" would be accurate for BTM systems.
Agreed.
…s, respectively. This commit should create no changes in variables with units of $, but some variables with units of energy are now more consistent
sjanzou
left a comment
There was a problem hiding this comment.
With comments and issues referenced, the changes look good to me...






Goes with NatLabRockies/SAM#927
Use consistent SSC group names for O&M outputs "Cash Flow Operating Expenses" (output group names do not affect PySAM). Note that Sale Leaseback uses "Sale Leaseback" for most output variables.
Remove redundant cf_sales_energy_value.
Add cf_energy_sales to outputs for all financial models.
Change cash flow energy variable labels to use "Electricity" instead of "Energy" to avoid potential confusion between thermal and electric energy.