Recomputes the monthly client-trust three-way close every firm already does by hand in a spreadsheet: the bank statement, adjusted for outstanding items, against the trust ledger total, against the sum of every per-client ledger. Separately walks each client's declared activity to catch a ledger that dips negative mid-period even when its ending balance looks clean, ages every outstanding item from the period end, and checks that every balance is stated as of the same date.
The demo values below are synthetic and already loaded, so you can press Run without entering anything of your own.
It does not source or verify any balance against a bank feed, general ledger, or practice-management system, and it does not determine which bank lines are outstanding: outstanding items are declared inputs, the same way a firm already lists them on its reconciliation worksheet. It is not legal advice and not a determination of an ethics violation; a DISCREPANT verdict is a citable record of an arithmetic break, which the firm and, on referral, a bar auditor evaluate.
ART-525 enforces the general N-way balance closure identity across named internal systems for any measure. This node is the specialized legal-ops case: exactly three legs (bank, trust ledger, client ledgers), a hard-zero rule on per-client balances that ART-525's tolerance-gated pairwise test does not carry, and outstanding-item aging tuned to a monthly trust-account close rather than a generic reconciliation cadence. ART-589 is the other legal-ops node in this shard group: it classifies redline changes across negotiation rounds of a contract rather than reconciling trust balances, and chains its rounds by hash rather than aging outstanding items.
Copy this paragraph into Claude, OpenClaw, or any MCP-aware agent to run this exact tool, with this sample, and verify the artifact.
Run the AINumbers MCP tool `check_iolta_three_way_reconciliation`. Task: Recompute a monthly IOLTA/client-trust three-way close (bank vs trust ledger vs sum of client ledgers) with per-client negative-balance and aged-outstanding-item checks.
Call it with arguments: {"policy_parameters":{"reconciliation_tolerance_minor":100,"statement_period":{"start_date":"2026-06-01","end_date":"2026-06-30"},"bank":{"ending_balance_minor":5000000,"statement_date":"2026-06-30"},"trust_ledger":{"ending_balance_minor":5050000,"as_of":"2026-06-30"},"client_ledgers":[{"client_id":"client-A","ending_balance_minor":3000000,"as_of":"2026-06-30","entries":[{"date":"2026-06-05","amount_minor":500000,"description":"deposit retainer"},{"date":"2026-06-20","amount_minor":-200000,"description":"disbursement"}]},{"client_id":"client-B","ending_balance_minor":2050000,"as_of":"2026-06-30","entries":[]}],"outstanding_items":[{"type":"deposit_in_transit","date":"2026-06-29","amount_minor":100000,"description":"client A retainer deposited 6/29"},{"type":"uncleared_check","date":"2026-06-15","amount_minor":50000,"description":"disbursement check #1042"}]}}
Verify before trusting: call `verify_execution_hash` on mcp.ainumbers.co (https://mcp.ainumbers.co/mcp) with the parameter `claimed_hash` set to the returned `execution_hash`, passing the full artifact the run returned (the object containing `policy_parameters` + `output_payload` + `execution_hash`; equivalently `policy_parameters` + `output_payload` with `claimed_hash`), not the bare hash string.
Return the ledger link https://ledger.ainumbers.co/ so a human can re-verify without contacting us.
PII rule: All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
Open the tool with the sample prefilled: https://ainumbers.co/chaingraph/art-566-iolta-three-way-reconciliation.html#p=v1.H4sIAAAAAAAA_wFRA678eyJyZWNvbmNpbGlhdGlvbl90b2xlcmFuY2VfbWlub3IiOjEwMCwic3RhdGVtZW50X3BlcmlvZCI6eyJzdGFydF9kYXRlIjoiMjAyNi0wNi0wMSIsImVuZF9kYXRlIjoiMjAyNi0wNi0zMCJ9LCJiYW5rIjp7ImVuZGluZ19iYWxhbmNlX21pbm9yIjo1MDAwMDAwLCJzdGF0ZW1lbnRfZGF0ZSI6IjIwMjYtMDYtMzAifSwidHJ1c3RfbGVkZ2VyIjp7ImVuZGluZ19iYWxhbmNlX21pbm9yIjo1MDUwMDAwLCJhc19vZiI6IjIwMjYtMDYtMzAifSwiY2xpZW50X2xlZGdlcnMiOlt7ImNsaWVudF9pZCI6ImNsaWVudC1BIiwiZW5kaW5nX2JhbGFuY2VfbWlub3IiOjMwMDAwMDAsImFzX29mIjoiMjAyNi0wNi0zMCIsImVudHJpZXMiOlt7ImRhdGUiOiIyMDI2LTA2LTA1IiwiYW1vdW50X21pbm9yIjo1MDAwMDAsImRlc2NyaXB0aW9uIjoiZGVwb3NpdCByZXRhaW5lciJ9LHsiZGF0ZSI6IjIwMjYtMDYtMjAiLCJhbW91bnRfbWlub3IiOi0yMDAwMDAsImRlc2NyaXB0aW9uIjoiZGlzYnVyc2VtZW50In1dfSx7ImNsaWVudF9pZCI6ImNsaWVudC1CIiwiZW5kaW5nX2JhbGFuY2VfbWlub3IiOjIwNTAwMDAsImFzX29mIjoiMjAyNi0wNi0zMCIsImVudHJpZXMiOltdfV0sIm91dHN0YW5kaW5nX2l0ZW1zIjpbeyJ0eXBlIjoiZGVwb3NpdF9pbl90cmFuc2l0IiwiZGF0ZSI6IjIwMjYtMDYtMjkiLCJhbW91bnRfbWlub3IiOjEwMDAwMCwiZGVzY3JpcHRpb24iOiJjbGllbnQgQSByZXRhaW5lciBkZXBvc2l0ZWQgNi8yOSJ9LHsidHlwZSI6InVuY2xlYXJlZF9jaGVjayIsImRhdGUiOiIyMDI2LTA2LTE1IiwiYW1vdW50X21pbm9yIjo1MDAwMCwiZGVzY3JpcHRpb24iOiJkaXNidXJzZW1lbnQgY2hlY2sgIzEwNDIifV19eCYXuFEDAAA