# Branch Level Permissions

This article explains **branch level permissions** in Model Reef.

You will learn:

* How to restrict access to specific branches.
* How branch level permissions cascade to child branches.
* How branch level access interacts with roles and collaboration tools.

Branch level permissions are essential when multiple teams or external parties only need access to part of a model.

{% stepper %}
{% step %}

### How branch level permissions work

Branch level permissions are applied to a specific branch in the model's tree.

Rules:

* Access flows **downwards**.
  * If a user has access to a branch, they also have access to all of its children.
* Access does **not** flow upwards.
  * Access to a child branch does not grant access to the parent or siblings.
* You can assign **Editor** or **Viewer** roles at branch level.
  * Owners are generally granted at model level.

Branch level access can be applied to multiple branches for the same user if needed.
{% endstep %}

{% step %}

### Typical use cases

Branch level permissions are useful for:

* **Multi entity groups**
  * Give each entity owner access only to their own entity branch.
  * Keep group consolidation visible only to central finance or head office.
* **Divisional or regional teams**
  * Allow each division to maintain its own branch while keeping the group consolidated model in one place.
* **External stakeholders**
  * Share only the relevant project or business unit branch with external partners, lenders or advisors.

This allows granular collaboration without duplicating models.
{% endstep %}

{% step %}

### What branch level Editors and Viewers can see

Within their assigned branches, users experience the model as if it only contained that subtree:

* **Editors** can create and edit variables, drivers, notes, tags and attachments in that subtree.
* **Viewers** can see variables, outputs and collaboration artefacts but cannot change them.
* Both see statements and dashboards filtered to their subtree.

They do not see branches they have no access to, even if those branches exist in the full model.
{% endstep %}

{% step %}

### Interactions with model level roles

If a user has both:

* Model level role, and
* Branch level role,

the more permissive access applies:

* Model level Owner overrides any branch level limits.
* Model level Editor can still edit the whole model.
* Branch level roles matter only when model level access is not granted.

As a result:

* Use model level roles for trusted internal team.
* Use branch level roles when you need isolation and limited visibility.
  {% endstep %}
  {% endstepper %}

***

## Related articles

* [Customer-Level Revenue Modelling](/use-cases/wholesale-distribution-and-b2b-trade/customer-level-revenue-modelling.md)
* [Core Modelling](/how-tos/core-modelling.md)
* [PDF Import Overview](/help/importing-and-data-inputs/pdf-import-overview.md)
* [Multi-Branch Driver Behaviour](/syntax/drivers-syntax/multi-branch-driver-behaviour.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.modelreef.io/help/permissions-and-collaboration/branch-level-permissions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
