Lamna

Maritime risk intelligence

Risk scores you can defend to a regulator.

Lamna scores vessels, routes, and compliance posture with a deterministic, versioned, property tested core. Agents explain every number and cite their evidence. Re-run any assessment and get the identical result, proven by its input hash.

Deterministic core

Vessel, route, and compliance scores come from versioned, unit tested, pure functions. Worsening any input never lowers risk; a property test suite enforces it. Weights are configuration with a version stamped on every assessment.

Agents that explain, not decide

Claude reads the same factor contributions you do and writes the analyst narrative. It can propose an adjustment inside a hard bound, with a stated reason, logged. It cannot override the score.

Reproducible by construction

Every assessment records a hash of every input that fed it. Same inputs, same output, byte for byte. Every model call is logged with prompt, response, latency, and content hash.

Architecture

Every feed enters behind an interface. Scoring math never touches IO. The agent layer sees the same evidence the API returns to you.

01
AIS / weather / sanctions feeds
synthetic or live, one interface
02
Ingest worker
idempotent upserts, dark event detection
03
Postgres + Parquet lake
hot store + DuckDB history
04
Deterministic scoring core
pure functions, versioned weights
05
Explainability agents
audited Claude calls, bounded input
06
Assessment
banded, evidenced, reproducible

Built for buyers who carry the risk

Marine insurers, P&I clubs, and compliance teams do not need another opaque ML score. They need a number with a paper trail: which factors moved it, which weights version scored it, which model explained it, and proof the same inputs give the same answer tomorrow. That is the product.

Scoring functions
pure, versioned, tested
Agent adjustments
bounded, logged, cited
Assessment re-runs
byte identical
Model call audit
prompt, response, hash