MESSAGEix
A versatile, dynamic systems-optimization modeling framework developed by the IIASA Energy, Climate, and Environment (ECE) Program since the 1980s.
https://github.com/iiasa/message_ix
Category: Climate Change
Sub Category: Integrated Assessment and Climate Policy
Keywords
energy-system gams integrated-assessment integrated-assessment-model open-source strategic-planning
Keywords from Contributors
data-warehouse modeling-tool energy-systems iamc-format integrated-assessment-scenarios macro-energy scenario-data timeseries-format energy-system-modelling optimisation
Last synced: 1 day ago
JSON representation
Repository metadata
The integrated assessment and energy systems model MESSAGEix
- Host: GitHub
- URL: https://github.com/iiasa/message_ix
- Owner: iiasa
- License: apache-2.0
- Created: 2017-12-04T08:29:06.000Z (about 8 years ago)
- Default Branch: main
- Last Pushed: 2025-10-27T09:45:13.000Z (about 2 months ago)
- Last Synced: 2025-10-29T08:14:11.084Z (about 2 months ago)
- Topics: energy-system, gams, integrated-assessment, integrated-assessment-model, open-source, strategic-planning
- Language: Jupyter Notebook
- Homepage: https://docs.messageix.org
- Size: 13.9 MB
- Stars: 138
- Watchers: 14
- Forks: 166
- Open Issues: 134
- Releases: 19
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Citation: CITATION.cff
- Security: .github/SECURITY.md
- Support: SUPPORT.md
- Governance: GOVERNANCE.md
- Authors: AUTHORS.md
README.md
The MESSAGEix framework
MESSAGEix is a versatile, dynamic, model framework for energy-engineering-economy-environment (E4) systems research.
MESSAGE (without “…ix”) is a specific formulation of a generic linear programming (LP) optimization model for strategic energy planning and integrated assessment of E4 systems, developed by the IIASA Energy, Climate, and Environment (ECE) Program since the 1980s.
To incorporate feedback between prices and demand levels for energy and commodities, the LP model can optionally be linked to the economic general equilibrium (GE) MACRO model.
The message_ix Python package—also fully usable from R—includes:
- Implementations of MESSAGE, MACRO, and their linkage, in GAMS,
- Application programming interfaces (APIs) and tools for model building and scientific programming,
- Extensive documentation and a complete test suite.
The framework is built on IIASA's ix modeling platform (ixmp), which provides data warehouse features for numerical scenario analysis.
Documentation
Complete documentation of the framework is available at https://docs.messageix.org.
This includes:
- Installation and recommended pre-requisite learning.
See ‘Getting started’, or the fileINSTALL.rst. - Tutorials that introduce and demonstrate core features of the model framework using simple, single-country models, for both independent and classroom learning.
See ‘Tutorials’ or the filetutorial/README.rst. - The Python and R APIs.
- The complete mathematical formulation of MESSAGE and MACRO, created automatically from inline comments in the GAMS source code.
- How to cite MESSAGEix when using it in published scientific work.
See ‘User guidelines and notice’ or the fileNOTICE.rst.
Other forms of documentation:
- The online documentation is built automatically from the contents of the
message_ixGitHub repository. - Documentation for the ‘latest’ or ‘stable’ release is shown by default.
- Use the chooser to access the ‘latest’ version, corresponding to the
mainbranch and including the latest development code; or to access docs for a specific release, e.g.v3.2.0. - For offline use, the documentation can be built from the source code.
See the filedoc/README.rst
Commitment to our Community
- We aim to create a community that is welcoming to everyone.
Please respect our Code of Conduct at all times when interacting withmessage_ixand the community. - We warmly welcome all contributions to our community. Please take a look at our guidelines for contributing to development.
- If you are looking to understand how the
message_ixteam operates and how we decide what to do with your contributions, please read our governance guidelines. - We highly value code security.
To learn more about our security practice and advice, please visit our security policy. - We strive to entertain a welcoming and inclusive community.
If you struggle to usemessage_ix, please check our guidelines for getting support. - We also:
- Host an annual MESSAGEix Community Meeting.
- Publish, at least once per year, a community newsletter.
You are cordially invited to subscribe by filling this form and ticking the box for “MESSAGEix Community”.
License
Copyright © 2018–2025 IIASA Energy, Climate, and Environment (ECE) Program
The MESSAGEix framework is licensed under the Apache License, Version 2.0 (the "License"); you may not use the files in this repository except in compliance with the License. You may obtain a copy of the License in LICENSE or at http://www.apache.org/licenses/LICENSE-2.0.
In addition and per good scientific practice, you must cite the appropriate publications when you use MESSAGEix in scientific work.
Again, see ‘User guidelines and notice’ or the file NOTICE.rst.
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: MESSAGEix
message: >-
Thank you for using the MESSAGEix framework! Please cite
the GitHub repository and the MESSAGEix framework manuscript
(https://doi.org/10.1016/j.envsoft.2018.11.012).
type: software
version: 3.11.1
date-released: "2025-06-03" # Format: "yyyy-mm-dd"
authors:
- given-names: Paul Natsuo
family-names: Kishimoto
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-8578-753X"
- given-names: Fridolin
family-names: Glatter
affiliation: IIASA
orcid: "https://orcid.org/0009-0007-9452-2473"
- given-names: Maik
family-names: Budzinski
affiliation: Aalborg University
orcid: "https://orcid.org/0000-0003-2879-1193"
- given-names: Miguel Poblete
family-names: Cazenave
affiliation: IIASA
orcid: "https://orcid.org/0000-0001-8280-910X"
- given-names: Oliver
family-names: Fricko
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-6835-9883"
- given-names: Matthew J.
family-names: Gidden
orcid: "https://orcid.org/0000-0003-0687-414X"
- given-names: Daniel
family-names: Huppmann
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-7729-7389"
- given-names: Jarmo S.
family-names: Kikstra
affiliation: IIASA
orcid: "https://orcid.org/0000-0001-9405-1228"
- given-names: Peter
family-names: Kolp
orcid: "https://orcid.org/0000-0003-0122-2839"
- given-names: Diamantis
family-names: Koutsandreas
orcid: "https://orcid.org/0000-0003-4683-090X"
- given-names: Volker
family-names: Krey
affiliation: IIASA
orcid: "https://orcid.org/0000-0003-0307-3515"
- given-names: Nikolay
family-names: Kushin
- given-names: Francesco
family-names: Lovat
orcid: "https://orcid.org/0000-0002-4331-980X"
- given-names: Marek
family-names: Makowski
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-6107-0972"
- given-names: Alessio
family-names: Mastrucci
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-5611-7780"
- given-names: Measrainsey
family-names: Meng
orcid: "https://orcid.org/0000-0003-2783-2029"
- given-names: Jihoon
family-names: Min
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-0020-1174"
- given-names: Clara
family-names: Orthofer
orcid: "https://orcid.org/0000-0002-7049-7791"
- given-names: Michael
family-names: Pimmer
- given-names: Jan
family-names: Steinhauser
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-5989-6855"
- given-names: Gamze
family-names: Ünlü
affiliation: IIASA
orcid: "https://orcid.org/0000-0003-0080-7122"
- given-names: Adriano
family-names: Vinca
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-3051-178X"
- given-names: Laura
family-names: Wienpahl
orcid: "https://orcid.org/0000-0003-2049-8531"
- given-names: Behnam
family-names: Zakeri
affiliation: IIASA
orcid: "https://orcid.org/0000-0001-9647-2878"
- given-names: Thomas
family-names: Zipperle
orcid: "https://orcid.org/0000-0003-2512-9508"
identifiers:
- type: url
value: "https://github.com/iiasa/message_ix"
description: "Main repository of the MESSAGEix framework on Github"
- type: doi
value: 10.5281/zenodo.4005684
description: "Zenodo entry"
repository-code: "https://github.com/iiasa/message_ix"
url: "https://docs.messageix.org/en/stable/index.html"
abstract: >-
MESSAGEix is a versatile, dynamic, model framework for
energy-engineering-economy-environment (E4) systems
research.
MESSAGE (without “…ix”) is a specific formulation of a
generic linear programming (LP) optimization model for
strategic energy planning and integrated assessment of E4
systems, developed by the IIASA Energy, Climate, and
Environment (ECE) Program since the 1980s. To incorporate
feedback between prices and demand levels for energy and
commodities, the LP model can optionally be linked to the
economic general equilibrium (GE) MACRO model.
The message_ix Python package—also fully usable from
R—includes:
Implementations of MESSAGE, MACRO, and their linkage, in GAMS,
Application programming interfaces (APIs) and tools for model building and scientific programming,
Extensive documentation and a complete test suite.
The framework is built on IIASA's ix modeling platform
(ixmp), which provides data warehouse features for
high-powered numerical scenario analysis.
keywords:
- "integrated assessment"
- "energy systems"
- "macro-energy"
- modelling
- "scenario analysis"
- "data visualisation"
- "Python package"
license: Apache-2.0
doi: 10.5281/zenodo.4005684
references:
- title: "The MESSAGEix Integrated Assessment Model and the ix modeling platform (ixmp): An open framework for integrated and cross-cutting analysis of energy, climate, the environment, and sustainable development"
journal: "Environmental Modelling & Software"
year: 2019
authors:
- given-names: Daniel
family-names: Huppmann
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-7729-7389"
- given-names: Matthew J.
family-names: Gidden
affiliation: IIASA
orcid: "https://orcid.org/0000-0003-0687-414X"
- given-names: Oliver
family-names: Fricko
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-6835-9883"
- given-names: Peter
family-names: Kolp
orcid: "https://orcid.org/0000-0003-0122-2839"
- given-names: Clara
family-names: Orthofer
orcid: "https://orcid.org/0000-0002-7049-7791"
- given-names: Michael
family-names: Pimmer
- given-names: Nikolay
family-names: Kushin
- given-names: Adriano
family-names: Vinca
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-3051-178X"
- given-names: Alessio
family-names: Mastrucci
affiliation: IIASA
orcid: "https://orcid.org/0000-0002-5611-7780"
- given-names: Keywan
family-names: Riahi
affiliation: IIASA
orcid: "https://orcid.org/0000-0001-7193-3498"
- given-names: Volker
family-names: Krey
affiliation: IIASA
orcid: "https://orcid.org/0000-0003-0307-3515"
doi: "10.1016/j.envsoft.2018.11.012"
url: "pure.iiasa.ac.at/15157/"
volume: 112
month: 2
start: 143
end: 156
type: article
Owner metadata
- Name: IIASA
- Login: iiasa
- Email: github-owners@iiasa.ac.at
- Kind: organization
- Description: International Institute for Applied Systems Analysis
- Website: https://www.iiasa.ac.at
- Location: Laxenburg, Austria
- Twitter: IIASAVienna
- Company:
- Icon url: https://avatars.githubusercontent.com/u/15230149?v=4
- Repositories: 128
- Last ynced at: 2024-04-16T01:17:07.573Z
- Profile URL: https://github.com/iiasa
GitHub Events
Total
- Create event: 58
- Release event: 2
- Issues event: 38
- Watch event: 19
- Delete event: 41
- Issue comment event: 233
- Push event: 214
- Pull request review comment event: 28
- Pull request review event: 55
- Pull request event: 101
- Fork event: 15
Last Year
- Create event: 58
- Release event: 2
- Issues event: 37
- Watch event: 18
- Delete event: 41
- Issue comment event: 230
- Push event: 214
- Pull request review comment event: 28
- Pull request review event: 55
- Pull request event: 101
- Fork event: 15
Committers metadata
Last synced: about 2 months ago
Total Commits: 1,797
Total Committers: 30
Avg Commits per committer: 59.9
Development Distribution Score (DDS): 0.487
Commits in past year: 267
Committers in past year: 13
Avg Commits per committer in past year: 20.538
Development Distribution Score (DDS) in past year: 0.419
| Name | Commits | |
|---|---|---|
| Paul Natsuo Kishimoto | m****l@p****e | 922 |
| Fridolin Glatter | g****r@i****t | 220 |
| Laura Wienpahl | 5****n | 130 |
| Ben | b****i@l****m | 121 |
| Francesco Lovat | f****t@g****m | 102 |
| FRICKO Oliver | f****o@i****t | 72 |
| Matthew Gidden | m****n@g****m | 48 |
| dependabot[bot] | 4****] | 34 |
| Marek Makowski | m****k@i****t | 28 |
| GamzeUnlu95 | g****6@g****m | 23 |
| Unknown | k****y@i****t | 23 |
| Daniel Huppmann | dh@d****t | 23 |
| adrivinca | a****a@y****t | 12 |
| MiguelPobleteCazenave | p****e@i****t | 6 |
| Jihoon | g****s@g****m | 6 |
| behnam2015 | 3****5 | 4 |
| Jarmo Kikstra | 4****a | 4 |
| Measrainsey Meng | m****y@p****e | 3 |
| Clara | c****r@t****e | 2 |
| Florian Maczek | m****k@i****t | 2 |
| Thomas Zipperle | t****e | 2 |
| tyler-lc | l****a@g****m | 2 |
| JU Yiyi | j****i@i****t | 1 |
| Maik Budzinski | 5****z | 1 |
| Nikolay Kushin | z****h@g****m | 1 |
| Peter Kolp | p****p | 1 |
| amastrucci | m****c@i****t | 1 |
| daymontas1 | 5****1 | 1 |
| fonfon | b****b@f****t | 1 |
| lumbric | l****c@g****m | 1 |
Committer domains:
- iiasa.ac.at: 8
- fonfon.at: 1
- tum.de: 1
- pm.me: 1
- yahoo.it: 1
- dergelbesalon.at: 1
- paul.kishimoto.name: 1
Issue and Pull Request metadata
Last synced: about 2 months ago
Total issues: 353
Total pull requests: 613
Average time to close issues: 9 months
Average time to close pull requests: about 1 month
Total issue authors: 61
Total pull request authors: 33
Average comments per issue: 2.34
Average comments per pull request: 3.04
Merged pull request: 435
Bot issues: 0
Bot pull requests: 56
Past year issues: 23
Past year pull requests: 115
Past year average time to close issues: 21 days
Past year average time to close pull requests: 9 days
Past year issue authors: 7
Past year pull request authors: 8
Past year average comments per issue: 0.83
Past year average comments per pull request: 2.34
Past year merged pull request: 79
Past year bot issues: 0
Past year bot pull requests: 24
Top Issue Authors
- khaeru (59)
- OFR-IIASA (47)
- LauWien (25)
- gidden (23)
- glatterf42 (21)
- behnam-zakeri (19)
- ClaraLuisa (13)
- danielhuppmann (12)
- volker-krey (12)
- PelinaP (8)
- meng25meng (8)
- zsalimian (8)
- DIUANA (7)
- Jihoon (7)
- aaronliuqy (6)
Top Pull Request Authors
- khaeru (158)
- glatterf42 (97)
- gidden (75)
- dependabot[bot] (56)
- OFR-IIASA (47)
- behnam-zakeri (30)
- LauWien (30)
- danielhuppmann (22)
- ywpratama (14)
- volker-krey (13)
- ClaraLuisa (12)
- francescolovat (11)
- macflo8 (7)
- adrivinca (5)
- GamzeUnlu95 (5)
Top Issue Labels
- docs (66)
- enh (63)
- bug (46)
- ci (31)
- macro (16)
- gams (15)
- discuss (15)
- question (15)
- good first issue (14)
- help wanted (14)
- awaiting info (13)
- timeslice (13)
- reporting (9)
- duplicate (5)
- invalid (3)
- R (2)
- dependencies (2)
- tutorials (2)
Top Pull Request Labels
- ci (121)
- docs (110)
- enh (93)
- dependencies (61)
- bug (48)
- reporting (25)
- python (19)
- timeslice (11)
- macro (11)
- safe to test (10)
- gams (8)
- tutorials (7)
- IXMP4Backend (5)
- discuss (3)
- p:Spigot (2)
- R (1)
- awaiting info (1)
Package metadata
- Total packages: 3
-
Total downloads:
- pypi: 2,470 last-month
- Total dependent packages: 1 (may contain duplicates)
- Total dependent repositories: 2 (may contain duplicates)
- Total versions: 51
- Total maintainers: 3
proxy.golang.org: github.com/iiasa/message_ix
- Homepage:
- Documentation: https://pkg.go.dev/github.com/iiasa/message_ix#section-documentation
- Licenses: apache-2.0
- Latest release: v3.11.1+incompatible (published 7 months ago)
- Last Synced: 2025-10-29T20:06:47.857Z (about 2 months ago)
- Versions: 19
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.395%
- Average: 5.576%
- Dependent repos count: 5.758%
pypi.org: message-ix
The MESSAGEix integrated assessment model framework
- Homepage:
- Documentation: https://docs.messageix.org
- Licenses: apache-2.0
- Latest release: 3.11.1 (published 7 months ago)
- Last Synced: 2025-10-29T20:06:47.175Z (about 2 months ago)
- Versions: 22
- Dependent Packages: 1
- Dependent Repositories: 1
- Downloads: 2,470 Last month
-
Rankings:
- Dependent packages count: 4.746%
- Average: 13.597%
- Downloads: 14.409%
- Dependent repos count: 21.634%
- Maintainers (3)
conda-forge.org: message-ix
- Homepage: https://github.com/iiasa/message_ix
- Licenses: Apache-2.0
- Latest release: 3.6.0 (published over 3 years ago)
- Last Synced: 2025-10-01T07:56:25.146Z (3 months ago)
- Versions: 10
- Dependent Packages: 0
- Dependent Repositories: 1
-
Rankings:
- Forks count: 15.623%
- Dependent repos count: 24.103%
- Average: 31.441%
- Stargazers count: 34.5%
- Dependent packages count: 51.54%
Dependencies
- ixmp main
- actions/cache v3 composite
- iiasa/actions/setup-conda main composite
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- iiasa/actions/setup-gams main composite
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v3 composite
- iiasa/actions/setup-gams main composite
- r-lib/actions/setup-r v2 composite
- styfle/cancel-workflow-action 0.11.0 composite
- ts-graphviz/setup-graphviz v1.2.0 composite
- ${base_image} latest build
- gitpython ==3.1.34
- numpydoc ==1.5.0
- sphinx ==6.2.1
- sphinx-rtd-theme ==1.2.2
- sphinxcontrib-bibtex ==2.5.0
- alabaster ==0.7.13
- babel ==2.12.1
- certifi ==2023.7.22
- charset-normalizer ==3.2.0
- docutils ==0.18.1
- gitdb ==4.0.10
- gitpython ==3.1.34
- idna ==3.4
- imagesize ==1.4.1
- jinja2 ==3.1.2
- latexcodec ==2.0.1
- markupsafe ==2.1.3
- numpydoc ==1.5.0
- packaging ==23.1
- pybtex ==0.24.0
- pybtex-docutils ==1.0.2
- pygments ==2.16.1
- pyyaml ==6.0.1
- requests ==2.31.0
- six ==1.16.0
- smmap ==5.0.0
- snowballstemmer ==2.2.0
- sphinx ==6.2.1
- sphinx-rtd-theme ==1.2.2
- sphinxcontrib-applehelp ==1.0.4
- sphinxcontrib-bibtex ==2.5.0
- sphinxcontrib-devhelp ==1.0.2
- sphinxcontrib-htmlhelp ==2.0.1
- sphinxcontrib-jquery ==4.1
- sphinxcontrib-jsmath ==1.0.1
- sphinxcontrib-qthelp ==1.0.3
- sphinxcontrib-serializinghtml ==1.1.5
- urllib3 ==2.0.4
- PyYAML *
- click *
- genno [pyam] >= 1.18.1
- ixmp >= 3.7.0
- numpy *
- pandas >= 1.2
- scipy *
Score: 16.82139908176264