The National Energy Modeling System (NEMS) is a long-term energy-economy modeling system of U.S. energy markets. The model is used to project production, imports, exports, conversion, consumption, and prices of many energy products, subject to user-defined assumptions. The assumptions encompass macroeconomic and financial factors, world energy markets, resource availability and costs, behavioral and technological choice criteria, technology characteristics, and demographics.
NEMS produces a general equilibrium solution for energy supply and demand in the U.S. energy markets on an annual basis.
EIA's Office of Energy Analysis develops and maintains NEMS to support the Annual Energy Outlook (AEO). EIA analysts perform policy analyses requested by decisionmakers in the White House; the U.S. Congress; offices within the U.S. Department of Energy, including program offices; and other government agencies. Users outside of EIA use NEMS for a variety of purposes.
The AEO page contains results from many EIA analysis products that rely on NEMS.
The NEMS documentation page has more details about each module. The Assumptions page contains separate reports about the latest assumptions for each module. The Case Descriptions page explains the cases preconfigured in the repository.
We also publish the World Energy Projection System (WEPS), which we use for global analysis.
NEMS contains three main parts:
- A central database to store and pass inputs and outputs between the various components
- Energy modules that represent various demand, transformation, and supply projection activities
- An integration, or convergence, module that determines when the system has reached an equilibrium between supply and demand
NEMS is a modular system. The modules represent each of the fuel supply markets, conversion sectors, and end-use consumption sectors of the energy system. The modular design also allows us to use the methodology and level of detail most appropriate for each energy sector. NEMS executes each of the component modules to solve for the prices of energy delivered to end users and the quantities consumed by product, region, and sector. The delivered fuel prices encompass all activities required to produce, import, and transport fuels to end users. The information flows also include economic activity, domestic production, and international petroleum supply.
NEMS consists of the following modules:
Four supply modules:
- Renewable Fuels Module (RFM)
- Natural Gas Market Module (NGMM)
- Hydrocarbon Supply Module (HSM)
- Coal Market Module (CMM)
Four demand modules:
- Residential Demand Module (RDM)
- Commercial Demand Module (CDM)
- Industrial Demand Module (IDM)
- Transportation Demand Module (TDM)
Three conversion modules:
- Electricity Market Module (EMM)
- Liquid Fuels Market Module (LFMM)
- Hydrogen Market Module (HMM)
Five other modules:
- Macroeconomic Activity Module (MAM)
- International Energy Module (IEM)
- Emissions Policy Module (EPM)
- Integrating Module
- Carbon Capture, Allocation, Transportation, and Sequestration (CCATS) Module
NEMS calls each supply, conversion, and end-use demand module in sequence until the modeling system reaches an equilibrium between supply and demand. The AEO offers a solution for each year through 2050.
This latest version of NEMS was used in AEO2026.
NEMS development is a year-round process led by EIA. A snapshot of the source code corresponding to the regularly scheduled annual release of the AEO is hosted on GitHub at: https://github.com/EIAgov/NEMS.
NEMS is a computationally intensive 64-bit application, which runs on 64-bit Windows. Our servers that run NEMS have large amounts of RAM to accommodate multiple runs and users simultaneously, but a single copy of NEMS may execute on a single-user system with smaller amounts of RAM.
Typically, CPU cores are the largest determinant of run time. We run the integrated NEMS model in two parts simultaneously (in parallel) to speed run time. Many parts of NEMS can take advantage of multiple processor cores. In particular, the models solved using optimization techniques (CMM, EMM, HMM, NGMM, CCATS) benefit from additional processor cores.
One run of all components of the NEMS model, or a cycle, takes about two hours on our servers, but most cases are solved by making a series of cycles. A five-cycle NEMS run takes approximately 11 hours. Runs of some individual parts of NEMS, such as the energy demand models, if run separately, can take only a few minutes. All files of a completed run, input and output, consume approximately 8-10 GiB of storage, but compresses to approx. 6 GiB once the run finishes.
We compile NEMS using a free download of the 23.2.0 release for Intel Fortran Compiler Classic and Intel Fortran Compiler for Windows (2023.2.1). More information is available on the Intel website.
NEMS Fortran functions were compiled using Meson Build. We use Meson Vers. 1.8.0. You can find more information on the Meson website.
We use the Xpress optimizer to solve the LFMM LP and the CCATS LP. We currently use FICO Xpress Vers 9.4.0. To purchase an Xpress license, please refer to FICO's webpage.
We currently use GAMS Vers 47.6.0. Our GAMS implementation uses the Xpress solver mentioned above. We use a development license instead of a run-time license. This allows us to make changes to the linear program matrix during execution of a NEMS run.
AIMMS is used for the CMM; the NGMM; the HMM; and the Electricity Capacity Planning (ECP), the Electricity Fuel Dispatch (EFD), and the Renewable Electricity Storage (REStore) Submodules within the EMM. We use AIMMS version 25.5.7.1 licensed with the CPLEX solver.
(Optional) The S&P Global Macroeconomic Model as implemented with the EViews13 software package.
We currently use the EViews13 standard edition. The S&P Global macro module is executed as a subprocess to NEMS if the macro feedback switch in NEMS is turned on. You can elect to run NEMS without macro feedback, in which case the run uses static macroeconomic inputs taken as is. When the macro feedback switch is on, NEMS will call the macro model by executing EViews using the S&P Global model's work files as the input to EViews. These EViews work files are not included in the EIA archive, but you can obtain them from EIA after licensing the S&P Global model. You must also get a copy of EViews to run the S&P Global model. Contact S&P Global for more information.
You can find required packages and versions in the requirements.txt.
Cygwin is used for various utility functions and scripts in NEMS but is not required.
You can obtain NEMS from our public GitHub repository.
The NEMS code, as distributed here, is governed by specific licenses.
You can direct questions about the NEMS model to EIA-NEMS-GITHUB@eia.gov.
As part of developing each AEO, EIA schedules working group meetings to gather input from various sectors of the industry. You can find more information on the AEO Working Groups webpage.
Contributions to NEMS are governed by specific rules. You can direct questions about the NEMS model to EIA-NEMS-GITHUB@eia.gov.