Multi-tenant + multi-branch are two different isolation dimensions. Tenant isolates by company, branch isolates by location within the same company.
Technically: composite foreign keys (fk_id, tenant_id) ensure every query implicitly includes tenant_id. Plus PostgreSQL RLS as a second-line defense.
The result: 4 branches running on a single database, real-time aggregated dashboard, but data never mixes — even when a developer writes a wrong query.