Skip to content

Rebasing

Rebasing is the process of replacing part of a projected time series with values recalculated from a later point in the projection.

In actuarial models, this is often used when a calculation needs to restart from a selected time step using information that is only known after the original projection path has been calculated. The model first calculates a source variable, then uses a rebase index to copy selected source values into a destination variable over one or more future periods.

The destination variable can then be used by downstream formulas as if those copied values were ordinary projection results. This keeps the audit trail explicit: one variable contains the original calculated values, another variable contains the rebased values, and the index variable records the step used for the rebase.

Use cases for rebasing

Use rebasing when a projection needs an explicit second pass over values that were calculated during the first pass. Common examples include:

  • Resetting reserves or balances after a trigger date. A source variable calculates the reserve path, and a destination variable stores the values copied from selected rebase steps.
  • Rolling-forward a scenario from selected time steps. The model can calculate a scenario path, choose specific rebasing indices, and expose the rebased path to downstream formulas.
  • Combining iterative calculations with a post-loop adjustment. Rebasing can be repeated inside looped calculations, so each loop iteration receives its own rebased destination values.
  • Keeping original and adjusted values side by side. The original source variable remains available, while the destination variable records the rebased result used by later calculations.

The two functions used to define a rebase operation are:

  • rebaseIndex, which identifies the scalar index variable and the time steps at which rebasing occurs.
  • rebaseValue, which identifies each source variable and destination variable pair.

Defining a rebase operation

In Autory, a rebase operation is defined by an index (a scalar variable) and one or more source-destination pairs (time vector variables):

The rebasing algorithm

Rebasing occurs withing a projection node.

When performing iterative calculations, the entire rebase operation is repeated for each iteration in the projection node.

The rebase operation proceeds as follows:

  • For every rebase step (defined by the indices argument of the rebaseIndex function):
    • Set the index variable to the value of the rebase index for that step.
    • Re-calculate everything that depends on the index variable.
    • For each source-destination pair of variables (each defined by an instance of the rebaseValue function):
      • For each time steps from the current rebase index to the time step just before the next rebase index (or the last time step of the projection node if this is the last rebase step):
        • Copy the results from the source variable to the destination variable.
  • Set the index to the value of the indexAfterRebase argument of the rebaseIndex function.
  • Re-calculate everything that depends on the index variable or destination variables.