https://github.com/bancaditalia/beforeit.jl

High-Performance Agent-Based Macroeconomics Made Easy

https://github.com/bancaditalia/beforeit.jl

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org, sciencedirect.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.2%) to scientific vocabulary

Keywords

abm agent-based-modeling behavioural-economics computational-economics economics julia macroeconomics simulation
Last synced: 5 months ago · JSON representation

Repository

High-Performance Agent-Based Macroeconomics Made Easy

Basic Info
Statistics
  • Stars: 83
  • Watchers: 10
  • Forks: 13
  • Open Issues: 6
  • Releases: 9
Topics
abm agent-based-modeling behavioural-economics computational-economics economics julia macroeconomics simulation
Created almost 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License

README.md

Aqua QA code style: runic

Logo adapts to light and dark modes *

Behavioural agent-based economic forecasting

Welcome to BeforeIT.jl, a package for Behavioural agent-based economic forecasting, from the IT research unit of the Bank of Italy.

BeforeIT.jl is a Julia-based implementation of the agent-based model presented in Economic forecasting with an agent-based model, the first ABM matching the forecasting performance of traditional economic tools.

With BeforeIT.jl, you can perform economic forecasting and explore different counterfactual scenarios. Thanks to its modular design, the package is also a great starting point for anyone looking to extend its capabilities or integrate it with other tools.

Developed in Julia, a language known for its efficiency, BeforeIT.jl is both fast and user-friendly, making it accessible whether you’re an expert programmer or just starting out.

The package currently contains the original parametrisation for Austria, as well as a parametrisation for Italy. Recalibrating the model on other nations is possible of course, but currently not easily supported. So get in contact if you are interested!

Julia installation

To run this software, you will need a working Julia installation on your machine. If you don't have Julia installed already, simply follow the short instructions available here.

Installation

To be able to run the model, you can activate a new Julia environment in any folder from the terminal by typing

julia --project=.

Then, whithin the Julia environment, you can install BeforeIT.jl as

julia using Pkg Pkg.add("BeforeIT")

You can ensure to have installed all dependencies via

julia Pkg.instantiate()

Now you should be able to run the the following code

```julia import BeforeIT as Bit

parameters = Bit.AUSTRIA2010Q1.parameters initialconditions = Bit.AUSTRIA2010Q1.initialconditions

T = 20 model = Bit.Model(parameters, initial_conditions) Bit.run!(model, T) ```

This will simulate the model with the original Austrian parametrisation for 20 quarters and save the results in the data object. To plot the time series within the data object, make sure you install Plots.jl in the same environment using

julia Pkg.add("Plots")

and then try running

```julia using Plots

plot(model.data.real_gdp) ```

In you want to run the script without opening a REPL, you can copy and paste the above lines into a file, say main.jl, and run it directly from the terminal by typing

julia --project=. main.jl

Docs

Extensive documentation on how to use the package is available here. We suggest following the steps in this tutorial to quickly learn the basics.

Furthermore, we suggest reading the software description available here.

Download Source Code and Run Tests

Clone the Repository

bash git clone https://github.com/bancaditalia/BeforeIT.jl.git cd BeforeIT.jl

Activate and Instantiate the Environment

bash julia -e 'using Pkg; Pkg.activate("."); Pkg.instantiate();'

Run Tests

bash julia --proj test/runtests.jl

Format the Package

bash julia --proj format.jl

Current Authors

Aldo Glielmo
Aldo Glielmo

Banca d'Italia

Email: aldo.glielmo@bancaditalia.it

Mitja Devetak
Mitja Devetak

Paris 1: Pantheon - Sorbonne

Adriano Meligrana
Adriano Meligrana

University of Turin

Email: adrianomeligrana@proton.me

Citing BeforeIT

If you found BeforeIT useful for your research, please cite the following software description

bib @article{glielmo2025beforeit, title={BeforeIT.jl: High-Performance Agent-Based Macroeconomics Made Easy}, author={Glielmo, Aldo and Devetak, Mitja and Meligrana, Adriano and Poledna, Sebastian}, journal={arXiv preprint arXiv:2502.13267}, year={2025} }

and do not hesitate to get in touch to include your extension in the next release of the package and software description.

Disclaimer

This package is an outcome of a research project. All errors are those of the authors. All views expressed are personal views, not those of Bank of Italy.


* Credits to Sara Corbo for the logo and to Andrea Gentili for the name suggestion.

Owner

  • Name: Banca d'Italia
  • Login: bancaditalia
  • Kind: organization
  • Location: Rome

GitHub Events

Total
  • Create event: 55
  • Release event: 2
  • Issues event: 15
  • Watch event: 37
  • Delete event: 31
  • Member event: 2
  • Issue comment event: 146
  • Push event: 634
  • Pull request review comment event: 18
  • Pull request review event: 30
  • Pull request event: 121
  • Fork event: 6
Last Year
  • Create event: 55
  • Release event: 2
  • Issues event: 15
  • Watch event: 37
  • Delete event: 31
  • Member event: 2
  • Issue comment event: 146
  • Push event: 634
  • Pull request review comment event: 18
  • Pull request review event: 30
  • Pull request event: 121
  • Fork event: 6

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 12
  • Total pull requests: 85
  • Average time to close issues: 4 days
  • Average time to close pull requests: 2 days
  • Total issue authors: 3
  • Total pull request authors: 10
  • Average comments per issue: 0.58
  • Average comments per pull request: 1.19
  • Merged pull requests: 52
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 11
  • Pull requests: 73
  • Average time to close issues: about 12 hours
  • Average time to close pull requests: 2 days
  • Issue authors: 3
  • Pull request authors: 9
  • Average comments per issue: 0.55
  • Average comments per pull request: 1.3
  • Merged pull requests: 43
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
  • Tortar (6)
  • AldoGl (4)
  • aldoglielmo (2)
Pull Request Authors
  • Tortar (47)
  • aldoglielmo (11)
  • AldoGl (10)
  • SGHoekstra (4)
  • Devetak (4)
  • petres (3)
  • github-actions[bot] (2)
  • dependabot[bot] (2)
  • zauster (1)
  • arnauqb (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (2) github_actions (2)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 7 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 8
juliahub.com: BeforeIT

High-Performance Agent-Based Macroeconomics Made Easy

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 7 Total
Rankings
Dependent repos count: 9.5%
Average: 25.1%
Dependent packages count: 40.7%
Last synced: 6 months ago

Dependencies

.github/workflows/test.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/documentation.yml actions
  • actions/checkout v4 composite
  • julia-actions/cache v1 composite
  • julia-actions/setup-julia v2 composite