News
Volume II of Dynamic Programming by Thomas J. Sargent and John Stachurski is now available for free download.
Volume II: General States extends the finite state framework of Volume I to general state spaces, covering:
Part I: General Theory
- Abstract Dynamic Programs (Parts 1-3)
- Transforms
Part II: Models and Applications
- Concave DP Problems
- Risk-Sensitive Dynamic Programming
- Applications
The book is available as a free PDF download from the Dynamic Programming website, alongside Volume I and its accompanying code and slides.
The Quantitative Economics with Julia lecture series now supports running notebooks on Google Colab.
Instructions for getting started are available in the Running on Google Colab section of the Getting Started lecture.
QuantEcon has released myst-markdown-tree-sitter.nvim, a Neovim plugin that provides syntax highlighting and filetype detection for MyST (Markedly Structured Text) markdown files.
The plugin extends standard markdown highlighting with MyST-specific features, including:
- Code-cell directive highlighting with language-specific syntax highlighting for
{code-cell}directives - Math directive highlighting with LaTeX syntax highlighting for
{math}directives - Automatic filetype detection for MyST markdown files based on content patterns
- Tree-sitter integration for robust parsing
- Comprehensive testing with 170+ tests
The plugin supports a wide range of languages in code-cell directives, including Python, Julia, R, JavaScript, and more.
For installation instructions and documentation, visit the project website.
A new lecture has been added to Quantitative Economics with Julia: Differentiable Filters.
This lecture covers implementing and differentiating the Kalman filter using both forward-mode and reverse-mode automatic differentiation. It documents specific coding patterns needed to get high performance while remaining compatible with Enzyme.
A key challenge addressed in the lecture is that small, static immutable matrices call for a completely functional coding style, while large matrices require everything to be done in-place. Getting the same code to work efficiently in both cases requires careful design. Much of this is driven by Enzyme’s requirement for non-allocating code — which, fortunately, is usually aligned with highest performance anyway.
This release also updates the lectures to support the official Enzyme.jl release for Julia 1.12.
These updates were developed by Jesse Perla.
We’re pleased to announce a new lecture on Advanced Quantitative Economics with Python: Gorman Aggregation with Heterogeneous Households.
About the Lecture
This lecture explores one of the fundamental questions in macroeconomic theory: under what conditions can an economy with diverse households be analyzed as if there were a single representative consumer?
Key topics covered include:
- Gorman aggregation conditions: When household demand can be aggregated regardless of income distribution
- Linear Engel curves: The role of quasi-homothetic preferences in enabling aggregation
- Practical implications: Understanding when representative agent models are appropriate approximations
Why This Matters
Representative agent models are ubiquitous in macroeconomics, but their validity depends on specific conditions that aren’t always met. This lecture provides the theoretical foundations for understanding:
- When aggregation is justified
- What heterogeneity matters for aggregate outcomes
- How to think about distributional effects in macro models
The lecture includes computational examples and exercises to reinforce the theoretical concepts.
Contributors
This lecture was developed by Humphrey Yang and Thomas Sargent.
We’re pleased to announce a new lecture on Quantitative Economics with Julia: Differentiable Dynamics.
This lecture demonstrates how to use Enzyme.jl for automatic differentiation of dynamic economic simulations. The code is more advanced than typical lectures — Enzyme requires non-allocating, functional-style code — but this is necessary to unlock high-performance differentiation of simulation models.
For readers looking for a gentler introduction to Enzyme, see the Introduction to Enzyme section in the auto-differentiation lecture.
Other Updates in This Release
- Julia 1.12 support with updated packages across all lectures
- Reorganized interpolation and integration lectures for improved flow
- Refactored Finite Markov chains lecture with clearer exposition
- Updated software engineering and testing content
These updates were developed by Jesse Perla and Farhad Shahryarpoor.
QuantEcon instructors Chase Coleman and John Stachurski delivered a three-day workshop on Modern Computational Economics and Policy Applications at the IMF headquarters in Washington, D.C. from December 2-4, 2025.
Building on the 2024 workshop, this year’s course placed greater emphasis on AI and its implications for economic policy analysis. Topics included:
- AI pair programming for economists
- JAX for high-performance dynamic programming
- Data wrangling with Pandas and Polars
- Bayesian analysis and Gaussian processes
- Deep learning and reinforcement learning
Workshop materials are available on GitHub.
The Quantitative Economics with Python series has been expanded with significant new content on income fluctuation problems and wealth inequality.
New Lecture Content
- Transient Income Shocks: A new lecture separating transient shocks from the core IFP model, providing clearer theoretical exposition
- Wealth Inequality Analysis: New exercises analyzing how return volatility and labor income volatility affect wealth distribution
- Stochastic Returns: Improved simulation methods for studying wealth dynamics under uncertainty
Key Findings Highlighted
The new content demonstrates important economic insights:
- Varying return volatility (capital income risk) has a much larger impact on wealth inequality than labor income volatility
- The lectures include Gini coefficient calculations showing how different parameter choices affect wealth distribution
Technical Improvements
- Performance optimizations using
jax.lax.while_loopfor better JAX compatibility - Cleaner code structure with improved function signatures and better variable naming
- Enhanced visualizations of wealth dynamics and distribution
These updates reflect ongoing research collaboration and were developed with contributions from John Stachurski.
We’ve completed a significant reorganization of lectures across two of our Python lecture sites to improve content flow and learning progression.
Optimal Savings Lectures (python.quantecon.org)
The Intermediate Quantitative Economics with Python series has undergone a major restructuring of the optimal savings content:
- Renamed and reorganized the income fluctuation problem (IFP) lectures for clearer progression
- Added dynamics plots and adjusted parameters for better visualization
- Improved code organization with consistent function signatures across lectures
- Enhanced JAX implementations with unified operator signatures between standard and JAX versions
Parallel Programming Lectures (python-programming.quantecon.org)
The Python Programming for Economics and Finance site now features reorganized parallel programming content:
- Restructured table of contents for better topic flow
- Improved content on NumPy vs Numba vs JAX comparisons
- Better explanations of parallel computing concepts
These updates were developed with contributions from John Stachurski, Humphrey Yang, and Matt McKay.
QuantEcon instructor John Stachurski delivered a four-day workshop on Computational Methods for Macroeconomic Modeling at the Bank of Portugal from October 7-10, 2025.
The workshop explored recent advances in scientific computing driven by AI hardware and software, including parallelization, automatic differentiation, and just-in-time compilation. Topics covered included:
- Python fundamentals for scientific computing
- Markov chains and dynamic programming
- Introduction to JAX for high-performance computing
- Neural networks and deep learning applications
Workshop materials are available on GitHub.
The QuantEcon organization is closing the discourse forum (running since 2016) hosted at discourse.quantecon.org.
We have recently observed a large increase in spam posts. As the forum was not seeing high usage rates we felt the maintenance cost was higher than the benefit it was bringing to the broader community.
We are still dedicated to encouraging community linkages and discussion and will be evaluating new platforms and opportunities. We are also looking at developing AI tutors for our lecture sites.
Thank you to everyone that participated in the forums.
The QuantEcon organization is a founding member of the Executable Books project that built Jupyter Book and MyST Markdown
We are really excited to share that Jupyter Book has now been accepted as a Jupyter sub-project.
For the past 6 years we have hosted an online community at notes.quantecon.org.
This was designed to be a place for the economics community to upload interesting notebooks and encourage linkages and discussion.
There have been some excellent notebooks uploaded, and we thank all the authors that have contributed to this community.
Unfortunately the notes platform (as currently designed) requires a server which is relatively expensive to run and maintain.
In addition there is a software maintenance burden to keep the underlying software called Bookshelf up to date.
As a result we have decided to close notes.quantecon.org.
To enable all these excellent notebooks to be accessible we have migrate all the current notebooks to a new static page hosted on GitHub.
We welcome any PRs to contribute any additional notebooks.
QuantEcon will continue to think of new and innovative ways to build a sharing community for notebooks on computational economics.
There is some work underway with the Jupyter Book team for gallery support that may offer hosting notebooks as a collection of static webpages, which is much cheaper to host.
We thank you for your interest and participation in QuantEcon Notes.
The Bookshelf project is open-source and will remain available for anyone interested in it.
QuantEcon ran a workshop at the Reserve Bank of Australia presenting recent advances in computational tools available in open source scientific computing environments.
These new tools include:
- automatic differentiation
- parallel computing, and
- just-in-time compilers and GPU computing
Congratulations to Smit Lunagariya for your new role at Google search. Smit was a former QuantEcon research assistant and contributed extensively to the QuantEcon project. We hope you enjoy your new role in the machine learning team.
QuantEcon ran a workshop at the University of Melbourne presenting recent advances in computational tools available in open source scientific computing environments.
These new tools include:
- automatic differentiation
- parallel computing, and
- just-in-time compilers
QuantEcon has delivered our Africa summer course in July/August 2024 across three universities in West Africa. Our aim is to bring the foundational skills required for working with more advanced computational economic models to a global audience. It was exciting for the team to be able to work with these talented students in West Africa.
QuantEcon ran a workshop at the Central Bank of Chile on high performance computing using Python and how Python can be used in economic applications.
QuantEcon delivered two workshops this month. One at Columbia University and the other at the International Monetary Fund (IMF).
QuantEcon has just delivered our Africa summer course in July across three universities in West Africa. Our aim is to bring the foundational skills required for working with more advanced computational economic models to a global audience. It was exciting for the team to be able to work with these talented students in West Africa.
Older Posts
layout: post title: “Run QuantEcon Lectures with Google Colab!” author: Natasha Watkins excerpt: You can now open a lecture as a Jupyter notebook in Google Colab, allowing code to be run and edited live in the cloud. tag: [news]—