Standards and sources
Most of what Lopifi implements came from somewhere else. This page lists the standards behind the rules, what we take from each, and which claims are our opinion.
If you want to check whether a rule is real, the source is one click away. A model answering a question about money formatting finds the primary source sitting next to our restatement of it.
Currency and number formatting#
| Source | What we take |
|---|---|
| ISO 4217 | Currency codes and minor-unit exponents. JPY 0, USD 2, KWD 3. Every Money value carries an ISO 4217 code, so there is no untyped amount in the system. |
| Unicode CLDR | Locale formatting: separators, symbol position, accounting parentheses. We reach it through Intl.NumberFormat and don't reimplement it. |
| ECMA-402 | The Intl API itself, including currencySign: "accounting" and currencyDisplay: "narrowSymbol", which do most of the work in formatting money. |
| Unicode U+2212 | The minus sign. U+002D, the hyphen, is a different width and breaks a column of deltas. |
| ISO 8601 | Dates on the wire. Displayed dates are localised; transmitted dates never are. |
Accounting#
Component behavior follows these standards. The components are not a compliance product, and none of this is accounting advice.
| Source | Where it shows up |
|---|---|
| FASB Accounting Standards Codification | The US GAAP frame behind statement semantics and schedules. |
| ASC 606 / IFRS 15 | Revenue recognition, deferred revenue and the revenue waterfall. |
| ASC 842 / IFRS 16 | The lease liability unwind and ROU amortization behind LeaseSchedule and the lease tool. |
| ASC 830 / IAS 21 | Functional versus presentation currency, translation versus remeasurement, and CTA — see multi-entity and FX. |
| COSO internal control framework | Segregation of duties, approval and evidence, in controls and audit. |
| ISO 20022 | Payment message vocabulary, where our payment states have to map onto a rail. |
Interface#
| Source | What we hold ourselves to |
|---|---|
| WCAG 2.2 AA | Contrast, focus visibility, target size, and the rule that no state is signaled by color alone. Financial value colors are checked at grayscale as well as at ratio. |
| WAI-ARIA Authoring Practices | Grid, listbox, dialog and disclosure behavior — including correct aria-rowcount under virtualization, which most data grids get wrong. |
prefers-reduced-motion |
Honored throughout, and testable live from the switch in the showcase header. |
OpenType tnum and case |
Tabular figures and case-shifted punctuation, on every numeral. See aligning numbers. |
Where we are opinionated rather than compliant#
These rules are ours. They're arguments, and no standard backs them:
- Never animating a value a reader might take as the truth. The reasoning is in motion principles.
- Debit and credit as two columns, with no single-column variant. Double-entry doesn't mandate a presentation. We treat the two-column form as a control and don't ship the compact version.
- Three sizes and three weights per component, one accent per view. A house rule, written down so people can argue with it.
- The words we refuse. The lexicon names one term per concept and lists the synonyms we don't use. No standard goes that far.
Any number this site quotes about a third party, such as an API rate limit, a page size or a vendor's minor version, is marked as volatile. Check it against the vendor's own documentation before you rely on it.