REMIND - REgional Model of INvestments and Development

3.7.0

created with goxygen 1.5.0

Tax Module (21_tax)

Description

The tax module includes different types of taxes or ignores all taxes.

Interfaces

Interface plot missing!

Input

module inputs (A: off | B: on)
  Description Unit A B
cm_NetNegEmi_calculation switch to choose if net-negative emissions are calculated within an iteration or across iterations x
cm_bioenergy_EF_for_tax bioenergy emission factor that is used to derive a bioenergy tax \(kgCO2/GJ\) x
cm_bioenergy_SustTax level of the bioenergy sustainability tax in fraction of bioenergy price x
cm_emiscen policy scenario choice x
cm_fetaxscen choice of final energy tax path and subsidy path, values other than zero enable final energy tax x
cm_frac_CCS tax on carbon transport & storage (teccsinje) to reflect risk of leakage, formulated as fraction of O&M costs x
cm_frac_NetNegEmi tax on net negative emissions to reflect risk of overshooting, formulated as fraction of carbon price x
cm_gdximport_target whether or not the starting value for iteratively adjusted CO2 tax trajectories for all regions (scenarios defined by cm_iterative_target_adj) should be read in from the input.gdx x
cm_multigasscen scenario on GHG portfolio to be included in permit trading scheme x
cm_so2tax_scen level of SO2 tax x
cm_startyear first optimized modelling time step \(year\) x
pm_ccsinjecrate
(all_regi)
Regional CCS injection rate factor. [1/year]. x
pm_cf
(tall, all_regi, all_te)
read-in parameter for capacity factor (fraction of the year that a plant is running) \(share\) x
pm_cintraw
(all_enty)
CO2 emissions factor of fossil fuels \(GtC/TWa\) x
pm_data
(all_regi, char, all_te)
Large array for most technical parameters of technologies, more detail on the individual technical parameters and their units can be found in the declaration of the set ‘char’ x
pm_dataccs
(all_regi, char, all_te)
maximum CO2 storage capacity using CCS technology. \(GtC\) x
pm_fuExtrForeign
(ttot, all_regi, all_enty, rlf)
foreign fuel extraction x
pm_gdp
(tall, all_regi)
GDP MER data \(trn US\$ 2005\) x
pm_inco0_t
(ttot, all_regi, all_te)
investment cost parameter including exogenuous time-variance for non-learning technologies \(T\$/TW\) x
pm_pop
(tall, all_regi)
population data \(bn people\) x
pm_pvp
(ttot, all_enty)
Price on commodity markets, [T\(/TWa] for energy commodities except uranium, uranium (peur) in [T\)/Mt Uranium], emissions permits (perm) in \(T\$/GtC\) x
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_taxCO2eqSum
(ttot, all_regi)
Total CO2 price including general trajectory (pm_taxCO2eq), regional markup (pm_taxCO2eqRegi) and social cost of carbon (pm_taxCO2eqSCC) [T\(/GtC]. Multiply by 272 to convert to\)/tCO2. x
pm_taxemiMkt
(ttot, all_regi, all_emiMkt)
CO2 tax path per region and emissions market \(T\$/GtC\) x
pm_taxemiMkt_iteration
(iteration, ttot, all_regi, all_emiMkt)
CO2 tax path per region and emissions market calculated from previous iteration \(T\$/GtC\) x
pm_teAnnuity
(all_te)
Annuity factor of a technology \(unitless\) x
pm_ts
(tall)
(t_n+1 - t_n-1)/2 for a timestep t_n x
sm_D2005_2_D2017 Convert US$2005 to US$2017 x
sm_EJ_2_TWa convert from Exa Joule to Tera Watt annum x
sm_TWa_2_MWh convert Tera Watt annum to Mega Wh x
sm_eps small number: 1e-9 x
vm_Mport
(tall, all_regi, all_enty)
Import of traded commodity. x
vm_Xport
(tall, all_regi, all_enty)
Export of traded commodity. x
vm_cesIO
(tall, all_regi, all_in)
Production factor x
vm_changeProdStartyearCost
(ttot, all_regi, all_te)
costs for changing output with respect to the reference run for each technology \(T\$\) x
vm_co2CCS
(ttot, all_regi, all_enty, all_enty, all_te, rlf)
total CO2 injected into geological storage \(GtC/a\) x
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_co2eqMkt
(ttot, all_regi, all_emiMkt)
total greenhouse gas emissions per market 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_costInvTeAdj
(tall, all_regi, all_te)
annual investments into a technology due to adjustment costs \(T\$\) x
vm_costInvTeDir
(tall, all_regi, all_te)
annual direct investments into a technology \(T\$\) x
vm_costSubsidizeLearning
(ttot, all_regi)
regional cost of subsidy for learning technologies \(T\$\) x
vm_deltaCap
(tall, all_regi, all_te, rlf)
capacity additions [TW/yr] for energy conversion technologies, [GtC/yr^2] for CCS chain in ccs2te (pipelines/injection) 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_demSe
(ttot, all_regi, all_enty, all_enty, all_te)
secondary energy demand (including only demand as first input, not demand as second (coupled) input) \(TWa\) x
vm_emiAll
(ttot, all_regi, all_enty)
total emissions by species \(GtC, Mt CH4, Mt N, Mt SO2, Mt BC, Mt OC\) x
vm_emiCO2Sector
(ttot, all_regi, emi_sectors)
total CO2 emissions from individual sectors, so far only buildings and transport excl. bunkers \(GtC\) x
vm_emiCdrAll
(ttot, all_regi)
all CDR emissions, net negative emissions from land-use change, gross removals for all other options \(GtC/year\) x
vm_emiMac
(ttot, all_regi, all_enty)
total non-energy-related emission of each region. \(GtC, Mt CH4, Mt N\) x
vm_emiMacSector
(ttot, all_regi, all_enty)
total emissions subject to MACCs, emissions that are not energy-related \(GtC, Mt CH4, Mt N\) x
vm_emiTe
(ttot, all_regi, all_enty)
proxy of total energy-related emissions, based on vm_emiTeDetail and taking into account industry CCS, CCU and feedstocks note: not equivalent to Emi|CO2|Energy in reporting \(GtC, Mt CH4, Mt N, Mt SO2, Mt BC, Mt OC\) x
vm_flexAdj
(tall, all_regi, all_te)
flexibility mark-up cost or subsidy, used to emulate price changes of technologies which see lower-than-average or higher-than-average electricity prices due to more or less flexible operation[T$/TWa] x
vm_fuExtr
(ttot, all_regi, all_enty, rlf)
production (extraction) of primary energy fossil fuels, biomass and uranium (before trade) \(TWa, Uranium: Mt Ur\) x
vm_pebiolc_price
(ttot, all_regi)
bioenergy price based on MAgPIE supply curves \(T\$/TWa\) x
vm_prodPe
(ttot, all_regi, all_enty)
primary energy production (after trade but not including PE production for MAC curves, e.g. capturing methane leakage) \(TWa, Uranium: Mt Ur\) x
vm_prodSe
(tall, all_regi, all_enty, all_enty, all_te)
secondary energy production (including only production as first product, not production as second (coupled) product) \(TWa\) x
vm_shDemSeel
(ttot, all_regi, all_te)
Share of electricity demand per technology in total electricity demand x

