Security

Everything we do to keep your data safe.

Verinode holds the operating data of restoration businesses, so the security of that data is the product. This page documents the controls we run, grouped the way an auditor reads them, with the matching ISO 27001 Annex A references. Our program is built around those standards.

We are honest about status: we are not yet certified against either. SOC 2 and ISO 27001 are third-party attestations, not badges a company awards itself, and a SOC 2 Type II audit is planned. What follows is exactly what we do today, plus what we have not done yet.

SOC 2 Type IIPlannedISO/IEC 27001PlannedInfrastructureCertified

Last updated: July 2026

The control program

Security

The core of the program: keep operator data readable only by the operator it belongs to and the product working on their behalf, and nobody else.

Per-operator encryption
Identifying fields are encrypted with AES-256-GCM under a three-key envelope: a Vault Key scoped to each operator and issued at signup, the operator's own password, and a server root key held outside the database. No single key, and no database dump on its own, yields plaintext.
Database-level access control
Row Level Security is enabled on every table and denies by default. Application access runs through scoped, service-role clients; the browser never queries the database directly.
Tenant isolation
Operator business data and the shared intelligence layer are two physically separate databases with separate credentials; no query crosses that boundary. The operator database is region-deployable.
Multi-factor authentication
Accounts support a time-based one-time-password second factor, and sensitive actions can require a verified second factor before they run, not only at login.
Encryption in transit
All traffic is served over TLS.
Key and secret management
Encryption keys are managed outside application code, and root key material is escrowed under a documented recovery runbook.
Enterprise authentication
Single sign-on over SAML 2.0 and OIDC, plus SCIM directory provisioning, for members who require it.
Least-privilege access
Production data access is limited to a small, named set of administrators, and every access is logged. A small team means a small blast radius.

SOC 2 Security (CC6, CC7) · ISO 27001 Annex A: A.5.15 to A.5.18, A.8.2 to A.8.5, A.8.24

Confidentiality

The commitments that make the benchmarks worth trusting: your data works for you, and the network never learns which numbers are yours.

Never provided to carriers
Written into the Terms and the Data Use Policy: operator data is never provided to insurance carriers, TPAs, or competitors in identifiable form.
Anonymization before pooling
Contributions are stripped of identifiers and passed through a keyed hash before they enter the intelligence layer, so a benchmark number cannot be traced back to a business.
Minimum cohort size
A benchmark is only published once its peer group is large enough that no single business can be singled out.
No training on your data
LLM providers process content under no-training terms. Direct identifiers are replaced with typed placeholders on the text paths, meaning forwarded email bodies, pasted text, and voice transcripts. PDFs are deliberately exempt and go to the model as rendered pages, because masking a scan before it is read destroys extraction on invoices and estimates; we would rather name that exemption than describe the masking as universal.

SOC 2 Confidentiality (C1) · ISO 27001 Annex A: A.8.10, A.8.11, A.8.12

Availability

Keeping the product up, the data recoverable, and problems visible before they are felt.

Backed-up, managed database
Managed Postgres with automated backups and point-in-time recovery, on each of the two isolated databases independently.
An off-site copy we cannot lose with the account
Automated backups and point-in-time recovery all live inside the database vendor's account, so a problem with that one account could reach the original and every copy at once. Once a week both databases are also exported to a separate storage vendor, in a separate account, in a different country, on infrastructure that shares nothing with the systems that run the product. The export is encrypted before it leaves our control: the storage vendor holds ciphertext and never holds the key, and the job that writes the backup carries only the public half of the key, so it produces backups it cannot itself read. Retention is 90 days, which is what keeps the erasure window in our Data Use Policy true. The most recent export has been re-downloaded, checksummed, and decrypted end to end, then restored into a clean database to confirm it loads with every record intact. That restore drill established one practical requirement, that the recovery target be provisioned the way our platform is rather than a bare database, which is now documented. A full drill into a fresh live environment, with formally measured recovery-time and recovery-point figures, is the remaining step before we would call this fully tested disaster recovery.
Resilient hosting
Serverless, multi-region application hosting on managed infrastructure.
Continuous monitoring
An automated sentinel checks environment configuration, background jobs, provider health, and the encryption cache every twenty minutes and alerts on regression.
Public status page
Uptime and incidents are reported at status.verinode.ai, linked from operator-facing surfaces.

SOC 2 Availability (A1) · ISO 27001 Annex A: A.8.13, A.8.14, A.8.16, A.5.30

Processing Integrity

Making sure data that flows in is written correctly, and that changes to the system are controlled.

Schema-enforced ingestion
Every extracted record passes through a single normalization layer validated against a committed snapshot of the live schema, so malformed or unexpected data is rejected or quarantined rather than written silently.
Extraction quality checks
A daily canary scores the extraction pipeline against fixed fixtures and alerts on quality regression.
Gated change management
Schema, migration, security, and anonymization checks run automatically before every deploy and block releases that fail.
Audited, append-only logging
Data access and every decryption are written to an audit trail retained outside the application's own environment, so it cannot be quietly rewritten.

