APRA CPS 230 — Live
APRA AI letter — Live
EU AI Act — Aug 2026
Fed SR 26-2 — In flight
OSFI E-23 — May 2027

When a regulator asks how any of your models made that decision, what do you show them?

RiskAttest automatically captures tamper-proof evidence for every model — AI or traditional, LLM or Monte Carlo — and maps it to APRA, Fed, EU, and OSFI requirements. It sits between your MLOps/DataOps stack and your GRC platform, adding the compliance layer neither was designed to provide — without replacing either.

24%
of banks still rely on MS Excel for model risk management
Deloitte 2025 EMEA MRM Survey
12%
of banks with AI tools never validate them at all
RMA 2024 MRM Survey
1,000+
models at 1 in 5 commercial banks — mostly unmonitored
Moody's / Risk.net 2026
4
major regulators converging simultaneously, 2025–2027
APRA · Fed · EU · OSFI

RiskAttest connects to your existing MLOps stack — Databricks Unity Catalog, MLflow, HuggingFace, LiteLLM — and pushes compliance evidence to your GRC platform — OpenPages, ServiceNow IRM, Workiva. It adds the regulatory evidence layer that neither stack was designed to provide, without replacing either.

The audit question your team cannot answer — yet.

Regulators don't want a policy document. They want proof: who validated this model, when, with what data, what happened when it made a wrong call. That proof doesn't exist in most banks today.

Regulatory risk

"Show us the validation evidence for your credit scoring model — as it ran on March 14."

APRA CPS 230 requires tamper-evident documentation of model decisions. Most banks have a PDF in a SharePoint folder last updated six months ago.

APRA CPS 230 · Paragraphs 27–28

Operational cost

Your risk team spends three weeks before every audit rebuilding evidence that should already exist.

Deloitte 2025: only a third of banks have tooling that fully supports lifecycle automation. The rest rebuild manually, every time.

Deloitte 2025 EMEA MRM Survey (87 banks)

Governance gap

Your GenAI models are invisible to every GRC platform your team already owns.

Legacy MRM suites were built for statistical models. LLMs, RAG pipelines, and agentic systems don't exist in their data model. The EU AI Act doesn't care.

EU AI Act · Annex IV obligations

Automated evidence. From every model. Every time.

RiskAttest sits between your models and your GRC platform. Every model run produces a tamper-proof, regulator-ready evidence packet — without your risk team lifting a finger.

What your CRO gets

A single compliance layer across your entire model inventory — GenAI, LLMs, RAG pipelines, and traditional statistical models. RiskAttest reads from your MLOps stack (Databricks, MLflow, HuggingFace) and writes to your GRC platform (OpenPages, ServiceNow, Workiva). Your engineers keep their tools. Your risk team keeps theirs. RiskAttest is the bridge.

  • Tamper-proof evidence vault — cryptographically chained, WORM-stored, HSM-signed
  • Compliance reports mapped to APRA, Fed SR 26-2, EU AI Act, OSFI E-23
  • Every model decision replayable byte-for-byte on demand
  • No manual evidence reconstruction before audits
  • GRC push connectors — OpenPages, ServiceNow IRM, Workiva
Compliance coverage — bundled
APRA CPS 230 Covered
Fed SR 11-7 Covered
Fed SR 26-2 In flight
EU AI Act Covered
OSFI E-23 Covered
NIST AI RMF Q4 2026

27-concept cross-standard crosswalk included. Pluggable for custom jurisdictions via @register_standard.

The compliance layer your MLOps and GRC platforms don't provide.

Your MLOps stack (Databricks, MLflow, HuggingFace) is built to ship models fast. Your GRC platform (OpenPages, ServiceNow) is built to manage risk processes. Neither was designed to produce tamper-proof, regulator-ready evidence for every model decision. RiskAttest fills that gap — reading from one, writing to the other, replacing neither.

Databricks Unity Catalog

Register models directly from Unity Catalog. RiskAttest reads model versions, lineage, and metadata — your model catalog becomes the source of truth for validation and evidence generation.

Model catalog

MLflow Model Registry

Pull models directly from MLflow by name or version alias. Validation runs, evidence packets, and compliance reports are automatically linked back to the originating experiment run.

Experiment tracking

HuggingFace Hub

Validate any HuggingFace model directly — FinBERT, Llama, custom fine-tunes. Apply GenAI-specific tests (hallucination rate, toxicity, PII leakage) to models your team pulls from the Hub.

GenAI models

LiteLLM Gateway

One integration covers OpenAI, Anthropic, Azure OpenAI, Bedrock, and 100+ LLM providers. Validate any LLM your organisation uses through a single standardised interface.

LLM providers

scikit-learn / sklearn

Full support for traditional ML models — credit scorecards, fraud detection, propensity models. Load from pickle, joblib, or S3. The same YAML declaration, the same compliance output.

Traditional ML