Output

module outputs
  Description Unit
pm_tau_ces_tax
(ttot, all_regi, all_in)
ces production tax to implement CES mark-up cost in a budget-neutral way
pm_tau_pe_tax
(ttot, all_regi, all_enty)
tax path for primary energy
pm_taxEI_PE
(ttot, all_regi, all_enty)
tax path for environmental impacts tax on primary energy production
pm_taxEI_SE
(ttot, all_regi, all_te)
tax path for environmental impacts tax on secondary energy production
pm_taxEI_cap
(ttot, all_regi, all_te)
tax path for environmental impacts tax on capacity additions
pm_taxrevCO2LUC0
(ttot, all_regi)
reference level value of co2luc emission tax
pm_taxrevCO2Sector0
(ttot, all_regi, emi_sectors)
reference level value of CO2 sector markup tax
pm_taxrevGHG0
(ttot, all_regi)
reference level value of GHG emission tax
pm_taxrevNetNegEmi0
(ttot, all_regi)
reference level value of net-negative emissions tax
vm_emiAllco2neg
(ttot, all_regi)
net-negative CO2 emissions (as positive variable)
vm_taxrev
(ttot, all_regi)
difference between tax volume in current and previous iteration \(T\$\)
vm_taxrevimplicitPePriceTax
(ttot, all_regi, all_enty)
tax revenue of implict tax forprimary energy price target \(T\$\)
vm_taxrevimplicitPriceTax
(ttot, all_regi, entySe, all_enty, sector)
tax revenue of implict tax for final energy price target \(T\$\)
vm_taxrevimplicitQttyTargetTax
(ttot, all_regi)
tax revenue of implict tax for quantity target bound \(T\$\)

Realizations

(A) off

Limitations There are no known limitations.

(B) on

Calculation of the value of the overall tax revenue vm_taxrev, that is included in the qm_budget equation. The overall tax revenue is the sum of two main components, each consisting of various subcomponents: 1. Net revenue from real taxes and subsidies, v21_taxrevReal, that model an actual monetary transaction (e.g. FE taxes and carbon taxes) 2. Net revenue from pseudo taxes and subsidies, v21_taxrevPseudo, that do not model an actual monetary transaction (e.g. implicit taxes to achieve quantity targets) Note that the distinction between 1. and 2. is not always clear and can depend on region, sector and scenario (e.g. carbon taxes are implemented in some regions and sectors as real taxes, but in others serve as a proxy for other climate policy measures) Each subcomponent has the following similar structure: The tax revenue is the difference between the product of an activity level (a variable) and a tax rate (a parameter), and this product in the last iteration (which is loaded as a parameter). After converging Negishi/Nash iterations, the value approaches 0, as the activity levels between the current and last iteration don’t change anymore. This means, taxes are budget-neutral: the revenue is always recycled back and still available for the economy. Nevertheless, the marginal of the (variable of) taxed activities is impacted by the tax which leads to the adjustment effect. Further explanations on this iterative taxation mechanism can be found in the following tutorial: 16_taxation_mechanism_toy_model.md

\[\begin{multline*} vm\_taxrev(t,regi) = v21\_taxrevReal(t,regi) + v21\_taxrevPseudo(t,regi) \end{multline*}\]

  1. Net revenue from real taxes and subsidies, v21_taxrevReal, that model an actual monetary transaction (e.g. FE taxes and carbon taxes)

\[\begin{multline*} v21\_taxrevReal(t,regi) = v21\_taxrevGHG(t,regi) + \sum_{emi\_sectors} v21\_taxrevCO2Sector(t,regi,emi\_sectors) + v21\_taxrevCO2luc(t,regi) + \sum_{emiMkt} v21\_taxemiMkt(t,regi,emiMkt) + \sum_{entyPe} v21\_taxrevPE(t,regi,entyPe) + v21\_taxrevResEx(t,regi) + v21\_taxrevBioEF(t,regi) + v21\_taxrevSE(t,regi) + v21\_taxrevFE(t,regi) + \sum_{tradePe} v21\_taxrevImport(t,regi,tradePe) \end{multline*}\]

  1. Net revenue from pseudo taxes and subsidies, v21_taxrevPseudo, that do not model an actual monetary transaction (e.g. implicit taxes to achieve quantity targets)

q21_taxrevPseudo(t,regi)$(t.val ge max(2010,cm_startyear))..
  v21_taxrevPseudo(t,regi)
  =e=
    v21_taxrevPE2SE(t,regi)
  + v21_taxrevSO2(t,regi)
  + v21_taxrevFlex(t,regi)
  + v21_taxrevCCS(t,regi) 
  + v21_taxrevNetNegEmi(t,regi)
  + v21_taxrevBioSust(t,regi)
  + v21_taxrevEI(t,regi)
  + v21_taxrevChProdStartYear(t,regi)
  - vm_costSubsidizeLearning(t,regi)
  + sum(in, v21_taxrevCES(t,regi,in))
