diff --git a/joss.05598/10.21105.joss.05598.crossref.xml b/joss.05598/10.21105.joss.05598.crossref.xml
new file mode 100644
index 0000000000..5af8477bb4
--- /dev/null
+++ b/joss.05598/10.21105.joss.05598.crossref.xml
@@ -0,0 +1,225 @@
+
+
+
+ 20230925T175210-71a90f82b1d1ba77147c32b63632ecc488c2e432
+ 20230925175210
+
+ JOSS Admin
+ admin@theoj.org
+
+ The Open Journal
+
+
+
+
+ Journal of Open Source Software
+ JOSS
+ 2475-9066
+
+ 10.21105/joss
+ https://joss.theoj.org
+
+
+
+
+ 09
+ 2023
+
+
+ 8
+
+ 89
+
+
+
+ MacroModelling.jl: A Julia package for developing and
+solving dynamic stochastic general equilibrium models
+
+
+
+ Thore
+ Kockerols
+ https://orcid.org/0000-0002-0068-1809
+
+
+
+ 09
+ 25
+ 2023
+
+
+ 5598
+
+
+ 10.21105/joss.05598
+
+
+ http://creativecommons.org/licenses/by/4.0/
+ http://creativecommons.org/licenses/by/4.0/
+ http://creativecommons.org/licenses/by/4.0/
+
+
+
+ Software archive
+ 10.5281/zenodo.8374466
+
+
+ GitHub review issue
+ https://github.com/openjournals/joss-reviews/issues/5598
+
+
+
+ 10.21105/joss.05598
+ https://joss.theoj.org/papers/10.21105/joss.05598
+
+
+ https://joss.theoj.org/papers/10.21105/joss.05598.pdf
+
+
+
+
+
+ Time series analysis by state space methods,
+2nd edn
+ Durbin
+ 10.1093/acprof:oso/9780199641178.001.0001
+ 2012
+ Durbin, J., & Koopman, S. J.
+(2012). Time series analysis by state space methods, 2nd edn. Oxford
+University Press.
+https://doi.org/10.1093/acprof:oso/9780199641178.001.0001
+
+
+ The Pruned State-Space System for Non-Linear
+DSGE Models: Theory and Empirical Applications
+ Andreasen
+ The Review of Economic
+Studies
+ 1
+ 85
+ 10.1093/restud/rdx037
+ 0034-6527
+ 2017
+ Andreasen, M. M.,
+Fernández-Villaverde, J., & Rubio-Ramírez, J. F. (2017). The Pruned
+State-Space System for Non-Linear DSGE Models: Theory and Empirical
+Applications. The Review of Economic Studies, 85(1), 1–49.
+https://doi.org/10.1093/restud/rdx037
+
+
+ Julia: A fresh approach to numerical
+computing
+ Bezanson
+ SIAM Review
+ 1
+ 59
+ 10.1137/141000671
+ 2017
+ Bezanson, J., Edelman, A., Karpinski,
+S., & Shah, V. B. (2017). Julia: A fresh approach to numerical
+computing. SIAM Review, 59(1), 65–98.
+https://doi.org/10.1137/141000671
+
+
+ Fifth-order perturbation solution to DSGE
+models
+ Levintal
+ Journal of Economic Dynamics and
+Control
+ 80
+ 10.1016/j.jedc.2017.04.007
+ 2017
+ Levintal, O. (2017). Fifth-order
+perturbation solution to DSGE models. Journal of Economic Dynamics and
+Control, 80, 1–16.
+https://doi.org/10.1016/j.jedc.2017.04.007
+
+
+ Solving rational expectations models at first
+order: What dynare does
+ Villemot
+ 2011
+ Villemot, S. (2011). Solving rational
+expectations models at first order: What dynare does. Dynare Working
+Papers 2, CEPREMAP.
+
+
+ Time to build and aggregate
+fluctuations
+ Kydland
+ Econometrica
+ 6
+ 50
+ 10.2307/1913386
+ 1982
+ Kydland, F. E., & Prescott, E. C.
+(1982). Time to build and aggregate fluctuations. Econometrica, 50(6),
+1345–1370. https://doi.org/10.2307/1913386
+
+
+ Dynare: Reference manual version
+5
+ Adjemian
+ 2022
+ Adjemian, S., Bastani, H., Juillard,
+M., Karamé, F., Mihoubi, F., Mutschler, W., Pfeifer, J., Ratto, M.,
+Rion, N., & Villemot, S. (2022). Dynare: Reference manual version 5
+(Dynare Working Papers No. 72). CEPREMAP.
+
+
+ Efficient perturbation methods for solving
+regime-switching DSGE models
+ Maih
+ 10.2139/ssrn.2602453
+ 2015
+ Maih, J. (2015). Efficient
+perturbation methods for solving regime-switching DSGE models (Working
+Paper No. 2015/01). Norges Bank.
+https://doi.org/10.2139/ssrn.2602453
+
+
+ Taylor Projection: A New Solution Method For
+Dynamic General Equilibrium Models
+ Levintal
+ International Economic Review
+ 3
+ 59
+ 10.1111/iere.12306
+ 2018
+ Levintal, O. (2018). Taylor
+Projection: A New Solution Method For Dynamic General Equilibrium
+Models. International Economic Review, 59(3), 1345–1373.
+https://doi.org/10.1111/iere.12306
+
+
+ Smets-Wouters ’03 model revisited - an
+implementation in gEcon
+ Klima
+ 2015
+ Klima, G., Podemski, K.,
+Retkiewicz-Wijtiwiak, K., & Sowińska, A. E. (2015). Smets-Wouters
+’03 model revisited - an implementation in gEcon (MPRA Paper No. 64440).
+University Library of Munich, Germany.
+
+
+ Differentiable State-Space Models and
+Hamiltonian Monte Carlo Estimation
+ Childers
+ 10.3386/w30573
+ 2022
+ Childers, D., Fernández-Villaverde,
+J., Perla, J., Rackauckas, C., & Wu, P. (2022). Differentiable
+State-Space Models and Hamiltonian Monte Carlo Estimation (NBER Working
+Papers No. 30573). National Bureau of Economic Research, Inc.
+https://doi.org/10.3386/w30573
+
+
+
+
+
+
diff --git a/joss.05598/10.21105.joss.05598.jats b/joss.05598/10.21105.joss.05598.jats
new file mode 100644
index 0000000000..aa23766022
--- /dev/null
+++ b/joss.05598/10.21105.joss.05598.jats
@@ -0,0 +1,408 @@
+
+
+
+
+
+
+
+Journal of Open Source Software
+JOSS
+
+2475-9066
+
+Open Journals
+
+
+
+5598
+10.21105/joss.05598
+
+MacroModelling.jl: A Julia package for developing and
+solving dynamic stochastic general equilibrium models
+
+
+
+https://orcid.org/0000-0002-0068-1809
+
+Kockerols
+Thore
+
+
+
+
+
+Norges Bank, Norway
+
+
+
+
+1
+9
+2023
+
+8
+89
+5598
+
+Authors of papers retain copyright and release the
+work under a Creative Commons Attribution 4.0 International License (CC
+BY 4.0)
+2022
+The article authors
+
+Authors of papers retain copyright and release the work under
+a Creative Commons Attribution 4.0 International License (CC BY
+4.0)
+
+
+
+DSGE
+macroeconomics
+perturbation
+difference equations
+dynamical systems
+
+
+
+
+
+ Summary
+
MacroModelling.jl is a Julia
+ (Bezanson
+ et al., 2017) package for developing and solving dynamic
+ stochastic general equilibrium (DSGE) models. These kinds of models
+ describe the behavior of a macroeconomy and are particularly suited
+ for counterfactual analysis (economic policy evaluation) and exploring
+ / quantifying specific mechanisms (academic research).
+
The goal of this package is to reduce coding time and speed up
+ model development by providing functions for working with
+ discrete-time DSGE models. The user-friendly syntax, automatic
+ variable declaration, and effective steady state solver facilitate
+ fast prototyping of models. The package includes several pre-defined
+ models from prominent economic papers, providing an immediate starting
+ point for users. The target audience for the package includes central
+ bankers, regulators, graduate students, and others working in academia
+ with an interest in DSGE modelling.
+
The package supports programmatic model definition. Once the model
+ is defined, the package finds the solution for the model dynamics
+ knowing only the model equations and parameter values. The model
+ dynamics can be solved for using first, (pruned) second, and (pruned)
+ third-order perturbation solutions
+ (Andreasen
+ et al., 2017;
+ O.
+ Levintal, 2017;
+ Villemot,
+ 2011), leveraging symbolic and automatic differentiation.
+ Furthermore, the package can be used to calibrate parameters, match
+ model moments, and estimate the model on data using the Kalman filter
+ (Durbin
+ & Koopman, 2012). The package is designed to be
+ user-friendly and efficient. Once the functions are compiled and the
+ non-stochastic steady state (NSSS) has been found, the users benefit
+ from fast and convenient functions to generate outputs or change
+ parameters.
+
+
+ Statement of Need
+
Due to the complexity of DSGE models, efficient numerical tools are
+ required, as analytical solutions are often unavailable.
+ MacroModelling.jl serves as a tool for handling
+ the complexities involved, such as forward-looking expectations,
+ nonlinearity, and high dimensionality.
+
MacroModelling.jl differentiates itself
+ among macroeconomic modelling packages by offering a unique blend of
+ capabilities and conveniences, such as automatic declaration of
+ variables and parameters, automatic differentiation with respect to
+ parameters, and support for perturbation solutions up to 3rd order.
+ While it operates within the Julia environment, it presents an
+ alternative to the MATLAB-dominated field, which includes
+ dynare
+ (Adjemian
+ et al., 2022),
+ RISE
+ (Maih,
+ 2015),
+ Taylor
+ Projection
+ (Oren
+ Levintal, 2018),
+ NBTOOLBOX,
+ and
+ IRIS,
+ the latter two being capable of providing only 1st order perturbation
+ solutions.
+
Other Julia-based packages such as
+ DSGE.jl,
+ StateSpaceEcon.jl,
+ SolveDSGE.jl,
+ and
+ DifferentiableStateSpaceModels.jl
+ (Childers
+ et al., 2022) have functionalities similar to those of
+ MacroModelling.jl. However, the former are not
+ as general and convenience-focused as the MATLAB packages and
+ MacroModelling.jl. The Julia-based packages are
+ missing convenience functionalities such as automatic creation of
+ auxiliary variables for variables in lead and lags larger than 1, or
+ programmatic model definition. These functionalities are convenient to
+ the user but require significant effort to implement in the parser.
+ Furthermore, the other Julia-based packages do not possess the unique
+ feature set of MacroModelling.jl regarding
+ variable declaration and automatic differentiation. Notably, the
+ Python-based
+ dolo.py
+ offers global solutions, but does not include estimation features
+ which are available in MacroModelling.jl.
+
MacroModelling.jl stands out as one of the
+ few packages that can solve non-stochastic steady states symbolically,
+ a feature shared only with
+ gEcon
+ (Klima
+ et al., 2015), an R-based package. When, as in most cases,
+ symbolic solution is not possible
+ MacroModelling.jl uses symbolic simplification,
+ search space transformation, automatic domain restrictions, restarts
+ with different initial values, warm starts using previous solutions,
+ and a Levenberg-Marquardt-type optimizer. The combination of these
+ elements makes it possible to solve all 16 models currently
+ implemented in the examples out-of-the box. This is remarkable because
+ all other packages rely either on analytical NSSS derivation by hand,
+ or on a smaller subset of the features outlined above. In general this
+ makes the other packages far less reliable in finding the NSSS without
+ further information (e.g. a close enough initial guess). Furthermore,
+ unlike many of its competitors, the domain-specific model language of
+ MacroModelling.jl is integrated into the Julia
+ language, which makes for convenient reading and coding, with the help
+ of Julia macros.
+
+
+ Example
+
One relatively simple example to study with the package is a real
+ business cycle model (see e.g.
+ (Kydland
+ & Prescott, 1982)). The model describes the dynamics of an
+ economy with households consuming a consumption good
+ c, produced by competitive firms using the
+ capital stock k, and an exogenous technology
+ process z. The households maximize their
+ utility (log(c)) and decide whether to invest
+ in the capital stock or consume. The firms decide the amount of
+ production inputs and the quantity of output with the goal to maximize
+ their profits while minimizing their costs. The capital stock
+ depreciates by the factor δ and the production
+ technology takes the form: k^α. All agents
+ discount the future with β and the exogenous
+ AR(1) technology process is governed by parameters
+ ρ and σ_z. Given the
+ optimization problems of the households and firms one can write down
+ the first-order optimality conditions as follows:
+ Impulse response to a positive 1 standard deviation
+ shock.
+ The plot shows both the level, percentage deviation
+ from the NSSS as well as the NSSS itself. Note that the code to
+ generate the impulse response function (IRF) plot contains only the
+ equations, parameter values, and the command to plot. Solving the
+ model using first-order perturbation happens automatically in the
+ background.
+
+
+ Acknowledgements
+
The author thanks everybody who opened issues, reported bugs,
+ contributed ideas, and was supportive in driving
+ MacroModelling.jl forward.
+
+
+
+
+
+
+
+ DurbinJ
+ KoopmanS. J.
+
+
+ Oxford University Press
+ 2012
+ 10.1093/acprof:oso/9780199641178.001.0001
+
+
+
+
+
+ AndreasenMartin M
+ Fernández-VillaverdeJesús
+ Rubio-RamírezJuan F
+
+ The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications
+
+ 201706
+ 85
+ 1
+ 0034-6527
+ https://doi.org/10.1093/restud/rdx037
+ 10.1093/restud/rdx037
+ 1
+ 49
+
+
+
+
+
+ BezansonJeff
+ EdelmanAlan
+ KarpinskiStefan
+ ShahViral B.
+
+ Julia: A fresh approach to numerical computing
+
+ 2017
+ 59
+ 1
+ https://doi.org/10.1137/141000671
+ 10.1137/141000671
+ 65
+ 98
+
+
+
+
+
+ LevintalO.
+
+ Fifth-order perturbation solution to DSGE models
+
+ 2017
+ 80
+ https://doi.org/10.1016/j.jedc.2017.04.007
+ 10.1016/j.jedc.2017.04.007
+ 1
+ 16
+
+
+
+
+
+ VillemotS.
+
+ Solving rational expectations models at first order: What dynare does
+ Dynare Working Papers 2, CEPREMAP
+ 2011
+
+
+
+
+
+ KydlandFinn E.
+ PrescottEdward C.
+
+ Time to build and aggregate fluctuations
+
+ [Wiley, Econometric Society]
+ 1982
+ 20230831
+ 50
+ 6
+ http://www.jstor.org/stable/1913386
+ 10.2307/1913386
+ 1345
+ 1370
+
+
+
+
+
+ AdjemianStéphane
+ BastaniHoutan
+ JuillardMichel
+ KaraméFréderic
+ MihoubiFerhat
+ MutschlerWilli
+ PfeiferJohannes
+ RattoMarco
+ RionNormann
+ VillemotSébastien
+
+ Dynare: Reference manual version 5
+ CEPREMAP
+ 2022
+
+
+
+
+
+ MaihJunior
+
+ Efficient perturbation methods for solving regime-switching DSGE models
+ Norges Bank
+ 201501
+ 10.2139/ssrn.2602453
+
+
+
+
+
+ LevintalOren
+
+ Taylor Projection: A New Solution Method For Dynamic General Equilibrium Models
+
+ 2018
+ 59
+ 3
+ 10.1111/iere.12306
+ 1345
+ 1373
+
+
+
+
+
+ KlimaGrzegorz
+ PodemskiKarol
+ Retkiewicz-WijtiwiakKaja
+ SowińskaAnna E.
+
+ Smets-Wouters ’03 model revisited - an implementation in gEcon
+ University Library of Munich, Germany
+ 201502
+
+
+
+
+
+ ChildersDavid
+ Fernández-VillaverdeJesús
+ PerlaJesse
+ RackauckasChristopher
+ WuPeifan
+
+ Differentiable State-Space Models and Hamiltonian Monte Carlo Estimation
+ National Bureau of Economic Research, Inc
+ 202210
+ 10.3386/w30573
+
+
+
+
+
diff --git a/joss.05598/10.21105.joss.05598.pdf b/joss.05598/10.21105.joss.05598.pdf
new file mode 100644
index 0000000000..848052dc53
Binary files /dev/null and b/joss.05598/10.21105.joss.05598.pdf differ
diff --git a/joss.05598/media/irf__RBC__eps_z__1.png b/joss.05598/media/irf__RBC__eps_z__1.png
new file mode 100644
index 0000000000..d06061f4b3
Binary files /dev/null and b/joss.05598/media/irf__RBC__eps_z__1.png differ