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.
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.