00:00live committeecase 4f3c…db20
Credit-AI you can put in front of a regulator.
Verdict in TypeScript. Reasoning in your own policies.
Audit trail by default.
Marvin is an AI credit committee where eight agents read your bank's corpus, debate every case, and cite their sources — and a deterministic conflict tree, not an LLM, decides the verdict. Same dossiers in, same decision out. Every time.
Why this exists
The EU AI Act made credit AI a high-risk system.
Most LLM products didn't get the memo.
We built Marvin because the existing credit-AI products won't survive a Tier-1 audit. Ours does.
Architecture · why agentic
A single LLM is a single point of failure.
Real banks don't decide credit that way.
The moat
The verdict is decided in TypeScript
before any LLM speaks.
Coverage
11 branches, 5 levels. All in code, all deterministic. Covers compliance vetoes, corporate vetoes, quantitative breaches, document rework, and STP fall-through.
Reproducibility
Same in → same out. Six months from now. After a model upgrade. After a prompt edit. The branch fired by a given dossier triple never moves.
Boundary
The Orchestrator only narrates. It writes the regulator-readable explanation. It cannot change the verdict.
The committee
Real banks decide credit through committees.
Marvin ports that structure into software.
Three departments, eight agents, one god view. Each agent has a narrow remit and a private retrieval allowlist — Compliance reads AML/KYC, Quant reads scoring methodology, Underwriter reads policy. The chair (Orchestrator) applies a deterministic conflict tree to their dossiers. The eighth agent (Marvin) audits the other seven.
The proof
Eleven branches a regulator
can read line by line.
Click any row to read the plain-English explanation, the actual TypeScript that fires the branch, and a sample case that took it. The branch label is the audit trail.
Branches
11
Levels
5
LOC
241
conflictTree.ts
Outcomes
4
APPROVE · REJECT · REVIEW · REWORK
| # | Lvl | Branch | Decision | Plain English |
|---|---|---|---|---|
| 1 | L1 | compliance-hard-reject | REJECT | L1 · Legal blocker. Pipeline short-circuits before Underwriter / Quant even start. |
| 2 | L1 | compliance-review-required | REVIEW | L1 · Even if numbers are perfect, a human compliance officer must sign first. |
| 3 | L2 | policy-decline | REJECT | L2 · Bank-policy decline (sector exclusion, concentration limit). Quant has no breach — the block is policy-driven. |
| 4 | L2 | policy-escalation | REVIEW | L2 · Same as policy-decline but Underwriter cited a regulatory_exception factor — escalates for senior sign-off. |
| 5 | L3 | quant-breach-hard-no-comp | REJECT | L3 · Numbers blow past methodology limits, no structural mitigant. |
| 6 | L3 | quant-breach-hard-with-comp | REVIEW | L3 · Hard breach but Underwriter found a strong mitigant — defer to a human. |
| 7 | L3 | quant-breach-soft-with-comp | APPROVE | L3 · Soft breach + strong mitigant → approve with conditions. |
| 8 | L3 | quant-breach-soft-no-comp | REVIEW | L3 · Borderline numbers without a clear save — defer to a human. |
| 9 | L4 | documents-rework | REWORK | L4 · Application package incomplete. Case is otherwise clean — return for paperwork, NOT a credit decline. |
| 10 | L5 | all-clear | APPROVE | L5 · Within policy + complete + Underwriter APPROVE → straight-through. |
| 11 | L5 | fallthrough-review | REVIEW | L5 · 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 that keep it from rotting: Strategy grows the bank's knowledge base; the god-view agent reads telemetry and surfaces drift before it ships a bad decision.
Security & compliance
Built audit-ready,
not retrofitted after the regulator called.
The six things a Tier-1 bank's risk + technology leadership actually checks before approving a vendor.
The audit trail
What lands in your DB
after every case.
One row per session. Hash-chained against the previous decision so a deletion is detectable. Three dossier hashes pin what each agent saw. The manifest hash pins which prompt + embedder + corpus version was active. Citations resolve or fire a finding. Auditors get their entire chain of custody from one query.
Real-shaped sample. The fields above mirror the FinalDecisionV4 schema in packages/shared/src/v4.ts — what your data team will see in the decision_audit_log table after each case, surfaced through any log shipper.
Marvin vs the alternatives
Three categories.
One survives a Tier-1 audit.
| Capability | Marvin | LLM credit-bot | Scoring API |
|---|---|---|---|
| Reproducible verdict | deterministic tree | varies per call | rule-based |
| Citations resolve | unit-checked | hallucinated | — |
| Audit trail per decision | hash-chained | ~ad-hoc logs | row-level |
| Conflict resolution | 11-branch tree | single LLM | single score |
| Self-improvement loop | god-view agent | ||
| Regulator-readable explanation | cited prose | "the model said so" | ~score-card |
| Compliance posture | DPIA + Art. 22 | DIY | ~legacy |
| Cost model | ~per case | ~per token | ~per query |
| Dispute response time | minutes (re-run) | manual reconstruction | ~days (re-score) |
Bolded rows are the ones a regulator asks about first. We've built for those before the others.
For each buyer
Pick the path that matches
the question you came with.
The pilot
Fixed fee. 30 days. No production traffic.
Sign in a week.
Scope
Up to 1,000 historical decisions evaluated against your loan book. One regulatory corpus configured against your policy docs. Five operator seats.
Deliverables
Confusion matrix vs realised outcomes. Expected loss per €1k lent. Branch-level audit. Drift report against your methodology. All exportable.
Exit
You keep the eval dataset. Decide on Production tier with your numbers in hand. Walk away clean if the eval doesn't meet your bar.
€15k · all-in · 30 days
Pricing
Pay for the answer,
not the seat.
Per-decision metering aligns cost with actual work. The pilot is fixed and capped so procurement can sign in a week.