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.
The demo values below are synthetic and already loaded, so you can press Run without entering anything of your own.
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.
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.
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