The carbonprice module sets or adjusts carbon price trajectories between iterations s.t. the desired climate policy targets are met. Carbon price trajectories either (a) follow a prescribed funtional form (linear/exponential), (b) reflect NPi or NDC targets, or (c) are set exogenously. The carbon price is the main indicator to reflect the change 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.
Interface plot missing!
| Description | Unit | A | |
|---|---|---|---|
| cm_CPslopeAdjustment | Only used with [functionalFormRegi], determines whether the entire path is shifted up and down or the slope of is adjusted endogenously | ||
| cm_budgetCO2_absDevTol | convergence criterion for global CO2 budget set via cm_budgetCO2from2020. It is formulated as an absolute deviation from the target budget [GtCO2]. | ||
| cm_budgetCO2from2020 | CO2 budget for all economic sectors starting from 2020 (GtCO2). It can be either peak budget, but can also be an end-of-century budget | ||
| cm_carbonprice_temperatureLimit | not-to-exceed temperature target in degree above pre-industrial | \(45_carbonprice = temperatureNotToExceed\) | |
| cm_emiscen | policy scenario choice | ||
| cm_expoLinear_yearStart | time at which carbon price increases linearly instead of exponentially | ||
| cm_iteration_max | number of iterations, if optimization is set to negishi or testOneRegi; is overwritten in Nash mode, except if cm_nash_autoconverge is set to 0 | ||
| cm_iterative_target_adj | settings on iterative adjustment for CO2 tax based on in-iteration emission or forcing level. Allow iteratively generated endogenous global CO2 tax under peak budget constraint or end-of-century budget constraint. | ||
| cm_peakBudgYr | date of net-zero CO2 emissions for peak budget runs without overshoot | ||
| cm_startyear | first optimized modelling time step | \(year\) | |
| cm_taxCO2_IncAfterPeakBudgYr | annual increase of CO2 tax after cm_peakBudgYr in $ per tCO2 | ||
| cm_taxCO2_Shape | Only used with [functionalFormRegi, and functionalForm if cm_iterative_target_adj=5 (i.e. EOC budget)], determines whether the carbon price increases until 2100 or is constant as of the exogenously set cm_peakYear | ||
| cm_taxCO2_expGrowth | growth rate of carbon tax | ||
| cm_taxCO2_interpolation | switch for interpolation between (a) carbonprice trajectory given by path_gdx_ref and (b) carbonprice trajectory defined in 45_carbonprice | ||
| cm_taxCO2_lowerBound_path_gdx_ref | switch for choosing if carbon price trajectories from path_gdx_ref are used as lower bound | ||
| cm_taxCO2_peakBudgYr | level of co2 tax in peak budget year (cm_peakBudgYr) in $ per t CO2eq | ||
| cm_taxCO2_regiDiff | switch for choosing the regional carbon price differentiation scheme in 45_carbonprice/functionalForm | ||
| cm_taxCO2_startyear | level of co2 tax in start year in $ per t CO2eq | ||
| cm_useInputGdxForCarbonPrice | Only used with [functionalFormRegi], determines whether the carbon price information from the input.gdx is used for the first iteration’s carbon price. | ||
| fm_taxCO2eqHist (ttot, all_regi) |
historic CO2 prices | \(\$/tCO2\) | |
| pm_GDPGross (tall, all_regi) |
gross GDP (before damages) | \(T\$\) | |
| pm_actualbudgetco2 (ttot) |
actual level of cumulated emissions starting from 2020 | \(GtCO2\) | |
| pm_actualbudgetco2eqRegi (ttot, all_regi) |
Regional- actual level of cumulated emissions starting from 2020 | \(GtCO2\) | |
| pm_budgetCO2eq (all_regi) |
budget for regional energy-emissions in period 1 | \(GtC\) | |
| pm_consPC (tall, all_regi) |
Consumption per capita | ||
| pm_dt (tall) |
difference to last timestep | ||
| pm_emifac (tall, all_regi, all_enty, all_enty, all_te, all_enty) |
emission factor by technology for all types of energy-related emissions | \(GtC/TWa, Mt CH4/TWa, Mt N/TWa, Mt SO2/TWa, Mt BC/TWa, Mt OC/TWa\) | x |
| pm_gdp (tall, all_regi) |
GDP MER data | \(trn US\$ 2005\) | |
| pm_globalMeanTemperature (tall) |
global mean temperature anomaly | \(K\) | |
| pm_macSwitch (ttot, all_regi, all_enty) |
switch to include mac options in specific sectors and years | \(0/1\) | x |
| pm_pop (tall, all_regi) |
population data | \(bn people\) | |
| pm_prtp (all_regi) |
Pure rate of time preference | ||
| pm_shPPPMER (all_regi) |
PPP ratio for calculating GDP|PPP from GDP|MER | ||
| pm_taxCO2eq (ttot, all_regi) |
CO2 tax path calculated in 45_carbonprice module [T$/GtC]. To get $/tCO2, multiply with 272 = 1 / sm_DptCO2_2_TDpGtC | x | |
| pm_taxCO2eq_anchor_iterationdiff (ttot) |
difference in global anchor carbon price to the last iteration | \(T\$/GtC\) | |
| pm_taxCO2eq_iter (iteration, ttot, all_regi) |
CO2 tax path (pm_taxCO2eq) tracked over iterations | \(T\$/GtC\) | x |
| pm_temperatureImpulseResponseCO2 (tall, tall) |
temperature impulse response to CO2 | \(K/GtCO2\) | |
| pm_ttot_2_tall (ttot, tall) |
mapping from ttot to tall | ||
| pm_ttot_val (ttot) |
value of ttot set element | ||
| sm_D2005_2_D2017 | Convert US$2005 to US$2017 | ||
| sm_DptCO2_2_TDpGtC | convert \(/tCO2 to T\)/GtC: 44/12/1000 | x | |
| sm_budgetCO2eqGlob | budget for global energy-emissions in period 1 | ||
| sm_c_2_co2 | convert mass from carbon to CO2 (44/12) | x | |
| sm_globalBudget_absDev | absolute deviation of global cumulated CO2 emissions budget from target budget | ||
| vm_co2eq (ttot, all_regi) |
total greenhouse gas emissions measured in co2 equivalents that are subject to carbon pricing, be aware that emissions coverage of this variable depends on switch cm_multigasscen | \(GtCeq\) | x |
| vm_demFeSector (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
final energy demand per sector and emissions market, note: taxes should be applied to this variable or variables closer to the supply-side whenever possible so the marginal prices include the tax effects | \(TWa\) | x |
| vm_emiAll (ttot, all_regi, all_enty) |
total emissions by species | \(GtC, Mt CH4, Mt N, Mt SO2, Mt BC, Mt OC\) | |
| vm_emiFgas (ttot, all_regi, all_enty) |
F-gas emissions by single gases from IMAGE | \(emiFgasTotal in MtCO2eq, for other units see f_emiFgas.cs4r\) | x |
| B | C | D | E | F | G | H | I | J | K | |
|---|---|---|---|---|---|---|---|---|---|---|
| cm_CPslopeAdjustment | x | |||||||||
| cm_budgetCO2_absDevTol | x | x | ||||||||
| cm_budgetCO2from2020 | x | x | ||||||||
| cm_carbonprice_temperatureLimit | x | |||||||||
| cm_emiscen | x | x | x | |||||||
| cm_expoLinear_yearStart | x | |||||||||
| cm_iteration_max | x | |||||||||
| cm_iterative_target_adj | x | x | x | x | ||||||
| cm_peakBudgYr | x | x | ||||||||
| cm_startyear | x | x | x | x | ||||||
| cm_taxCO2_IncAfterPeakBudgYr | x | x | ||||||||
| cm_taxCO2_Shape | x | x | ||||||||
| cm_taxCO2_expGrowth | x | x | x | x | x | |||||
| cm_taxCO2_interpolation | x | |||||||||
| cm_taxCO2_lowerBound_path_gdx_ref | x | x | ||||||||
| cm_taxCO2_peakBudgYr | x | x | ||||||||
| cm_taxCO2_regiDiff | x | |||||||||
| cm_taxCO2_startyear | x | x | x | |||||||
| cm_useInputGdxForCarbonPrice | x | |||||||||
| fm_taxCO2eqHist (ttot, all_regi) |
x | x | ||||||||
| pm_GDPGross (tall, all_regi) |
x | |||||||||
| pm_actualbudgetco2 (ttot) |
x | |||||||||
| pm_actualbudgetco2eqRegi (ttot, all_regi) |
x | |||||||||
| pm_budgetCO2eq (all_regi) |
x | |||||||||
| pm_consPC (tall, all_regi) |
x | |||||||||
| pm_dt (tall) |
x | |||||||||
| pm_emifac (tall, all_regi, all_enty, all_enty, all_te, all_enty) |
||||||||||
| pm_gdp (tall, all_regi) |
x | |||||||||
| pm_globalMeanTemperature (tall) |
x | |||||||||
| pm_macSwitch (ttot, all_regi, all_enty) |
x | x | x | |||||||
| pm_pop (tall, all_regi) |
x | |||||||||
| pm_prtp (all_regi) |
x | |||||||||
| pm_shPPPMER (all_regi) |
x | |||||||||
| pm_taxCO2eq (ttot, all_regi) |
x | x | x | x | x | x | x | x | x | x |
| pm_taxCO2eq_anchor_iterationdiff (ttot) |
x | |||||||||
| pm_taxCO2eq_iter (iteration, ttot, all_regi) |
x | x | ||||||||
| pm_temperatureImpulseResponseCO2 (tall, tall) |
x | |||||||||
| pm_ttot_2_tall (ttot, tall) |
x | |||||||||
| pm_ttot_val (ttot) |
x | x | ||||||||
| sm_D2005_2_D2017 | x | |||||||||
| sm_DptCO2_2_TDpGtC | x | x | x | x | x | x | ||||
| sm_budgetCO2eqGlob | x | |||||||||
| sm_c_2_co2 | ||||||||||
| sm_globalBudget_absDev | x | |||||||||
| vm_co2eq (ttot, all_regi) |
||||||||||
| vm_demFeSector (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
||||||||||
| vm_emiAll (ttot, all_regi, all_enty) |
x | |||||||||
| vm_emiFgas (ttot, all_regi, all_enty) |
| Description | Unit | |
|---|---|---|
| pm_NDCEmiTargetDeviation (ttot, all_regi) |
deviation of REMIND emissions to NDC target emissions in last iteration normalized to NDC target emissions | \(0-1\) |
| pm_budgetDeviation (all_regi) |
deviations from regional targets | |
| pm_factorRescale_taxCO2Regi_Funneled2 (iteration, all_regi) |
regional - Multiplicative factor for rescaling the CO2 price to reach the target - Funnelled (interactive, incl. adjustments based on last iterations) | |
| pm_regionalBudget_absDevTol (all_regi) |
tolerance of deviation from regional targets in absolute terms | |
| sm_peakbudget_diff | difference in cumulative CO2 emissions between cumulative emissions in cm_peakBudgYr and time step of maximum cumulative CO2 emissions | \(GtCO2\) |
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).
Limitations 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!
This realization takes the carbon prices until 2020 from the input data and implements as convergence scheme post 2020: parabolic convergence up to 25 US$2005/t CO2 in the convergence year (here chosen as 2100) and then constant
Limitations There are no known limitations.
Limitations There are no known limitations.
Limitations There are no known limitations.
This realization implements carbon price trajectories from an exogenous file (p45_tau_co2_tax.inc). Alternatively, specify in ‘path_gdx_carbonprice’ the run to be used Requires cm_emiscen = 9 and cm_iterative_target_adj = 0
Limitations There are no known limitations.
Limitations There 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 Hotelling 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.
Limitations There are no known limitations.
Carbon price trajectory follows a prescribed functional form (linear/exponential) - either until peak year or until end-of-century - and can be endogenously adjusted to meet CO2 budget targets - either peak or end-of-century - that are formulated in terms of total cumulated CO2 emissions from 2020 (cm_budgetCO2from2020). Flexible choices for regional carbon price differentiation and near-term adjustments. ————————————————————————————————————————————————————————————————————————————————————————————————————————————————– The realization uses a global anchor trajectory based on which the regional carbon price trajectories are defined. Part I (Global anchor trajectory): The functional form (linear/exponential) of the global anchor trajectory is chosen via cm_taxCO2_functionalForm. The (initial) global anchor carbon price in cm_startyear is chosen via cm_taxCO2_startyear. Alternatively, the (initial) global anchor carbon price in cm_peakBudgYr is chosen via cm_taxCO2_peakBudgYr. This value is endogenously adjusted to meet CO2 budget targets if cm_iterative_target_adj is set to 5, 7 or 9. (linear): The linear curve is determined by the two points (cm_taxCO2_historicalYr, cm_taxCO2_historical) and (cm_startyear, cm_taxCO2_startyear). By default, cm_taxCO2_historicalYr is the last timestep before cm_startyear, and cm_taxCO2_historical is the carbon price in that timestep in the reference run (path_gdx_ref) - computed as the maximum of pm_taxCO2eq over all regions. (exponential): The exponential curve is determined by exponential growth rate (cm_taxCO2_expGrowth). Part II (Post-peak behaviour): The global anchor trajectory can be adjusted after reaching the peak of global CO2 emissions in cm_peakBudgYr. The (initial) choice of cm_peakBudgYr is endogenously adjusted if cm_iterative_target_adj is set to 7 or 9. (with iterative_target_adj = 0): after cm_peakBudgYr, the global anchor trajectory increases linearly with fixed annual increase given by cm_taxCO2_IncAfterPeakBudgYr (default = 0, i.e. constant), set cm_peakBudgYr = 2100 to avoid adjustment (with iterative_target_adj = 5): no adjustment to the functional form after cm_peakBudgYr since end-of-century CO2 budget target is formulated (with iterative_target_adj = 7): after cm_peakBudgYr, the global anchor trajectory is adjusted so that global net CO2 emissions stay close to zero (with iterative_target_adj = 9): after cm_peakBudgYr, the global anchor trajectory increases linearly with fixed annual increase given by cm_taxCO2_IncAfterPeakBudgYr (default = 0, i.e. constant) Part III (Regional differentiation): Regional carbon price differentiation relative to global anchor trajectory is chosen via cm_taxCO2_regiDiff. (none): No regional differentiation, i.e. globally uniform carbon pricing (ScenarioMIP2035): Carbon price differentiation with convergence year 2035 - used in ScenarioMIP - that takes carbon prices from path_gdx_ref or cm_taxCO2_regiDiff_startyearValue as starting point and assumes regionally differentiated speed of convergence to global anchor trajectory (ScenarioMIP2050): Carbon price differentiation with convergence year 2050 - used in ScenarioMIP - that takes carbon prices from path_gdx_ref or cm_taxCO2_regiDiff_startyearValue as starting point and assumes regionally differentiated speed of convergence to global anchor trajectory (ScenarioMIP2070): Carbon price differentiation with convergence year 2070 - used in ScenarioMIP - that takes carbon prices from path_gdx_ref or cm_taxCO2_regiDiff_startyearValue as starting point and assumes regionally differentiated speed of convergence to global anchor trajectory (ScenarioMIP2100): Carbon price differentiation with convergence year 2100 - used in ScenarioMIP - that takes carbon prices from path_gdx_ref or cm_taxCO2_regiDiff_startyearValue as starting point and assumes regionally differentiated speed of convergence to global anchor trajectory (initialSpread10): Maximal initial spread of carbon prices in 2030 between OECD regions and poorest region is equal to 10. Initial spread for each region determined based on GDP per capita (PPP) in 2030. By default, carbon prices converge using quadratic phase-in until 2050. Convergence scheme can be adjusted with cm_taxCO2_regiDiff_convergence. (initialSpread20): Maximal initial spread of carbon prices in 2030 between OECD regions and poorest region is equal to 20. Initial spread for each region determined based on GDP per capita (PPP) in 2030. By default, carbon prices converge using quadratic phase-in until 2070. Convergence scheme can be adjusted with cm_taxCO2_regiDiff_convergence. (gdpSpread): Regional differentiation based on GDP per capita (PPP) throughout the century. Uses current GDP per capita (PPP) of OECD countries - around 50’000 US$2017 - as threshold for application of full carbon price. (manual): Enables manual specification of regional carbon price differentiation based on cm_taxCO2_regiDiff_convergence and cm_taxCO2_regiDiff_startyearValue Part IV (Interpolation from path_gdx_ref): To smoothen a potential jump of carbon prices in cm_startyear, an interpolation between (a) the carbon prices before cm_startyear provided by path_gdx_ref and (b) the carbon prices from cm_startyear onward defined by parts I-III can be chosen via cm_taxCO2_interpolation In addition, the carbon prices provided by path_gdx_ref are used as lower bound if switch cm_taxCO2_lowerBound_path_gdx_ref is on. (off): no interpolation, i.e. (b) is used from cm_startyear onward. This must be chosen if regional carbon prices are manually set via cm_taxCO2_regiDiff_startyearValue. (one_step): linear interpolation within 10 years between (a) and (b). For example, if cm_startyear = 2030, it uses (a) until 2025, the average of (a) and (b) in 2030, and (b) from 2035. (two_steps): linear interpolation within 15 years between (a) and (b). For example, if cm_startyear = 2030, it uses (a) until 2025, weighted averages of (a) and (b) in 2030 and 2035, and (b) from 2040. ————————————————————————————————————————————————————————————————————————————————————————————————————————————————–
Limitations There are no known limitations.
Carbon price trajectory follows a prescribed functional form (linear/exponential) - either until peak year or until end-of-century. It is endogenously adjusted to meet regional end-of-century CO2 budget targets.
Switches to set:
Budget allocation and tolerance: - cm_budgetCO2from2020: the budget to be distributed across regions (Gt CO2 eq) (analogous to functionalForm) - c_budgetscen: chose the emission types included in the budget calculation that determines the carbon price. For GHG budgets, remember to adjust the value for cm_budgetCO2from2020# - cm_budgetCO2from2020RegiShare: the share of the global carbon budget allocated to each region - cm_budgetCO2_absDevTol: the absolute deviation tolerance for budget convergence for each region individually. I.e. precision is different from the application in functionalForm!
Carbon price shape settings: - cm_taxCO2_functionalForm: shape of the carbon price trajectory (linear/exponential) (analogous to functionalForm) - cm_CPslopeAdjustment: for linear carbon price, determines whether the slope is of the carbon price is adjusted or whether the line is just shifted up/donw - cm_taxCO2_Shape: 1 if the carbon price peaks in 2100, 2 if it peaks in a specified year (analogous to functionalForm for EoC Budgets)
To exogenously set a peak carbon price year(s): (cm_taxCO2_Shape eq 2) - cm_peakBudgYrRegi: prescribe a specific peak year for each region - cm_peakBudgYr: prescribe a global peak year, which is then applied to all regions. Used if cm_peakBudgYrRegi == “off” - cm_taxCO2_IncAfterPeakBudgYr: set the increase of the carbon price after the peak
Other relevant switches: - cm_useInputGdxForCarbonPrice: if 1, carbon price is read from input GDX. If 0, carbon price is calculated as in the functional form approach. Set to 1 e.g. in case of convergence issues when using the input.gdx from a previous run. - cm_frac_NetNegEmi: Need to decide whether the net negative emissions tax should be turned off depending on the specific scenario configuration.
Comments: - Runs with very relaxed budgets for some regions may not converge if cm_taxCO2_lowerBound_path_gdx_ref = 1 because the carbon price cannot decrease sufficiently. However, if the carbon price drops below 1 USD/tCO2 in 2100 and the budget is still underachieved, region will appear converged (see 80_optimization/nash/postsolve.gms) - Regional carbon price adjustments sometimes oscillate. Try another input GDX, or adjust the iteration number after which carbon price rescaling is allowed only in one direction. - Regions sometimes get carbon prices <1 USD/tCO2, which sometimes causes convergence issues because the multiplying rescaling factors do not increase the carbon price sufficiently anymore. This realization was originally introduced with PR#2222.
Limitations There are no known limitations.
Limitations There are no known limitations.
This realization chooses a carbon price trajectory consistent with a (non-overshoot) temperature target by staying within a peak budget of cumulative CO2 emissions.
Limitations There are no known limitations.
| Description | Unit | A | |
|---|---|---|---|
| f45_EmiTargetAbs (tall, all_regi, NDC_version, all_GDPpopScen) |
Table for all NDC versions with absolute NDC emissions targets, emissions from countries without targets are not included | \(Mt CO2eq/yr\) | x |
| f45_shareTarget (tall, all_regi, NDC_version, all_GDPpopScen) |
Table for all NDC versions with estimated target year GHG emissions share of countries with quantifyable emissions under NDC in particular region, time dimension specifies alternative future target years | \(0..1\) | x |
| o45_change_totCO2emi_peakBudgYr (iteration) |
Measure for how much the CO2 emissions change around the peakBudgYr | ||
| o45_delay_increase_peakBudgYear (iteration) |
Counter that tracks if flip-flopping of peakBudgYr happened. Starts an inner loop to try and overcome this | ||
| o45_diff_to_Budg (iteration) |
Difference between actual CO2 budget and target CO2 budget | ||
| o45_factorRescale_taxCO2_afterPeakBudgYr (iteration) |
Multiplicative factor for rescaling the CO2 price in the year after peakBudgYr - only needed if flip-flopping of peakBudgYr occurs | ||
| o45_peakBudgYr_Itr (iteration) |
Year in which the CO2 budget is supposed to peak. Is changed in iterative_target_adjust = 9 | ||
| o45_pkBudgYr_flipflop (iteration) |
Counter that tracks if flipfloping of cm_peakBudgYr occured in the last iterations | ||
| o45_reached_until2150pricepath (iteration) |
Counter that tracks if the inner loop of increasing the CO2 price AFTER peakBudgYr goes beyond the initial trajectory | ||
| o45_taxCO2eq_anchor_iterDiff_Itr (iteration) |
track pm_taxCO2eq_anchor_iterationdiff in 2100 over iterations | ||
| o45_totCO2emi_allYrs (ttot, iteration) |
Global CO2 emissions over time and iterations. Needed to check the procedure to find the peakBudgYr | ||
| o45_totCO2emi_peakBudgYr (iteration) |
Total CO2 emissions in the peakBudgYr | ||
| p45_BAU_reg_emi_wo_LU_wo_bunkers (ttot, all_regi) |
regional GHG emissions (without LU and without bunkers) in BAU scenario | \(MtCO2eq/yr\) | x |
| p45_CO2PriceLimitNDC (ttot, all_regi) |
Upper limit of CO2 price in NDC realization, read from switch cm_NDC_CO2PriceLimit | \(\$/tCO2\) | x |
| p45_CO2eqwoLU_actual (ttot, all_regi) |
actual level of regional GHG emissions after previous iteration | \(MtCO2eq/yr\) | x |
| p45_CO2eqwoLU_actual_iter (iteration, ttot, all_regi) |
actual level of regional GHG emissions p45_CO2eqwoLU_actual tracked over iterations | \(MtCO2eq/yr\) | x |
| p45_CO2eqwoLU_goal (ttot, all_regi) |
regional NDC target level of GHG emissions | \(MtCO2eq/yr\) | x |
| p45_CarbonPriceSlope (all_regi) |
when carbon price slope is regionally adjusted: increase of carbon price per year | ||
| p45_CarbonPriceSlope_iter (iteration, all_regi) |
when carbon price slope is regionally adjusted: increase of carbon price per year for each iteration | ||
| p45_EmiTargetAbs (ttot, all_regi) |
Absolute NDC emissions targets, emissions from countries without targets are not included | \(Mt CO2eq/yr\) | x |
| p45_FunnelUpper (iteration) |
upper bound on regional carbon price funnel | ||
| p45_TaxBudgetSlopeBest (all_regi) |
last available regional carbon price change/regional carbon budget change that is negative | ||
| p45_TaxBudgetSlopeBest_iter (iteration, all_regi) |
last available regional carbon price change/regional carbon budget change that is negative for each iteration | ||
| p45_TaxBudgetSlopeCurrent (all_regi) |
regional carbon price change/regional carbon budget change - from the last 2 iterations | ||
| p45_TaxBudgetSlopeCurrent_iter (iteration, all_regi) |
regional carbon price change/regional carbon budget change - from the last 2 iterations, for each iteration. 0 when no carbon price change | ||
| p45_actualbudgetco2eqRegi_2100 (all_regi) |
regional - actual level of 2020-2100 cumulated emissions, including all CO2 for last iteration | ||
| p45_actualbudgetco2eqRegi_2100_iter (iteration, all_regi) |
regional - actual level of 2020-2100 cumulated emissions, including all CO2 for last iteration | ||
| p45_adjustExponent | exponent in tax adjustment process | \(1\) | x |
| p45_bestNDCcoverage (all_regi) |
highest coverage of NDC targets within region | \(0..1\) | x |
| p45_budgetCO2from2020Regi (all_regi) |
regional carbon budget (Gt CO2) | ||
| p45_budgetCO2from2020RegiShare (all_regi) |
share of region in global carbon budget | ||
| p45_budgetDeviation_iter (iteration, all_regi) |
deviations from regional targets across iterations | ||
| p45_delay (all_regi) |
delay of NDC targets, defined per region | \(years\) | x |
| p45_distanceToOptyear (ttot, all_regi) |
distance to p45_useSingleYearCloseTo to favor years in case of multiple equally good targets | \(year\) | x |
| p45_factorRescaleCO2Tax (ttot, all_regi) |
multiplicative factor to rescale CO2 taxes to achieve the climate targets | \(1\) | x |
| p45_factorRescaleCO2TaxLtd (ttot, all_regi) |
multiplicative factor to rescale CO2 taxes to achieve the climate targets limited to not-so-fast adaption | \(1\) | x |
| p45_factorRescaleCO2TaxLtd_iter (iteration, ttot, all_regi) |
Track the changes of p45_factorRescaleCO2TaxLimited over the iterations | \(1\) | x |
| p45_factorRescaleCO2Tax_iter (iteration, ttot, all_regi) |
Track the changes of p45_factorRescaleCO2Tax over the iterations | \(1\) | x |
| p45_factorRescale_taxCO2 (iteration) |
Multiplicative factor for rescaling the CO2 price to reach the target | ||
| p45_factorRescale_taxCO2Regi (iteration, all_regi) |
regional - Multiplicative factor for rescaling the CO2 price to reach the target | ||
| p45_factorRescale_taxCO2Regi_Final (iteration, all_regi) |
regional - Multiplicative factor for rescaling the CO2 price to reach the target - Funnelled, may include up/downward iteration differentiation | ||
| p45_factorRescale_taxCO2Regi_Funneled (iteration, all_regi) |
regional - Multiplicative factor for rescaling the CO2 price to reach the target - Funnelled (static) | ||
| p45_factorRescale_taxCO2_Funneled (iteration) |
Multiplicative factor for rescaling the CO2 price to reach the target - limited by an iteration-dependent funnel | ||
| p45_firstNDCyear (all_regi) |
last year with NDC coverage within region | \(year\) | x |
| p45_gdppcap_PPP (ttot, all_regi) |
GDP per capita (1e3 $ PPP 2017) | ||
| p45_lastNDCyear (all_regi) |
last year with NDC coverage within region | \(year\) | x |
| p45_minDistanceToOptyear (all_regi) |
minimal distance to p45_useSingleYearCloseTo per region | \(year\) | x |
| p45_minRatioOfCoverageToMax | only targets whose coverage is this times p45_bestNDCcoverage are considered. Use 1 for only best | \(0..1\) | x |
| p45_peakBudgYr_check (ttot) |
peak budget year calculated based on maximum of cumulative CO2 emissions, used to check adjustment algorithm | \(year\) | |
| p45_peakBudgYr_regi (all_regi) |
prescribed peak carbon price year for each region | ||
| p45_regiDiff_convergence_data (ext_regi, ttot) |
input data for regional exponent and convergence year provided by switch cm_taxCO2_regiDiff_convergence | ||
| p45_regiDiff_endYr (all_regi) |
end year of regional differentiation, i.e. regional carbon price equal to global anchor trajectory thereafter | ||
| p45_regiDiff_exponent (all_regi) |
regional convergence exponent for ratio between global anchor and regional differentiated CO2 price trajectories | ||
| p45_regiDiff_initialRatio (all_regi) |
inital ratio between global anchor and regional differentiated CO2 price trajectories | ||
| p45_regiDiff_ratio (ttot, all_regi) |
ratio between global anchor and regional differentiated CO2 price trajectories | ||
| p45_regiDiff_startYr (all_regi) |
start year of convergence from regionally differentiated carbon prices to global anchor trajectory | ||
| p45_regiDiff_startyearValue (all_regi) |
manually chosen regional carbon price in cm_startyear converted from \(/t CO2eq to T\)/GtC | ||
| p45_regiDiff_startyearValue_data (ext_regi) |
input data for regional carbon price in start year provided by switch cm_taxCO2_regiDiff_startyearValue | ||
| p45_shareTarget (ttot, all_regi) |
Estimated target year GHG emissions share of countries with quantifyable emissions under NDC in particular region, time dimension specifies alternative future target years | \(0..1\) | x |
| p45_tau_co2_tax (ttot, all_regi) |
Exogenous CO2 tax level | \(T\$/GtC\) | |
| p45_taxCO2eqFirstNDCyear (all_regi) |
CO2eq tax in p45_firstNDCyear | \(T\$/GtC\) | x |
| p45_taxCO2eq_anchor (ttot) |
global anchor trajectory for regional CO2 price trajectories in T$/GtC = $/kgC | ||
| p45_taxCO2eq_anchorRegi (ttot, all_regi) |
regional anchor trajectory for regional CO2 price trajectories in T$/GtC = $/kgC | ||
| p45_taxCO2eq_anchorRegi_iter (ttot, all_regi, iteration) |
regional anchor trajectory for regional CO2 price trajectories in T$/GtC = $/kgC across iterations | ||
| p45_taxCO2eq_anchorRegi_until2150 (ttot, all_regi) |
save the p45_taxCO2eq_anchorRegi derived in datainput.gms | ||
| p45_taxCO2eq_anchor_iter (iteration, ttot) |
save p45_taxCO2eq_anchor in each iteration (before entering functionalForm/postsolve.gms) for debugging | ||
| p45_taxCO2eq_anchor_iterationdiff_tmp (ttot) |
help parameter for iterative adjustment of taxes | ||
| p45_taxCO2eq_anchor_until2150 (ttot) |
global anchor trajectory continued until 2150 - as if there was no change in trajectory after cm_peakBudgYr. Needed if cm_peakBudgYr was shifted right | ||
| p45_taxCO2eq_bau (ttot, all_regi) |
level of CO2 taxes in business as usual run | \(T\$/GtC\) | x |
| p45_taxCO2eq_expoLinearIncrease (all_regi) |
Linear annual increase in carbon price [T$/GtC/yr] right before cm_expoLinear_yearStart | ||
| p45_taxCO2eq_path_gdx_input (ttot, all_regi) |
CO2 tax trajectories from path_gdx | ||
| p45_taxCO2eq_path_gdx_ref (ttot, all_regi) |
CO2 tax trajectories from path_gdx_ref | ||
| p45_taxCO2eq_regiDiff (ttot, all_regi) |
regional differentiated CO2 price trajectories in T\(/GtC =\)/kgC, used as intermediate step in deriving pm_taxCO2eq from p45_taxCO2eq_anchor | ||
| p45_taxCO2refYear (all_regi) |
CO2 tax in reference year for derivation of the carbon price trajectory in the first iteration, can be in last fixed time step, or peak carbon price year depending on the shape | ||
| p45_taxTempLimit (tall) |
tax for Temperature limit | \(1000 \$/tC\) | |
| p45_taxTempLimitLastItr (tall) |
tax for Temperature limit, last iteration | \(1000 \$/tC\) | |
| p45_temp_anchor (ttot, all_regi) |
regionally shifted anchor for all iterations (helper, may be removed) | ||
| 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) | \(year\) | x |
| s45_YearBeforeStartYear | The REMIND year before cm_startyear | ||
| s45_actualbudgetco2 | actual level of 2020-2100 cumulated emissions, including all CO2 for last iteration | ||
| s45_actualbudgetco2_last | actual level of 2020-2100 cumulated emissions for previous iteration | ||
| s45_eta | inverse steepness of damage function at temperature limit (logistic function). Raise if no convergence | ||
| s45_factorRescale_taxCO2_exponent_before10 | exponent determining sensitivity before iteration 10 | ||
| s45_factorRescale_taxCO2_exponent_from10 | exponent determining sensitivity of CO2 price adjustment to CO2 budget deviation from iteration 10 | ||
| s45_interpolation_endYr | end year of interpolation from p45_taxCO2eq_path_gdx_ref to p45_taxCO2eq_regiDiff | ||
| s45_interpolation_startYr | start year of interpolation from p45_taxCO2eq_path_gdx_ref to p45_taxCO2eq_regiDiff | ||
| s45_itrAdjExp | exponent for iterative adjustment of taxes. Lower if no convergence. | ||
| s45_peakBudgYr_check | peak budget year calculated based on maximum of cumulative CO2 emissions, used to check adjustment algorithm | \(year\) | |
| s45_peakBudget | peak CO2 budget as calculated as the maximum of cumulative CO2 emissions, used to check adjustment algorithm | \(GtC/yr\) | |
| s45_regiDiff_gdpThreshold | reference value for GDP per capita (1e3 $ PPP 2017) above which carbon price from global anchor trajectory is fully applied | ||
| s45_regiHelperYear | helper scalar for regional peaking carbon price year implementation | ||
| s45_taxCO2_historical | historical level of CO2 tax converted from \(/t CO2eq to T\)/GtC | ||
| s45_taxCO2_historicalYr | year of s45_taxCO2_historical | ||
| s45_taxCO2_peakBudgYr | CO2 tax provided by cm_taxCO2_peakBudgYr converted from \(/t CO2eq to T\)/GtC | ||
| s45_taxCO2_startyear | CO2 tax provided by cm_taxCO2_startyear converted from \(/t CO2eq to T\)/GtC | ||
| s45_taxTempLimitConvMaxDeviation | limit for temperature deviation |
| B | C | D | E | F | G | H | I | J | K | |
|---|---|---|---|---|---|---|---|---|---|---|
| f45_EmiTargetAbs (tall, all_regi, NDC_version, all_GDPpopScen) |
||||||||||
| f45_shareTarget (tall, all_regi, NDC_version, all_GDPpopScen) |
||||||||||
| o45_change_totCO2emi_peakBudgYr (iteration) |
x | |||||||||
| o45_delay_increase_peakBudgYear (iteration) |
x | |||||||||
| o45_diff_to_Budg (iteration) |
x | |||||||||
| o45_factorRescale_taxCO2_afterPeakBudgYr (iteration) |
x | |||||||||
| o45_peakBudgYr_Itr (iteration) |
x | |||||||||
| o45_pkBudgYr_flipflop (iteration) |
x | |||||||||
| o45_reached_until2150pricepath (iteration) |
x | |||||||||
| o45_taxCO2eq_anchor_iterDiff_Itr (iteration) |
x | |||||||||
| o45_totCO2emi_allYrs (ttot, iteration) |
x | |||||||||
| o45_totCO2emi_peakBudgYr (iteration) |
x | |||||||||
| p45_BAU_reg_emi_wo_LU_wo_bunkers (ttot, all_regi) |
||||||||||
| p45_CO2PriceLimitNDC (ttot, all_regi) |
||||||||||
| p45_CO2eqwoLU_actual (ttot, all_regi) |
||||||||||
| p45_CO2eqwoLU_actual_iter (iteration, ttot, all_regi) |
||||||||||
| p45_CO2eqwoLU_goal (ttot, all_regi) |
||||||||||
| p45_CarbonPriceSlope (all_regi) |
x | |||||||||
| p45_CarbonPriceSlope_iter (iteration, all_regi) |
x | |||||||||
| p45_EmiTargetAbs (ttot, all_regi) |
||||||||||
| p45_FunnelUpper (iteration) |
x | |||||||||
| p45_TaxBudgetSlopeBest (all_regi) |
x | |||||||||
| p45_TaxBudgetSlopeBest_iter (iteration, all_regi) |
x | |||||||||
| p45_TaxBudgetSlopeCurrent (all_regi) |
x | |||||||||
| p45_TaxBudgetSlopeCurrent_iter (iteration, all_regi) |
x | |||||||||
| p45_actualbudgetco2eqRegi_2100 (all_regi) |
x | |||||||||
| p45_actualbudgetco2eqRegi_2100_iter (iteration, all_regi) |
x | |||||||||
| p45_adjustExponent | ||||||||||
| p45_bestNDCcoverage (all_regi) |
||||||||||
| p45_budgetCO2from2020Regi (all_regi) |
x | |||||||||
| p45_budgetCO2from2020RegiShare (all_regi) |
x | |||||||||
| p45_budgetDeviation_iter (iteration, all_regi) |
x | |||||||||
| p45_delay (all_regi) |
||||||||||
| p45_distanceToOptyear (ttot, all_regi) |
||||||||||
| p45_factorRescaleCO2Tax (ttot, all_regi) |
||||||||||
| p45_factorRescaleCO2TaxLtd (ttot, all_regi) |
||||||||||
| p45_factorRescaleCO2TaxLtd_iter (iteration, ttot, all_regi) |
||||||||||
| p45_factorRescaleCO2Tax_iter (iteration, ttot, all_regi) |
||||||||||
| p45_factorRescale_taxCO2 (iteration) |
x | |||||||||
| p45_factorRescale_taxCO2Regi (iteration, all_regi) |
x | |||||||||
| p45_factorRescale_taxCO2Regi_Final (iteration, all_regi) |
x | |||||||||
| p45_factorRescale_taxCO2Regi_Funneled (iteration, all_regi) |
x | |||||||||
| p45_factorRescale_taxCO2_Funneled (iteration) |
x | |||||||||
| p45_firstNDCyear (all_regi) |
||||||||||
| p45_gdppcap_PPP (ttot, all_regi) |
x | |||||||||
| p45_lastNDCyear (all_regi) |
||||||||||
| p45_minDistanceToOptyear (all_regi) |
||||||||||
| p45_minRatioOfCoverageToMax | ||||||||||
| p45_peakBudgYr_check (ttot) |
x | |||||||||
| p45_peakBudgYr_regi (all_regi) |
x | |||||||||
| p45_regiDiff_convergence_data (ext_regi, ttot) |
x | |||||||||
| p45_regiDiff_endYr (all_regi) |
x | x | ||||||||
| p45_regiDiff_exponent (all_regi) |
x | x | ||||||||
| p45_regiDiff_initialRatio (all_regi) |
x | x | ||||||||
| p45_regiDiff_ratio (ttot, all_regi) |
x | x | ||||||||
| p45_regiDiff_startYr (all_regi) |
x | x | ||||||||
| p45_regiDiff_startyearValue (all_regi) |
x | |||||||||
| p45_regiDiff_startyearValue_data (ext_regi) |
x | |||||||||
| p45_shareTarget (ttot, all_regi) |
||||||||||
| p45_tau_co2_tax (ttot, all_regi) |
x | x | ||||||||
| p45_taxCO2eqFirstNDCyear (all_regi) |
||||||||||
| p45_taxCO2eq_anchor (ttot) |
x | x | ||||||||
| p45_taxCO2eq_anchorRegi (ttot, all_regi) |
x | |||||||||
| p45_taxCO2eq_anchorRegi_iter (ttot, all_regi, iteration) |
x | |||||||||
| p45_taxCO2eq_anchorRegi_until2150 (ttot, all_regi) |
x | |||||||||
| p45_taxCO2eq_anchor_iter (iteration, ttot) |
x | |||||||||
| p45_taxCO2eq_anchor_iterationdiff_tmp (ttot) |
x | |||||||||
| p45_taxCO2eq_anchor_until2150 (ttot) |
x | x | ||||||||
| p45_taxCO2eq_bau (ttot, all_regi) |
||||||||||
| p45_taxCO2eq_expoLinearIncrease (all_regi) |
x | |||||||||
| p45_taxCO2eq_path_gdx_input (ttot, all_regi) |
x | |||||||||
| p45_taxCO2eq_path_gdx_ref (ttot, all_regi) |
x | x | ||||||||
| p45_taxCO2eq_regiDiff (ttot, all_regi) |
x | x | ||||||||
| p45_taxCO2refYear (all_regi) |
x | |||||||||
| p45_taxTempLimit (tall) |
x | |||||||||
| p45_taxTempLimitLastItr (tall) |
x | |||||||||
| p45_temp_anchor (ttot, all_regi) |
x | |||||||||
| p45_useSingleYearCloseTo | ||||||||||
| s45_YearBeforeStartYear | x | |||||||||
| s45_actualbudgetco2 | x | |||||||||
| s45_actualbudgetco2_last | x | |||||||||
| s45_eta | x | |||||||||
| s45_factorRescale_taxCO2_exponent_before10 | x | |||||||||
| s45_factorRescale_taxCO2_exponent_from10 | x | |||||||||
| s45_interpolation_endYr | x | |||||||||
| s45_interpolation_startYr | x | |||||||||
| s45_itrAdjExp | x | |||||||||
| s45_peakBudgYr_check | x | |||||||||
| s45_peakBudget | x | |||||||||
| s45_regiDiff_gdpThreshold | x | |||||||||
| s45_regiHelperYear | x | |||||||||
| s45_taxCO2_historical | x | x | ||||||||
| s45_taxCO2_historicalYr | x | x | ||||||||
| s45_taxCO2_peakBudgYr | x | x | ||||||||
| s45_taxCO2_startyear | x | x | x | |||||||
| s45_taxTempLimitConvMaxDeviation | x |
| description | |
|---|---|
| NDC_version | NDC data version for NDC realizations of 40_techpol and 45_carbonprice |
| all_GDPpopScen | all possible GDP scenarios |
| all_emiMkt | emission markets |
| all_enty | all types of quantities |
| all_regi | all regions |
| all_te | all energy technologies, including from modules |
| emiMacMagpie(all_enty) | types of climate-relevant non-energy emissions with mac curve where baseline emissions come from MAgPIE only |
| 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 |
| ext_regi | extended regions list (includes subsets of H12 regions) |
| iteration | iterator for main (Negishi/Nash) iterations |
| 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) |
| regi_groupExt(ext_regi, all_regi) | extended region group mapping. Mapping model regions that belong to region group, including one to one region mapping |
| se2fe(all_enty, all_enty, all_te) | map secondary energy to end-use energy using a technology |
| t(ttot) | optimisation time, years between cm_startyear and 2150 with 5 to 20 years time steps |
| t_NDC_targetYear(ttot) | Years for which NDC emissions targets can be applied [0 or 1] |
| tall | time index, each year from 1900 to 3000 |
| te(all_te) | energy technologies |
| ttot(tall) | time index with spin-up, years between 1900 and 2150 with 5 to 20 years time steps |
Christoph Bertram, Laurin Koehler-Schindler, Gunnar Luderer, Rahel Mandaroux, Robert Pietzcker, Oliver Richters
01_macro, 02_welfare, 15_climate, 51_internalizeDamages, 80_optimization, core