Foots and cross-foots a financial statement you declare, and ties its note amounts to statement lines, in integer minor units. You declare the columns, the lines (an id, a section id, a role of detail, subtotal or total, and one amount per column), which line totals which signed lines, which line must equal the sum of which columns, which note should tie to which line and column, a tolerance and the sign convention. It returns every footing break, cross-foot break and note-to-statement break with the expected sum, the stated figure and the difference, plus the lines no relation references. It checks arithmetic and references among declared values. It does not read a document, does not verify that the figures are the real ones, and is not an audit procedure on its own. Ids and integers only: free-text labels, names and anything shaped like an account number are refused, never read.
🔒 All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
Inputs
Keys: columns, lines, total_relations, crossfoot_relations, note_refs, tolerance_minor, sign_convention (signed or magnitude). Ids are lowercase letters, digits, hyphen or the low-line character, up to 32 characters. Amounts are integers in minor units. Any other key is refused.
Result
Footing breaks
Total line
Column
Expected sum
Stated
Difference
Cross-foot breaks
Line
Total column
Expected sum
Stated
Difference
Note-to-statement breaks
Note
Line
Column
Noted
Stated
Difference
Lines no relation references
Execution Hash (SHA-256)
execution_hash,
Basis and declarations
This node implements no published standard: footing is the sum identity of a declared statement, and cross-footing is the same identity across declared columns. Every figure is a value you declared; the node cannot tell whether it is the figure in a real document.
A footing break is the stated total less the signed sum of its members, per column. A cross-foot break is the stated total column less the sum of the declared member columns, for one line. A note break is the noted amount less the stated line amount. A difference at or inside the tolerance ties; one minor unit past it is a break.
Under the signed convention amounts carry their own sign and each member's declared sign of 1 or -1 is applied on top. Under the magnitude convention amounts are unsigned and a negative amount makes the result indeterminate.
The verdict is indeterminate when a relation or note names a line or column that is not declared, or a required declaration (tolerance, sign convention) is missing or invalid; nothing is checked in that case. It is also indeterminate when no break is found but the statement was not fully footed: a subtotal or total line that no total relation foots is flagged TOTAL_LINE_NOT_FOOTED and listed with the unreferenced lines, and a statement with more than one column and no cross-foot relation is flagged CROSSFOOT_NOT_DECLARED. A statement with no subtotal or total lines may tie, with a NOTHING_FOOTED warning when footing_checked is 0. Note references are optional: omitting them is not incomplete. A line no relation references is listed and flagged, and does not by itself make the verdict a break.
Limits: at most 200 lines, 8 columns, 200 relations and 200 members per relation, and every amount, noted amount and the tolerance within 10000000000000 minor units (1e13) in absolute value. Past a limit the verdict is indeterminate with a named flag (MAX_LINES_EXCEEDED, MAX_COLUMNS_EXCEEDED, LINE_AMOUNT_EXCEEDS_LIMIT, NOTE_AMOUNT_EXCEEDS_LIMIT, TOLERANCE_EXCEEDS_LIMIT), never a wrong tie.
It is distinct from art-526, which ties a reported figure to a general ledger figure by account. This node checks a statement against itself and against its own note references.