# Modelling

## Project

Projects are used to organize your resources, such as formulas and parameter tables.

## Formula

Formulas are mathematical expressions defined with the Formulative language.

## Table (parameter table)

A parameter table is a collection of predefined values. You can refer these values in formulas.

As the tables will be referenced in formulas by their names, they may only contain lower and upper case letters to comply with the language syntax. Column names are also restricted for the same reason, they must match one of the following mathematical domains. More details in the task below.

Use cases:

• Sometimes it’s easier to represent relations as tables instead of formulas.
• If you already have a precalculated set of data you can import it as a parameter table.
See it in action:

## Workbook

When you are working on your model and you want to check whether the formulas and parameter tables actually work, you can create quick tests in a workbook.

See it in action:

## Module

By default all formulas and parameter tables are created in a module. If the module gets too big, you may organize its contents into other modules.

### Module imports

Later in the workflow you will need to specify the list of modules to be imported for every test and calculation. The order of modules is important because when multiple definitions of the same variable are imported only the last definition will be used.

For example we have three modules with the following formulas:

• Module A: $\mathit{a}=\mathrm{1}$, $\mathit{b}=\mathrm{2}\mathit{a}$
• Module B: $\mathit{a}=\mathrm{2}$
• Module C: $\mathit{a}=\mathrm{3}$

If a calculation imports them in this order:

1. Module A
2. Module B
3. Module C

Then only the following formulas will be used for evaluation:

• $\mathit{b}=\mathrm{2}\mathit{a}$
• $\mathit{a}=\mathrm{2}$
Variable definitions – only the last definition counts
Modules in order definition of $\mathit{a}$ definition of $\mathit{b}$
Module A $\mathit{a}=\mathrm{1}$ $\mathit{b}=\mathrm{2}\mathit{a}$
Module B $\mathit{a}=\mathrm{3}$
Module C $\mathit{a}=\mathrm{2}$

Note

Technically module imports are not set for every calculation, instead we package calculations in groups and the module imports must be defined for a whole calculation group that will be applied to all its calculation. The same principle applies to test plans – they are grouped in test suites and module imports must be set for a test suite.

See it in action:

## Documentation

You may want to add notes to your resources or explain your model to others. The model may be documented in our extended markdown format. From these we assemble a complete documentation of your model which can be downloaded as a pdf file.

See it in action:

## Project sharing

As an individual user you can share your projects with others. What they can do with your project is determined by the project access role you assign them. You may choose from Master, Editor and Viewer roles. The following table demonstrates what actions are permitted for these roles.

permission Owner Master Editor Viewer
Can view the project
Can edit the project
Can share the project
Can manage client application access
Can deploy the project
Can delete the project
Can manage project settings
Can duplicate the project
See it in action:

### Accessing projects in organizations

Projects of organizations cannot be shared with users outside the organization. Organization members’ project access roles differ from the ones available for individual users.