What is modelx?

modelx is an open-source calculation tool. With modelx, you can build object-oriented numerical models, such as actuarial or financial models, just by creating model components and writing formulas in Python. modelx is as versatile as spreadsheets, and is equipped with rich features like formula dependency tracing. modelx is as elegant as Python, and it embodies object-oriented mechanisms, such as composition and inheritance. See features for more details.

modelx is used by lifelib, an open-source library of life actuarial models.

modelx is in its active development stage, and its specifications are subject to changes.



No programming

modelx enables you to build models just by writing formulas like you do on spreadsheets. modelx automatically resolves calculation order from formula dependency, so no need to write scripts to run your models. Read More>>

Readable formulas

Define formulas by writing Python functions and assign them to Cells. Formulas are evaluated when they are called for the first time. Lambda expression is also supported. Read More>>


modelx is object-oriented, which means you create, access or make changes to objects, such as models, spaces and cells. modelx features composition and inheritance mechanisms common in Object-oriented programming (OOP). Read More>>


You can apply the same set of calculations to multiple data sets associated with parameters. This can be achieved by parameterizing spaces. Read More>>

Dependency tracing

Dependency tracing is an essential feature for checking and validating models. You can check what other values each calculated value is using, and also what other values it is used by. Read More>>

Excel Interface

Excel files are great for storing data of relatively small sizes. You can create new spaces and populate new cells in the space with data from Excel files. Read More>>

GUI as Spyder plugin

Spyder is a popular open-source Python IDE. Spyder plugin for modelx adds custom IPython consoles and GUI widgets to use modelx with Spyder more intuitively. Read More>>

Version control

modelx models can be saved as text files written in Python syntax, which means you can take full advantage of modern version control systems, such as Git. Read More>>

Document integration

Document model components, such as spaces and cells by their docstrings within their definitions, render the docstrings nicely by Sphinx, a documentation generator, into html, pdf or other formats. No need to maintain a separate model document. Read More>>