Sanction Simulator — interactive GUI and model based on the paper 'Political Power in International Trade' by Ashwin Bhattathiripad and Vipin P. Veetil, with the OECD ICIO 2022 benchmark network included
Project description
Sanction Simulator
Interactive sanction simulator based on the paper “Political Power in International Trade” by Ashwin Bhattathiripad and Vipin P. Veetil. The package bundles
- the estimation model (
power_trade_estimation.py: two-sided RAS rerouting + CES capacity-rationing equilibrium on the world input–output network), - the pre-built benchmark network from the OECD ICIO 2025 release (year 2022), and
- a point-and-click GUI for composing and solving arbitrary sanction scenarios.
Install (macOS / Linux / Windows)
python3 -m pip install sanction-simulator
Python ≥ 3.10. Dependencies (numpy, pandas, streamlit, plotly) are installed automatically.
Run the GUI
sanction-simulator
This opens the simulator in your browser (default port 8601; override
with SANCTION_SIM_PORT). Pick the sanctioning coalition, the targeted
countries, the instrument (full embargo / export ban / import ban), an
optional sector scope, and the structural parameters (τ, δ, ρ, ϱ), then
press Solve scenario. A typical scenario solves in one or two
seconds and reports output losses by country and sector, a world map,
and solver diagnostics.
Programmatic use
import sys
import sanction_simulator as ss
sys.path.insert(0, ss._PKG_DIR)
import power_trade_estimation as pte
bench = pte.Benchmark(ss.data_dir(), cache=ss.bench_cache())
iu, ic = bench.cidx["USA"], bench.cidx["CHN"]
sb = pte.ScenarioBatch(bench, [pte.bilateral_legs(iu, ic)],
tau=0.30, delta=0.10)
sb.balance()
res = sb.solve(rho=-1.0)
loss = bench.s - res["s_omega"][0] # gross-output loss, USD mn
Full pipeline
sanction-simulator-estimate exposes the paper's estimation stages
(--stage validate|baseline|sensitivity|all). The packaged data
contains the pre-built benchmark cache only; a from-scratch rebuild
additionally needs the raw OECD ICIO file 2022_SML.csv placed in the
--datadir directory.
Data note
The benchmark cache (bench_cache.npz) is a lossless, compressed copy
of the network constructed from the OECD Inter-Country Input–Output
tables, 2025 release, reference year 2022 (80 countries × 50 sectors).
Source: OECD Inter-Country Input–Output Database,
https://www.oecd.org/en/data/datasets/inter-country-input-output-tables.html.
The OECD is the source of the underlying data; use of the derived
benchmark network is subject to the OECD's terms and conditions.
License
The code is released under the MIT License (see LICENSE). Copyright
(c) 2026 Ashwin Bhattathiripad and Vipin P. Veetil. If you use this
package in academic work, please cite the paper Political Power in
International Trade.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sanction_simulator-0.1.3.tar.gz.
File metadata
- Download URL: sanction_simulator-0.1.3.tar.gz
- Upload date:
- Size: 76.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bd63e6447cfc4b96653885a0d49f2df8ffd122b6b0b39d1f27ae2e9ffecfbb1
|
|
| MD5 |
5b539f633895ae4e364ee26e73f27d63
|
|
| BLAKE2b-256 |
35a3c99591489be7da8c1b183be79f3d3fd12aec3eb77ab167974120b5b5c63d
|
File details
Details for the file sanction_simulator-0.1.3-py3-none-any.whl.
File metadata
- Download URL: sanction_simulator-0.1.3-py3-none-any.whl
- Upload date:
- Size: 76.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
974d3492f860627a38276bae9739c95aff3f1eaccdfa6df62704871eaef15b18
|
|
| MD5 |
dcf7690d6c4d3d7a48909eb68ab7cfc9
|
|
| BLAKE2b-256 |
02ba80bfb375b72ee22f2ae40ce64778e0a32011f5b8d5d2a0bd33173ad38f97
|