Compliance
Designed to support enterprise procurement review. Every value-driven claim on this page is sourced from the same Python constants that drive the/api/v1/compliance-attestationAPI your CISO can call directly.
EU AI Act posture
Self-declared Limited Risk under Article 52 (not certified). Voluntary conformity self-assessment against Articles 9–15 maintained in the CISO pack and available on request. See /ai-governance for the AI safety + transparency surface.
Data Processing Agreement (DPA)
Current version v2026-05 (effective 2026-05-18). Read the full text on /legal/dpa. Version + effective date are sourced from framework/compliance.py and pinned by a drift test.
SOC 2
SOC 2 Type I, audit closed 2026-02-15. SOC 2 Type II observation window is in progress; we'll publish the updated attestation date here when the next audit closes. SOC 2 Type II is not currently claimed.
GDPR + KVKK operational posture
- DSAR support: access (Art. 15), erasure (Art. 17 / KVKK Art. 7), portability (Art. 20), rectification, restriction, objection. 30-day SLA.
- Erasure method: In-place PII overwrite with '[REDACTED]' marker on DSAR erasure (GDPR Art. 17 + Recital 26, KVKK Art. 7 — anonymization is an accepted erasure method). Audit-log retains action receipt. Database backups follow a 30-day point-in-time-recovery window; redaction propagates within that window. Survey free-text answers, uploaded evidence files and an organization's sensitive-terms list are also encrypted with a per-organization data key; an organization purge destroys that key, so a copy the purge missed can no longer be decrypted. Backups keep the encrypted data and the wrapped key for the same 30-day window. Per-respondent data-encryption-key shredding is a roadmap item, not a legal requirement at the current Limited-Risk classification.
- Backup PITR window: 30-day.
- KVKK summary: see
docs/ciso-pack/kvkk-summary.md(available on request).
Sub-processors (SSOT)
- Anthropic Inc., Model provider (Claude: narrative generation, evidence extraction, scoring assistance). Transformics never calls Anthropic directly: every request goes to Amazon Bedrock, which serves the Claude models (no direct Anthropic API path) (Not called directly: the Claude models are invoked through Amazon Bedrock in AWS EU Regions (EU inference profiles, source eu-west-1))
- Amazon Web Services (AWS), Bedrock LLM inference for all organizations (Anthropic Claude via EU cross-region inference profiles) + infrastructure underneath the Supabase database and file storage (Bedrock inference: AWS EU Regions only (EU inference profiles, source eu-west-1). Customer data at rest: the Supabase database in eu-central-1 (Frankfurt), which runs on AWS)
- Supabase / managed PostgreSQL, Application database (PostgreSQL + RLS + PostgREST) (eu-central-1 (Frankfurt, Germany; AWS-backed))
- Resend, Transactional email delivery (survey invitations and reminders, invites, attestation, board-pack notifications) (Processing region not verified by Transformics (Resend Inc. is US-based))
- Stripe Inc., Payment processing (subscription billing) (US)
- Vercel Inc., Frontend hosting and edge delivery (Hosting region not yet published)
Published sub-processor list with data categories: /legal/subprocessors.
Procurement FAQ
Where is data stored?
Transformics production data is hosted in a Supabase/Postgres environment in eu-central-1 (Frankfurt), shared by all organizations and isolated per organization by row-level security. LLM inference is a separate component: it uses Anthropic Claude through EU Bedrock inference routing. See /data-residency for the database, LLM inference, application hosting and third-party details.
Does customer data leave the EU?
The production database is in Frankfurt (eu-central-1) and LLM inference is routed only to AWS EU Regions. That does not cover every service: the application-hosting region has not been published yet, and some sub-processors, such as payment processing, may process data outside the EU. Each sub-processor and its location is listed on /legal/subprocessors, and a Transfer Impact Assessment is maintained in the CISO pack.
Do you train foundation models on customer data?
Transformics does not train or fine-tune any model on customer data. LLM calls go to Anthropic Claude models through AWS Bedrock EU inference profiles; there is no direct Anthropic API path. How Amazon Bedrock and Anthropic handle prompts and completions (retention, abuse monitoring, training use) is governed by their terms and is under legal review, so this answer makes no claim about it. The llm_calls audit table stores only a sha256 prompt hash, never the prompt body.
Which sub-processors process customer data?
The published list is on /legal/subprocessors; the sub-processor summary below and the compliance attestation API come from the platform attestation. Adding or replacing a sub-processor triggers a 30-day advance customer notice per DPA §7.2.
Can customers request EU-only processing?
The database (Frankfurt, eu-central-1) and LLM inference (AWS EU Regions through Bedrock) are EU-based for every organization by default, with no action required. Some supporting third-party services are not EU-only, so a commitment that every service processes data only in the EU needs a customer-specific enterprise assessment.
Can customers request US or TR regional hosting?
Not today. There is one production database, in eu-central-1 (Frankfurt), and no US or Turkey database option. LLM inference uses EU Bedrock routing for every organization; AWS Bedrock does not currently offer the Claude model families in an Istanbul region. The KVKK regulatory track is supported for assessment content.
How is AI usage logged?
Every LLM call writes an immutable row to llm_calls: feature, model, token counts, latency, status, cache_status, fallback_used, prompt sha256 hash. No prompt body is persisted.
How are AI outputs reviewed?
An assessment report whose grounding against the scored data is low, or could not be measured, is held for human review: it is not delivered or downloadable until an administrator other than the person who ran the assessment approves it. Other reports are delivered without manual sign-off, and no setting yet requires review of every report. Other AI runs are logged with a review status for review after the fact. Every AI-rendered surface carries an AI-generated badge.
Can Transformics be used for individual employee evaluation?
No. People-facing modules (workforce outcomes, voice-of-customer, customer-facing AI, CHRO executive view) ship a not for individual evaluation notice. Scores reflect aggregate organizational patterns, not individual performance.
What happens after a deletion request?
Requests to access, export or erase personal data are tracked from start to finish with an audit trail. Erasure is in-place PII anonymization with a [REDACTED] marker on respondent fields. It also covers free-text answers (encrypted answers are overwritten without being decrypted), stored quotes and survey links, and it removes the person's user link from LLM-call records. Export links expire after 72 hours and are logged. Interview transcripts record a stakeholder by name rather than email address, so they are handled on request. Deleting a whole organization destroys its encryption key and removes its stored files. The PITR window propagates the redaction to backups within 30 days. See /privacy for the full DSAR flow.
How long are backups retained?
Database backups follow a 30-day point-in-time-recovery window. Erasure propagates to backups within that window.
How are signed URLs audited?
Every signed URL generated for a DSAR export or report download writes a row to the signed_url_audit table, bucket, path, expiry, requesting user and org, reason, closing the gap where a forwarded URL has no internal trail.
How are prompts minimized?
Prompts contain only the assessment context needed to score or narrate. Before a request leaves Transformics, the names the platform knows about, your own sensitive terms and detected contact details are replaced with placeholders, and no organization, user or profile identifier is sent with it. This is pseudonymization, not anonymization: people the platform was never told about, and the content itself, can still point to an organization. The llm_calls audit retains a sha256 hash, not the body. Anti-injection wrapping is applied to all untrusted document content; the model is instructed never to follow instructions inside an untrusted document block.
How are AI-generated outputs labeled?
The AIGeneratedBadge component is mounted on the board pack header, executive-view header, QoQ-narrative card, and management-agenda header. Each badge links to /ai-governance for the full disclosure.
How are human oversight and overrides handled?
An assessment report with low or unmeasured grounding is held for human review until an administrator other than the person who ran the assessment approves it; other reports are delivered without manual sign-off, and no setting yet requires review of every report. Where governed agent actions are enabled, the person who ran the agent cannot approve its proposals and proposals expire after 14 days. Document-extracted high-impact claims are suspect-by-default, and a document-only upside cap applies. Every override is captured in the audit_log.
What happens if an LLM provider is unavailable?
LLM calls go only to the EU Bedrock route. If it is unavailable, AI features fail closed instead of switching to another provider or a non-EU Region. The four-layer hallucination guard on the QoQ narrator falls back to a deterministic templated narrative when the LLM call fails or returns invalid output. The fallback is tagged fallback_used=true in the llm_calls audit row.
Request the CISO pack
DPA, SOC 2 Type I attestation letter, sub-processor list, EU AI Act conformity self-assessment, KVKK summary, security questionnaire (SIG / CAIQ). Email compliance for the bundle.
compliance@transformics.aiRelated surfaces
- /security, architecture pillars
- /ai-governance, AI safety stack
- /data-residency, regional posture
- /privacy, privacy policy
- /trust, trust center index