Solution

Run every branch from one console — and let each branch run itself

Multi-branch is not a report filter. Every record carries a branch, roles are granted per branch, and modules can be bought per branch — so a location can differ without forking the platform.

What you get

  • Branch-scoped data

    Every record belongs to an organisation and a branch, enforced server-side.

  • Per-branch entitlements

    Each location enables the modules it actually uses, and is priced for them.

  • Central catalogue

    Plans, products and templates defined once, adopted per branch.

  • Roll-up reporting

    The same metric per branch and consolidated.

  • Transfers

    Members and staff move between branches without losing history.

  • Tenant isolation

    Shared-database row scoping, schema-per-tenant or database-per-tenant.

Where multi-branch platforms usually break

Scope leaks — a report that forgets the branch filter, an API that trusts a branch id from the request body. Here, tenant and branch come from a verified auth context on the server, never from the client, so a forged id cannot widen what a request can see.

Franchise-friendly

A franchisee can be given full control of their own branch while central retains the catalogue, the brand and the consolidated view.

Questions people actually ask

Can each branch have its own pricing and taxes?
Yes, including its own invoice series.
Can we isolate a large franchisee into its own database?
Yes. The isolation strategy is chosen per deployment: row-level, schema-per-tenant or database-per-tenant.