OpenChainGraph Suite · ART-569 · Municipal Finance & Tax-Exempt Bonds

Muni Arbitrage Spending-Exception Checker

Tests whether a tax-exempt bond issue's declared expenditure schedule satisfies the IRC section 148 / Treas. Reg. 1.148-7 6-month, 18-month, or 24-month spending exception, including the reasonable-retainage variant of each schedule and a caller-declared de minimis amount. Each milestone gets its own verdict; the full exception status rolls those up.

Spending exceptions only · not the rebate computation Reasonable retainage & de minimis are declared, never assumed Verdict per milestone: MET · FAILED · PENDING
🔒 All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
⚠ Not tax advice. This tool tests only the spending-exception milestone schedules in Treas. Reg. section 1.148-7 against the expenditure schedule you supply; it does not compute the future-value arbitrage rebate, and satisfying a milestone here means only what the cited regulation says it means. Confirm current text and facts with qualified bond counsel.
Issue & election

The demo values below are synthetic and already loaded, so you can press Run without entering anything of your own.

Milestones
Rejected inputs
Execution Hash (SHA-256)
What this does not do

It does not compute the future-value arbitrage rebate liability, which is a deliberately separate, not-yet-built tool. It does not determine whether a particular expenditure qualifies as a capital expenditure of the issue, does not source or verify any expenditure against a bank record or draw request, and is not legal or tax advice. A MET result means only that the declared expenditure schedule satisfies the cited milestone percentages as of the declared evaluation date.

Related

ART-566 and ART-568 are the other recompute-the-counterparty's-number nodes in this wave: this one is the municipal-finance case, testing IRC section 148 spending-exception milestones rather than a three-way balance close or a securitization waterfall.

Ask your agent

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_muni_arbitrage_spending_exception`. Task: Test whether a tax-exempt bond issue's declared expenditure schedule satisfies one of the three IRC section 148 arbitrage-rebate spending exceptions under Treas.
Call it with arguments: {"policy_parameters":{"issue_date":"2026-01-15","as_of_date":"2026-12-01","gross_proceeds_minor":10000000000,"elected_exception":"6_MONTH","reasonable_retainage":false,"expenditure_schedule":[{"date":"2026-02-01","amount_minor":4000000000,"description":"construction draw 1"},{"date":"2026-04-15","amount_minor":3500000000,"description":"construction draw 2"},{"date":"2026-07-10","amount_minor":2500000000,"description":"construction draw 3"}]}}
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-569-muni-arbitrage-spending-exception-checker.html#p=v1.H4sIAAAAAAAA_wGoAVf-eyJpc3N1ZV9kYXRlIjoiMjAyNi0wMS0xNSIsImFzX29mX2RhdGUiOiIyMDI2LTEyLTAxIiwiZ3Jvc3NfcHJvY2VlZHNfbWlub3IiOjEwMDAwMDAwMDAwLCJlbGVjdGVkX2V4Y2VwdGlvbiI6IjZfTU9OVEgiLCJyZWFzb25hYmxlX3JldGFpbmFnZSI6ZmFsc2UsImV4cGVuZGl0dXJlX3NjaGVkdWxlIjpbeyJkYXRlIjoiMjAyNi0wMi0wMSIsImFtb3VudF9taW5vciI6NDAwMDAwMDAwMCwiZGVzY3JpcHRpb24iOiJjb25zdHJ1Y3Rpb24gZHJhdyAxIn0seyJkYXRlIjoiMjAyNi0wNC0xNSIsImFtb3VudF9taW5vciI6MzUwMDAwMDAwMCwiZGVzY3JpcHRpb24iOiJjb25zdHJ1Y3Rpb24gZHJhdyAyIn0seyJkYXRlIjoiMjAyNi0wNy0xMCIsImFtb3VudF9taW5vciI6MjUwMDAwMDAwMCwiZGVzY3JpcHRpb24iOiJjb25zdHJ1Y3Rpb24gZHJhdyAzIn1dfSrZE5-oAQAA