Trust & AI governance

v4 · Last reviewed 2026-09-07 · [email protected]

LoanLoom performs administrative AI functions: document classification, data extraction, cross-document reconciliation, and workflow automation. It calculates advisory income worksheets, DTI, LTV and reserves for operator review. These calculations are advisory only — never a gate, never pass/fail, not part of the completeness score, and not emitted to MISMO. LoanLoom makes no credit, collateral, or eligibility decision. All extracted and calculated values are presented for human review.

1. Where your documents go

VendorWhat flows thereBorrower data?Standing
AnthropicLoan documents, for classification and extraction; single files, for Brief.YesVendor attestation
ClerkAccount identity only — email, name, organisation membership.NoVerified by LoanLoom
Google DriveLoanLoom reads only the Drive folders a workspace explicitly shares with its service account; it has no access to any other file. Documents stay in that Drive.YesVerified by LoanLoom
Google SheetsSite leads only (name, business email, company, role, volume, message, UTM).NoVerified by LoanLoom
GmailNotification mail to LoanLoom staff about site enquiries.NoVerified by LoanLoom

Documents are processed via the Anthropic API under Anthropic's Commercial Terms, under which customer inputs and outputs are not used for model training by default. Retention follows Anthropic's default API retention; no Zero Data Retention agreement is in place.

Vendor attestation

Site leads (name, business email, company, role, volume, message, UTM) are written to a LoanLoom-owned Google Sheet under Google's API Terms of Service. No borrower data flows through this path; enforced by construction — site_leads holds no NPI fields (migration 0034).

Verified by LoanLoom

Hosting: Railway. Railway attests, in its SOC 2 Type 2 report (Sensiba LLP, period 2025-04-23 to 2026-04-22, unqualified opinion; Security, Availability, Confidentiality, Privacy, Processing Integrity), that customer data is encrypted in transit using TLS and at rest using provider-managed encryption (Google Cloud KMS for managed services; volume-level encryption on colocated storage). Report on file with LoanLoom, received 2026-09-05; available to customers under NDA.

Vendor attestation

Database connections negotiate TLS 1.3, TLS_AES_256_GCM_SHA384, 256-bit (verified via pg_stat_ssl).

Verified by LoanLoom

Borrower-uploaded documents are stored per loan on encrypted platform storage (Railway volume) and deleted when the loan is purged. Drive-channel documents remain in the customer's Drive.

Storage of those documents is on a Railway volume, and its encryption at rest is Railway's provider-managed encryption rather than anything LoanLoom performs.

Vendor attestation

Those documents are deleted when the loan is purged, and the purge verifies the removal rather than assuming it.

Verified by LoanLoom

2. How AI reads your documents

AI & Model Use

ClaimStanding

You're an AI — isn't uploading borrower data to you the same as putting it into a public chatbot?

No — and the difference is concrete:

  1. It's the commercial Anthropic API, not a consumer chatbot.
  2. Under the commercial terms, your inputs are never used to train models.
  3. There's no shared chat history — each document is a separate, isolated request.
  4. Documents are retained only as long as needed for processing.
Vendor attestation

Are our borrower documents used to train AI models?

No. Processing occurs under Anthropic's commercial API terms, which prohibit using inputs or outputs to train models.

Vendor attestation

Could a data-sharing setting change that?

No such setting is enabled. LoanLoom sets no data-sharing option, and none applies to this service.

Verified by LoanLoom

Does a human read the documents that are processed?

No human-review step exists. Documents are read by the extraction service to pull the loan fields; they are not routed to any reviewer or queue.

Verified by LoanLoom

Is there a chat history of borrower data on the AI service?

No. Each document is a separate, stateless request. No conversation, thread, or history is assembled or retained on the service.

Vendor attestation

3. What we store, and what we don't

Data Handling

ClaimStanding

Does LoanLoom copy files out of our Google Drive?

No. The Google Drive integration reads file content on demand; it does not copy or store the file body. The document record holds references and extracted fields, not the source bytes.

Verified by LoanLoom

How are Social Security numbers handled?

SSNs are masked to the last four digits on all operator-facing surfaces. Full values are used only for MISMO output and identity verification, and the unmasked change history is owner-gated.

Verified by LoanLoom

Is one workspace's stored data reachable from another?

No. Every record is scoped to a single workspace and isolated by database row-level security, force-enabled on every table holding borrower data.

Verified by LoanLoom

Are sensitive identifiers masked where staff can see them?

Yes. Social Security and tax identifiers are masked to the last four digits on every operator-facing surface; the unmasked change history is owner-gated.

