Effort-sharing
Effort-sharing regimes can be used to enforce the redistribution of mitigation effort and damage costs among regions following pre-defined equity principles. By default, in MIMOSA, no effort-sharing regime is imposed.
Besides no regime at all, there are three types of effort-sharing regimes implemented in MIMOSA. This can be
set using the effort_sharing_regime
parameter.
Usage:
By default, no effort-sharing regime is imposed.
Source code in mimosa/components/effortsharing/noregime.py
Usage:
params = load_params()
params["effort sharing"]["regime"] = "equal_mitigation_costs"
model = MIMOSA(params)
Equal mitigation costs implies that the regional mitigation costs in every year (in terms of percentage of GDP) should be the same for every region:
where the variable \(\text{common level}_t\) can have arbitrary values and is purely used as a common value accross all the regions1.
-
Note that for numerical stability, the constraint is not implemented as an equality constraint, but as an "almost-equality" constraint (called soft-equality constraint). This means that it is enough if the left-hand side (LHS) and right-hand side (RHS) are very close to each other (less than 0.5%):
\[ 0.995 \cdot \text{LHS} \leq \text{RHS} \leq 1.005 \cdot \text{LHS}. \]
Source code in mimosa/components/effortsharing/equal_mitigation_costs.py
Usage:
params = load_params()
params["effort sharing"]["regime"] = "equal_total_costs"
model = MIMOSA(params)
In this effort-sharing regime, the damages are also taken into account when equalising the costs among regions:
where the variable \(\text{common level}_t\) can have arbitrary values and is purely used as a common value accross all the regions1. Note that the variable \(\text{damages}_{t,r}\) is already expressed as percentage of GDP (see Damages).
For feasibility reasons, this constraint is only enforced until 2100.
Compared to the equal mitigation cost regime, this regime might be infeasible, especially for regions with very high damages, unless:
-
(a) the mitigation costs can be negative (for regions with very high damages). This can be achieved with the parameter
rel_mitigation_costs_min_level
. -
or (b) if financial transfers are allowed between regions, that go beyond emission trading. See Financial transfers.
-
Note that for numerical stability, the constraint is not implemented as an equality constraint, but as an "almost-equality" constraint (called soft-equality constraint). This means that it is enough if the left-hand side (LHS) and right-hand side (RHS) are very close to each other (less than 0.5%):
\[ 0.995 \cdot \text{LHS} \leq \text{RHS} \leq 1.005 \cdot \text{LHS}. \]
Source code in mimosa/components/effortsharing/equal_total_costs.py
Usage:
params = load_params()
params["effort sharing"]["regime"] = "per_cap_convergence"
params["effort sharing"]["percapconv_year"] = 2050
# Per-capita convergence needs emission trading to avoid infeasibility
params["model"]["emissiontrade module"] = "emissiontrade"
# And financial transfers higher than just emission trading need to be enabled
# (therefore allowing for negative mitigation costs)
params["economics"]["MAC"]["rel_mitigation_costs_min_level"] = -0.5
model = MIMOSA(params)
The per capita convergence regime allocates equal per capita emission rights to each region, starting
from a given year (called the convergence year). The convergence year can be set with the parameter
percapconv_year
and is
set to 2050 by default. Before this convergence year, the allowances are interpolated
between grandfathering (current emission distribution) in 2020 and equal per capita emission rights in the convergence year.
Therefore, two functions are needed. First, the allowances for equal per capita emissions (EPC):
and second the allowances for grandfathering (GF):
Finally, the allowances for each region are calculated as a linear interpolation between the two before the convergence year. After the convergence year, only the equal per capita emissions are used:
where \(x\) is the linear interpolation factor, which is 1 in the first year and 0 in the convergence year:
Immediate per capita convergence
If the convergence year is set to the first year, the per capita convergence is applied immediately:
params = load_params()
params["effort sharing"]["regime"] = "per_cap_convergence"
params["effort sharing"]["percapconv_year"] = 2020 # Immediate per capita convergence
Grandfathering
If the convergence year is set to false
, the grandfathering allowance distribution is used all the time.
params = load_params()
params["effort sharing"]["regime"] = "per_cap_convergence"
params["effort sharing"]["percapconv_year"] = False # Grandfathering all the time
Source code in mimosa/components/effortsharing/per_cap_convergence.py
Finally, the allowances per region are added as constraint on the regional emissions. Since this regime needs emission trading to avoid infeasibility, the regional emissions can be expressed as the baseline emissions minus the reductions that this region needs to pay for (this is not necessarily equal to the regional emissions in physical terms, as the region can buy or sell allowances from other regions):
Source code in mimosa/components/effortsharing/per_cap_convergence.py
Usage:
In this effort-sharing regime, emission allowances are allocated based on per-capita GDP (see van den Berg et al. (2020)).
There are three steps in the calculation of the allowances: (1) the main reduction calculation based on per-capita GDP, (2) a global correction factor to make sure that the total reductions match the global target, and (3) the final allowances calculation.
Step 1: Reductions before correction factor
with
Note: The per-capita GDP can be calculated in two ways: either from the baseline GDP variable or from the net GDP variable. For numerical stability, we use the baseline GDP variable, even though it would be slightly more accurate to use the net GDP variable.
Source code in mimosa/components/effortsharing/ability_to_pay.py
Step 2: Global correction factor
The reduction factors from step 1 do not fully add up to the global emissions. There is typically a gap of a few percent. To correct this, a global correction factor is applied to the reductions:
Step 3: Final allowances calculation
Finally, the allowances are calculated by subtracting the reductions from the baseline emissions, multiplied by the correction factor:
Source code in mimosa/components/effortsharing/ability_to_pay.py
Usage:
params = load_params()
params["effort sharing"]["regime"] = "equal_cumulative_per_cap"
model = MIMOSA(params)
In the equal cumulative per capita (ECPC) regime, emission allowances are allocated based on an equal per capita distribution of emissions, combining both historical and future emissions per capita. The historical emission debt is then spread out over the future time steps, going linearly down to zero in the repayment end year (default: 2050).
First, a historical debt is calculated for each region: how much more, or less, emissions did a region emit compared to its fair share of cumulative emissions per capita since a start year (by default 1850).
Step 1: historical debt calculation
The historical debt is calculated as the cumulative difference between the historical fair share (based on equal per capita emissions) and the actual emissions, starting from a given start year (default: 1850) until the base year (default: 2020), and then discounted by a given rate:
where you can set the following parameters:
- \(\text{start year}\) using
params["effort sharing"]["ecpc_start_year"]
(default: 1850), - \(\text{discount rate}\) using
params["effort sharing"]["ecpc_start_year"]
(default: 3%/yr).
The historical debt is therefore positive for regions that emitted more than their fair share of cumulative emissions per capita, and negative for regions that emitted less than their fair share:
Source code in mimosa/components/effortsharing/equal_cumulative_per_cap.py
Step 2: future fair share (excluding historical debt repayment)
The future fair share for every region (excluding the historical debt) is equal to the immediate per capita convergence regime: every year, a region gets allocated a share of the global emissions based on their population share.