Product · Open source

MARIO

Input-output analysis, in Python, open source.

MARIO — Multifunctional Analysis of Regions through Input-Output — is the Python package by eNextGen's founders for working with input-output (IOT) and supply-use (SUT) tables. Once parsed, a table becomes a MARIO database that can be inspected, computed, transformed, aggregated, shocked and exported.

Tahavori et al. (2023), Journal of Open Research Software Read the paper

MARIO logo

What it supports

IO & SUT parsing

Standard sources such as EXIOBASE, EORA, EUROSTAT, FIGARO, WIOD, OECD, and custom databases from Excel, text, CSV or pandas. Single- and multi-region, monetary and hybrid systems.

On-demand computation

Derived matrices and indicators computed when you need them, without materializing what you don't use. Inspect sets, scenarios and available matrices at any point.

Transform & shock

Aggregation, SUT→IOT conversion, scenario analysis and shocks on the database, with an API built around the real IO workflow.

Export & roundtrip

Export results for roundtrip or downstream analysis. It is the bridge through which nxbase ingests IO tables as governed data.

Why open source

The IO engine behind our analyses

MARIO is developed openly by eNextGen's founders and freely installable from PyPI. It is the computation engine behind many of our analyses and the strategic bridge to nxbase: MARIO reads and manipulates the tables, nxbase governs and exposes them as versioned data.

  • PyPI package: mariopy (import mario)
  • Sources: EXIOBASE, EORA, EUROSTAT, FIGARO, WIOD, OECD…
  • Full documentation on Read the Docs
  • Citable via Zenodo DOI
Read the documentation

Quick install:

pip install mariopy
import mario

# Parse a test table or a supported source
db = mario.load_test("IOT")
db.calc_all()          # compute the derived matrices
db.get_index("Sector") # inspect the sets

MARIO is built for the real input-output workflow: parse a source, inspect sets and scenarios, compute indicators, transform or shock the database and export the results. Within the eNextGen ecosystem it is the engine nxbase uses to ingest and harmonize IO tables.

Want to try MARIO?

Install the package and follow the tutorials in the documentation.