Separation
In placeOne agency cannot see another, in the database itself
Every row of data belongs to exactly one tenant, meaning one agency. The rule that enforces this lives in the database rather than in application code. It is PostgreSQL row-level security, so a query that forgets to filter by tenant returns nothing instead of someone else's data.
We chose that on purpose. Application-level checks are one forgotten WHERE clause away from a leak. A database policy fails closed.