$ifthen.cm_implicitQttyTarget not "%cm_implicitQttyTarget%" == "off"
  + vm_taxrevimplicitQttyTargetTax(t,regi)
$endif.cm_implicitQttyTarget 
$ifthen.cm_implicitPriceTarget not "%cm_implicitPriceTarget%" == "off"
  + sum((entySe,entyFe,sector)$(entyFe2Sector(entyFe,sector)),vm_taxrevimplicitPriceTax(t,regi,entySe,entyFe,sector))
$endIf.cm_implicitPriceTarget
$ifthen.cm_implicitPePriceTarget not "%cm_implicitPePriceTarget%" == "off"
  + sum(entyPe,vm_taxrevimplicitPePriceTax(t,regi,entyPe))
$endIf.cm_implicitPePriceTarget
;

Calculation of greenhouse gas taxes: tax rate (combination of 4 components) times ghg emissions Documentation of overall tax approach is above at q21_taxrev.

\[\begin{multline*} v21\_taxrevGHG(t,regi) = pm\_taxCO2eqSum(t,regi) \cdot \left(vm\_co2eq(t,regi) - vm\_emiMacSector(t,regi,"co2luc")\$\left(cm\_multigasscen ne 3\right)\right) - pm\_taxrevGHG0(t,regi) \end{multline*}\]

Calculation of sectoral CO2 taxes as markup to GHG taxes (combination of 4 components) Sectoral CO2 emissions are multiplied by a predefined factor

\[\begin{multline*} v21\_taxrevCO2Sector(t,regi,emi\_sectors) = p21\_CO2TaxSectorMarkup(t,regi,emi\_sectors) \cdot pm\_taxCO2eqSum(t,regi) \cdot vm\_emiCO2Sector(t,regi,emi\_sectors) - pm\_taxrevCO2Sector0(t,regi,emi\_sectors) \end{multline*}\]

Calculation of CO2 taxes on land use co2 emissions: tax rate (combination of 4 components) times land use co2 emissions Documentation of overall tax approach is above at q21_taxrev.

\[\begin{multline*} v21\_taxrevCO2luc(t,regi) = pm\_taxCO2eqSum(t,regi) \cdot vm\_emiMacSector(t,regi,"co2luc")\$\left(cm\_multigasscen ne 3\right) - pm\_taxrevCO2LUC0(t,regi) \end{multline*}\]

Calculation of specific emission market taxes calculation is done via additional budget emission constraints defined in regipol module

\[\begin{multline*} v21\_taxemiMkt(t,regi,emiMkt) = pm\_taxemiMkt(t,regi,emiMkt) \cdot vm\_co2eqMkt(t,regi,emiMkt) - p21\_taxemiMkt0(t,regi,emiMkt) \end{multline*}\]

Calculation of PE tax: tax rate times primary energy Documentation of overall tax approach is above at q21_taxrev.

\[\begin{multline*} v21\_taxrevPE(t,regi,entyPe) = pm\_tau\_pe\_tax(t,regi,entyPe) \cdot vm\_prodPe(t,regi,entyPe) - p21\_taxrevPE0(t,regi,entyPe) \end{multline*}\]

Calculation of resource extraction subsidies: subsidy rate times fuel extraction Documentation of overall tax approach is above at q21_taxrev.

\[\begin{multline*} v21\_taxrevResEx(t,regi) = \sum_{pe2rlf\left(peEx(enty),rlf\right)}\left( p21\_tau\_fuEx\_sub(t,regi,enty) \cdot vm\_fuExtr(t,regi,enty,rlf)\right) - p21\_taxrevResEx0(t,regi) \end{multline*}\]

Calculation of Environmental impact tax: Sum of three components (PE, SE, deltaCap), each calculated as tax rate times production volume/capacity added.

\[\begin{multline*} v21\_taxrevEI(t,regi) = SUM\left(entyPe, pm\_taxEI\_PE(t,regi,entyPe) \cdot vm\_prodPe(t,regi,entyPe) \right) + SUM\left(pe2se(enty,enty2,te), pm\_taxEI\_SE(t,regi,te) \cdot vm\_prodSe(t,regi,enty,enty2,te) \right) + SUM\left(se2se(enty,enty2,te), pm\_taxEI\_SE(t,regi,te) \cdot vm\_prodSe(t,regi,enty,enty2,te) \right) + SUM\left(te2rlf(te,rlf), pm\_taxEI\_cap(t,regi,te) \cdot vm\_deltaCap(t,regi,te,rlf) \right) - p21\_taxrevEI0(t,regi) \end{multline*}\]

Calculation of emission-factor-based tax on bioenergy: The (potentially) region-specific emission-factor-based tax, which is directly linked to the carbon price and does not directly depend on the bioenergy production level. The tax level in monetary terms per unit of bioenergy is derived by multiplying the emission factor with the CO2 price. This tax is applied to biomass consumption (i.e. after trade, applied within the region consuming the bioenergy). By default this emission-factor-based bioenergy tax is deactivated, since in coupled REMIND-MAgPIE policy runs we usually assume that emissions associated with bioenergy production are regulated (i.e. penalized) within the land-use sector with the carbon price on terrestrial carbon emissions. In the absence of direct emissions regulation within the land-use sector, however, this undifferentiated emission-factor-based energy tax can be used as a substitute for missing climate policies in the land-use sector in order to close the regulation gap. Please note that the associated emissions (bioenergy production * emission factor) do NOT enter the emissions balance equations, since land-use emissions are accounted for in MAgPIE (i.e. the emission factor is only used to inform the tax level). Units: p21_bio_EF(t,regi) [GtC per TWa] pm_taxCO2eq(t,regi) [T\(US per GtC] -> p21_bio_EF(t,regi) * pm_taxCO2eq(t,regi) [T\)US per TWa] Documentation of overall tax approach is above at q21_taxrev.

