Multi-Branch Driver Behaviour

This article explains multi branch driver behaviour in Model Reef.

You will learn:

  • How drivers relate to branches.

  • How to reuse a driver across multiple branches.

  • How branch specific behaviour is achieved when needed.

Drivers are global to a model, while variables are branch specific.

1

Drivers are model wide

A single driver can be used by variables in many branches:

  • The driver series is stored once in the model.

  • Any variable in any branch can reference it in presets or formulas.

  • Changing the driver updates all those variables at once.

This is ideal for assumptions that should be consistent across entities or divisions, such as inflation or FX.

2

Variables are branch specific

Variables belong to a single branch. When they use a driver:

  • They apply the driver within the context of that branch's assumptions.

  • Their P&L, Balance Sheet and Cashflow effects appear only in that branch and its parent branches.

The driver itself does not know about branches. It is the variable that connects the driver to a branch.

3

Shared assumptions versus branch specific tweaks

You can combine:

  • Shared drivers used across the whole model.

  • Additional branch specific variables or modifiers that sit on top.

Example:

  • A global inflation driver used everywhere.

  • Branch specific cost adjustment variables that apply only to certain entities.

This keeps common logic central while still allowing local variation.

4

When you need branch specific drivers

Sometimes a driver should differ by branch, for example:

  • Region specific prices.

  • Country specific tax related drivers.

  • Store specific conversion rates.

In these cases you can either:

  • Create separate drivers per branch.

  • Or create branch specific variables that derive from a global driver and then adjust it.

Choose the pattern that keeps the model easiest to understand.

5

Permissions and driver visibility

Drivers are model level objects, but branch level permissions may affect how they are used:

  • Users with limited branch access can still see and use shared drivers where allowed by the interface.

  • They cannot see or edit variables in branches they do not have access to, even if those variables use the same drivers.

Owners should design driver structures with team permissions in mind.


Last updated