What is modelx?

modelx is an open-source calcultaion 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 versitile as spreadsheets, and is equipped with rich features like formula dependency tracing. modelx is as elegant as Python, and it embodies object-oriented mechanisims, 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 spacifications are subject to changes.


Features

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>>

Object-oriented

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 mechanisims common in Object-oriented programming (OOP). Read More>>

Parameterization

You can apply the same set of calculations to multiple data sets associatd with parameters. This can be achieved by parametrizing 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 pupulate 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>>