\[\begin{multline*} v21\_taxrevBioEF(t,regi) = p21\_bio\_EF(t,regi) \cdot pm\_taxCO2eq(t,regi) \cdot \left(vm\_fuExtr(t,regi,"pebiolc","1") - \left(vm\_Xport(t,regi,"pebiolc")-vm\_Mport(t,regi,"pebiolc")\right)\right) - p21\_taxrevBioEF0(t,regi) \end{multline*}\]

Calculation of SE tax: tax rate times secondary energy times secondary energy demand Typically, energy taxes are accounted on FE level. However, this tax is used to account for taxes and grid fees for the electricity input to electrolysis, which is an SE2SE technology.

\[\begin{multline*} v21\_taxrevSE(t,regi) = \sum_{se2se(enty,enty2,te)\$teSeTax(te)}\left( v21\_tau\_SE\_tax(t,regi,te) \cdot vm\_demSe(t,regi,enty,enty2,te) \right) - p21\_taxrevSE0(t,regi) \end{multline*}\]

This calculates the SE tax rate for electricity going into electrolysis. It contains the final energy tax rate for electricity use in industry and grid fees that are assumed be equal to the investment cost of tdfels. We furthermore assume that these taxes and fees are small at low shares of electrolysis in total electricity demand as electrolysis has power system benefits at low shares. The tax rate increases with increasing share of electrolysis following a logistic curve. It starts at close to zero tax rate for a share o 0%, reaches half of the full tax rate at 10% share and is within 1% of the full tax rate above a 25% share of electrolysis electricity demand within total electricity demand. The parameters to define this functional relationsship are set to in the preloop file.

\[\begin{multline*} v21\_tau\_SE\_tax(t,regi,te) = \frac{ p21\_tau\_SE\_tax(t,regi,te) }{ \left( 1 + \left(exp\left(-p21\_tau\_SE\_tax\_rampup(t,regi,te,"a") \cdot \left(vm\_shDemSeel(t,regi,te) \cdot 100 - p21\_tau\_SE\_tax\_rampup(t,regi,te,"b")\right) \right) \right) \right) } \end{multline*}\]

Calculation of final Energy taxes: effective tax rate (tax - subsidy) times FE use in the specific sector Documentation of overall tax approach is above at q21_taxrev.

\[\begin{multline*} v21\_taxrevFE(t,regi) = \sum_{\left(entyFe,sector\right)\$entyFe2Sector(entyFe,sector)}\left( \left( p21\_tau\_fe\_tax(t,regi,sector,entyFe) + p21\_tau\_fe\_sub(t,regi,sector,entyFe) \right) \cdot \sum_{emiMkt\$sector2emiMkt(sector,emiMkt)}\left( \sum_{se2fe(entySe,entyFe,te)}\left( vm\_demFeSector(t,regi,entySe,entyFe,sector,emiMkt) \right) \right) \right) - p21\_taxrevFE0(t,regi) \end{multline*}\]

Calculation of energy import tax: can be used to place taxes on PE energy imports e.g. bioenergy import taxes due to sustainability concerns by importers

