Security & compliance

What ships, what’s in progress

Verdict reads pitch decks and writes memos. That means a fund’s deal flow passes through this system. This page documents what protects the data, what doesn’t, and the honest gap between the two.

Tenant isolation

Every hot table that holds fund data carries Postgres row-level security (RLS) policies scoping reads + writes to the owning user. Cross-fund retrieval is forbidden at the database layer, not just the application layer.

TableScope
reportsuser_id = auth.user.id
memo_embeddingsuser_id = auth.user.id
fund_profilesuser_id = auth.user.id
fund_calibration_traininguser_id = auth.user.id
audit_lessonsuser_id = auth.user.id
memo_feedbackuser_id = auth.user.id
fund_profile_cacheServer-only (RLS denies all anon/authed reads)

Server-side reads go through a service-role client only when the request is owner-scoped by the application layer (e.g., the analysis pipeline that generates a memo on the owning user’s behalf).

Data retention tiers

Decks can be flagged at upload time. Each tier has a different storage lifetime for the raw PDF; the generated memo always persists for the account lifetime so the GP can return to it. Tier selection is at /dashboard/new under “Retention”.

Standard

90 days

Default. Raw deck PDF retained 90 days then auto-purged by daily cron. Memo + analysis preserved.

Sensitive

24 hours

Raw deck PDF auto-purged 24 hours after the memo generates. Memo retained. Used for decks under confidentiality.

Proprietary

Pending

Per-deck symmetric key encryption + 0-hour purge on completion. Awaiting per-deck KMS implementation; ship target Q3 2026.

Full retention language including memo_feedback and audit_lessons retention sits in the Data Processing Addendum section 04.

No training on your data

Pitch decks, generated memos, and feedback rows are never used to train any foundation model. Verdict’s LLM provider account runs on the zero-data-retention tier; the model-call boundary is explicit and audited per call in chain_telemetry. Per-fund calibration training doescompound inside the fund’s own account via the fund_calibration_training table, RLS-scoped to that fund only.

Audit trail

Every memo run leaves machine-readable evidence the GP can query post-hoc. No hidden state; no “trust us, the model said so.”

In progress

What’s not done yet, with honest timing. Procurement teams reading this should treat these as commitments, not marketing.

SOC 2 Type II

Q3 2026 target

Vanta or Drata-tracked. Honest framing: no auditor engaged yet. Compounding policy work is documented but unattested.

Penetration test

Post-Series-A

Third-party engagement scheduled after the first institutional round closes. Internal threat modeling and dependency audits are continuous.

Proprietary tier (per-deck KMS)

Q3 2026

Per-deck symmetric key encryption with 0-hour deck purge on memo completion. Currently the Sensitive tier (24-hour purge) is the strongest available.

Incident response & questions

Security concern, suspected incident, or procurement questionnaire? lishaorui82@gmail.com. 24-hour acknowledgment SLA. Incident-response runbook is documented internally; outbound notifications follow GDPR Article 33 timing (72 hours from awareness, when applicable).