Tenant isolation, enforced twice
Every tenant-scoped query passes through a tenant-scoped procedure at the application layer, and every tenant-scoped table carries a row-level security policy at the database layer. The application connects as a role that cannot bypass RLS. One barrier failing is not enough to cross tenants.
Encryption
TLS 1.2 or higher on every public endpoint. AES-256 at rest for database and file storage, with column-level encryption on the highly sensitive identifiers: SSNs, tax IDs and stored credentials.
Your data is not training data
Your data is never used to train, fine-tune or improve an AI model, ours or a provider's. Model requests go to provider APIs that do not train on API inputs, and we retain no content for training purposes.
Least privilege by default
Role-based access control throughout, annual security awareness training for personnel, and least-privilege access to production. Administrative actions are recorded.
Immutable audit trail
Every state change is written to an append-only audit log. That is an architectural decision made early, which is why it covers everything rather than the handful of screens somebody remembered to instrument.
Incident response
A documented plan with a 48-hour customer notification commitment, and five-year retention of incident records in line with the NAIC Insurance Data Security Model Law.