The carbonprice module sets (exogenously given price path or predefined 2020 level and linear/exponential increase afterwards) or adjusts carbon price trajectories between iterations s.t. the desired climate policy targets are met. The carbon price is the main indicator to reflect the increase in climate policy ambition over time. Carbon prices are potentially defined by three modules: - 45_carbonprice: define the carbon price necessary to reach global emission targets following specific price trajectories. - 46_carbonpriceRegi: add a markup pm_taxCO2eqRegi to 45_carbonprice estimations to reach specific NDC or net zero targets - 47_regipol: under the regiCarbonPrice realisation, define more detailed region or emissions market specific targets, overwriting the all other carbon prices for selected regions.

Description | Unit | A | B | C | D | E | |
---|---|---|---|---|---|---|---|

cm_carbonprice_temperatureLimit | not-to-exceed temperature target in degree above pre-industrial | ||||||

cm_co2_tax_2020 | level of co2 tax in year 2020 in $ per t CO2eq, makes sense only for emiscen eq 9 and 45_carbonprice exponential | x | x | x | x | ||

cm_co2_tax_growth | growth rate of carbon tax | x | |||||

cm_CO2priceRegConvEndYr | Year at which regional CO2 prices converge in module 45 realization diffPhaseIn2LinFlex | x | x | ||||

cm_emiscen | policy scenario choice | ||||||

cm_expoLinear_yearStart | time at which carbon price increases lineraly instead of exponentially | ||||||

cm_iterative_target_adj | whether or not a tax or a budget target should be iteratively adjusted depending on actual emission or forcing level | ||||||

cm_NDC_divergentScenario | choose scenario about convergence of CO2eq prices in NDC realization of module 45_carbonprice | ||||||

cm_NDC_version | choose version year of NDC targets as well as conditional vs. unconditional targets | ||||||

cm_peakBudgYr | date of net-zero CO2 emissions for peak budget runs without overshoot | x | |||||

cm_startyear | first optimized modelling time step | \(year\) | x | x | x | x | |

cm_taxCO2inc_after_peakBudgYr | annual increase of CO2 price after the Peak Budget Year in $ per tCO2 | x | |||||

pm_consPC (tall, all_regi) |
Consumption per capita | ||||||

pm_emifac (tall, all_regi, all_enty, all_enty, all_te, all_enty) |
emission factor by technology for all types of emissions in emiTe | ||||||

pm_gdp (tall, all_regi) |
GDP data | \(trn US\$ 2005\) | x | x | x | x | |

pm_GDPGross (tall, all_regi) |
gross GDP (before damages) | ||||||

pm_globalMeanTemperature (tall) |
global mean temperature anomaly | ||||||

pm_pop (tall, all_regi) |
population data | \(bn people\) | x | x | x | x | |

pm_prtp (all_regi) |
Pure rate of time preference | ||||||

pm_pvp (ttot, all_enty) |
Price on commodity markets | x | |||||

pm_shPPPMER (all_regi) |
PPP ratio for calculating GDP|PPP from GDP|MER | x | x | x | x | ||

pm_taxCO2eq (ttot, all_regi) |
CO2 tax path in T$/GtC = $/kgC. To get $/tCO2, multiply with 272 | \(T\$/GtC\) | x | x | x | x | x |

pm_temperatureImpulseResponseCO2 (tall, tall) |
temperature impulse response to CO2 | \(K/GtCO2\) | |||||

pm_ts (tall) |
(t_n+1 - t_n-1)/2 for a timestep t_n | x | |||||

pm_ttot_2_tall (ttot, tall) |
mapping from ttot to tall | ||||||

pm_ttot_val (ttot) |
value of ttot set element | ||||||

sm_c_2_co2 | conversion from c to co2 | ||||||

sm_DptCO2_2_TDpGtC | Conversion multiplier to go from \(/tCO2 to T\)/GtC: 44/12/1000 | x | x | x | x | x | |

vm_cesIO (tall, all_regi, all_in) |
Production factor | x | |||||

vm_co2eq (ttot, all_regi) |
total emissions measured in co2 equivalents ATTENTION: content depends on multigasscen. | \(GtCeq\) | |||||

