For credit-risk teams

Underwrite a loan in 30 seconds.
Auditable. On your bank's own policies.

Eight AI agents read your corpus, debate every case, and cite their sources. You get the speed of an algorithm and the paper trail of a credit committee.

No setup. Pick a borrower profile, watch the live committee land its dossiers in real time, see which of the 11 conflict-tree branches the system took.

analyst/decision/4f3c…b2 · live · v4Committee streaming
Compliancepass

OFAC clean · PEP clean · sector OK · KYC verified.

UnderwriterAPPROVE

Strong income history (3yrs), 25% down payment — overcomes the soft DTI breach.

Data Quantbreach-soft

DSTI 38.4% · DSCR 1.31 · score 712 (near-prime) · PD 0.07.

Conflict tree branchquant-breach-soft-with-comp→ APPROVE with conditions

Numbers softly breach methodology but the Underwriter found a strong mitigant (verified down payment + tenure). The tree picked the branch deterministically; the Orchestrator wrote the regulator-readable explanation.

Designed alongside risk teams at regulated EU lenders

EU Bank ALender BRisk Consulting CFintech DAudit Firm E

The architecture

Three departments. Eight agents. One god view: Marvin.

Real banks decide on credit through committees — Compliance, Risk, Underwriting — under a chair. Marvin ports that structure into software, then bolts on two layers most banks don't have: a Strategy department that grows the bank's knowledge base, and a god-view layer (the one this product is named after) that watches the other seven agents talk to each other and flags drift before it ships a bad decision.

A

Live Execution

Front office · synchronous · ≤ 60s per decision

Five agents work the case in real time. Compliance can hard-reject; Underwriter and Quant run in parallel; the Orchestrator chairs.

  • Compliance Guardian

    AML / KYC / sanctions / PEP — hard-stop authority

  • Underwriter

    Deal structurer · finds compensating factors

  • Data Quant

    Numbers · DSTI / DSCR / score / default probability

  • Orchestrator

    Chair · applies the conflict tree, writes the verdict

  • Internal Archivist

    RAG provider · least-privilege per agent

B

Strategy & Development

Brain trust · async · runs every hour / day

Two agents keep the corpus current. Scout reads the open web; Architect drafts policy revisions for operator sign-off. Approved drafts auto-ingest into the bank's knowledge base.

  • External Scout

    Web + RSS monitor · regulations, papers, textbooks

  • Policy Architect

    Drafts internal-policy updates from Scout findings

C

Evolution · god view

One floor up · async · runs nightly

Marvin sits above the other seven. He never talks to applicants and never writes policy — he reads the agents' own logs, manifests, eval traces, and clarification history, and surfaces drift before it ships a bad decision. Bottlenecks, hallucinations, knowledge gaps, conflict loops, prompt drift — five signal categories, severity-sorted, recommends only. Operator approves every change.

  • Marvin

    AI auditor · the eighth agent · the system watching itself

The pipeline in execution

What happens when a credit application lands

Compliance runs first and can hard-reject before any other agent starts. Underwriter and Quant run in parallel to keep wall-clock under a minute. The conflict tree picks the decision; the Orchestrator writes the human-readable reasoning.

1

Application + uploads

Borrower profile, requested amount, uploaded PDFs (payslips, ID, bank statements). Validated against the application schema.

2

Compliance Guardian

Sanctions + PEP screening, prohibited-sector check, AML/KYC retrieval. Can short-circuit the pipeline with a hard reject.

3parallel

Underwriter ‖ Quant

Run in parallel. UW reads policy + finds compensating factors. Quant runs ЦКР + НОИ + computes DSTI / DSCR / score / PD.

4

Conflict tree

Deterministic TypeScript function. Reads three dossiers, picks one of 11 branches under a 5-level hierarchy: Law > Policy > Data > Process > Heuristic.

5

Orchestrator + final

LLM writes the regulator-explainable prose for the branch the tree picked. The final decision is persisted with the full audit trail.

[Application + uploads]
        ↓
  Compliance Guardian      ← runs first; sanctions+PEP+RAG → ComplianceDossier
        ↓
   hard-reject? ─────────→ short-circuit: REJECT, write final, end
        ↓ no
   ┌────┴────┐
   ↓         ↓
Underwriter  Data Quant    ← parallel; UW gets RAG+compliance summary,
   │         │               Quant gets ЦКР + НОИ + RAG
   └────┬────┘
        ↓
  applyConflictTree()      ← deterministic TS function
        ↓                    returns { decision, branch, rationale, conditions }
  Orchestrator agent       ← LLM generates regulator-explainable prose
        ↓                    using the branch label as context
  Final Decision           ← persisted with the full audit trail

The conflict tree

Five levels. Eleven branches. Written down, made executable.

Because if you can't predict why an LLM said no, neither can the regulator.

When the specialists disagree, a real chair doesn't average their opinions. They follow a hierarchy: legal blockers beat policy concerns, policy concerns beat data preferences, data preferences beat paperwork gaps. We wrote that hierarchy in TypeScript across five levels (L1 Compliance · L2 Policy · L3 Quant · L4 Process · L5 Heuristic) so the same dossiers always produce the same decision. The LLM only writes the prose explanation.

Reproducible

Same dossiers in → same decision out. Run the case six months later and reproduce the call. Auditors love this.

Testable

Each of the 11 branches has unit tests. The decision logic is reviewed line-by-line — before any LLM is involved.

Regulator-explainable

The branch label IS the audit trail. 'compliance-hard-reject' / 'quant-breach-soft-with-comp' / 'documents-rework' — plain English, every time.

