MPSGE Overview
February 27, 2026
At its core, the MPSGE.jl package creates a JuMP.jl model with the necessary constraints of a CGE model. Namely: zero profit, income balance, market clearance, and any auxiliary constraints. This appendix gives the mathematical background on how these constraints are created given a model specified by MPSGE. Read more
Basic Structure of a Scalar MPSGE.jl Model
February 16, 2026
This example will create a model three ways: in MPSGE/GAMS, in MPSGE.jl, and as an explicit algebraic MCP using JuMP.jl. This example will assume that you are familiar with MPSGE/GAMS syntax and are interested in experimenting with Julia. The MPSGE.jl syntax is designed to mirror the MPSGE/GAMS syntax as closely as possible, so if you are familiar with MPSGE/GAMS, you should be able to understand MPSGE.jl with ease. Read more
Aggregating WiNDC National
January 06, 2026
This example will walk through the code in thisrepository. This repository contains an example aggregating theWiNDC National dataset to a size that can be run with a trial PATHlicense (less than 300 variables in the model). Read more
Converting an NLP CGE Model to MPSGE
November 07, 2025
This weeks blog post is going to be a little different. I created an example converting an NLP CGE model to MPSGE. You can find the code here and the documentation here. The repository contains all the code needed to run the models and compare the solutions. Read more
Closed Economy Model with Monopoly in the X Sector
July 23, 2025
This example is a conversion of the Markusen M51 model into Julia. This is a standard two-good, two-factor, closed-economy general-equilibrium model. Activities are X, Y and W (welfare or utility). Factors of production are called unskilled and skilled labor. Unskilled labor is typically called L with a price of PW or just W, and skilled labor is called S with a price of PZ or just Z. PU is the price of a unit of utility (the value of the unit expenditure function). Read more