This repository accompanies the work of the EU Tax Observatory on the simulation of the revenue effects of a global minimum tax on corporate income.
-
the first report, Collecting the Tax Deficit of Multinational Companies: Simulations for the European Union, was released in June 2021. The full-text version of the study can be read here;
-
it was followed by two notes, Minimizing the Minimum Tax? The Critical Effect of Substance Carve-Outs in July 2021 (link) and Revenue Effects of the Global Minimum Tax: Country-by-Country Estimates in October 2021 (link);
-
this work led to the publication of a peer-reviewed article in Intertax, under the title Revenue Effects of the Global Minimum Tax Under Pillar Two. The article can be accessed through this link;
-
eventually, the Global Tax Evasion Report of October 2023 (not yet released) presents an update of country-by-country revenue gain estimates.
The code running the computations has been conceived as a Python package, making it easy to reproduce our results. The logic for macro-computations has been encapsulated in a Python class, TaxDeficitCalculator
, defined in the calculator.py
file. From there, several class methods allow to run the same computations as we do. Similarly, the computational logic for firm-level estimates (cf. first report of June 2021) is established in a dedicated class, CompanyCalculator
, defined in the firm_level.py
file.
If you are using pip, you can run the following command to install the tax_deficit_simulator
package:
pip install --upgrade git+https://github.com/pechouc/tax_deficit_simulator.git
Once the package is installed, you can for instance reproduce our latest macro-computations of the paper with the TaxDeficitCalculator
class. You can load the data locally or fetch them online as in:
from tax_deficit_simulator.calculator import TaxDeficitCalculator
calculator = TaxDeficitCalculator(year=2018, China_treatment_2018='2017_CbCR', fetch_data_online=True)
Before anything else, you will need to load and clean the data with the dedicated method. The command is the same regardless of whether you load the data from local files (fetch_data_online
set to False
) or online (fetch_data_online
set to True
).
calculator.load_clean_data()
You can then run any computation in which you are interested. For instance, to simulate a multilateral implementation of the Income Inclusion Rule (IIR) at a 15% minimum tax rate in which only EU Member-States collect their multinationals' domestic tax deficits:
calculator.compute_all_tax_deficits(0.15)
You may also want to replicate our main computations. The installation of the Python package includes scripts (see the scripts/
sub-folder) that facilitate such a replication. From a command line, you may simply run:
benchmark_simulations Absolute/path/to/folder/where/to/store/outputs
The results required to build the waterfall chart of the executive summary can also be obtained with:
waterfall_chart_simulations Absolute/path/to/folder/where/to/store/outputs
Documents describing our methodology and, in broad terms, how it translates in the code are available in the files/methodology/
sub-folder of this repository (link). You will find in there (i) the online appendix accompanying the Intertax article, which describes the methodology behind our computations from 2021 to 2022, and (ii) a technical note that presents the methodological updates introduced in 2023.
The project documentation is available here for detailed specifications. It will be complemented in the coming weeks with the latest additions to the code.
The documentation was built with pdoc.
The code in this repository also backs the online simulator, designed with the Streamlit framework, that can be accessed via this link. This simulator was designed for policy makers, journalists, members of civil society, and all citizens in each EU country to assess the revenue potential from minimum taxation on both domestic and foreign firms.
This simulator estimates how much tax revenue the European Union could collect by imposing a minimum tax on the profits of multinational companies. It relies on the notion of tax deficit, defined as the difference between what multinationals currently pay in taxes, and what they would pay if they were subject to a minimum tax rate in each country. Three ways for EU countries to collect this tax deficit are considered:
-
an international agreement on a minimum tax of the type currently discussed by the OECD ("Multinational agreement scenario" in the left-hand-side bar);
-
an incomplete international agreement in which only EU countries apply a minimum tax. Additional revenues would then come from collecting a portion of the tax deficit of non-EU multinationals ("Partial cooperation scenario" in the left-hand-side bar);
-
a "first-mover" scenario, in which one country alone decides to collect the tax deficit of multinational companies, entirely for its own firms and partially for the foreign ones ("Unilateral implementation scenario" in the left-hand-side bar).
In another tab, we also explain how the so-called "substance-based carve-outs" work and propose to investigate their impact on potential revenue gains ("Substance-based carve-outs" in the left-hand-side bar).
Should you have any question about the code in this repository and its use, do not hesitate to write to paul-emmanuel.chouc@ensae.fr or open an issue in this repository.
In addition, so far, the code presented in this repository has not yet been optimized for performance. Feedback on how to improve computation times, the readability of the code, or anything else are very much welcome! Do not hesitate to open issues in the present repository should you have any question or remark.