EnergyInnovation / eps-us

Energy Policy Simulator - United States
GNU General Public License v3.0
22 stars 7 forks source link

Avoid small policy effects in BAU case for Change in Energy Export Revenue output graph #286

Closed mkmahajan closed 1 year ago

mkmahajan commented 1 year ago

@minshudeng noticed a tiny policy effect in the BAU case displayed on the Change in Energy Export Revenue graph on the NCSC China web app. While investigating the issue, I confirmed this is a result of Vensim rounding error rather than an issue with our input data. We can prevent the issue in subsequent releases by either recreating the steps below or building in a quantization step in the calculation flow.

For future reference, this testing uncovered that the ordering of subscripts in Vensim can introduce very small rounding differences, at least when used in the ZIDZ function.

The steps I took to confirm the source of the error:

mkmahajan commented 1 year ago

I added in a quantization step for the percentage of energy by fuel for CCS step to prevent this problem in the future.

Also note that while I was looking into this, I realized the recent edit to disaggregate industrial fuel use by industrial process introduced some differences between the policy and BAU case. This showed up on several graphs in the debugging assistance page and at least one output graph. The reason was that in the policy case, energy use by fuel type is multiplied by the percentage of fuel use by industrial process ahead of the fuel shifting code, then summed back up again to find total fuel use. This multiplication step introduces small rounding differences when compared to the BAU version of the energy use variable, which never went through that disaggregation and reaggregation step. I modified the code so that the BAU calculation methodology is parallel to the policy version (it sums up fuel use by industrial process).