Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK)
*** | authors, and contributors see CITATION.cff file. This file is part
*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of
*** | AGPL-3.0, you are granted additional permissions described in the
*** | REMIND License Exception, version 1.0 (see LICENSE file).
*** | Contact: remind@pik-potsdam.de
*** SOF ./modules/21_tax/on/equations.gms
***---------------------------------------------------------------------------
*' The bioenergy tax is calculated: it scales linearly with the bioenergy demand starting at 0 at 0EJ to the level defined in cm_bioenergy_tax at 200 EJ.
***---------------------------------------------------------------------------
q21_tau_bio(t)$(t.val ge max(2010,cm_startyear))..
v21_tau_bio(t)
=e=
cm_bioenergy_tax / (200 * sm_EJ_2_TWa) * (sum(regi,vm_fuExtr(t,regi,"pebiolc","1") + pm_fuExtrForeign(t,regi,"pebiolc","1")))
;
***---------------------------------------------------------------------------
*' Calculation of the value of the overall tax revenue vm_taxrev, that is included in the qm_budget equation.
*' Overall tax revenue is the sum of various components which are calculated in the following equations, each of those with 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.
***---------------------------------------------------------------------------
q21_taxrev(t,regi)$(t.val ge max(2010,cm_startyear))..
vm_taxrev(t,regi)
=g=
v21_taxrevGHG(t,regi)
+ v21_taxrevCO2luc(t,regi)
+ v21_taxrevCCS(t,regi)
+ v21_taxrevNetNegEmi(t,regi)
+ v21_taxrevFEtrans(t,regi)
+ v21_taxrevFEBuildInd(t,regi)
+ v21_taxrevFE_Es(t,regi)
+ v21_taxrevResEx(t,regi)
+ v21_taxrevPE2SE(t,regi)
+ v21_taxrevXport(t,regi)
+ v21_taxrevSO2(t,regi)
+ v21_taxrevBio(t,regi)
- vm_costSubsidizeLearning(t,regi)
+ v21_implicitDiscRate(t,regi)
;
***---------------------------------------------------------------------------
*' Calculation of greenhouse gas taxes: tax rate (combination of 3 components) times ghg emissions
*' Documentation of overall tax approach is above at q21_taxrev.
***---------------------------------------------------------------------------
q21_taxrevGHG(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_taxrevGHG(t,regi) =g= ( pm_taxCO2eq(t,regi) + pm_taxCO2eqSCC(t,regi) + pm_taxCO2eqHist(t,regi)) * (vm_co2eq(t,regi) - vm_emiMacSector(t,regi,"co2luc")$(cm_multigasscen ne 3))
- p21_taxrevGHG0(t,regi);
***---------------------------------------------------------------------------
*' Calculation of greenhouse gas taxes: tax rate (combination of 3 components) times land use co2 emissions
*' Documentation of overall tax approach is above at q21_taxrev.
***---------------------------------------------------------------------------
q21_taxrevCO2luc(t,regi)$(t.val ge max(2010,cm_startyear))..
Lavinia Baumstark
committed
v21_taxrevCO2luc(t,regi) =g= ( pm_taxCO2eq(t,regi) + pm_taxCO2eqSCC(t,regi) + pm_taxCO2eqHist(t,regi))* cm_cprice_red_factor * vm_emiMacSector(t,regi,"co2luc")$(cm_multigasscen ne 3)
- p21_taxrevCO2LUC0(t,regi);
***---------------------------------------------------------------------------
*' 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.
***---------------------------------------------------------------------------
q21_taxrevCCS(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_taxrevCCS(t,regi)
=g= cm_frac_CCS * pm_data(regi,"omf","ccsinje") * pm_inco0_t(t,regi,"ccsinje")
* ( sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(enty),enty2,te), vm_co2CCS(t,regi,enty,enty2,te,rlf) ) ) )
* (1/sm_ccsinjecrate) * sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(enty),enty2,te), vm_co2CCS(t,regi,enty,enty2,te,rlf) ) ) / pm_dataccs(regi,"quan","1") !! fraction of injection constraint per year
- p21_taxrevCCS0(t,regi);
***---------------------------------------------------------------------------
*' 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.
***---------------------------------------------------------------------------
q21_taxrevNetNegEmi(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_taxrevNetNegEmi(t,regi) =g= cm_frac_NetNegEmi * pm_taxCO2eq(t,regi) * v21_emiALLco2neg(t,regi)
- p21_taxrevNetNegEmi0(t,regi);
***---------------------------------------------------------------------------
*' Auxiliary calculation of net-negative emissions:
*' v21_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
***---------------------------------------------------------------------------
q21_emiAllco2neg(t,regi)..
v21_emiALLco2neg(t,regi) =e= -vm_emiAll(t,regi,"co2") + v21_emiALLco2neg_slack(t,regi);
***---------------------------------------------------------------------------
*' Calculation of final Energy taxes in Transports: effective tax rate (tax - subsidy) times FE use in transport
*' Documentation of overall tax approach is above at q21_taxrev.
***---------------------------------------------------------------------------
q21_taxrevFEtrans(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_taxrevFEtrans(t,regi)
=g= SUM(feForEs(enty),
(p21_tau_fe_tax_transport(t,regi,feForEs) + p21_tau_fe_sub_transport(t,regi,feForEs) ) * SUM(se2fe(enty2,enty,te), vm_prodFe(t,regi,enty2,enty,te))
) +
SUM(feForUe(enty),
(p21_tau_fe_tax_transport(t,regi,feForUe) + p21_tau_fe_sub_transport(t,regi,feForUe) ) * SUM(se2fe(enty2,enty,te), vm_prodFe(t,regi,enty2,enty,te))
)
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
***---------------------------------------------------------------------------
*' Calculation of final Energy taxes in Buildings_Industry or Stationary: effective tax rate (tax - subsidy) times FE use in sector
*' Documentation of overall tax approach is above at q21_taxrev.
***---------------------------------------------------------------------------
q21_taxrevFEBuildInd(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_taxrevFEBuildInd(t,regi)
=g= SUM(ppfen(in)$( NOT ppfenFromUe(in)),
(p21_tau_fe_tax_bit_st(t,regi,ppfen) + p21_tau_fe_sub_bit_st(t,regi,ppfen) ) * vm_cesIO(t,regi,ppfen)
)
- p21_taxrevFEBuildInd0(t,regi) ;
***---------------------------------------------------------------------------
*' Calculation of final Energy taxes in Buildings_Industry or Stationary sector with energy service representation: effective tax rate (tax - subsidy) times FE use in sector
*' Documentation of overall tax approach is above at q21_taxrev.
***---------------------------------------------------------------------------
q21_taxrevFE_Es(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_taxrevFE_Es(t,regi)
=g= SUM(fe2es(entyFe,esty,teEs),
(pm_tau_fe_tax_ES_st(t,regi,esty) + pm_tau_fe_sub_ES_st(t,regi,esty) ) * vm_demFeForEs(t,regi,entyFe,esty,teEs)
)
- p21_taxrevFE_Es0(t,regi) ;
***---------------------------------------------------------------------------
*' Calcuation of ressource extraction subsidies: subsidy rate times fuel extraction
*' Documentation of overall tax approach is above at q21_taxrev.
***---------------------------------------------------------------------------
q21_taxrevResEx(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_taxrevResEx(t,regi) =g= sum(pe2rlf(peEx(enty),rlf), p21_tau_fuEx_sub(t,regi,enty) * vm_fuExtr(t,regi,enty,rlf))
- p21_taxrevResEx0(t,regi);
***---------------------------------------------------------------------------
*' 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.
***---------------------------------------------------------------------------
q21_taxrevPE2SE(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_taxrevPE2SE(t,regi)
=g= SUM(pe2se(enty,enty2,te),
(p21_tau_pe2se_tax(t,regi,te) + p21_tau_pe2se_sub(t,regi,te) + p21_tau_pe2se_inconv(t,regi,te)) * vm_prodSe(t,regi,enty,enty2,te)
)
- p21_taxrevPE2SE0(t,regi) ;
***---------------------------------------------------------------------------
*' Calculation of export taxes: tax rate times export volume
*' Documentation of overall tax approach is above at q21_taxrev.
***---------------------------------------------------------------------------
q21_taxrevXport(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_taxrevXport(t,regi) =g= SUM(tradePe(enty), p21_tau_XpRes_tax(t,regi,enty) * vm_Xport(t,regi,enty))
- p21_taxrevXport0(t,regi);
***---------------------------------------------------------------------------
*' Calculation of so2 tax: tax rate times emissions
*' Documentation of overall tax approach is above at q21_taxrev.
***---------------------------------------------------------------------------
q21_taxrevSO2(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_taxrevSO2(t,regi) =g= p21_tau_so2_tax(t,regi) * vm_emiTe(t,regi,"so2")
- p21_taxrevSO20(t,regi);
***---------------------------------------------------------------------------
*' Calculation of bioenergy tax: tax rate (calculated as multiple of bioenergy price) times PE use of pebiolc
*' Documentation of overall tax approach is above at q21_taxrev.
***---------------------------------------------------------------------------
q21_taxrevBio(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_taxrevBio(t,regi) =g= v21_tau_bio(t) * vm_fuExtr(t,regi,"pebiolc","1") * vm_pebiolc_price(t,regi)
- p21_taxrevBio0(t,regi);
***---------------------------------------------------------------------------
*' Calculation of High implicit discount rates in energy efficiency capital
*' which is also modeled as a tax to mirror the lack of incentive for cost-efficient renovations.
*' calculation is done via additional discount rate times input of capital at different levels
***---------------------------------------------------------------------------
q21_implicitDiscRate(t,regi)$(t.val ge max(2010,cm_startyear))..
v21_implicitDiscRate(t,regi)
=g= sum(ppfKap(in),
p21_implicitDiscRateMarg(t,regi,in)
* vm_cesIO(t,regi,in)
) - p21_implicitDiscRate0(t,regi);
;
*** EOF ./modules/21_tax/on/equations.gms