Branch hierarchy
A layered structure of branch, region and head office. A regional manager sees the branches beneath them and a branch manager sees only their own. How many layers there are depends on the business.
Most systems crack when the second branch opens. Each site starts keeping its own records, head office asks for files to add them up, and at month end the totals never agree.
The answer is not to separate the branches but to separate them by scope inside one system. Everyone writes to the same place, and everyone sees only their own scope.
Talk to us about thisA layered structure of branch, region and head office. A regional manager sees the branches beneath them and a branch manager sees only their own. How many layers there are depends on the business.
Which branch a user can see is derived from their session rather than from the request. In a system that trusts a branch id sent by the client, changing the address in the browser reads another branch data.
Revenue, stock and staff performance are held per branch. Comparison is what head office uses most, because a dip at one site only becomes visible next to the others.
Some data such as the product catalogue comes from the centre, while price and stock belong to the branch. Which is defined where gets decided at the start, because separating them later is hard.
A new branch opens without a code change. The data of a closed branch is archived rather than deleted, because historic reports still read from it.
Every query is bounded by scope, applied from one place. Writing that check into each query by hand means one forgotten query opens every branch to every other.
The structure is the same, the boundary is just harder. A franchisee sees their own data, head office sees the total, and franchisees see nothing of each other. What matters here is testing it, meaning opening two accounts and asking for the records of one while signed in as the other. We do not assume that, we try it.
They can. The decision is which fields are locked centrally. Usually the product definition sits at the centre while price and stock sit with the branch. Leaving everything to the branches makes the catalogue drift apart over time.
That is a data decision rather than a permissions one. Revenue and stock are normally open to the centre. For staff records and customer contact details the necessity is worth questioning, because a system where everyone sees everything does the widest damage on the day something leaks.
The limit is set by data volume rather than branch count. If the structure was built with scope from the start, adding a branch is a definition change. Adding scope afterwards means reviewing every query one by one, and that is where the real cost sits.
This page covers one topic. The full scope and pricing live on the related service page.
We move sites weighed down by WordPress and Elementor to a static build without touching the design. The plugin stack and the update burden disappear.
A slow site loses visitors before it appears. We measure and cut image, font and JavaScript weight. Fast is a measurement, not a feeling.
Sites that work with a screen reader, with a keyboard and with low vision. Accessibility is both a legal requirement and a way to stop losing visitors.