Verum
Verum Semantic + Verification layer Insurance & Reinsurance

The insurance mind,
made machine-provable.

The AI-native semantic and verification layer for insurance and reinsurance: model your business once, represent it everywhere, and prove every action an AI takes is authorized, correct, and current — for the EU, UK and Switzerland, built to scale as a global SaaS.

In a regulated business, an AI answer is only worth anything if you can prove it is authorized, correct, current, and honest. Everyone else bolts governance on after the model. Verum builds the proof into the foundation, so the same evidence survives a regulator, a CRO, and a procurement team.

465
entities modeled once, across two value chains
ontology-primary + reinsurance
606
proof obligations discharged, zero admitted
formal/tla/orchestrator_proofs
46
machine checks gate every commit
data/check-inventory.json
35
regulatory sources monitored + snapshotted
governance-source-registry
107
verified insurance actions, live behind a key
agent-semantic-surface v0.34
MOVEMENT01
The foundation

Model once, represent everywhere.

Verum holds a single authoritative model of the insurance business — defined independently of any database or vendor — and your lakehouse tables, graph, SQL views and APIs are all generated projections of that one truth. This kills the failure mode where "premium" or "loss" means five subtly different things in five systems. And the concepts that are legally and financially distinct — a Treaty is not a Policy, a ceded recovery is not a claim payment — are guaranteed by machine never to collapse into each other.

465 / 1,463Live artifact
entities and relationships across two fully-modeled value chains — primary (v1.35: 382 / 1,197) and reinsurance (v0.28: 83 / 266), each structurally parallel, not one bolted onto the other.
data/ontology-primary-insurance.json · ontology-reinsurance.json
1 metamodelEnforced
5 entity types, 5 temporal patterns, 4 projection patterns — each projection specifies the same entity's Iceberg table, Dremio view, GraphQL type, REST resource and graph node label.
ontology-primary-insurance.json → metamodel
5 constraintsIn code
Treaty ≠ Policy. Cedant ≠ Insured. CededPremium ≠ WrittenPremium. Asserted by validator checks inside a 46-check gate that must pass before any change lands — not left to a style guide.
CLAUDE.md · keyOntologicalDistinctions
7 + 6Contracted
7 interface entities cross primary→reinsurance read-only, each with a distinct lens per chain; 6 shared external references (CreditRating, PerilCode…) are owned by neither and consumed by both.
PROJECT-MEMORY.md · ADR-0009
Worked example · one fact, two lenses

Ceded premium, with zero reconciliation

WrittenPremium is modeled once (primary-owned) and projected to a single physical table. On the reinsurance side, CededPremium is a separate entity, DERIVED_FROM it via a declared cross-chain join. The reinsurance analyst sees ceded premium computed from the exact same written-premium record the underwriter booked — same number, no reconciliation — yet CededPremium keeps its own identity key and its own IFRS 17 "reinsurance contracts held" treatment, so the two are never silently merged.

One fact · two lenses · one join · zero drift
MOVEMENT02
The proof

The AI cannot take an action it isn't authorized for — and that's a proof, not a passing test.

Every regulated action a Verum agent can take — write a motor policy, move a bodily-injury reserve, cede a treaty layer, sign off an ORSA — passes through a machine-checked contract layer before it can run. Verum doesn't test that the agent behaves; it proves the agent cannot misbehave, using the same formal-methods tool family (Dafny / Z3 / TLA+) that AWS uses to verify S3, DynamoDB and Lambda. That turns "our unit tests passed" into "here is a theorem that holds for every user, every schedule and every input."