vm_demFeSector (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
fe demand per sector and emission market. | \(TWa\) | |||||

vm_emiFgas (ttot, all_regi, all_enty) |
F-gas emissions by single gases from IMAGE |

F | G | H | I | J | K | L | M | N | |
---|---|---|---|---|---|---|---|---|---|

cm_carbonprice_temperatureLimit | x | ||||||||

cm_co2_tax_2020 | x | x | x | ||||||

cm_co2_tax_growth | x | x | |||||||

cm_CO2priceRegConvEndYr | |||||||||

cm_emiscen | x | x | |||||||

cm_expoLinear_yearStart | x | ||||||||

cm_iterative_target_adj | x | ||||||||

cm_NDC_divergentScenario | x | ||||||||

cm_NDC_version | x | ||||||||

cm_peakBudgYr | |||||||||

cm_startyear | x | x | x | x | |||||

cm_taxCO2inc_after_peakBudgYr | |||||||||

pm_consPC (tall, all_regi) |
x | ||||||||

pm_emifac (tall, all_regi, all_enty, all_enty, all_te, all_enty) |
x | ||||||||

pm_gdp (tall, all_regi) |
|||||||||

pm_GDPGross (tall, all_regi) |
x | ||||||||

pm_globalMeanTemperature (tall) |
x | ||||||||

pm_pop (tall, all_regi) |
|||||||||

pm_prtp (all_regi) |
x | ||||||||

pm_pvp (ttot, all_enty) |
|||||||||

pm_shPPPMER (all_regi) |
|||||||||

pm_taxCO2eq (ttot, all_regi) |
x | x | x | x | x | x | x | x | x |

pm_temperatureImpulseResponseCO2 (tall, tall) |
x | ||||||||

pm_ts (tall) |
|||||||||

pm_ttot_2_tall (ttot, tall) |
x | ||||||||

pm_ttot_val (ttot) |
x | ||||||||

sm_c_2_co2 | x | ||||||||

sm_DptCO2_2_TDpGtC | x | x | x | x | x | x | |||

vm_cesIO (tall, all_regi, all_in) |
|||||||||

vm_co2eq (ttot, all_regi) |
x | ||||||||

vm_demFeSector (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
x | ||||||||

vm_emiFgas (ttot, all_regi, all_enty) |
x |

LimitationsThere are no known limitations.

LimitationsThere are no known limitations.

LimitationsThere are no known limitations.

LimitationsThere are no known limitations.

LimitationsThere are no known limitations.

LimitationsThere are no known limitations.

The exponential price path goes back to the â€œHotelling
ruleâ€:

a price path that rises exponentially with the discount rate is
economically optimal for extracting a finite resource, in our case the
finite remaining carbon budget. However, once CDR is introduced to the
portfolio of mitigation options, the remaining admissible amount of
cumulative gross CO2 emissions is no longer finite, and the Hotelling
rule no longer represents an economically optimal solution. A carbon
price path following the Hotelling rule leads to rather low emission
prices and therefore low emission reductions early in the century, and
to very high emission prices and massive CDR deployment towards the end
of the century. A Hotellling price path can only be considered optimal
until the time of net-zero emissions. Afterwards, a moderate carbon
price increase is sufficient to avoid a return of fossil fuels.
Therefore, we choose an exponentially increasing carbon price until the
expected time of net-zero emissions and a linear increase at the rate of
2050 or 2060 afterwards.

The exponential price path goes back to the â€œHotelling
ruleâ€:

a price path that rises exponentially with the discount rate is
economically optimal for extracting a finite resource, in our case the
finite remaining carbon budget. However, once CDR is introduced to the
portfolio of mitigation options, the remaining admissible amount of
cumulative gross CO2 emissions is no longer finite, and the Hotelling
rule no longer represents an economically optimal solution. A carbon
price path following the Hotelling rule leads to rather low emission
prices and therefore low emission reductions early in the century, and
to very high emission prices and massive CDR deployment towards the end
of the century. A Hotellling price path can only be considered optimal
until the time of net-zero emissions. Afterwards, a moderate carbon
price increase is sufficient to avoid a return of fossil fuels.
Therefore, we choose an exponentially increasing carbon price until the
expected time of net-zero emissions and a linear increase at the rate of
2050 or 2060 afterwards.

The exponential price path goes back to the â€œHotelling
ruleâ€:

a price path that rises exponentially with the discount rate is
economically optimal for extracting a finite resource, in our case the
finite remaining carbon budget. However, once CDR is introduced to the
portfolio of mitigation options, the remaining admissible amount of
cumulative gross CO2 emissions is no longer finite, and the Hotelling
rule no longer represents an economically optimal solution. A carbon
price path following the Hotelling rule leads to rather low emission
prices and therefore low emission reductions early in the century, and
to very high emission prices and massive CDR deployment towards the end
of the century. A Hotellling price path can only be considered optimal
until the time of net-zero emissions. Afterwards, a moderate carbon
price increase is sufficient to avoid a return of fossil fuels.
Therefore, we choose an exponentially increasing carbon price until the
expected time of net-zero emissions and a linear increase at the rate of
2050 or 2060 afterwards.

LimitationsThere are no known limitations.

LimitationsThere are no known limitations.

LimitationsThere are no known limitations.

This realization implements a carbon price trajectory consistent with the NDC targets (up to 2030) and a trajectory of comparable ambition post 2030 (1.25%/yr price increase and regional convergence of carbon price).

This realization implements a carbon price trajectory consistent with the NDC targets (up to 2030) and a trajectory of comparable ambition post 2030 (1.25%/yr price increase and regional convergence of carbon price).

This realization implements a carbon price trajectory consistent with the NDC targets (up to 2030) and a trajectory of comparable ambition post 2030 (1.25%/yr price increase and regional convergence of carbon price).

LimitationsThe NDC emission target refers to GHG emissions w/o land-use change and international bunkers. However, the submitted NDC targets of several countries include land-use emissions (e.g. Australia and US). See https://www4.unfccc.int/sites/NDCStaging/Pages/All.aspx. To be checked! The NDC emission target refers to GHG emissions w/o land-use change and international bunkers. However, the submitted NDC targets of several countries include land-use emissions (e.g. Australia and US). See https://www4.unfccc.int/sites/NDCStaging/Pages/All.aspx. To be checked! The NDC emission target refers to GHG emissions w/o land-use change and international bunkers. However, the submitted NDC targets of several countries include land-use emissions (e.g. Australia and US). See https://www4.unfccc.int/sites/NDCStaging/Pages/All.aspx. To be checked!

LimitationsThere are no known limitations.

LimitationsThere are no known limitations.

LimitationsThere are no known limitations.

LimitationsThere are no known limitations.

Description | Unit | A | B | C | D | E | F | |
---|---|---|---|---|---|---|---|---|

f45_2005shareTarget (ttot, all_regi, NDC_version, all_GDPscen) |
Table for all NDC versions with 2005 GHG emission share of countries with quantifyable emissions under NDC in particular region, time dimension specifies alternative future target years | |||||||

f45_factorTargetyear (ttot, all_regi, NDC_version, all_GDPscen) |
Table for all NDC versions with multiplier for target year emissions vs 2005 emissions, as weighted average for all countries with quantifyable emissions under NDC in particular region | |||||||

f45_histShare (tall, all_regi, NDC_version) |
Table for all NDC versions with GHG emissions share of countries with quantifyable 2030 target, time dimension specifies historic record | |||||||

p45_2005shareTarget (ttot, all_regi) |
2005 GHG emission share of countries with quantifyable emissions under NDC in particular region, time dimension specifies alternative future target years | |||||||

p45_adjustExponent | exponent in tax adjustment process | |||||||

p45_BAU_reg_emi_wo_LU_bunkers (ttot, all_regi) |
regional GHG emissions (without LU and bunkers) in BAU scenario | |||||||

p45_bestNDCcoverage (all_regi) |
highest coverage of NDC targets within region | |||||||

p45_CO2eqwoLU_actual (ttot, all_regi) |
actual level of regional GHG emissions after previous iteration | |||||||

p45_CO2eqwoLU_actual_iter (iteration, ttot, all_regi) |
actual level of regional GHG emissions p45_CO2eqwoLU_actual tracked over iterations | |||||||

p45_CO2eqwoLU_goal (ttot, all_regi) |
regional NDC target level of GHG emissions | |||||||

p45_CO2priceTrajDeveloped (ttot) |
CO2 price trajectory for developed/rich countries | x | x | |||||

p45_correctScale | XXX | x | ||||||

p45_debugCprice2020 (all_regi, iteration) |
XXX | x | ||||||

p45_debugMitiCostRel (all_regi, iteration) |
XXX | x | ||||||

p45_distanceToOptyear (ttot, all_regi) |
distance to p45_useSingleYearCloseTo to favor years in case of multiple equally good targets | |||||||

p45_factorRescaleCO2Tax (ttot, all_regi) |
multiplicative factor to rescale CO2 taxes to achieve the climate targets | |||||||

p45_factorRescaleCO2Tax_iter (iteration, ttot, all_regi) |
Track the changes of p45_factorRescaleCO2Tax over the iterations | |||||||

p45_factorRescaleCO2TaxLtd (ttot, all_regi) |
multiplicative factor to rescale CO2 taxes to achieve the climate targets limited to not-so-fast adaption | |||||||

p45_factorRescaleCO2TaxLtd_iter (iteration, ttot, all_regi) |
Track the changes of p45_factorRescaleCO2TaxLimited over the iterations | |||||||

p45_factorTargetyear (ttot, all_regi) |
Multiplier for target year emissions vs 2005 emissions, as weighted average for all countries with quantifyable emissions under NDC in particular region | |||||||

p45_firstNDCyear (all_regi) |
last year with NDC coverage within region | |||||||

p45_gdpBAU (tall, all_regi) |
baseline GDP path from gdx | x | ||||||

p45_gdppcap2015_PPP (all_regi) |
2015 GDP per capita (k $ PPP 2005) | x | x | x | x | |||

p45_histShare (tall, all_regi) |
GHG emissions share of countries with quantifyable 2030 target, time dimension specifies historic record | |||||||

p45_ignoreNDCafter | NDC targets after this years are ignored, for example to exclude 2050 net zero targets | |||||||

p45_ignoreNDCbefore | NDC targets before this years are ignored, for example to exclude 2030 targets | |||||||

p45_lastNDCyear (all_regi) |
last year with NDC coverage within region | |||||||

p45_minDistanceToOptyear (all_regi) |
minimal distance to p45_useSingleYearCloseTo per region | |||||||

p45_minRatioOfCoverageToMax | only targets whose coverage is this times p45_bestNDCcoverage are considered. Use 1 for only best. | |||||||

p45_mitiCostRel (all_regi) |
XXX | x | ||||||

p45_mitiCostRelGlob | XXX | x | ||||||

p45_NDCstartPrice (all_regi) |
start price for linear phase-in from NDC | |||||||

p45_phasein_2025ratio (all_regi) |
ratio of CO2 price to that of developed region in 2025 | x | x | |||||

p45_phasein_zeroyear (all_regi) |
year when CO2 price convergence line crosses zero | x | x | x | ||||

p45_regCO2priceFactor (ttot, all_regi) |
regional multiplicative factor to the CO2 price of the developed countries | x | x | |||||

p45_tau_co2_tax (ttot, all_regi) |
Exogenous CO2 tax level | x | ||||||

p45_tau_co2_tax_inc (all_regi) |
Linear annual increase in carbon price T$/GtC/yr | |||||||

p45_tauCO2_ref (ttot, all_regi) |
CO2 tax path of reference policy (NDC) | x | x | x | x | |||

p45_taxCO2eq_iter (iteration, ttot, all_regi) |
CO2eq tax non-regi tracked over iterations | |||||||

p45_taxCO2eqConvergenceYear | year until which CO2eq taxes have converged globally | |||||||

p45_taxCO2eqFirstNDCyear (all_regi) |
CO2eq tax in p45_firstNDCyear | |||||||

p45_taxCO2eqGlobal2030 | startprice in 2030 (unit TDpGtC) of global CO2eq taxes towards which countries converge | |||||||

p45_taxCO2eqLastNDCyear (all_regi) |
CO2eq tax in p45_lastNDCyear | |||||||

p45_taxCO2eqYearlyIncrease | yearly multiplicative increase of co2 tax, write 3% as 1.03 | |||||||

p45_taxTempLimit (tall) |
tax for Temperature limit | \(1000 \$/tC\) | ||||||

p45_taxTempLimitLastItr (tall) |
tax for Temperature limit, last iteration | \(1000 \$/tC\) | ||||||

p45_useSingleYearCloseTo | if 0: use all. If > 0: use only one single NDC target per country closest to this year (use 2030.4 to prefer 2030 over 2035 over 2025) | |||||||

s45_constantCO2price | initial value for constant global CO2 price | x | x | x | ||||

s45_convergenceCO2price | price to which the regional values converge | x | x | |||||

s45_eta | inverse steepness of damage function at temperature limit (logistic function). Raise if no convergence | |||||||

s45_itrAdjExp | exponent for iterative adjustment of taxes. Lower if no convergence. | |||||||

s45_stageend | first time-step of constant global CO2 price | x | x | |||||

s45_stagestart | last time-step fixed to ref. / beginning of staged accession period | x | x | x | ||||

s45_taxTempLimitConvMaxDeviation | limit for temperature deviation |

G | H | I | J | K | L | M | N | |
---|---|---|---|---|---|---|---|---|

f45_2005shareTarget (ttot, all_regi, NDC_version, all_GDPscen) |
x | |||||||

f45_factorTargetyear (ttot, all_regi, NDC_version, all_GDPscen) |
x | |||||||

f45_histShare (tall, all_regi, NDC_version) |
x | |||||||

p45_2005shareTarget (ttot, all_regi) |
x | |||||||

p45_adjustExponent | x | |||||||

p45_BAU_reg_emi_wo_LU_bunkers (ttot, all_regi) |
x | |||||||

p45_bestNDCcoverage (all_regi) |
x | |||||||

p45_CO2eqwoLU_actual (ttot, all_regi) |
x | |||||||

p45_CO2eqwoLU_actual_iter (iteration, ttot, all_regi) |
x | |||||||

p45_CO2eqwoLU_goal (ttot, all_regi) |
x | |||||||

p45_CO2priceTrajDeveloped (ttot) |
||||||||

p45_correctScale | ||||||||

p45_debugCprice2020 (all_regi, iteration) |
||||||||

p45_debugMitiCostRel (all_regi, iteration) |
||||||||

p45_distanceToOptyear (ttot, all_regi) |
x | |||||||

p45_factorRescaleCO2Tax (ttot, all_regi) |
x | |||||||

p45_factorRescaleCO2Tax_iter (iteration, ttot, all_regi) |
x | |||||||

p45_factorRescaleCO2TaxLtd (ttot, all_regi) |
x | |||||||

p45_factorRescaleCO2TaxLtd_iter (iteration, ttot, all_regi) |
x | |||||||

p45_factorTargetyear (ttot, all_regi) |
x | |||||||

p45_firstNDCyear (all_regi) |
x | |||||||

p45_gdpBAU (tall, all_regi) |
||||||||

p45_gdppcap2015_PPP (all_regi) |
||||||||

p45_histShare (tall, all_regi) |
x | |||||||

p45_ignoreNDCafter | x | |||||||

p45_ignoreNDCbefore | x | |||||||

p45_lastNDCyear (all_regi) |
x | |||||||

p45_minDistanceToOptyear (all_regi) |
x | |||||||

p45_minRatioOfCoverageToMax | x | |||||||

p45_mitiCostRel (all_regi) |
||||||||

p45_mitiCostRelGlob | ||||||||

p45_NDCstartPrice (all_regi) |
x | |||||||

p45_phasein_2025ratio (all_regi) |
||||||||

p45_phasein_zeroyear (all_regi) |
||||||||

p45_regCO2priceFactor (ttot, all_regi) |
||||||||

p45_tau_co2_tax (ttot, all_regi) |
||||||||

p45_tau_co2_tax_inc (all_regi) |
x | |||||||

p45_tauCO2_ref (ttot, all_regi) |
x | |||||||

p45_taxCO2eq_iter (iteration, ttot, all_regi) |
x | |||||||

p45_taxCO2eqConvergenceYear | x | |||||||

p45_taxCO2eqFirstNDCyear (all_regi) |
x | |||||||

p45_taxCO2eqGlobal2030 | x | |||||||

p45_taxCO2eqLastNDCyear (all_regi) |
x | |||||||

p45_taxCO2eqYearlyIncrease | x | |||||||

p45_taxTempLimit (tall) |
x | |||||||

p45_taxTempLimitLastItr (tall) |
x | |||||||

p45_useSingleYearCloseTo | x | |||||||

s45_constantCO2price | x | |||||||

s45_convergenceCO2price | ||||||||

s45_eta | x | |||||||

s45_itrAdjExp | x | |||||||

s45_stageend | x | |||||||

s45_stagestart | x | |||||||

s45_taxTempLimitConvMaxDeviation | x |

description | |
---|---|

all_emiMkt | emission markets |

all_enty | all types of quantities |

all_GDPscen | all possible GDP scenarios |

all_in | all inputs and outputs of the CES function |

all_regi | all regions |

all_te | all energy technologies, including from modules |

cm_GDPscen | cm_GDPscen as set for use in GDX |

emi_sectors | comprehensive sector set used for more detailed emissions accounting (REMIND-EU) and for CH4 tier 1 scaling - potentially to be integrated with similar set all_exogEmi |

enty(all_enty) | all types of quantities |

in(all_in) | All inputs and outputs of the CES function |

iteration | iterator for main (Negishi/Nash) iterations |

modules | all the available modules |

NDC_version | NDC data version for NDC realizations of 40_techpol and 45_carbonprice |

p45_NDCyearSet(ttot, all_regi) | YES for years whose NDC targets is used |

regi(all_regi) | all regions used in the solution process |

regi_group(ext_regi, all_regi) | region groups (regions that together corresponds to a H12 region) |

se2fe(all_enty, all_enty, all_te) | map secondary energy to end-use energy using a technology |

set | regi_nucscen(all_regi) regions which nucscen applies to |

t(ttot) | modeling time, usually starting in 2005, but later for fixed delay runs |

tall | time index |

te(all_te) | energy technologies |

ttot(tall) | time index with spin up |

Christoph Bertram, Gunnar Luderer, Robert Pietzcker