Every fact is an event
No row is updated in place to represent state. The envelope is bitemporal — when
it happened, and when you learned it — because a remittance file on Tuesday
describes a payment made Friday, and returned mail surfaces three weeks late.
You can ask what was true on the 14th and what you knew on the 14th, and get two different, correct answers.
Dispositions are calculated
There is no status column anyone can set. Disposition is a pure, versioned
function over facts, evaluated as of a moment. Client status codes are views
over it — including each client's own dialect.
Status drift becomes structurally impossible. A rules change is a version, not a four-million-row update with a rollback plan.
The gate refuses, and records it
Consent, quiet hours in local time, frequency caps at every applicable
jurisdiction, holds, validation windows — evaluated deterministically before
every outbound action. Not a model's judgment.
A block is a recorded fact with its reasons. That is a bona fide error defense with evidence attached, not a belief.
Cluster, never merge
Identity records stay pristine as received. A person is a computed cluster over
link events, each with its own confidence and provenance.
Low confidence suppresses contact; only high confidence attaches money or disclosures. An unmerge is a retraction, not database surgery.
Documents prove themselves
Artifacts are content-addressed — named by the hash of their own bytes — with the
data, template and content versions, delivery, and portal token preserved
alongside.
"Prove this is exactly what we sent" is a lookup. A litigation pack is a projection, not a scavenger hunt.
Terms, not template sprawl
Language that varies by state, client, product and status resolves at render time
from most specific to general, with the conditional logic where the legal
language actually interacts with account facts.
One template, resolved terms. Adding a jurisdiction is content, not a release.
Counterparties are certified
Vendors and clients board as versioned specifications carrying credential
references, never values. Certification is a human act over an all-green
conformance report.
An uncertified adapter does not run. Mocks learn from real drift, so the sandbox keeps getting more honest.
Go-live is gated
Every agency runs its book in a full simulator first — mock vendors, mock clients,
simulated consumers, a controllable clock — and a human certifies the session.
No certified session, no live sends. The gate is in the apply path, not in UI politeness.