Fortran code There are two sets of codes to calculate the economies. The first set in the folder benchmark calculates the economy with exogenous energy prices in the body of the text and is also used for the subsistence energy results in Appendix D.2. The second set of code is in the folder endogenous energy production and is used to calculate the results in Appendix D.1. Each folder has four sub folders: Calibrate: This code is used to calibrate the economy. This economy has no carbon tax. The parameters are determined using a grid search. The code outputs files used to minimize the squared percent difference from the calibration targets. Steady_state: This code is used to determine the steady state without the carbon tax. The calibration parameters must be updated within the main file. Steady_state_tax: This code is used to determine each of the four steady states when the carbon tax is implemented. The calibration parameters must be updated within the main file. Moreover, the specific carbon tax policy must be selected. This code references some of the output in the folder steady_state and needs the output for the specific carbon tax policy that is being calculated. Transition: This code calculates the transition from the steady state without the carbon tax to the new steady state with the specified carbon tax policy. This code references some of the results in the steady_state and steady_state_tax folders for the specified carbon tax policy. All the paths for inputs and outputs need to be updated. The makefile and build files within each folder can be used to create the executable file. The appropriate paths will need to be updated The code is parallelized using mpi and the endogenous energy production uses the IMSL libraries. Generally, the parallelization is done on across the kgrid when determining the value function and across agents in the simulation (in the calibration code the parallelization is done across calibration parameters). The software used is the Intel Fortran Compiler, Version 14.0.5 and MVAPICH2 2.2b. The code uses IMSL 7.1.0. The operating system is Ubuntu Linux 14.04. The time to run the code varies greatly on the number of processors used and the size of the grids. Roughly, the steady state calculations take an hour (using around 50 cores) and the transitions take 10 hours (using around 50 cores). Matlab code The Fortran output for the baseline, endogenous energy, and subsistence energy consumption is produced by the fortran code. The output should be stored in the folders constantSSbenefits, endogEnergy, and ebar_zero respectively. We describe the file structure in each of these folders, though the actual Fortran output (due to its size) is not included: Folder steady_state has the Fortran output for the initial steady state Folders end_cap_tax_rebate, end_labor_rebate, end_lump_sum_rebate and end_throw_away have the Fortran output for the capital tax rebate, labor tax rebate, lump-sum rebate, and no rebate cases respectively. Folder transition has the Fortran output for the transition under each rebate case. Fortran data files shocks.dat, shocks_profiles.dat, and types.dat are common to all specifications Calibration_conesa.xls are the population parameters used in the Fortran code which are from Conesa et al (https://www.aeaweb.org/aer/data/mar09/20060994_data.zip) Matlab files steadyStateConstantSSBenefits.m, SteadyStateEbar0.m, and steadyStateEndogenous1.m process the Fortran steady state output in each specification and store the processed output as .mat files. Calls function cevFunc2 and cevFuncQ Function cevFunc2 computes the steady state CEV for the population (Table 3) Function cevFuncQ computes the steady state CEV by income quintile (Table 5) Matlab files transitionConstantSSBeneits and transitionEndogEnergy.m process the Fortran transition output and store the processed output as .mat files. Calls function cevTransFunc2 and cevTransFuncQ Function cevTransFunc2 computes the transition CEV for the population (Table 3) Function cevTransFuncQ computes the transition CEV by income quintile (Table 6) Matlab file tables.m produces the main tables used in the analysis. Matlab file graphsEPS.m produces the main graphs used in the analysis. CEX Data The CEX data on family-level abstracts are available at http://www.nber.org/data/ces_cbo.html Cexfam.pdf describes the data. cex-maker.sas merges the raw CEX data files and creates spreadsheet cex.csv cex.do uses cex.csv to calculate the energy shares in Figure 1.