Last reviewed: 2026-06-16
Money Contract
Canonical value: Money
Required concepts: - amount - currency - scale or precision - rounding policy where applicable
Initial storage precision: - decimal amount with precision 19 and scale 4 for persisted accounting amounts. - ISO 4217 currency code stored with each persisted accounting amount.
Rules: - Calculations must preserve currency and precision. - Rounding must be explicit and explainable. - Rounding differences must be handled consistently. - Posting validation must not balance amounts across different currencies unless an explicit multi-currency policy exists. - In the initial release, posted amounts must use the owning company's base or reporting currency. - Foreign-currency source amounts and exchange-rate evidence may be preserved, but they do not authorize conversion or posting.
Validation expectations: - currency and precision accompany each amount. - rounding policy is documented when applied. - currency codes are three uppercase letters. - persisted accounting amounts use the initial storage precision unless a later accepted decision defines a different precision for a specific accounting area. - prepared and posted journal-entry currency matches the owning company's base or reporting currency.
Related truth pages:
- ../accounting/money-and-rounding.md
- ../decisions/accepted/0026-initial-release-single-currency-boundary.md