Skip to main content
TrueMath exists to make math execution trustworthy. Five guarantees define what that means in practice.

Determinism and reproducibility

The same inputs produce the same outputs, every time. Results do not vary across runs or drift as models update. A calculation is a function of its inputs and the version of the logic in effect — nothing else — so a result can be reproduced rather than re-estimated.

Full precision

TrueMath carries values at full internal precision through every step of a calculation. Intermediate results are not rounded before being passed to the next step; rounding is applied only when a value is displayed. This eliminates the drift that accumulates when rounded values feed subsequent calculations — a failure mode that is invisible in a single step and compounding across many. See Units and precision.

Dimensional safety

TrueMath treats units like a strongly-typed language, not cosmetic labels. Every value carries its unit, and an operation that is not dimensionally meaningful is rejected rather than silently computed. Operations that are meaningful produce the correct resulting unit: a length times a length is an area; a distance divided by a time is a velocity. This keeps a calculation from returning a confident but dimensionally nonsensical result. See Units and precision.

Provenance

Every variable carries metadata about where its value came from — whether it was stated by the user, calculated, carried forward from a prior step, or supplied as a default. Because each value’s origin is tracked, a result is not just a number; it is a number you can account for. See Provenance.

Versioned business logic

Domains, and the activities within them, move through an explicit draft-to-published lifecycle. Calculations run against a published version of the logic, so the rules that produced a result are explicit and controlled rather than implicit and shifting. See Versioning.
These guarantees hold regardless of which language model interprets a request. The model can change; the execution layer’s behavior does not.