\[\begin{multline*} v21\_taxrevImport(t,regi,tradePe) = \cdot ' import taxation: 1. "worldPricemarkup" = import tax level \cdot world market price \cdot tradePe import \cdot ' 2. "CO2taxmarkup" = import tax level \cdot national carbon price \cdot imported carbon by carrier \cdot ' 3. "avCO2taxmarkup" = import tax level \cdot max\left( national carbon price, average carbonprice\right) \cdot imported carbon by carrier \sum_{tax\_import\_type\_21}\left( \left( p21\_tau\_Import\left(t, regi, tradePe, tax\_import\_type\_21\right) \cdot \frac{ pm\_pvp(t,tradePe) }{ pm\_pvp(t,"good") } \cdot vm\_Mport(t,regi,tradePe) - p21\_taxrevImport0(t,regi,tradePe,tax\_import\_type\_21) \right)\$sameas\left(tax\_import\_type\_21, "worldPricemarkup"\right) + \left( p21\_tau\_Import\left(t, regi, tradePe, tax\_import\_type\_21\right) \cdot pm\_taxCO2eqSum(t,regi) \cdot pm\_cintraw(tradePe) \cdot vm\_Mport(t,regi,tradePe) - p21\_taxrevImport0(t,regi,tradePe,tax\_import\_type\_21) \right)\$sameas\left(tax\_import\_type\_21, "CO2taxmarkup"\right) + \left( p21\_tau\_Import\left(t, regi, tradePe, tax\_import\_type\_21\right) \cdot max\left(\frac{pm\_taxCO2eqSum(t,regi), \sum_{trade\_regi} pm\_taxCO2eqSum(t,trade\_regi)}{card(trade\_regi)}\right) \cdot pm\_cintraw(tradePe) \cdot vm\_Mport(t,regi,tradePe) - p21\_taxrevImport0(t,regi,tradePe,tax\_import\_type\_21) \right)\$sameas\left(tax\_import\_type\_21, "avCO2taxmarkup"\right)\right) \end{multline*}\]

Calculation of pe2se taxes (Primary to secondary energy technology taxes, specified by technology): effective tax rate (tax - subsidy) times SE output of technology Documentation of overall tax approach is above at q21_taxrev.

\[\begin{multline*} v21\_taxrevPE2SE(t,regi) = SUM\left(pe2se(enty,enty2,te), p21\_tau\_pe2se\_tax(t,regi,te) \cdot vm\_prodSe(t,regi,enty,enty2,te)\right) - p21\_taxrevPE2SE0(t,regi) \end{multline*}\]

Calculation of so2 tax: tax rate times emissions Documentation of overall tax approach is above at q21_taxrev.

\[\begin{multline*} v21\_taxrevSO2(t,regi) = p21\_tau\_so2\_tax(t,regi) \cdot vm\_emiTe(t,regi,"so2") - p21\_taxrevSO20(t,regi) \end{multline*}\]

Calculation of tax/subsidy on technologies with inflexible/flexible electricity input This is to emulate the effect of lower/higher electricity prices in high VRE systems on flexible/inflexible electricity demands.

\[\begin{multline*} v21\_taxrevFlex(t,regi) = \sum_{en2en(enty,enty2,te)\$teFlexTax(te)}\left( - vm\_flexAdj(t,regi,te) \cdot vm\_demSe(t,regi,enty,enty2,te) \right) - p21\_taxrevFlex0(t,regi) \end{multline*}\]

Calculation of CCS tax: tax rate (defined as fraction(or multiplier) of O&M costs) times amount of CO2 sequestration Documentation of overall tax approach is above at q21_taxrev.

\[\begin{multline*} v21\_taxrevCCS(t,regi) = cm\_frac\_CCS \cdot \sum_{teCCS2rlf(te,rlf)}\left( \sum_{ccs2te\left(ccsCo2(enty),enty2,te\right)}\left( pm\_data(regi,"omf",te) \cdot pm\_inco0\_t(t,regi,te) \cdot vm\_co2CCS(t,regi,enty,enty2,te,rlf) \cdot \frac{ vm\_co2CCS(t,regi,enty,enty2,te,rlf) }{ \left(pm\_dataccs(regi,"quan",te) \cdot pm\_ccsinjecrate(regi)\right) }\right)\right) - p21\_taxrevCCS0(t,regi) \end{multline*}\]

Calculation of net-negative emissions tax: tax rate (defined as fraction of carbon price) times net-negative emissions Documentation of overall tax approach is above at q21_taxrev. Calculation of net-negative emissions within iteration or across iterations depending on cm_NetNegEmi_calculation

\[\begin{multline*} v21\_taxrevNetNegEmi(t,regi) = s21\_frac\_NetNegEmi \cdot pm\_taxCO2eqSum(t,regi) \cdot \left( \left(1 - cm\_NetNegEmi\_calculation\right) \cdot vm\_emiAllco2neg(t,regi) + cm\_NetNegEmi\_calculation \cdot v21\_emiAllco2neg\_acrossIterations(t,regi) \right) - pm\_taxrevNetNegEmi0(t,regi) \end{multline*}\]

Auxiliary calculation of net-negative CO2 emissions in the current iteration: vm_emiAllco2neg and v21_emiAllco2neg_slack are defined as positive variables so as long as vm_emiAll is positive, v21_emiAllco2neg_slack adjusts so that sum is zero if vm_emiAll is negative, in order to minimize tax v21_emiAllco2neg_slack becomes zero

\[\begin{multline*} vm\_emiAllco2neg(t,regi) = -vm\_emiAll(t,regi,"co2") + v21\_emiAllco2neg\_slack(t,regi) \end{multline*}\]

Auxiliary calculation of net-negative CO2 emissions as difference of gross CDR in the current iteration and gross emissions in the previous iteration: v21_emiAllco2neg_acrossIterations and v21_emiAllco2neg_acrossIterations_slack are defined as positive variables so as long as vm_emiCdrAll is smaller than p21_referenceGrossEmissions, v21_emiAllco2neg_acrossIterations_slack adjusts so that sum is zero if vm_emiCdrAll is larger than p21_referenceGrossEmissions, in order to minimize tax v21_emiAllco2neg_acrossIterations_slack becomes zero

\[\begin{multline*} v21\_emiAllco2neg\_acrossIterations(t,regi) = \left(vm\_emiCdrAll(t,regi) - p21\_referenceGrossEmissions(t,regi)\right) + v21\_emiAllco2neg\_acrossIterations\_slack(t,regi) \end{multline*}\]

Calculation global sustainability tax on bioenergy: The global sustainability tax rate scales linearly with bioenergy production (the higher the demand, the higher the tax ratio v21_tau_bio). Units: v21_tau_bio(t) [1] vm_pebiolc_price(t,regi) [T\(US per TWa] -> v21_tau_bio(t) * vm_pebiolc_price(t,regi) [T\)US per TWa] Documentation of overall tax approach is above at q21_taxrev.

\[\begin{multline*} v21\_taxrevBioSust(t,regi) = v21\_tau\_bio(t) \cdot vm\_pebiolc\_price(t,regi) \cdot vm\_fuExtr(t,regi,"pebiolc","1") - p21\_taxrevBioSust0(t,regi) \end{multline*}\]

The dynamic bioenergy sustainability tax rate is calculated: it scales linearly with the bioenergy demand starting at 0 at 0EJ to the level defined in cm_bioenergy_SustTax at 200 EJ.

\[\begin{multline*} v21\_tau\_bio(t) = \frac{ cm\_bioenergy\_SustTax }{ \left(200 \cdot sm\_EJ\_2\_TWa\right) } \cdot \left(\sum_{regi}\left(vm\_fuExtr(t,regi,"pebiolc","1") + pm\_fuExtrForeign(t,regi,"pebiolc","1")\right)\right) \end{multline*}\]

Calculation of costs limiting the change compared to the reference run in cm_startyear.

\[\begin{multline*} v21\_taxrevChProdStartYear(t,regi) = \sum_{en2en(enty,enty2,te)}\left( vm\_changeProdStartyearCost(t,regi,te)\$\left( \left(t.val gt 2005\right) \& \left(t.val eq cm\_startyear \right) \right) \right) - p21\_taxrevChProdStartYear0(t,regi) \end{multline*}\]

Calculation of CES tax: tax rate times CES inputs Documentation of overall tax approach is above at q21_taxrev.

\[\begin{multline*} v21\_taxrevCES(t,regi,in) = pm\_tau\_ces\_tax(t,regi,in) \cdot vm\_cesIO(t,regi,in) - p21\_taxrevCES0(t,regi,in) \end{multline*}\]

SF: “revenue recycling of import tax to RE investments (wind, solar, storage): investments in wind, solar and storage equal (i) investments from reference scenario with tax and no revenue recycling plus (ii) the revenues received from the tax”

\[\begin{multline*} \sum_{en2en(enty,enty2,te)\$teVRE(te)}\left( vm\_costInvTeDir(t,regi,te) + vm\_costInvTeAdj(t,regi,te)\$teAdj(te) \right) + \sum_{teNoTransform}\left( vm\_costInvTeDir(t,regi,teNoTransform) + vm\_costInvTeAdj(t,regi,teNoTransform)\$teAdj(teNoTransform) \right) \geq \sum_{tradePe}\left( \sum_{tax\_import\_type\_21} p21\_taxrevImport0(t,regi,tradePe,tax\_import\_type\_21)\right) + \sum_{en2en(enty,enty2,te)\$teVRE(te)}\left( p21\_ref\_costInvTeDir\_RE(t,regi,te) + p21\_ref\_costInvTeAdj\_RE(t,regi,te)\$teAdj(te) \right) + \sum_{teNoTransform}\left( p21\_ref\_costInvTeDir\_RE(t,regi,teNoTransform) + p21\_ref\_costInvTeAdj\_RE(t,regi,teNoTransform)\$teAdj(teNoTransform) \right) \end{multline*}\]

Limitations There are no known limitations.

Definitions

Objects

module-internal objects (A: off | B: on)
  Description Unit A B
f21_sub_convergence_rollback
(tall, all_regi, emi_sectors, all_enty)
Subsidy convergence level for specific regions, year and final energy type in rollback scenario x
f21_tau_fe_sub
(tall, all_regi, emi_sectors, all_enty)
2005 final energy subsidy x
f21_tau_fe_tax
(tall, all_regi, emi_sectors, all_enty)
2005 final energy tax x
f21_tau_fuEx_sub
(tall, all_regi, all_enty)
2005 subsidy for fuel extraction x
f21_tax_convergence
(tall, all_regi, all_enty)
Tax convergence level for specific regions, year and final energy type x
f21_tax_convergence_rollback
(tall, all_regi, all_enty)
Tax convergence level for specific regions, year and final energy type in rollback scenario x
p21_CO2TaxSectorMarkup
(ttot, all_regi, emi_sectors)
path for CO2 tax markup in building, industry or transport sector x
p21_FEtax_trajectory_abs
(ttot, emi_sectors, all_enty)
absolute final energy tax level of the end year set by cm_FEtax_trajectory_abs switch \(USD/MWh\) x
p21_FEtax_trajectory_rel
(ttot, emi_sectors, all_enty)
factor to scale final energy tax level of the end year from cm_FEtax_trajectory_rel switch x
p21_SEtaxRampUpParameters
(ext_regi, all_te, teSeTax_coeff)
config values for SE electricity tax rate tech specific ramp up logistic function parameters x
p21_bio_EF
(ttot, all_regi)
bioenergy emission factor, which is used to calculate the emission-factor-based tax level \(GtC/TWa\) x
p21_deltarev
(iteration, all_regi)
convergence criteria for iteration on tax revenue recycling x
p21_emiAllco2neg0
(ttot, all_regi)
reference level value of net-negative CO2 emissions in the current iteration x
p21_emiAllco2neg_acrossIterations0
(ttot, all_regi)
reference level value of net-negative CO2 emissions as difference of gross CDR in the current iteration and gross emissions in the previous iteration x
p21_extRegiCO2TaxSectorMarkup
(ext_regi, emi_sectors)
CO2 tax markup in building, industry or transport sector (extended regions) x
p21_grossEmissions
(iteration, ttot, all_regi)
Gross CO2 emissions x
p21_import_tax
(ext_regi, all_enty, tax_import_type_21)
parameter to read in configurations from import tax switch x
p21_ref_costInvTeAdj_RE
(ttot, all_regi, all_te)
RE adjustment cost investment volume in reference scenario x
p21_ref_costInvTeDir_RE
(ttot, all_regi, all_te)
RE direct investment volume in reference scenario x
p21_referenceGrossEmissions
(ttot, all_regi)
Reference gross CO2 emissions used for computation of net-negative emissions x
p21_referenceGrossEmissions_iter
(iteration, ttot, all_regi)
Tracked over iterations for debugging x
p21_tau_CO2_tax_gdx
(ttot, all_regi)
tax path from gdx, may overwrite default values x
p21_tau_CO2_tax_gdx_bau
(ttot, all_regi)
tax path from gdx, may overwrite default values x
p21_tau_Import
(ttot, all_regi, all_enty, tax_import_type_21)
tax on energy imports, only works on energy carriers traded on nash markets, tax defined as share of world market price pm_pvp \(Unit: share\) x
p21_tau_SE_tax
(ttot, all_regi, all_te)
maximum tax rate for SE electricity tax, used for taxes on electrolysis x
p21_tau_SE_tax_rampup
(ttot, all_regi, all_te, teSeTax_coeff)
Parameters of logistic function to describe relationship between SE electricity tax rate and share of technology in total electricity demand x
p21_tau_fe_sub
(ttot, all_regi, emi_sectors, all_enty)
subsidy path for final energy x
p21_tau_fe_tax
(ttot, all_regi, emi_sectors, all_enty)
tax path for final energy x
p21_tau_fuEx_sub
(tall, all_regi, all_enty)
subsidy path for fuel extraction \(\$/TWa\) x
p21_tau_pe2se_tax
(tall, all_regi, all_te)
tax path for PE2SE technologies x
p21_tau_so2_tax
(tall, all_regi)
so2 tax path x
p21_taxemiMkt0
(ttot, all_regi, all_emiMkt)
reference level value of co2 emission taxes per emission market x
p21_taxrevBio0
(ttot, all_regi)
reference level value of sum of emission-factor-based tax and global sustainability tax on bioenergy x
p21_taxrevBioEF0
(ttot, all_regi)
reference level value of emission-factor-based tax on bioenergy x
p21_taxrevBioEF_iter
(iteration, ttot, all_regi)
track reference level value of emission-factor-based tax revenue on bioenergy over iterations x
p21_taxrevBioSust0
(ttot, all_regi)
reference level value of global sustainability tax on bioenergy x
p21_taxrevBioSust_iter
(iteration, ttot, all_regi)
track reference level value of global sustainability tax revenue on bioenergy over iterations x
p21_taxrevCCS0
(ttot, all_regi)
reference level value of CCS tax x
p21_taxrevCCS_iter
(iteration, ttot, all_regi)
track reference level value of CCS tax revenue over iterations x
p21_taxrevCES0
(ttot, all_regi, all_in)
reference level value of ces production tax x
p21_taxrevCES_iter
(iteration, ttot, all_regi, all_in)
track reference level value of ces production tax revenue over iterations x
p21_taxrevChProdStartYear0
(ttot, all_regi)
reference level value of tax to limit changes compared to reference run in cm_startyear x
p21_taxrevChProdStartYear_iter
(iteration, ttot, all_regi)
track reference level value of tax to limit changes compared to reference run in cm_startyear over iterations x
p21_taxrevEI0
(ttot, all_regi)
reference level value of tax on environmental impacts x
p21_taxrevEI_iter
(iteration, ttot, all_regi)
track reference level value of tax on environmental impacts x
p21_taxrevFE0
(ttot, all_regi)
reference level value of final energy tax x
p21_taxrevFE_iter
(iteration, ttot, all_regi)
track reference level value of final energy tax revenue over iterations x
p21_taxrevFlex0
(ttot, all_regi)
reference level value of flexibility tax x
p21_taxrevFlex_iter
(iteration, ttot, all_regi)
track reference level value of flexibility tax revenue over iterations x
p21_taxrevGHG_iter
(iteration, ttot, all_regi)
track reference level value of GHG emission tax revenue over iterations x
p21_taxrevImport0
(ttot, all_regi, all_enty, tax_import_type_21)
reference level value of energy import tax x
p21_taxrevImport_iter
(iteration, ttot, all_regi, all_enty)
track reference level value of energy import tax over iterations x
p21_taxrevNetNegEmi_iter
(iteration, ttot, all_regi)
track reference level value of net-negative emissions tax revenue over iterations x
p21_taxrevPE0
(ttot, all_regi, all_enty)
reference level value of primary energy tax x
p21_taxrevPE2SE0
(ttot, all_regi)
reference level value of pe2se technologies tax x
p21_taxrevPE2SE_iter
(iteration, ttot, all_regi)
track reference level value of pe2se technologies tax revenue over iterations x
p21_taxrevPE_iter
(iteration, ttot, all_regi, all_enty)
track reference level value of primary energy tax revenue over iterations x
p21_taxrevResEx0
(ttot, all_regi)
reference level value of resource extraction tax x
p21_taxrevResEx_iter
(iteration, ttot, all_regi)
track reference level value of resource extraction tax revenue over iterations x
p21_taxrevSE0
(ttot, all_regi)
reference level value of tax on SE electricity demand x
p21_taxrevSE_iter
(iteration, ttot, all_regi)
track reference level value of tax on SE electricity demand over iterations x
p21_taxrevSO20
(ttot, all_regi)
reference level value of SO2 tax x
p21_taxrevSO2_iter
(iteration, ttot, all_regi)
track reference level value of SO2 tax revenue over iterations x
q21_SeTaxRate
(ttot, all_regi, all_te)
calculation of SE tax rate, used for taxes on electrolysis x
q21_emiAllco2neg
(ttot, all_regi)
calculation of net-negative CO2 emissions in the current iteration x
q21_emiAllco2neg_acrossIterations
(ttot, all_regi)
calculation of net-negative CO2 emissions as difference of gross CDR in the current iteration and gross emissions in the previous iteration x
q21_rc_tau_import_RE
(ttot, trade_regi)
revenue recycling of import tax to RE investments (wind, solar, storage): investments in wind, solar and storage equal (i) investments from reference scenario with tax and no revenue recycling plus (ii) the revenues received from the tax x
q21_tau_bio
(ttot)
calculation of demand-dependent bioenergy tax x
q21_taxemiMkt
(ttot, all_regi, all_emiMkt)
calculation of specific emission market tax on CO2 emissions x
q21_taxrev
(ttot, all_regi)
calculation of difference in total tax volume x
q21_taxrevBioEF
(ttot, all_regi)
calculation of emission-factor-based tax on bioenergy x
q21_taxrevBioSust
(ttot, all_regi)
calculation of global sustainability tax on bioenergy x
q21_taxrevCCS
(ttot, all_regi)
calculation of tax on CCS x
q21_taxrevCES
(ttot, all_regi, all_in)
calculation of tax on ces production function x
q21_taxrevCO2Sector
(ttot, all_regi, emi_sectors)
calculation of sector markup tax on CO2 emissions x
q21_taxrevCO2luc
(ttot, all_regi)
calculation of tax on co2luc emissions x
q21_taxrevChProdStartYear
(ttot, all_regi)
calculation of tax to limit changes compared to reference run in cm_startyear x
q21_taxrevEI
(ttot, all_regi)
calculation of tax on environmental impacts x
q21_taxrevFE
(ttot, all_regi)
calculation of tax on final energy x
q21_taxrevFlex
(ttot, all_regi)
tax on technologies with flexible or inflexible electricity input x
q21_taxrevGHG
(ttot, all_regi)
calculation of tax on greenhouse gas emissions x
q21_taxrevImport
(ttot, all_regi, all_enty)
calculation of import tax x
q21_taxrevNetNegEmi
(ttot, all_regi)
calculation of tax on net-negative emissions x
q21_taxrevPE
(ttot, all_regi, all_enty)
calculation of tax on primary energy x
q21_taxrevPE2SE
(ttot, all_regi)
calculation of tax on pe2se technologies x
q21_taxrevPseudo
(ttot, all_regi)
calculation of difference in volume of pseudo taxes and subsidies x
q21_taxrevReal
(ttot, all_regi)
calculation of difference in volume of real taxes and subsidies x
q21_taxrevResEx
(ttot, all_regi)
calculation of tax on resource extraction x
q21_taxrevSE
(ttot, all_regi)
calculation of tax on SE electricity demand, used for taxes on electrolysis x
q21_taxrevSO2
(ttot, all_regi)
calculation of tax on SO2 x
s21_frac_NetNegEmi parameter used for fade-in of cm_frac_NetNegEmi x
s21_so2_tax_2010 SO2 tax value in 2010 in 10^12$/TgS = 10^6 $/t S x
s21_tax_time time when final tax level is reached x
s21_tax_value target level of tax, sub, inconv in $/GJ, must always be rescaled after setting x
v21_emiAllco2neg_acrossIterations
(ttot, all_regi)
net-negative CO2 emissions as difference of gross CDR in the current iteration and gross emissions in the previous iteration (as positive variable) x
v21_emiAllco2neg_acrossIterations_slack
(ttot, all_regi)
dummy variable to compute v21_emiAllco2neg_acrossIterations x
v21_emiAllco2neg_slack
(ttot, all_regi)
dummy variable to extract net-negative CO2 emissions from emiAll x
v21_tau_SE_tax
(ttot, all_regi, all_te)
tax rate of tax on SE electricity demand, used for taxes on electrolysis x
v21_tau_bio
(ttot)
demand-dependent bioenergy tax x
v21_taxemiMkt
(ttot, all_regi, all_emiMkt)
tax on greenhouse gas emissions x
v21_taxrevBioEF
(ttot, all_regi)
emission-factor-based tax on bioenergy x
v21_taxrevBioSust
(ttot, all_regi)
global sustainability tax on bioenergy (to reflect sustainability constraints on bioenergy production) x
v21_taxrevCCS
(ttot, all_regi)
tax on CCS (to reflect leakage risk) x
v21_taxrevCES
(ttot, all_regi, all_in)
tax on ces production function x
v21_taxrevCO2Sector
(ttot, all_regi, emi_sectors)
sector markup tax on CO2 emissions x
v21_taxrevCO2luc
(ttot, all_regi)
tax on co2luc emissions x
v21_taxrevChProdStartYear
(ttot, all_regi)
tax to limit changes compared to reference run in cm_startyear x
v21_taxrevEI
(ttot, all_regi)
tax on environmental impacts x
v21_taxrevFE
(ttot, all_regi)
tax on final energy (?) x
v21_taxrevFlex
(ttot, all_regi)
tax on technologies with flexible or inflexible electricity input x
v21_taxrevGHG
(ttot, all_regi)
tax on greenhouse gas emissions x
v21_taxrevImport
(ttot, all_regi, all_enty)
net change vs. last iteration of tax revenues from energy import tax x
v21_taxrevNetNegEmi
(ttot, all_regi)
tax on net-negative emissions (to reflect climate damages due to overshoot) x
v21_taxrevPE
(ttot, all_regi, all_enty)
tax on primary energy x
v21_taxrevPE2SE
(ttot, all_regi)
tax on pe2se technologies (?) x
v21_taxrevPseudo
(ttot, all_regi)
difference between volume of pseudo taxes and subsidies in current and previous iteration x
v21_taxrevReal
(ttot, all_regi)
difference between volume of real taxes and subsidies in current and previous iteration x
v21_taxrevResEx
(ttot, all_regi)
tax on resource extraction (?) x
v21_taxrevSE
(ttot, all_regi)
tax on SE electricity demand, used for taxes on electrolysis x
v21_taxrevSO2
(ttot, all_regi)
tax on SO2 (to reflect health impacts) x

Sets

sets in use
  description
all_emiMkt emission markets
all_enty all types of quantities
all_in all inputs and outputs of the CES function
all_regi all regions
all_te all energy technologies, including from modules
ccs2te(all_enty, all_enty, all_te) chain for ccs
ccsCo2(all_enty) only cco2 (???)
char characteristics of technologies
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
en2en(all_enty, all_enty, all_te) all energy conversion mappings
enty(all_enty) all types of quantities
entyFe(all_enty) final energy types.
entyFe2Sector(all_enty, emi_sectors) final energy (stationary and transportation) mapping to sectors (industry, buildings, transportation and cdr)
entyPe(all_enty) Primary energy types (PE)
entySe(all_enty) secondary energy types
ext_regi extended regions list (includes subsets of H12 regions)
in(all_in) All inputs and outputs of the CES function
iteration iterator for main (Negishi/Nash) iterations
pe2rlf(all_enty, rlf) map exhaustible energy to grades for qm_fuel2pe
pe2se(all_enty, all_enty, all_te) map primary energy carriers to secondary
peEx(all_enty) exhaustible primary energy carriers
regi(all_regi) all regions used in the solution process
regi_bio_EFTax21(all_regi) regions in which an emission-factor-based bioenergy tax is active
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
rlf cost levels of fossil fuels
se2fe(all_enty, all_enty, all_te) map secondary energy to end-use energy using a technology
se2se(all_enty, all_enty, all_te) map secondary energy to secondary energy using a technology
sector2emiMkt(emi_sectors, all_emiMkt) mapping sectors to emission markets
t(ttot) optimisation time, years between cm_startyear and 2150 with 5 to 20 years time steps
tall time index, each year from 1900 to 3000
tax_import_type_21 p21_tau_import type
te(all_te) energy technologies
te2rlf(all_te, rlf) all technologies to grades
teAdj(all_te) technologies with adjustment costs on capacity additions
teCCS2rlf(all_te, rlf) mapping for CCS technologies to grades
teFlexTax(all_te) all technologies to which flexibility tax/subsidy applies, flexible technologies are those in teFlex, inflexible technologies those which are not in teFlex
teNoTransform(all_te) all technologies that do not transform energy but still have investment and O&M costs (like storage or grid)
teSeTax(all_te) all technologies which SE electricity demand tax
teSeTax_coeff coefficients of logistic function to describe relationsship between SE tax rate and share of technology in total SE demand
teVRE(all_te) technologies requiring storage
tradePe(all_enty) Traded primary energy commodities
ttot(tall) time index with spin-up, years between 1900 and 2150 with 5 to 20 years time steps

See Also

01_macro, 22_subsidizeLearning, 24_trade, 30_biomass, 32_power, 33_carbonRemoval, 36_buildings, 37_industry, 46_carbonpriceRegi, 47_regipol, 52_internalizeLCAimpacts, 80_optimization, core

References