#BranchDecisionPlain English
1compliance-hard-rejectREJECTL1 · Legal blocker. Pipeline short-circuits before Underwriter / Quant even start.
2compliance-review-requiredREVIEWL1 · Even if numbers are perfect, a human compliance officer must sign first.
3policy-declineREJECTL2 · Bank-policy decline (sector exclusion, concentration limit). Quant has no breach — the block is policy-driven.
4policy-escalationREVIEWL2 · Same as above but Underwriter cited a regulatory_exception factor — escalates for senior sign-off.
5quant-breach-hard-no-compREJECTL3 · Numbers blow past methodology limits, no structural mitigant.
6quant-breach-hard-with-compREVIEWL3 · Hard breach but Underwriter found a strong mitigant — defer to a human.
7quant-breach-soft-with-compAPPROVEL3 · Soft breach + strong mitigant → approve with conditions.
8quant-breach-soft-no-compREVIEWL3 · Borderline numbers without a clear save — defer to a human.
9documents-reworkREWORKL4 · Application package incomplete. Case is otherwise clean — return for paperwork, NOT a credit decline.
10all-clearAPPROVEL5 · Within policy + complete + Underwriter APPROVE → straight-through.
11fallthrough-reviewREVIEWL5 · Committee disagrees in a way the rules above don't cover — defer.

The self-improving loop · god view

The corpus stays current. Marvin catches the system's own drift.

Most credit-AI products freeze at deployment. Marvin has two background layers designed to keep it from rotting: Strategy grows the bank's knowledge base; the god-view layer (Marvin himself) reads the agents' logs, manifests, and eval traces, and surfaces drift before it ships a bad decision.

B

Strategy & Development

Scout + Architect

Scout polls regulatory feeds (EBA, BNB, ДВ, ECB, BIS) and runs targeted web searches for textbooks and working papers. Findings ≥ a relevance threshold queue up. Architect drafts policy revisions for operator sign-off — clean Markdown, ready to ingest. Approved drafts auto-land in the corpus.

  • Scout: hourly + manual trigger
  • Architect: per-finding LLM call → policy_drafts row
  • Operator: edit Markdown inline, approve & ingest
  • New bundle live in the corpus, allowlisted to the right agents
C

Evolution

Marvin (Meta-Architect)

Reads agent_outputs, decision_version_manifest, eval_runs, clarification_events. Computes 5 signal categories deterministically in TypeScript. The LLM only writes the human-readable recommendation. Severity drives the dashboard sort: block > warn > info.

  • Bottleneck — agent p95 latency vs cross-agent median
  • Hallucination — citation chunkIds not in knowledge_chunks
  • Knowledge gap — clarifications repeating across sessions
  • Conflict loop — Orchestrator REVIEW rate climbing
  • Prompt drift — eval accuracy drop tied to a prompt hash

What an operator sees in System Health

Compliance p95 latency 2.4× the cross-agent median over the last 24h

Driven by 14 sessions where the AML retrieval timed out before falling back. Inspect the agent_document_access matrix — likely a misconfigured allowlist on the AML/KYC bundle. Recommend a rerun of the last hour's flagged sessions once fixed.

warn⏱ Bottlenecksessions: 4f3c…b2 · 8a91…d1 · 3c00…7e · …

Why Marvin

Not another credit-scoring API

Six things that make Marvin safe to put in front of a regulator — not a black-box LLM with a thin explanation layer bolted on.

Least-privilege RAG

Each agent reads only the bundles its allowlist explicitly grants. Compliance reads AML/KYC; Quant reads scoring methodology; Underwriter reads policy. No cross-contamination, no hallucinated citations from the wrong domain.

Deterministic decisions

The conflict tree picks the verdict in TypeScript before the Orchestrator ever runs. The same three dossiers always produce the same decision — independent of which model version was running that day.

Citations that resolve

Every claim links to a chunkId in knowledge_chunks. Marvin (the Meta-Architect) looks them up nightly — citations that don't resolve fire a hallucination finding.

Operator-in-the-loop

When confidence dips, the agent stops and asks. The operator's answer joins the audit trail and feeds future debates as standing policy via cross-session guidance injection.

Ground-truth eval

Upload historical loans with realised outcomes. Confusion matrix, accuracy, expected loss per €1k lent. Cursor-based runs without duplicates. Per-row replay link.

Version manifest per decision

Every decision pins the prompts, retrieval settings, embedder, and corpus bundles used. The hash flips when an operator edits a prompt — auditors see exactly which revision produced which call.

Pricing

Pay for the answer, not the seat

Per-decision metering lines up cost with the actual work done. Pilot cost is fixed and capped so procurement can sign in a week.

Pilot

30-day fixed-fee proof of concept

€15k/ one-off
  • Up to 1,000 evaluated decisions
  • One regulatory corpus
  • Operator console (5 seats)
  • Implementation support included
  • No production traffic
Start a pilot
Most popular

Production

Live decisioning, metered usage

€0.40/ per debated decision
  • Unlimited corpus + bundles
  • Operator + analyst seats
  • Eval dashboard + datasets
  • Maker/checker workflow
  • SLA: 99.9% · EU residency
Talk to us

Enterprise

Self-hosted or VPC, custom integrations

Custom/ annual contract
  • Self-hosted on your infra
  • Single-tenant DB + storage
  • Custom prompts and policies
  • Dedicated support engineer
  • Audit cooperation included
Contact sales

See your first explainable decision in two minutes

Pick a preset borrower profile, watch the live committee land its dossiers, see which of the 11 conflict-tree branches fired and why. Then drop into Marvin's System Health view to see what the god view caught. No login, no setup.