{
  "tool_id": "art-687-wash-sale-window-guard",
  "tool_version": "1.0.0",
  "display_name": "Wash-Sale Window Guard",
  "mcp_name": "compute_wash_sale_window_guard",
  "mandate_type": "compliance_control",
  "wave": 116,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-687-wash-sale-window-guard.html",
  "description": "Computes a wash-sale window screen from caller-declared synthetic inputs: the 61-day acquisition window of the declared wash-sale method (sale date minus 30 days through sale date plus 30 days, inclusive; 26 U.S.C. 1091(a), cited informatively) is applied to a declared lot sale and a declared replacement-purchase list. The node totals the disallowed loss (2 decimal places, half-up, restated in a trace), flags a replacement account declared tax-deferred inside the window (the IRA-trap case, where the disallowed loss is treated as permanently lost rather than deferred; Rev. Rul. 2008-5, cited informatively), and raises a basis-carryforward flag on the flagged taxable path (26 U.S.C. 1091(d), cited informatively). The verdict reports the declared arithmetic only (WASH_SALE_FLAGGED, WASH_SALE_CLEAR). Undated or malformed lots fail closed. This is a deterministic calculator over declared numbers: it is never advice, never an optimizer, and it renders no tax position on any real holding. Zero storage, zero network, no runtime clock.",
  "input_schema_ref": "chaingraph/art-687-wash-sale-window-guard.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:90239f1ed800b3758c774493db294a17aec61bb1f994506ea0d1df46f79c6378",
      "valid_from": "2026-09-05"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-09-06"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "cites_informative",
  "cited_clause_digest": [
    {
      "digest": "sha256:b6f296e8941dc93a087650602c2eb14ec251544f17ed660c9c86b60ce9f2dd64",
      "source_url": "https://www.law.cornell.edu/uscode/text/26/1091",
      "retrieved_at": "2026-09-05",
      "clause_path": "26 USC 1091(a) Disallowance of loss deduction -- 30 days before through 30 days after the sale (61-day window), acquisition of substantially identical stock or securities",
      "scheme": "us-code",
      "id": "26 U.S.C. 1091(a)"
    },
    {
      "digest": "sha256:fe2770668abc90421cc16521f651d41a9973366a1a89c13266452154478b33fc",
      "source_url": "https://www.law.cornell.edu/uscode/text/26/1091",
      "retrieved_at": "2026-09-05",
      "clause_path": "26 USC 1091(d) Basis of stock -- the disallowed loss carries forward as increased basis of the replacement shares",
      "scheme": "us-code",
      "id": "26 U.S.C. 1091(d)"
    },
    {
      "digest": "sha256:a6732107f1a6ec3bddb7d23d71b956ea0164abb3f394d0d3b0945037ee8b6086",
      "source_url": "https://www.irs.gov/pub/irs-drop/rr-08-05.pdf",
      "retrieved_at": "2026-09-05",
      "clause_path": "Rev. Rul. 2008-5 ISSUE -- loss disallowed when an IRA or Roth IRA acquires substantially identical stock within 30 days before or after the sale",
      "scheme": "irs-revenue-ruling",
      "id": "Rev. Rul. 2008-5"
    }
  ],
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"GDciK0o6WAXKzoT7+gvdNJKJLvQeratyeXGLB6b+BHEJFz328SHvEAyy9qVgjBpln9Gx+137qYCquAqaOjbD/Qc8vDhJ4oHUrXd5eB+uEc3wiluLW2ramm0wPPS0lcqnFhOzBoxvoDMwMDqNWEDkV6YZB0x3JpSsomQyxrpoenwliA6bLZ64hc3/PwQomhaVz3vNdtYfcgGPER++DdBGHy9XMjJ5S7300Fyf1WaxvcxILmCR/p3YQfKIa5oiHVYuEr0v1FkPhbi8vb4w7hmqIUcCdwWg2QgLFt//qVzu8XMWW+oPHZ+S97UFzZc5pcnRCrNlZPh/i8jD64b4+C1GAQ==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:90239f1ed800b3758c774493db294a17aec61bb1f994506ea0d1df46f79c6378","output":{"disallowed_loss":1200,"ira_trap":false,"overall":"WASH_SALE_FLAGGED","replacements_in_window":1,"trace":"2026-03-25 is within 2026-02-08..2026-04-09 (sale 2026-03-10 ±30d) so the 1200 loss is disallowed under the declared section 1091 method","window_end":"2026-04-09","window_start":"2026-02-08"}}},
  "compute_proof_ready": "ready"
}
