BASE Function

The BASE function returns the value of a row as it is calculated in the Base Alternative. You write it once in the model builder, and every Strategic Building Block (SBB) and Strategic Alternative (SA) then shows the current Base Alternative figure for that row. It is the easy way to build comparison rows, such as the difference between an alternative and the Base Alternative, without linking or pasting values in each alternative.



BASE function NEW IN 5.3.7

BASE takes a row reference and returns that row's value from the Base Alternative. It looks up the same row, in the same node and on the same sheet type, as the row you reference.

  • In an SBB or SA, BASE returns the value calculated in the Base Alternative.

  • In the Base Alternative itself, BASE returns the referenced row's own value.

The value stays up to date. The Base Alternative is always calculated first, and BASE reads it again on every calculation, so a change in the Base Alternative reaches every SBB and SA when they recalculate.

🔒 BASE is written in Model building, which requires the Superuser permission.


Syntax

You can write the function in two ways. Both give the same result.

=BASE(row_reference)
=ALT(row_reference; "alternative_short_name")
  • row_reference: a reference to a model row or a cell, for example M111 or [Sales]. Offsets and period anchors work the same way as in a plain row reference, for example $M111.

  • alternative_short_name (ALT only): the short name of the Base Alternative in quotes, which is its sheet suffix, for example "b".

When you save, the model builder stores the function as BASE. For example, =ALT(M5; "b") is saved and shown again as =BASE(M5). In the cash flow grid of an alternative, the same row is shown as ALT(M5;"b"), so you can see which alternative the value comes from.

When you type the function directly in a cash flow cell, use the ALT form. See Using ALT directly in the cash flow model.

📌 Note: ALT only accepts the short name of the Base Alternative in this version. Support for other alternatives is planned for a later version.

💡 Info: BASE and ALT are not suggested by the formula autocomplete yet. Type the function name yourself.


Example: cost per ton delta against the Base Alternative

A mill wants to see, in every alternative, how much more or less each ton of production costs compared with the Base Alternative. Without BASE, someone has to link or paste the Base Alternative cost per ton into each SBB and SA, and keep it up to date by hand. With BASE, the comparison is defined once in the Mill block.

The Mill block already has rows for total costs and production. Four rows are added below them:

Row

Name

Expression

20

Total costs (EUR)

Existing row

21

Production (t)

Existing row

22

Cost per ton (EUR/t)

=M20/M21

23

Cost per ton, Base Alternative (EUR/t)

=BASE(M22)

24

Cost per ton delta (EUR/t)

=M22-M23

25

Cost per ton delta (%)

=IF(M23=0; 0; M22/M23-1)

For one year, the rows calculate like this:

Alternative

Total costs (EUR)

Production (t)

Cost per ton

Base Alternative cost per ton

Delta (EUR/t)

Delta (%)

Base Alternative

52,000,000

400,000

130.00

130.00

0.00

0.0 %

SBB: Energy efficiency program

50,400,000

400,000

126.00

130.00

-4.00

-3.1 %

SA: New paper machine

54,600,000

455,000

120.00

130.00

-10.00

-7.7 %

The new paper machine raises total costs, but it also raises production, so each ton becomes 10 EUR cheaper than in the Base Alternative. A negative delta means a lower cost per ton than the Base Alternative.

If the Base Alternative cost per ton changes, for example to 135.00 after updated energy prices, row 23 shows 135.00 in every SBB and SA after recalculation. Nobody has to update the alternatives.

💡 Tip: The IF in row 25 prevents a division by zero. BASE returns 0 when the node does not exist in the Base Alternative, for example a mill that only exists in the SA.


Using BASE inside other functions

BASE works inside other functions that take single values, such as MAX, MIN, AVERAGE, IF, SAFEDIVIDE and IFEMPTY. In these examples, [row1] is 100 in the Base Alternative and 150 in SBB1. The results in SBB1 are:

Formula

Result in SBB1

=MAX(BASE([row1]); [row1])

150

=IF(BASE([row1])>[row1]; 1; 0)

0

=AVERAGE(BASE([row1]); [row1])

125

=BASE([row1])*2+[row1]

350