SOC 2 Processing Integrity (PI1) · ISO 27001 Annex A: A.8.15, A.8.16, A.8.28, A.8.32

AI Governance and Safety

Verinode is an AI product, so the safeguards that matter most are the ones that do not depend on a model behaving. The controls that would cause real harm if a model were wrong are enforced in code, not left to a prompt.

Deterministic guardrails, not prompt trust
Anything that would be a real harm if a model were wrong, a cross-tenant read or a data mutation, is enforced deterministically: row-level security, k-anonymity gates on every benchmark, and human confirmation on every mutation sit below the model.
Numerical grounding
Agents may not state a figure that is not traceable to a real data lookup. Un-sourced numbers are refused rather than guessed.
Adversarial evaluation
A daily evaluation runs a corpus of prompt-injection and misuse attempts against the agents, with a P0 alert on any critical breach, alongside a benign corpus that guards against over-refusal.
Advisory-only authority
No agent can bind the operator or Verinode to anything. An agent recommends; the operator decides, and nothing takes effect until the operator accepts it.
Version-pinned safety baseline
Every model call routes through a shared safety baseline that domain prompts and ingested content cannot override, and the baseline version is logged with every call so any output traces back to the rules that produced it.

SOC 2 Security and Processing Integrity (CC7, PI1) · ISO 27001 Annex A: A.5.24, A.8.16, A.8.28, A.8.29

Privacy

Your rights over your data, documented and exercisable without asking permission.

Published privacy notice
What we collect, why, and the legal basis are set out in the Privacy Notice.
Data-subject rights
A signed-in operator can pull a complete, self-serve export of their own data, including full consent history, without routing through support. Correction and deletion follow a documented procedure.
Data minimization and ownership
We collect what the product needs, and ownership of the underlying records stays with the operator.
Subprocessor transparency
Every third party that processes data on our behalf is listed publicly, with its purpose, data, location, and safeguards, and members are notified of changes.

SOC 2 Privacy (P1 to P8) · ISO 27001 Annex A: A.5.34 · GDPR Articles 15 to 22 and 28

Certifications and roadmap

SOC 2 Type IIPlanned
Not yet certified. The control program above is designed around the Trust Services Criteria. When the audit observation window opens, we will say so here.
ISO/IEC 27001Planned
Not yet certified. The controls above map to Annex A, referenced under each domain. Certification will follow the SOC 2 work.
InfrastructureCertified
The subprocessors that host and process data on our behalf hold their own SOC 2 Type 2 and ISO 27001 attestations. Each is listed, with its safeguards, on the Subprocessors page.

What we have not done yet

The honest other half of the list. Security you can verify is worth more than security you have to take on faith, so this is where we would rather under-claim.

  • ·We are not SOC 2 or ISO 27001 certified. A company that is not audited cannot truthfully say it is SOC 2, and we would rather be precise than borrow the claim.
  • ·Independent penetration testing by an external firm is planned alongside the SOC 2 audit, not yet completed.
  • ·Formal, third-party-attested management-system documentation is being built toward the audit, rather than finished today.
  • ·Operator-only key custody, where not even our own systems can read a slice, is on the roadmap. Today our automated systems decrypt data under an audited background key so your Chief Data Officer can work while you sleep, with every access logged.
  • ·Zero-retention terms with our language model providers are a planned upgrade, not a control we hold today. We run on paid API terms that contractually forbid training on our data, and prompts sit in the provider's standard 30-day abuse-monitoring window before deletion. Direct identifiers are stripped from forwarded email bodies, pasted text, and voice transcripts before they are sent. PDFs are a deliberate exemption and go to the vision model as rendered pages: masking a scan before it is read destroys extraction on invoices and estimates, so that content is sent unmasked. We name the exemption rather than implying blanket masking. It is a retention window either way, and we will not describe it as zero.
  • ·Column-level encryption is still rolling out per column, which means encrypted columns currently coexist with their plaintext originals rather than having replaced them. Dropping the plaintext is gated on full coverage and happens column by column. Until each cutover completes, that column's defense-in-depth benefit is partial, and we would rather say so than imply the rollout is finished.

The commitments, with numbers

A control program without timelines is a statement of intent. These are the operational commitments we hold ourselves to, taken from the internal policies named beside each one. They are real targets rather than aspirations, which also means we will say plainly where one is not yet proven.

Incident response times
Severity drives the clock. SEV-1, an active breach, data loss, or exposure of operator data, is picked up immediately and within the hour. SEV-2, a suspected but unconfirmed breach, a single-operator outage, or a subprocessor incident touching our data, within four hours. SEV-3, a control failure with no confirmed exploit, within twenty-four hours. SEV-4, a hardening finding, the next business day. Containment comes before investigation in the first hour: we would rather take a feature offline and understand it afterward. Every incident gets a written post-incident review within fourteen days.