Verified by LoanLoom

Is stored data encrypted at rest?

At rest, encryption is provided by the hosting platform rather than by LoanLoom. Railway attests to provider-managed encryption in its SOC 2 Type 2 report — see AI Governance, section 3 (Hosting), for the full attestation and its scope.

Vendor attestation

How are documents shown for review without leaving copies behind?

Document pages are rendered on demand for review and are not persisted to the database. For the Google Drive channel, files are fetched from Google each time rather than copied.

Verified by LoanLoom

4. Who can reach your data

Access & Isolation

ClaimStanding

How is one broker's data kept separate from another's?

Every record is scoped to a single workspace and isolated by database row-level security, enabled and force-enabled on every table holding borrower data. Isolation is enforced at the database, not just in application code. A query without a valid workspace context returns nothing — the system fails closed.

Verified by LoanLoom

What database privileges does the application run with?

The application connects with a least-privilege database role that is not a superuser and cannot bypass row-level security. That is what makes isolation enforceable rather than advisory.

Verified by LoanLoom

Who on our team can see what?

Access is owner-scoped. The account owner holds administrative capabilities — user management, integrations, settings, and access to the unmasked field-change history — that team members do not. Every borrower-data access is permission-checked per request.

Verified by LoanLoom

What happens when someone leaves the team?

The audit trail preserves the acting user's identity even after they're removed, so the chain of custody survives personnel changes.

Verified by LoanLoom

5. A record of every action

Audit & Chain of Custody

ClaimStanding

Is every action on a loan recorded?

Yes. Every action — who did it, what they did, which document or field, and when — is written to an audit log in the same database transaction as the change itself, so a change cannot be recorded without its audit entry.

Verified by LoanLoom

Can the audit log be edited or deleted?

No. The audit log is append-only, enforced at the database: any attempt to modify or delete a record is rejected by the database, and the application role is not granted the ability to update or delete audit records.

Verified by LoanLoom

Can you show which field changed, by whom, and from what to what?

Yes. For each corrected field, LoanLoom records the specific field, the person who changed it, and the before-and-after values. The full before/after is access-controlled to the account owner; the general trail shows a masked summary.

Verified by LoanLoom

How do you track which extracted values a human has verified?

Each field carries a verification state. When an operator confirms a value against its source document, that verification is recorded per field, and the count of still-unverified fields is surfaced as a supervision measure before export.

Verified by LoanLoom

Are reads of borrower documents recorded, or only changes?

Both. Fetching or rendering a document's content writes its own audit entry, alongside the entries for changes.

Verified by LoanLoom

Is a view of extracted borrower data recorded, or only changes?

Both. Every render of a loan's or a document's extracted detail writes its own audit entry — the actor and the time, marked as containing borrower data — on the same read path that returns the values. The trail records views at loan and document level, not per individual field, and repeated views are collapsed for display so they cannot bury changes.

Verified by LoanLoom

6. How records are kept — and what deletion actually removes

Retention & Deletion

ClaimStanding

Can a compliance record be altered after the fact?

No. The audit log is append-only, enforced by the database itself: any UPDATE or DELETE against it is rejected outright.

Verified by LoanLoom

How long are records kept, and on what schedule?

No retention schedule is implemented. The audit log carries a retention class per record, but nothing enforces or expires on it yet, so LoanLoom makes no retention-period claim.

Not yet documented

If you delete a loan, what actually gets removed?

The borrower's personal information, everywhere it is stored — not just the loan record:

  1. The loan, its documents, and every extracted field — including the full Social Security number held for the 1003 and for identity matching.
  2. The source files themselves, on disk, and every rendered page image made from them.
  3. The borrower's contact record — name, phone, email — and their name where it appears inside mirrored file and folder names.
  4. The queued processing events, which carry field values in their payloads.
  5. Deletion is verified after the fact by a scan that shares no code with the deletion itself, and the operation fails loudly if anything is found still standing.
Verified by LoanLoom

Is anything kept after a deletion?

Yes, and deliberately — two things, neither of which contains the borrower's personal information:

  1. The audit trail: who did what, when, and to which record. It is append-only and holds references and masked hints only — never a full Social Security number or account number.
  2. The change record behind a disputed figure: which field changed, who changed it, and when. The before-and-after values are removed; the record that a change happened is kept.
Verified by LoanLoom

Can you prove a deletion happened?

Yes. Each deletion writes its own audit entry recording who ran it, which loans were affected, and the per-table counts the database reported — and, like every other audit entry, it contains no borrower information itself.

Verified by LoanLoom

