Skip to content


Repository files navigation


iotables rOG-badge packageversion Project Status: Active R-CMD-check CRAN_Status_Badge CRAN_time_from_release metacran downloads DOI license codecov AppVeyor build status dataobservatory

The symmetric input-output tables (SIOTs) are complex statistical products that present inter-related statistics in a predefined structure. They are often found in spreadsheets that follow this structure or, in the case of Eurostat, in a data repository. In both cases in, reproducible research must be downloaded and restructured to a programmatically accessible form. Often, these highly structured statistics need to be analysed together with other data, for example, when calculating employment effects and multipliers. In this case, processing the employment data to SIOT conforming format is a significant preprocessing challenge.

The iotables are exactly designed for these tasks. Currently, the package downloads and processes standardized European SIOTs conforming to the latest statistical regulations, i.e. SIOTs starting from 2010.

The aim of this introduction is not to introduce input-output economics, or SIOTs in detail. The Eurostat Manual of Supply, Use and Input-Output Tables and the Eurostat thematic page (for further reference: Eurostat Manual) in the documentation should be consulted for further information about the data and the metadata.

To test the analytical functions of the package and to have a manageable-sized example data set, we use real-life data from the Eurostat manual. The germany_1995 dataset is a simplified 6x6 sized SIOT was taken from the Eurostat Manual (p481). The package function examples can be checked against published results from Jörg Beutel. These calculations can be followed in the Introduction to iotables vignette.

The calculation of induced effects (Type-II multipliers) are following the Input-Output Multipliers Specification Sheet and Supporting Material, Spicosa Project Report. The analytical functions are tested against this example, too.


You can install iotables 0.9 from CRAN or the latest 0.9.1 development version with github:

# From CRAN:

# From Github (development version)

#with vignettes:
#devtools::install_github("rOpenGov/iotables", build_vignettes = TRUE)

See also a long-form documentation (publication candidate) iotables: an R Package for Reproducible Input-Output Economics Analysis, Economic and Environmental Impact Assessment with Empirical Data on Zenodo.


The Introduction to iotables vignette presents most of the examples of the Eurostat Manual of Supply, Use and Input-Output Tables (Eurostat Manual, Chapter 15.) This is a good introduction to understand what will the functions do, and to check that they work correctly. From 0.9.9 it extended with the replication results from the Handbook on Supply and Use Tables and Input-Output Tables with Extensions and Applications published by the United Nations.

The testthat infrastructure of the package checks the proper working of the functions against the published results from the Eurostat Manual.

The Working with Eurostat Data vignette shows how you can download, pre-process and use real data from Eurostat.

The United Kingdom Input-Output Analytical Tables 2010 are used for testing the iotables package, because they are well-documented and detailed, organized data is available with them. These calculations can be followed in the United Kingdom Input-Output Analytical Tables vignette.

Acquiring data

Eurostat’s data can be downloaded in several tidy, long-form, files, and a lot of filtering is needed to start working with it.

Currently the following Eurostat SIOTs can be used:

Table type source code
product x product SIOTs naio_10_cp1700 or naio_10_pyp1700
industry x industry SIOTs naio_10_cp1750 ornaio_10_pyp1750
use tables at basic prices naio_10_cp1620 or naio_10_pyp1610
trade and transport margins naio_10_cp1620 or naio_10_pyp1620
net taxes less subsidies naio_10_cp1630 or naio_10_pyp1630
Supply table at basic prices naio_10_cp15
Use table at purchasers’ price naio_10_cp16

The cp element refers to basic prices and the pyp to previous years’ prices.


Contributions are very welcome:


Kindly cite this work as follows:

Daniel Antal. (2024. January 8.) rOpenGov/iotables: Importing and Manipulating Symmetric Input-Output Tables (Version 0.9.3). CRAN. for released version. Development version URL:

Thanks to @KKulma for setting up new and improved continuous integration, and @pitkant for implementing many good practices on improving the code. See contributors. This project is part of rOpenGov.

Code of Conduct

Please note that the iotables project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.