Computes period-over-period movement per declared GL account from integer minor-unit balances, compares each to a declared threshold policy, and ranks the breaches by absolute movement. Every breach needs a declared explanation id from your reason-code list. A breach with none turns the gate to blocked; explained breaches route to review_required; no breach reads clear. Emits a hash-anchored OpenChainGraph v0.4 artifact. Sibling of ART-485, which does the same job for regulatory report line items.
Flags movements, doesn't judge explanations
Not legal or audit advice
🔒 All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
Scope limits, read before use: this tool flags movements over a declared threshold and requires a declared explanation id for each. It does not judge whether an explanation is adequate; that is a human review step. Inputs are values only: account ids (never account numbers), integer minor units, and reason-code ids. Free-text explanations are refused. A zero prior balance never yields an infinite percentage; the percentage is reported as NOT_EVALUATED and your declared zero-prior rule applies.
Ids only, for example CASH. Account-number-like ids are refused.
Each: account_id, minor_units (integer).
abs_minor_units, pct_bps, rule (either or both), zero_prior_rule (abs_only or any_movement), optional overrides. A threshold that is present must be greater than 0; leave a field out to turn that test off. Rule both needs both thresholds, rule either needs at least one. Unknown keys are refused, and version must be an id such as FLUX-2026-Q4. Limits: a movement equal to the threshold counts as a breach; basis points are floored; balances and thresholds are capped at 1e15 minor units; each list holds at most 5000 entries; an id with six or more digits in a row is treated as account-number-like and refused (a screen, not proof). A zero-prior account under abs_only with no absolute threshold cannot be tested and is flagged ZERO_PRIOR_NOT_EVALUATED.
Each: account_id, explanation_id. No other fields.