An issuer that elects one of the three spending exceptions under Treas. Reg. section 1.148-7 takes on a schedule: spend stated percentages of gross proceeds by milestone dates counted from the issue date, and the arbitrage rebate falls away. This pack turns each check of that schedule into evidence. Stage 1 tests the declared expenditure schedule against the elected exception's milestones, calendar-computed from the issue date, and gives every milestone exactly one verdict. Stage 2 wraps that receipt in a shareable evidence bundle stamped with the tier label the caller's declared gate results qualify it for. Every input is declared: the pack reads no trustee statement and no fund ledger, so it evidences whether the declared schedule satisfies the elected milestones, never that the declared spending occurred.
check_muni_arbitrage_spending_exception{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "check_muni_arbitrage_spending_exception",
"arguments": {
"issue_date": "2026-01-15",
"as_of_date": "2026-12-01",
"gross_proceeds_minor": 10000000000,
"elected_exception": "24_MONTH",
"reasonable_retainage": false,
"expenditure_schedule": [
{"date": "2026-06-30", "amount_minor": 1500000000, "description": "Construction draw 1"},
{"date": "2026-11-15", "amount_minor": 3200000000, "description": "Construction draw 2"}
]
}
},
"id": 1
}
assemble_ocg_evidence_bundle{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "assemble_ocg_evidence_bundle",
"arguments": {
"artifact_tool_id": "art-569-muni-arbitrage-spending-exception-checker",
"artifact_execution_hash": "<execution_hash from Stage 1>",
"gate_results": {
"envelope_well_formed": true,
"execution_hash_recomputes": true,
"chain_execution_valid": true,
"mandate_gates_valid": true,
"compute_integrity_proof_valid": false
},
"proof_refs": []
}
},
"id": 2
}
MET only when every milestone in the elected schedule has been met.
FAILED: under the cited regulation the elected exception is not satisfied, and the rebate question comes back. What follows from that is a matter for bond counsel, not for this pack.
as_of_date. It has not failed, because it has not yet had its chance to be met. An issue mid-way through its spending period will report PENDING overall, and re-running the pack at each milestone date is how the tracker is meant to be used.