Incident Response Runbook

Breach notification
For personal data of EU residents, the supervisory authority is notified within 72 hours of us becoming aware, per GDPR Article 33, and affected individuals without undue delay where the risk to them is high. Under PIPEDA, which governs us in Ontario, there is no fixed hour count: once a real risk of significant harm is determined we report to the Privacy Commissioner and notify affected individuals as soon as feasible, and we keep a record of the breach for 24 months whether or not it was reportable. US residents are notified per the applicable state statute. Affected operators are contacted directly, and a SEV-1 is posted publicly on the status page.

Breach Notification Procedure

Vulnerability disclosure
A report to [email protected] is acknowledged within one hour of disclosure, validated within twenty-four hours, and, if confirmed, patched within seventy-two hours along with notification if any data exposure occurred. We would rather hear it from you than from an incident.

Incident Response Runbook

Key and secret rotation
Every application secret, including database service-role keys, model provider keys, webhook secrets and payment keys, is rotated quarterly as routine hygiene, immediately on any suspected compromise, and on personnel change. Rotation is not conditional on an incident; the quarterly cycle runs regardless.

Encryption and Key Management

Recovery objectives
The database carries a one-hour recovery time objective and a five-minute recovery point objective, backed by continuous point-in-time recovery across a rolling seven-day window. The application carries a four-hour recovery time objective and a one-hour recovery point objective. Separately, a weekly encrypted export leaves the primary provider entirely and lands in a different vendor, a different country, and a different set of credentials, held for ninety days: a backup sharing a failure domain with the primary is not a backup.

Business Continuity Plan

Disaster recovery, and what is not yet proven
The external encrypted backup has been verified end to end: re-downloaded, checksum-matched against its manifest, decrypted with the escrowed key, and restored into a clean database that loaded with every record intact. What that does not yet cover is a full drill into a fresh live environment with formally measured recovery-time and recovery-point figures, which is the step that would close this, and it is scheduled quarterly rather than finished. Until one has run and been logged, treat our recovery objectives as targets rather than as demonstrated figures. Restoring a backup also requires the escrowed encryption keys, because encrypted columns restore as ciphertext; the backup program and the key escrow are a set, and either without the other fails the actual disaster.

Business Continuity Plan

Access review and privileged access
Six roles, each with an explicit capability set, and multi-factor authentication required on the owner role. Sessions expire after thirty days idle. Enterprise customers federate identity through SSO with directory provisioning, so joiners and leavers are driven by their own identity provider rather than by us remembering. Removing a team member invalidates their session on the next request. Every authentication event, including every failure, is written to an audit log and to an external append-only sink, so the record survives even the database it describes.

Access Control Policy

Change management
Any change that touches security or the database schema gets a documented second-pass review the following day rather than shipping on one pair of eyes, and deployment is verified in production within twenty-four hours. Rollback is immediate at the application layer. Database migrations are forward-only, so a reversal is itself a reviewed migration, and a destructive migration requires explicit approval and a verified backup beforehand. An emergency fix may skip the next-day review, and then gets a retroactive one within twenty-four hours of resolution.

Change Management Policy

Deletion, and verifying it reached everywhere
A deletion request is processed within thirty days. Deletion has to hold across backups and processors to mean anything, so backup copies age out on a fixed ninety-day retention with automatic expiry rather than being pruned by hand, and processors that hold content are bound by executed agreements requiring the same. Where a subprocessor agreement is still being executed, our subprocessor page says so on the row rather than leaving the vendor off the list.

Data Retention Schedule · Vendor Risk Management

Encryption, stated by scope rather than in general
In transit: TLS 1.2 at minimum and TLS 1.3 in practice on every external connection, with HTTPS forced by HSTS across all subdomains and no plain HTTP accepted on production. At rest: AES-256 across the database, file storage, and logs. On top of that, the most sensitive personal fields are separately column-encrypted with AES-256-GCM under an encryption key unique to each operator, so a single compromised key does not span operators. Which columns are covered is an explicit registry in the codebase, not a general assurance.

Encryption and Key Management

The detailed control matrix

The full matrix, every control above mapped to its SOC 2 Trust Services Criteria and ISO 27001 Annex A reference with the evidence behind it, is available under NDA to members and prospective members in active evaluation, including as part of a vendor security review. Request it at [email protected].

Related

Contact

Security questions, control-matrix requests, and vulnerability disclosures: [email protected]. Data-subject and privacy requests: [email protected].

This page describes controls in place as of the revision date above and is updated as the program matures. It is a description of our security posture, not a warranty or a substitute for the SOC 2 report it anticipates.