Conversion identity
Rounding never becomes missing money
converted = half_even(source × rate) + residualThe selected rate and explicit residual are retained in lineage, so the identity can be replayed exactly.
Technical trust
Exasum binds exact financial decisions to source facts, effective configuration, live authority, and historical versions, then preserves the released evidence as canonical bytes.
Evidence lineage
Each stage fixes the coordinates required by the next. A published result can be inspected from retained evidence instead of reconstructed from today's mutable setup.
01
Sealed rows, provenance, and stable coordinates
02
Published charts, dimensions, and mapping paths
03
Effective rates, ownership, scope, and rules
04
Conversion, aggregation, NCI, and eliminations
05
Classified results, exceptions, and lineage
06
Approved manifest and print-artifact digests
Exact arithmetic
ISO 4217 LIST ONE
165 PINNED CURRENCIES
Money and rates never pass through binary floating point. API values are decimal strings, database values are exact numerics, and each supported currency carries the precision at which money may be accepted and rounded.
| Currency | Minor unit | Accepted | Rejected |
|---|---|---|---|
| USD | 2 | "1250.45" | "1250.451" |
| JPY | 0 | "1250" | "1250.5" |
| KWD | 3 | "1250.455" | "1250.4551" |
| CLF | 4 | "1250.4550" | "1250.45501" |
Conversion identity
converted = half_even(source × rate) + residualThe selected rate and explicit residual are retained in lineage, so the identity can be replayed exactly.
Conservation
Every amount is carried or named
Split mappings conserve their source contribution. Ownership paths add exactly. Accepted elimination entries sum to zero. Out-of-tolerance differences remain discrepancies instead of disappearing into an adjustment.
Decision integrity
Types and pure decisions carry business meaning; PostgreSQL independently defends critical storage invariants; integration evidence proves the real path reaches both.
01
A deterministic financial answer from validated, owned inputs is a synchronous domain decision. HTTP and database code acquire authority and facts, then persist that owned outcome without recalculating it.
02
Source snapshots, charts, mappings, ownership, group scope, rates, eliminations, publications, and releases are sealed or append-only. A correction creates later evidence.
03
Foreign keys, checks, row-level security, transition guards, deferred completeness contracts, and restricted database roles independently reject critical invalid states.
04
Domain vectors prove decisions; real-database and router contracts prove the production path; browser journeys prove the visible workflow reaches those mechanisms.
Exact release
Release pins the group, book, period, primary and comparative publications, section order and commentary, presentation policy, attachments, approval, and release attribution.
The server renders a self-contained HTML artifact, hashes it, embeds its digest and byte length in canonical newline-terminated JSON, hashes those exact manifest bytes, and verifies stored evidence on download.
{
"schema": "https://exasum.com/schemas/report-package-manifest/v2",
"package": {
"version_id": "<immutable version id>",
"group_id": "<reporting group id>",
"period": "2026-07-31",
"title": "Northstar July board package"
},
"presentation": {
"unit": "units",
"decimal_places": 2
},
"publications": [{
"role": "primary",
"consolidation_version_id": "<sealed publication id>"
}],
"artifacts": [{
"renderer_version": "report-package-print-html/1",
"sha256_digest": "<SHA-256>",
"byte_length": 28416
}],
"release": {
"approved_by": "<reviewer id>",
"released_by": "<releaser id>",
"renderer_version": "report-package-manifest/2"
}
}Independent evidence
Ported financial rules are compared with the established OCaml behavior and independent F# scenarios. Domain vectors, database attacks, router contracts, race probes, accessibility scans, and browser journeys exercise different failure boundaries.
Exact examples, properties, boundary cases, and exhaustive state transitions.
Real restricted-role sessions probe constraints, RLS, immutability, races, and guarded writes.
Production HTTP paths prove authentication, DTO strictness, transaction ordering, and exact response evidence.
Keyboard, accessibility, visual, and full close-to-release scenarios exercise the customer-visible path.