Ledger — a governed write path for Salesforce
Four systems want to write to the same CRM record. Instead of letting them, every source submits a proposal and a gateway decides: identity resolution with Claude breaking ties, a per-field authority matrix with freshness decay, echo suppression for sync loops, and an append-only audit ledger. Watch a captured run of the real system, then break the rules yourself in the playground.
The walkthrough is a captured run of the real system— a live Salesforce org, live Snowflake, a live Claude call — replayed here, not re-run, because the gateway writes to a real CRM. The rationale you'll see in beat 2 was written by Claude during that run. The playground, though, runs entirely in your browser: same decision engine, ported line for line.
This is the gateway's decision engine — authority rank, exponential freshness decay, confidence floors, never rules, the incumbent tie-break — ported to TypeScript and running entirely on this page. Nothing is called, nothing is mocked. Change the policy and the ruling recomputes as you drag.
Clay outranks everyone on headcount — but its claim is 95 days past a 21-day half-life.
NumberOfEmployees
Authority — highest first
Never
Clay leads because headcount is exactly what an enrichment vendor is for. The short half-life is the whole point: after about six weeks a Clay headcount has decayed below the floor and quietly stops winning, so the CRM falls back to whatever a human or marketing last said rather than preserving a stale scrape forever.— authority.yaml · NumberOfEmployees.notes
Competing claims
human claim is 30d old (half-life 21d) -> effective confidence 0.22 < floor 0.35
clay claim is 95d old (half-life 21d) -> effective confidence 0.04 < floor 0.35
The ruling
hubspot wins NumberOfEmployees at authority rank 1, confidence 0.70 decayed to 0.63 over 3d (half-life 21d); human claim is 30d old (half-life 21d) -> effective confidence 0.22 < floor 0.35; clay claim is 95d old (half-life 21d) -> effective confidence 0.04 < floor 0.35.
- ✗ human=40 — human claim is 30d old (half-life 21d) -> effective confidence 0.22 < floor 0.35
- ✗ clay=42 — clay claim is 95d old (half-life 21d) -> effective confidence 0.04 < floor 0.35
✓ engine verified — 9/9 fixture cases match the Python engine's output byte for byte, reason sentences included. Recomputed just now, in your browser, against fixtures exported from the real gateway.