sfctools is a modeling suite for agent-based, macroeconomic and stock-flow consistent (ABM-SFC) modeling written in Python. It concentrates on agents in economics and provides a graphical model design interface.


Cite this software

What sfctools can do for you

sfctools is an ABM-SFC modeling suite. Unlike more generic frameworks like mesa or AgentPy, it concentrates on agents in economics. It further is a toolbox which helps you to construct agents, helps you to ensure stock-flow consistency and facilitates basic economic data structures (such as the balance sheet).

The framework sfctools will accompany your modeling work along the whole model design process. Typically modelers will start with constructing their agents, i.e. the transactions between agents and their behavioral parameters. Sfctools supports modelers with a basic Agent class. All agents which inherit from this class will automatically be equipped with datastructures, the most important being the balance sheet. A flow matrix sheet traces all financial flows between agents, as well as changes in stocks. Structural model parameters can be read from a simple yaml file to avoid hard-coding. Finally, sfctools will take care about timing your simulation periods and executing batch simulation runs.

Background Information:

One of the most challenging tasks in macroeconomic models is to describe the macro-level effects from the collective behavior of meso- or micro-level actors. Wheras in 1759, Adam Smith was still making use of the concept of an ‘invisible hand’ ensuring market stability and economic welfare, a more and more popular approach is to make the ‘invisible’ visible and to accurately model each actor individually by defining its behavioral rules and myopic knowledge domain. In agent-based computational economics (ACE), economic actors correspond to dynamically interacting entities (also called agents) who live inside a computer program. For many research topics, it is useful to combine ABM with the stock-flow consistent (SFC) paradigm. SFC-ABM models, however, are often intransparent and rely on very peculiar, custom-built data structures. A tedious task is to generate, maintain and distribute code for agent-based models (ABMs), as well as to check for the inner consistency and logic of such models.

Agent-based computational economics is a modeling approach where independent myopic units, called agents, interact. The outcome of this interaction (called emergence) can be a self-organized pattern much more complicated than the individual agents’ behavioral rules [Gatti et al., 2008, Gaffeo et al., 2008]. In Agent-Based Computational Economics, the agents are the types economic actors, such as individual firms or plant operators, performing certain operations such as investment or bidding at markets. There is, however, a large plurality of different agent-based economic models. Agent-based macroeconomic models are typically constructed of households, firms, banks, the government and a central bank, who are either aggregate entities or interact in a bottom-up fashion [Turrell, 2016]. A more detailed elaboration on agent-based comutational eonomics can be found, for example, in the two books: [Tesfatsion and Judd, 2006, Gallegati et al., 2017].

Programming languages
  • Python 98%
  • Roff 1%
  • BibTeX 1%
  • MIT
</>Source code

Participating organisations

German Aerospace Center (DLR)


Mention in sfc-models.net


Thomas Baldauf
Deutsches Zentrum für Luft- und Raumfahrt DLR Standort Stuttgart

Related tools



AMIRIS is the open Agent-based Market model for the Investigation of Renewable and Integrated energy Systems. It aims at enabling scientists to dissect the complex questions arising with respect to future energy markets, their market design, and energy-related policy instruments.

Updated 2 months ago



FAME is the open Framework for distributed Agent-based Modelling of Energy systems. Its purpose is supporting the rapid development and fast execution of complex agent-based energy system simulations.

Updated 2 months ago