Ledger
What a full migration needs
Demand comes from PolicyEngine's production usage inventory: every output variable partners requested, weighted by the request volume of the clients that use it. Supply is what Axiom maps and executes today. The gap, ranked by unlocked volume, is the encoding roadmap.
Partner demand data is not bundled in this deployment.
Partners
Who can move, and what holds each one
One row per PolicyEngine partner (opaque client id), and the four gates between them and a cutover. Each is measured, not declared: covered — every variable the partner uses is served today, the outputs they ask for and the inputs they send (an unmapped output returns null; an input nothing consumes is dropped, and the answer still looks complete); aligned — their own payloads replay, and every value matches or has a named known difference; servable — every replayed case answers, inside the latency budget, next to PolicyEngine's own time on the same case; cutover — the dated base-URL switch, which a manifest may declare but which is marked OVERCLAIMED here unless the three gates hold. Hover a cell for what it measured.
| Partner | Requests | 1 · Covered inputs + outputs | 2 · Aligned shapes + values | 3 · Servable latency + errors | 4 · Cutover | Holding it back |
|---|
Next to encode
Highest-leverage gaps
Ledger
Every demanded variable
| Variable | Served today | Encoding status | Axiom root / package | Entity | Clients | Demand weight |
|---|
Cases
Every partner call
Each card is one real partner payload replayed against production: end-to-end latency with the engine's share, then every covered variable — Axiom against the PolicyEngine golden and live PolicyEngine, with the difference. Variables Axiom cannot compute yet are folded below each card with the exact reason.
Evidence
State of the record
The latest run in one verdict: exact means equal within one cent; expected diffs are understood and documented (e.g. PE projects unpublished FY-2027 COLA values that Axiom deliberately omits); awaiting-encoding variables have no executable Axiom package yet.
Recorder
The tape
Every published run leaves a mark: exact agreement rides the upper trace, disagreements track beneath. Hover a point for that run's counts.
No runs recorded yet — the first daily comparison starts the tape.
pens:exact matchesdisagreements
Runs
The docket
| Recorded (UTC) | Verdict | Exact / covered | Avg case |
|---|
Comparison
Between two runs
Every variable whose value or coverage changed between the selected runs.
vs CONTRACT CHANGED
No value or coverage changes between these runs.
| Case | Variable | Before | After | Parity |
|---|
Service
Right now
| Dependency | Status | Detail |
|---|
Instrumentation
Where computation time goes
Measured inside the runtime for every real calculation, accumulated across instances and deploys.
planenginenormalize
No calculations recorded yet — run one and refresh.
| Package | Runs | Avg total | Phase split |
|---|
Instrumentation
Latency by route
Busiest routes across live instances (in-memory, resets on deploy). Distribution buckets: ≤25, ≤100, ≤500, ≤2000, >2000 ms.
| Route | Requests | Avg | Distribution |
|---|