⚠️ Important: BASE returns a value, not a reference

BASE cannot be used where a function needs a range or a reference. This includes ranges such as SUM(BASE($M111):BASE($AO111)) and the SY/EY functions. These formulas do not calculate.

💡 Tip: To get a total delta over the whole period, create a yearly delta row with BASE first, then sum that row.


Using ALT directly in the cash flow model

You can also type the function straight into a cell of the cash flow model of an SBB or SA, without changing the model builder. In a cash flow cell, use the ALT form with the short name of the Base Alternative:

=ALT(row_reference; "alternative_short_name")

The cell then shows the Base Alternative value of the cell you reference, and follows later changes in the Base Alternative.

  1. Open the SBB or SA, go to Cash flow and select the site.

  2. Select the cell and type the formula, for example =ALT(M22; "b"). Here "b" is the short name of the Base Alternative, which is also the suffix of its sheet name.

  3. Press Enter.

A formula typed in a cash flow cell works like any other manual input:

  • It applies to that cell in that alternative only. The row expression from the model builder is overridden in that cell, and other periods and alternatives are not affected.

  • Use it for a one-off comparison in a single alternative. When the comparison is needed in every alternative, define the row once with BASE in the model builder instead.

📌 Note: A cash flow cell is not checked when you save it. If the formula is wrong, the cell turns red and shows 0. If ALT names another alternative, an alert shows the formula followed by the reason, for example ALT(M6;"sa1")[ALT can only reference the Base Alternative ("b")].


Where you can use BASE

  • Capex Strategy models only. In a Capex Management model, the model builder rejects BASE and ALT when you save. In the cash flow data of a Capex Management request, an ALT formula shows as a red cell with 0.

  • Row expressions in the model builder, written as BASE or ALT.

  • Cells in the cash flow model of an SBB or SA, written as ALT.

  • Wherever a row reference is accepted, including inside other functions and with offsets and period anchors.


Validation messages

The model builder checks BASE and ALT when you save. If a rule is broken, the save is rejected and one of these messages is shown.

Message

Cause

BASE/ALT can only be used in Capex Strategy models

The function is used in a Capex Management model. If several rules are broken, this message is shown first.

ALT can only reference the Base Alternative ("b")

ALT names another alternative. The message shows the actual short name of your Base Alternative.

BASE/ALT must reference a model row or a cell, not a plain value or expression

The argument is a number or an expression, for example BASE(5).

The reference to self is not allowed

The function points at its own row, which would be a circular reference.

Function=..., has ... arguments than allowed ...

The wrong number of arguments, for example BASE() or BASE(a;b).

Function=..., ... argument must be of type ...

The second argument of ALT is not text in quotes.


How BASE behaves in special cases

Situation

Result

The row or node does not exist in the Base Alternative, for example a site that exists only in the SBB

BASE returns 0 and the formula calculates as usual. No error is shown.

The reference resolves to several rows, for example in a replicable block

The Base Alternative values of those rows are summed.

The current alternative has sensitivity settings

Sensitivities of the current alternative do not apply to the Base Alternative value.

A user enters a manual value in a cell of a BASE row

The manual value overrides the function in that alternative only. The Base Alternative and other alternatives keep using BASE.


Excel export

BASE is exported the same way as an existing Link to Base Alternative:

  • If the Base Alternative sheet is included in the export, the cell contains a reference to that sheet.

  • If the Base Alternative sheet is not included, the cell contains the value.

  • In an export of the Base Alternative, the cell contains a reference to the referenced row on the same sheet.

Excel has no BASE or ALT function, so neither is written to the file.

📌 Note: Exported values show the Base Alternative as it was at the time of export. If the Base Alternative changes later, the export does not update.

👉 Learn more about exporting the cash flow model


BASE compared with Link to Base Alternative

BASE function

Link to Base Alternative

Set up in

The model builder, once per row

The cash flow or External Data grid, per alternative and cell range

Applies to

Every SBB and SA using the model

The alternative where you create the link

Available in the Base Alternative

Yes, it returns the row's own value

No

Row it reads

Any row you reference

Always the same row

👉 Learn more about referencing another sheet in the model builder

👉 Learn more about model functions