Platform · the trust layer

The moat is the trust layer.
Agents compound on top of it.

An agent built on a weak trust layer is worse than no agent — it gives bad answers confidently. Northpoint already ships the load-bearing primitives every finance AI roadmap needs.

Architecture

Three layers,
every claim grounded in the one below.

Layer 3 produces signed proposals — never direct mutations. Layer 2 makes the data understandable. Layer 1 makes every claim verifiable.

Layer 3
wk 7+
Agentic copilots
Break investigator · Corp actions · Anomaly explainer · Ops triage
Layer 2
wk 1–5
Knowledge & reasoning
Per-column profiles · Semantic index · Lineage trace · MCP tools · Per-org credentials
Layer 1
shipped
Trust layer
Lineage + golden values · Hash chain · Source reliability · Deterministic DQ · Connector cache fallback

Load-bearing primitives.

Six primitives, all in production. They are the reason the agents work.

Lineage + golden values

SHA-256 hash chain · replayable end-to-end

Deterministic consensus over encrypted observations. Every observation, every recon decision, every golden-value pick is hash-linked back through the chain. Auditors verify the trace end-to-end without touching raw data. Lives in packages/store/src/lineage.ts.

SignPer-instance SHA-256 today; production deployments sign with the customer's ED25519 keystore.
Verify/api/lineage/audit/verify and signed evidence packets that customers hand to auditors.
ReplayAny moment in the chain can be reconstructed and re-verified without writes.

Source reliability

Tiered uptime DAO · cache-fallback semantics

Every connector is tracked for uptime, bucketed into reliability tiers (canonical / fallback / advisory), with cache-fallback semantics on disconnect. Brokers are canonical; market data sources are explicit opt-in fallbacks. Lives in packages/runtime/src/quality/uptime-dao.ts.

Tier shiftsSustained degradation moves a source's tier — fallback only takes over when canonical is unavailable.
Trend-awareReliability trend feeds the inbox so you see a degrading source before it causes a finding.
Cache safeDisconnects fall through to last-good cached bytes with explicit staleness markers.

Deterministic DQ engines

Five engines · operator-explainable · no magic ML

Integrity, cross-source comparator, continuity, dataset-health, predictive freshness. Every rule lives in a catalogue (foreign_key, sums_to, value_in_set, non_null_streak, monotone, range) — readable, auditable, deterministically enforced. Lives in packages/data-quality/.

IntegrityPer-row rules grounded in the column profile. No threshold the operator can't see.
Cross-sourceSame field across brokers and market data — divergence becomes a finding with both refs attached.
ContinuitySchema drift, missed refreshes, monotonicity breaks — caught before they cascade.
Predictive freshnessLearns each source's normal cadence; flags a late refresh before the watcher fires.

Similar-incident matcher

Deterministic Jaccard + feature scoring

Walks the resolved-incident history with Jaccard similarity plus a small feature blender. Grounds the inbox detail panel — operators see what happened last time before they decide what to do this time.

GroundedReturns concrete prior incidents with timestamps and resolution notes, not vibes.
Feeds copilotsThe anomaly explainer cites similar incidents in its narrative — same data, just summarized.

Column auto-mapper

Three-signal blender · operator-pick history

Header pattern + value type + user pick history. Proposes column purposes; the operator confirms; the confirmation feeds the next round. The accept/reject log lives in data_quality_picks and grows into a per-tenant model with zero ML magic.

Deterministic coreAll three signals are explainable. Operators see why a mapping was proposed.
CompoundsEach confirmation makes the next inference better — at the tenant boundary, not globally.

MCP server v1

Northpoint as MCP host · shipped 2026-05

External LLM clients (Claude Desktop, Claude Code, Cursor) connect via Model Context Protocol. Tools: lineage trace, dataset list / describe / query, incident list / get, finding list, source health, runbooks list. Bearer-token auth, audit-logged, privacy-contract enforced.

Per-org tokenPer-organization bearer tokens with rotation and revocation; no global shared keys.
Signed responsesEvery MCP response carries signed lineage refs — your external LLM grounds its answers in our chain.
v2 in progressdatasets.profile, datasets.semantic_search, lineage.dataset_overview, findings.search shipping next.
Design principles

Non-negotiable.

Three lines shape every release. They are how this product earns the word "trust" in its name.

Deterministic over LLM

LLMs propose, deterministic engines enforce. Every LLM proposal lands as a reviewable artifact — never a direct mutation. The audit chain only records deterministic actions.

Privacy is first-class

PII / cell-value redaction before any LLM send. BYO key as a default. Per-org credentials, rotation, revocation. Tenant isolation verified on every retrieval.

Trust-layer-first

Every agent answers 'what evidence supports this claim?' by pointing at lineage rows. A proposal without a citation is a bug.

Now stack agents on it.

The trust layer is what makes the copilots safe to ship in a regulated environment.