7. Common questions

QuestionStanding

You're an AI — isn't this the same as a public LLM?

No. Documents are processed through the commercial Anthropic API, not a consumer chatbot: inputs aren't used for training, and no shared chat history is assembled.

Vendor attestation

Does anyone at LoanLoom read the documents?

No. No human-review step exists in the pipeline; documents are read by the extraction service and are not routed to a reviewer or a queue.

Verified by LoanLoom

Is each request isolated to my workspace?

Yes. Every extraction is scoped to your workspace and recorded in your audit trail.

Verified by LoanLoom

Are our borrower documents used to train AI?

No. Processing is under commercial API terms that prohibit training on inputs or outputs.

Vendor attestation

How are SSNs handled?

Masked to the last four digits on every operator-facing surface; full values are used only for MISMO output and identity verification, and unmasked change history is owner-gated.

Verified by LoanLoom

How is my data kept separate from other brokers?

Every record is workspace-scoped and isolated by database row-level security, enforced at the database under a role that cannot bypass it. A query without workspace context returns nothing.

Verified by LoanLoom

Can the audit log be tampered with?

No. It's append-only, enforced by the database — modifications and deletions are rejected outright.

Verified by LoanLoom

Is my data reachable from another broker's workspace?

No. Every record is workspace-scoped and isolated by database row-level security, enforced under a role that cannot bypass it.

Verified by LoanLoom

Are my borrowers' identifiers masked?

Yes — masked to the last four digits on every operator-facing surface, with unmasked history owner-gated.

Verified by LoanLoom

Is my data encrypted at rest?

At rest, encryption is the hosting platform's. Railway attests to provider-managed encryption in its SOC 2 Type 2 report; see AI Governance, section 3 (Hosting).

Vendor attestation

8. Human oversight

LoanLoom is operated by its founder, who is the accountable owner of these practices and reviews them at least annually. Independent review: none in place; planned.

Verified by LoanLoom
Version history

v42026-09-07

  • Narrowed: LoanLoom now reads ONLY the Drive folders a workspace explicitly shares with its service account. The previous version said 'the customer's own Drive, by OAuth' — accurate, and far broader than it needed to be.
  • What changed underneath: a workspace shares folders with a LoanLoom service account instead of granting OAuth consent over its whole Drive. Every Drive query is now scoped to a shared folder or shared drive, and an unscoped one raises rather than running.
  • Why it is narrower in practice, not only on paper: the old listing carried no folder filter at all, so the mirror covered everything the consenting account could see. It now covers what was shared, and nothing else.
  • Also removed by the change: the OAuth consent screen, the 7-day refresh-token expiry that was indistinguishable from a revocation, and the single-credential-per-workspace limit under which a second owner's reconnect replaced the first.
  • Losing access is now visible. If a workspace stops sharing a folder, it is marked access_lost in Settings and on affected loans rather than failing silently.

v32026-09-06

  • Corrected: views of extracted borrower data ARE recorded. The previous version said they were not separately recorded, which understated the control — an error in the safe-sounding direction, and as wrong as an over-claim.
  • What is recorded: an audit entry per loan-detail and per document-detail render, with actor and time, marked as containing borrower data. What is not: per-field granularity.
  • No behaviour changed. The control had been in place; the disclosure had not caught up.

v22026-09-06

  • Added: where uploaded documents are stored. Documents taken through the upload channel are retained per loan on the platform volume until the loan is purged; Drive-channel documents stay in the customer's own Drive.
  • This corrects the record rather than changing behaviour: the code's own documentation had claimed the store was ephemeral while production had mounted a durable volume for months. Retention here is now a stated, deliberate property.
  • Encryption of that storage is Railway's attestation (SOC 2 Type 2, volume-level, provider-managed); deletion on purge is verified by LoanLoom against the purge path.
  • The rendered-page cache is on the same volume and is reached by the same purge.
  • No model change; no vendor added or removed.

v12026-09-05

  • Initial publication.
  • Models: intake classify/extract on claude-haiku-4-5-20251001; Brief on claude-sonnet-4-6.
  • Vendors disclosed: Anthropic (documents), Clerk (identity), Google Drive (customer's own tenant), Google Sheets (site leads only), Gmail (notification mail only).
  • Hosting attestation recorded from Railway's SOC 2 Type 2 report (Sensiba LLP, period 2025-04-23 to 2026-04-22), received 2026-09-05.
  • Transport security verified directly via pg_stat_ssl: TLS 1.3, TLS_AES_256_GCM_SHA384.
  • Accountable owner named. Independent review: none in place.