The term calculation engine cannot be defined by a particular application; it is something general. In its most general meaning, calculation engine is a software used for computing chain of functions (or formulas) considering the dependencies among input and output parameters.
For example, consider the formulas below:
1) c = f1(a, b)
2) e = f2(c, d)
The parameter c depends on other parameters a and b. That is, if values of a or b is updated, c needs to be updated as well by executing the function f1.
Similarly, e depends on c and d. Because c depends on a and b, e depends indirectly on a and b as well. These relations can be visualized with a dependency tree as shown at the left.
Excel is -among other things- a typical calculation engine; you can build dependency trees by combining parameters with formulas in excel sheets.
You have three options in an excel sheet to define the dependencies between input and output parameters:
- By writing formulas like c = a + b
- By selecting a standard function from the library, like e = MAX(c, d)
- By writing your own customized calculation logic by using the available programming constructs like if-else statements and for/while loops.
Similarly, a real calculation engine must have following features:
- It must be able to fetch input data from a data store, make some calculations on them, and write the results back to a data store, with acceptable performance.
- It must be fully configurable by the user. Configuration can be done either by setting parameters, or by combining (i.e. chaining) the functions available in the library. Users must also be able to write their own (user-defined) functions, like the third option of excel above.
- It must significantly reduce implementation time and complexity compared to classical database programming for the same tasks.
Calculation engines can be used in many applications including financial planning, fee and commission calculations in financial services, cause-effect or povider-distributor networks, data preparation for reporting.
Considering the parameter types, there can be different kinds of calculation engines. Some work with scalar parameters, some with matrices and vectors, some with table parameters.
References and recommended readings:
What is a calculation engine based on table functions?
What is a calculation engine (video)
Implementing an Excel-like formula engine