46-check gateGreen in CI
runs on every commit (42 hard-fail, 4 warn), cannot be bypassed even with --no-verify; a warm run is ~1 minute via a content-addressed proof cache. Verified green in cloud CI.
data/check-inventory.json · fvs_executive_summary §4.1
606Unbounded
proof obligations discharged on the orchestrator's five safety & liveness promises — zero admitted proof rules — proven for any number of users, tools or clock ticks, not a bounded sample.
formal/tla/orchestrator_proofs.tla
16 modules~188 obligations
the rule system itself is proven correct across 16 Dafny modules, 0 stubs — not "today's data satisfies the rule" but "the rule is sufficient for the defect class it guards."
formal/proof/*.dfy
caught 16Byte-level
the proof reaches the literal bytes: a verified byte→model deserializer runs a check proved equivalent to referential integrity — and caught 16 dangling references the prior validator was blind to.
formal/proof/OntologyDeserializer.dfy
MOVEMENT03
The behavior

Agents that refuse to guess.

A proof is static; the live agent has to behave. Verum's agents won't answer an ambiguous regulated question with a confident guess — they surface exactly what they need to know first. Ask "what's the capital requirement for this portfolio?" and a plausible-but-wrong number is the dangerous answer. Verum asks which rulebook, which basis, and as of when — before it commits to anything.

Clarify, don't guessGate design + measured evidence
Ask an ambiguous question:
The scope axes are bound to the ontology's jurisdiction, basis, and time-axis dimensions — not free text.
per callLive gate
authority is proven at the door on every invocation, never assumed from the session — and a refusal is the demonstration. Live on the runtime console today.
agent_runtime/boundary · entitlements
3 axesBound to model
a flagged-ambiguous concept must resolve jurisdiction, basis and time-axis before an answer — the analogue register and jurisdiction dimension are modeled, not guessed.
answer-fidelity · clarify-not-guess
< 0.80 → alertDesigned
corrections feed an accuracy scorecard (defaultCorrected / toolMismatch / resolutionFailed); the loop auto-alerts below 0.80 so the agent gets more honest over time.
agent-telemetry-contract · feedback
MOVEMENT04
The currency

Verum reads the rulebook so your team doesn't have to.

Verum keeps a governed watchlist of the authorities an EU/UK/CH insurer actually lives under — Solvency II, DORA, the EU AI Act, GDPR, IFRS 17, EIOPA/PRA/FCA/FINMA output, ACORD and Lloyd's — and on a fixed schedule re-fetches, snapshots and version-checks each one. Separately, every standards citation embedded in the model is machine-verified against the persisted text of the real regulation, so a plausible-but-wrong citation is caught by a machine, not discovered in an audit.

35 / 28Snapshotted
monitored sources across authorities, one governed registry — spanning EU (28), UK (23), CH (6), Global (15), each with origin URL, current version, review cadence and a persisted snapshot.
data/governance-source-registry.json
143 / 143Verified today
every citation checked against real regulation text — a live run: 8 primary texts, 143 citations, "OK, consistent." The model carries 1,889 citation values; 143 are article-structured today, the rest tracked openly.
scripts/audit/validate_citation_fidelity.py
12/5/18Risk-tiered
on-change / quarterly / annual refresh — not a flat poll; 4 critical instruments (EU AI Act, GDPR, Solvency II, DORA); an automated pull→snapshot→drift-diff pipeline, all 35 snapshots persisted.
dagster/standards_refresh.py
check 46Hard-fail
a source can't enter the pipeline without joining the watchlist — bidirectional 1:1 coverage enforced, so a source that would never get re-checked can't slip in.
scripts/fvs/check_pipeline_coverage.py
Worked example · drift caught end-to-end

The Solvency II 2025 Review, traced from source to ontology

The solvency-ii entry now records the amendment by Directive (EU) 2025/2 (CELEX 32025L0002, staged from 30 Jan 2027). Found via the currency check, snapshotted, cross-verified against EUR-Lex, recorded as decision: action, then impact-evaluated into concrete ontology changes: a two-part SFCR split, a climate-risk enum on the ORSA entity, new liquidity-risk attributes. And the citation checker's real catches: EMIR "Art.12 trade confirmation" was actually Penalties (fixed to Art.11(1)(a)); CSDR "Art.3 settlement discipline" was actually book-entry form.

source drift → dated snapshot → impact review → ontology change · every step evidenced
MOVEMENT05
Touch it

A governed AI runtime you can actually click.

Verum turns the semantic layer into a live action surface: an agent resolves a plain-English request to the exact governed tool, checks the caller is allowed to run it, executes multi-step regulatory workflows that pause for a human sign-off, then returns a full audit trail. Below is the mechanism that makes it safe — pick a role and watch the same request get allowed or refused. This mirrors the runtime's real entitlement gate, live behind an access key today.

Authority, proven per call

Choose who is asking. The gate decides before anything runs — a denial is a structured refusal, not a silent failure.

Select a role to see the gate decide.13-role model · elevation tiers 0–4
Worked example · the ORSA filing chain
Pick who runs the annual Own-Risk & Solvency Assessment (SII Art.45 + EIOPA). The chain decides each step live.
107 toolsSeeded + live
86 domain actions + 21 read functions; a 2,241-row vocabulary index; plain-English → tool via retrieve-then-rerank, measured recall@1 / MRR = 1.0, ~800 ms end-to-end.
agent-semantic-surface v0.34 · service.py
13 rolesAllow / deny
an authorization vocabulary with elevation tiers 0–4; the runtime denies with a structured error on no overlap — live smoke: agent-user allowed, viewer denied.
data/agent-entitlements.json
4 chainsHuman-in-the-loop
a 10-step state machine with a confirmation gate and a hard 15-minute timeout; 25 of 86 tools flagged human-sign-off-required.
orchestration/confirmations.py
explain + auditObserved
invocations, confirmations and chain runs persist to operational tables; Prometheus + Grafana ship an invariant-health dashboard over a 7-class contract-violation event stream.
agent-telemetry-contract.json
FOR YOUR DESK06
The boardroom lens

The same evidence, answered to the person who has to sign.

Proof only matters if it answers the question the accountable person is actually asking. Pick a desk — the one worry that keeps them up, and the exact Verum evidence that puts it to rest. Every figure here is the same one from the story above, turned to face a different signature.

Whose signature is on the line?

Choose a role. Verum reframes its evidence around what that desk is accountable for.

The honest accounting

What's live, what's reproducible, what's described.

A vendor that tells you exactly what is live is a vendor whose "live" you can believe. So here is the whole picture, without gloss.

Live click it today
  • The runtime console: resolve, invoke, explain, and the ORSA chain with a real entitlement halt and a real human-in-the-loop WAITING park (behind an access key).
  • The cross-chain write guard and all five gates' emission path (55-test suite).
  • The Prometheus + Grafana agent-invariant dashboard.
  • The interactive ontology graph — 465 nodes, ~1,462 edges — walkable.
Proven reproducible
  • The 46-check gate, green in cloud CI — committed source you can open and read.
  • The proof artifacts — 16 Dafny modules, the TLA+/TLAPS specs, the PRISM/Storm models (obligation counts are our documented figures; provers run in CI, not on this page).
  • The citation-fidelity checker, green over 143 citations against real regulation text.
  • The quarterly standards-currency pipeline, all 35 snapshots persisted.
Described near-term
  • The full physical "represent everywhere" — running Iceberg / Dremio / graph / GraphQL / REST — is specified but partially built.
  • The self-correcting feedback loop is designed and evidence-backed, not yet a closed live loop.
  • Distributed tracing and the model-governance layer (registry, drift, actuarial sign-off) are roadmap.
Two things we won't paper over: the explain endpoint currently reads a bounded in-memory cache (not durable across a container restart), and one Dafny obligation total is documented as 185 in one internal file and 188 in the summary — a real, minor doc-drift.

Proof you can hand to a regulator. AI you can put in front of an underwriter.

The bottleneck on AI in insurance was never capability — it was evidence. A CRO, a named SMCR manager, or a bank's model-risk committee cannot deploy a system whose answers can't be shown to be authorized, correct and current. Verum makes that evidence structural: one model that can't drift, actions proven before they run, agents that refuse to guess, a rulebook monitored automatically, and a runtime that halts and explains itself on screen. It is the layer that lets you say yes to AI in the parts of the business where "the test passed" was never going to be enough.

Portable by design

The model is technology-agnostic and the representations are generated to a pattern — so it rides on your existing lakehouse, graph and API estate, not a rip-and-replace.

Your cloud, or your walls

Built to run on-premise or in a customer's own cloud where data residency demands it — the same verified layer, wherever the data must live.

Model once, roll it out

From a first EU / UK / CH footprint toward a global SaaS: model once for one carrier, then roll the same verified layer across entities, jurisdictions and both value chains. The proof travels with it.