OpenTelemetry (OTLP)

Every DecisionRecord exports natively to OTLP. Send model decision traces to Datadog, Splunk, Grafana, or any SIEM your security team already monitors — no custom connectors needed.

Observability

S3 Object Lock / WORM

Evidence packets are stored to S3 with Object Lock enabled — Write Once, Read Many. Immutable from creation. Satisfies APRA's tamper-evident retention requirements with no additional configuration.

Evidence vault

GRC Platforms

Push compliance reports directly to IBM OpenPages, ServiceNow IRM, and Workiva. Risk officers see validation status in the tools they already use — no separate portal to log into.

Coming Q4 2026
For model risk & engineering teams

How does it actually work?

Declare any model in YAML — GenAI, LLM, Monte Carlo, credit scoring, fraud detection. Run one command. The evidence vault, audit trail, and compliance reports generate automatically in the same pipeline your engineers already use.

dbt for Model Risk. Covers AI and traditional models — one tool, one pipeline.

Just as dbt handles both SQL and Python models without separate tooling, RiskAttest handles GenAI, LLMs, RAG pipelines, Monte Carlo, credit risk, and fraud models from a single YAML declaration. CLI-first. Git-compatible. Runs in any CI/CD pipeline.

main / risk / ccr_monte_carlo
Model catalog
main.risk
ccr_monte_carlo
expected_loss_pd
credit_memo_llm
fraud_xgb_v4
propensity_lgbm

ccr_monte_carlo

TIER 1 @champion VALIDATED
Counterparty credit risk · Monte Carlo exposure simulation · owned by Quant Risk
Version
v7 · champion
Source
Databricks UC
Framework
MLflow / pyfunc
Last validated
2026-06-28
Evidence
WORM · sealed
Next review
2026-12-28
Properties
Model URIdatabricks-uc://main.risk.ccr_monte_carlo@champion
Registered bya.chen@bank.com
Regulatory tierAPRA CPS 230 · material
Compliance mappingcps230, sr26_2, eu_ai_act
Lineage
exposure_paths ccr_monte_carlo expected_loss_pd rwa_report

Unity Catalog / Purview-style registry — every model is a governed object with tier, lineage, owner, validation status, and a sealed evidence trail. Reads directly from your MLOps catalog; no re-registration.

mrm_project.yml · project: ccr_platform
Project → model mapping
projectccr_platform
profileprod · s3+object-lock
catalog backenddatabricks_uc
standardscps230, sr26_2, eu_ai_act, osfi_e23
models tracked5 · (2 tier-1, 3 tier-2)
Registered models in this project
ccr_monte_carlo
tier_1 · uc://
expected_loss_pd
tier_1 · ref()
credit_memo_llm
tier_2 · hf://
fraud_xgb_v4
tier_2 · s3://
The registry above is the visual view of the YAML below. One mrm_project.yml maps every model, its tier, its source, and the standards it must satisfy — the same file the CLI runs against.

This config is what powers everything on this page. The full YAML — with per-test compliance mappings — is in the code sample just below.

ccr_monte_carlo · test plan (5)
TestMetadataMaps toRuntime
ccr.MCConvergence
Monte Carlo path convergence
paths: 100ktol: 1e-3 cps230 §27sr26_2 III.A 4.2s
ccr.ExposureBacktest
EPE vs realised exposure
window: 250dconf: 0.99 cps230 §28 2.8s
tabular.MissingValues
Input completeness check
threshold: 0% cps230 §27 0.4s
compliance.GovernanceCheck
Owner, tier, review date set
tier: tier_1 cps230 §35osfi §3.1 0.1s
ccr.SensitivityIM
Initial margin sensitivity
shock: ±25% sr26_2 III.B 3.1s

Every test carries its own metadata — parameters, thresholds, and the exact regulatory paragraphs it satisfies. Namespaced (ccr.*, tabular.*, compliance.*) and pluggable via @register_test.

mrm test --select ccr_monte_carlo · run #218
5
Tests run
4
Passed
1
Warning
10.6s
Wall time
ccr.MCConvergence
std error 8.1e-4 < tol 1e-3
PASS
ccr.ExposureBacktest
3 exceptions / 250 · within 99% band
PASS
ccr.SensitivityIM
IM delta 27% at +25% shock · trigger: review
WARN
tabular.MissingValues
0 nulls across 1.2M rows
PASS
compliance.GovernanceCheck
owner, tier, review date present
PASS

Results carry the actual metric, the threshold, and the trigger that fired. The WARN here tripped a review trigger — logged to the evidence packet automatically, no manual write-up.

evidence / ccr_monte_carlo / run #218 · sealed
WORM SEALED HSM SIGNED 2026-06-28 04:12 UTC
merkle_root: a3f9c1e7b2d4…8e0f2a91
prev_hash:   7b21df0c9a5e…14c6bb32
signature:   kms://aws:sig:MEUCIQDx…9tLQ
Packet contents — hash-chained

The differentiator: every run seals an append-only, hash-chained evidence packet — model snapshot, results, replay set, and compliance mapping under one Merkle root, HSM-signed and WORM-stored. This is the artifact you hand a regulator.

mrm_project.yml → mrm test → mrm evidence freeze → mrm docs generate
models:
  # Traditional model — loaded from Databricks Unity Catalog
  - name: ccr_monte_carlo
    tier: tier_1          # APRA CPS 230 tiering
    location:
      type: mlflow
      uri:  "databricks-uc://main.risk.ccr_monte_carlo@champion"
    tests:
      - test: ccr.MCConvergence
        params: { paths: 100000, tolerance: 1e-3 }
        compliance:
          cps230:  ["27", "28"]
          sr26_2:  ["III.A"]

  # GenAI model — loaded from HuggingFace Hub
  - name: credit_memo_llm
    tier: tier_2
    location: "hf://ProsusAI/finbert:text-classification"
    tests:
      - test: genai.HallucinationRate
      - test: genai.PIILeakage
      - test: genai.ToxicityScore
        compliance:
          eu_ai_act: ["Annex IV §2.b"]
          cps230:   ["27"]

# Run in CI/CD — same command, dev or prod:
mrm test --select tier_1+
mrm evidence freeze ccr_monte_carlo    # hash-chains to S3 Object Lock
mrm replay sample --model ccr_monte_carlo --n 50
mrm docs generate --compliance cps230,sr26_2,eu_ai_act

Hash-Chained Evidence

RFC-6962 Merkle roots. HMAC-SHA256 chain. KMS / HSM signing. WORM-stored on S3 Object Lock. Immutable from creation, verifiable forever.

1:1 Decision Replay

DecisionRecord captures inputs, model identity, inference params, output. Byte-for-byte replayable. OTLP export to any SIEM.

14 GenAI Tests Built-in

Hallucination rate, PII leakage, toxicity, bias, semantic drift, refusal rate — covering EU AI Act Annex IV and APRA AI letter requirements.

DAG Execution

dbt-style dependency graph. ref() across models. Topological ordering, cycle detection, parallel execution. mrm test --select +expected_loss.

Shipped & Tested

158 pytest passing. 59 end-to-end acceptance checks. 5 jurisdictions. Apache 2.0 OSS core. 6 Architecture Decision Records published.

CI/CD Native

Profile-based backend switching — same YAML runs locally and in prod (S3 + Object Lock). No notebook dependency. Fits any pipeline.

Open source core on GitHub: github.com/riskattest/riskattest-core

The structural gap no one else has closed.

ValidMind raised $11.1M (Point72 Ventures, 2024–26) proving the market is real. They went notebook-first. We went infrastructure-first — CLI + YAML + Git, the same bet dbt made against SQL scripts and spreadsheets.

✦ RiskAttest

CLI + YAML + Git native
14 GenAI / LLM tests bundled
1:1 Decision Replay (OTLP)
Hash-chained evidence vault
Databricks Unity Catalog
MLflow + HuggingFace + LiteLLM
5 jurisdictions bundled
Apache 2.0 open source core
Runs in CI/CD pipelines

ValidMind

No CLI or YAML interface
~ Partial GenAI support
No decision replay
No cryptographic chaining
No catalog integration
Limited model source support
~ Partial multi-jurisdiction
Closed source
Notebook-first — not CI/CD

OpenPages / Archer

No CLI or YAML
No GenAI support
No decision replay
No cryptographic chaining
No catalog integration
No modern MLOps connectors
~ Partial jurisdiction mapping
Closed, expensive, slow
Pre-dates LLMs by design

Two paths in. One is free.

The OSS core is on GitHub now. Cloud early access is for teams who need managed evidence vaults, HSM signing, and GRC connectors out of the box.

For MRM & Risk Teams

Join the early access list

Get notified when RiskAttest Cloud launches — managed evidence vault, GRC connectors (OpenPages, ServiceNow, Workiva), HSM-backed signing. No spam. One email when it's ready.

You're on the list. We'll reach out before launch.

Or go straight to the OSS core: github.com/riskattest/riskattest-core

For Investors

Request the investor deck

Raising a $750K pre-seed to build the cloud layer, GRC connectors, and HSM evidence vault. Working OSS product. 158 tests passing. Design partner pipeline open.

Request received. Deck on its way within 24 hours.

Or email directly: founders@riskattest.com

Tell us what you're actually dealing with

Completely optional. No email required. Shapes what we build next.

Built by practitioners who've lived the problem.

Combined experience across data engineering, data product development & data/AI governance, quant finance, model risk management, product governance, and regulatory compliance at Tier-1 banks and global consultancies.

Recruiting a Head of Compliance (GDPR + AI governance) for post-seed. Get in touch.