← Back to all sparks
F

fio

INFRA · APIS
Velocity0.0

Friendly Input-Output Analysis

Input-output economics in R with a Rust core, now spanning multiple regions.

input-output-analysisregional-economicsrust-backendbreaking-changesr-package
Current state
fio builds and analyses input-output models in R, using an R6 object for the model and Rust with the faer crate for the linear algebra behind technical coefficients and the Leontief inverse. Version 1.0.0 extended it from single-region tables to multi-regional models with spillover analysis, and 1.1.0 immediately corrected the naming and measures that release introduced, renaming shock-origin columns that had been labelled as destinations and replacing an interdependence index with spillover balance and export share.
Where it's heading
The package built its foundation first and its scope second. The 0.1.x releases were almost entirely about making a Rust-backed R package install reliably across platforms and toolchain versions, with the actual economics settled at 0.1.0. Once that was stable, 1.0.0 added the multi-regional layer in one release, and 1.1.0 shows the usual consequence of a large surface arriving at once: names and derived measures needing correction before they harden. Breaking changes are being taken freely while the multi-regional interface is young.
Prediction
Expect further refinement of the multi-regional measures before the interface settles, given that 1.1.0 revised them within three months of their introduction. The Rust core makes larger multi-regional systems tractable, so extending coverage to more published multi-region tables is the obvious direction, though these entries name no specific dataset.

Recent moves

  1. 2mo ago

    Spillover columns renamed to name the shock's origin

    Renames the destination country, sector and label columns to shock equivalents because they identify where the final-demand shock originates rather than where it lands, and replaces the interdependence index with spillover balance and export share computed from block sums of the spillover matrix. Corrective work on measures introduced only three months earlier, and breaking for anyone who built on them.

    View source ↗
  2. 5mo ago

    Multi-regional input-output models and spillover analysis

    ⚡ SPARK

    Adds a whole second model class: miom() for multi-regional tables, with bilateral trade extraction, intra-regional, inter-regional and spillover multipliers, spillover and net spillover matrices, and regional self-reliance measures, plus closed single-region models. The 1.1.0 renames that followed are the cost of introducing this much surface in one release.

    View source ↗
  3. 1y ago

    Toolchain fixes for R-devel and Windows linking

    Build and packaging repairs for R 4.5, Windows linker selection and a parallel-make race condition, with the Rust minimum version raised and an unused threads slot removed. Housekeeping typical of the 0.1.x line, none of it visible in results.

    View source ↗
  4. 1y ago

    System check scripts handle a missing Rust toolchain

    A single fix so the system check scripts fail informatively when Rust and Cargo are absent. Part of the sustained effort to make a Rust-backed package installable by R users who have never installed a Rust toolchain.

    View source ↗
  5. 1y ago

    Rust minimum version lowered to widen installability

    Drops the minimum supported Rust version and adds checks that prompt users to install or update the toolchain when it is missing or too old. Another entry in the same installability thread that occupies most of the 0.1.x releases.

    View source ↗
  6. 2y ago

    First release: Rust-backed input-output modelling in R

    ⚡ SPARK

    The initial release establishes everything the package is built on: an R6 iom object, technical coefficients and Leontief inverse computed in Rust via faer, the full family of output, employment, wages and taxes multipliers, influence fields, and Excel and clipboard import. The multi-regional work in 1.0.0 is an extension of this foundation rather than a redesign of it.

    View source ↗