Social costs of HFCs (hydrofluorocarbons)

Hi Bryan,
I successfully ran the social cost of HFCs and I now have a csv file with the 2.5%, 3%, and 5% discount rates for each year and each of the HFCs. Can you tell me how to evaluate discount rates of 0%, 1% and 2%? Thanks so much
Caitlin

@chframe that’s great to hear! Line 19 in the estimate script is where you will set your discount rates.

However, if I remember correctly, I believe there are issues at 0% that cause global net consumption to go negative in the baseline, which was the reason for adding the save_md option. If you are interested in 0% (or maybe even 1%?) you should, instead, utilize the save_md option and get the undiscounted streams of marginal damages directly and discount manually.

Thanks. I changed the discount rates in line 19 and now have summary files like the screen shot here in the hfc134a folder in the data folder. Can you give me some more details on how to use save_md to get the undiscounted streams? I don’t see save_md in the codes anywhere.

And are the values in the summary tables just for HFC 134a? How do I compute the same for each of the other HFCs?

You can change the HFC species to any in the dictionary.

const HFC_list = [:HFC23, :HFC32, :HFC125, :HFC134a, :HFC143a, :HFC152a, :HFC227ea, :HFC236fa, :HFC245fa, :HFC365mfc, :HFC4310mee]

The README covers save_md:

save_md = false # Whether to save the global undiscounted marginal damages from each run of the simulation in a subdirectory "output/marginal_damages"

Great, thanks. It’s working. just a few more questions:

  1. For the undiscounted marginal damages, the PAGE output, for example, is for 2020, 2030, 2040, 2050, 2060, 2080, 2100, 2200, and 2300. To do the SC calculations, would you interpolate between those timepoints, or do you ask the model to compute every year up until 2300? And the same for the other two models with their own set of timepoints?

  2. Are the dollar amounts coming out in 2020 dollars?

  3. how many Monte Carlo simulations were run for each HFC? and how was that number decided?

  4. did you use the drop_discontinuities option for PAGE?

Thanks again, this is really helpful.

I think I can answer 1 and 2 for what the MimiIWG model does, but @parthum will want to review :slight_smile:

1. For the undiscounted marginal damages, the PAGE output, for example, is for 2020, 2030, 2040, 2050, 2060, 2080, 2100, 2200, and 2300. To do the SC calculations, would you interpolate between those timepoints, or do you ask the model to compute every year up until 2300? And the same for the other two models with their own set of timepoints?

For undiscounted marginal damages the timesteps of these models are fixed and incorporated into their damage functions by the authors, meaning we cannot set, for example, DICE or PAGE to run annually. Thus we do need to do computations on the back end to calculate the SCC. You can see how this is done for PAGE in the page_post_trial_func here (a post trial function is run within the Monte Carlo after each trial), and similarly for the other models in their respective functions in DICE_mcs.jl and FUND_mcs.jl. For PAGE if I remember correctly this is a little tricky, and needs to use some other values from within the PAGE model that one could export. For DICE here I believe the model does simply interpolate to get annual marginal damages.

I have actually opened a recent addition to this model here that simplifies this process a bit and allows for equity weighting, but it is not yet merged. I think ideally you would use the estimate script to set discount rates so you don’t have to dive into these details, but perhaps for very low rates you’ll have a problem there as @parthum pointed out.

2. Are the dollar amounts coming out in 2020 dollars?

The marginal damages from MimiIWG will been $2005 as are all outputs from that model, @parthum may adjust that in MimiIWG-HFC outputs but the undiscounted stream is in $2005.

1 and 2 are as @lrennels described. To expand on 2, those are inflated to 2020$ (using BEA table 1.1.9) in the post-processing here.

For the other two questions:

3: 10k simulation were ran, this was determined by the precedent in the original 2010 TSD.
4. drop_discontinuities was used for PAGE as described in the 2013/16 TSDs (p.13 and others). Those are mapped in this repo using the script 2_clean_discontinuities.r.

Thanks, I ran 0%, 1%, 2%, and 3% for HFC125, 134a, 143a, and 32. The plan is to give the 2% results to NYSERDA, because those look OK. As I think you were expecting, the PAGE results look strange at 0% and 1%. Here are the PAGE results for the SC of HFC125:
image

Can you tell me more about how to use the PAGE post trial function to calculate 0% and 1%? Just integrating the marginal damages produces a very different 0% SC from what is coming out of the estimate script. Thank you!

and here are the marginal damages from PAGE

Another question came up about the inflation factor. I got a slightly lower inflation number of ~1.221 when I compare the 3% discounted social costs in the data tables in EPA’s RIA to the 3-model averages that I got. I have used 1.228575 since that’s the one in the HFC IWG code. But I might get questions about why my 3% numbers are slightly higher than the ones in the RIA. Here is an example for HFC125:


The ‘Inflation’ column is the result of dividing the EPA 3% numbers by the 3% 3-model averages. Thanks again. Sorry for so many questions

@chframe and @parthum these are great questions and I’m quite happy that we are working towards results and enabling good work with this tool! I may suggest we move this conversation to a different medium, perhaps a Zoom call or email, just since this is getting so model and analysis specific and this is a public Mimi forum so these conversations may be better suited for a more private channel?

That sounds good. Lisa, I’ll email you so we can organize that.

Hi @chframe , these are great questions. It’s actually great to see that you are getting numbers so close, as there is some randomness in the system (even setting seeds across machines can change things). Some of this we might be able to sort out on a call. Feel free to add me to the email with @lrennels, although, I’m not sure @lrennels needs to join unless she wants, she’s already gone above and beyond when it comes to tech help related to Mimi and it’s applications. :slight_smile: