{"abstract":"Fixed-strike puts rarely pay.","category":"Options payoff and settlement","checks":8,"contract":"Inputs kind, the observed path including initial and final prices, and strike. float-call pays final - min(path); float-put pays max(path) - final; fixed-call pays max(max(path) - K, 0); fixed-put pays max(K - min(path), 0). Round to 6.","contract_signature":"kind, path, strike","evaluation_group":"w2-options_payoff_and_settlement-lookback-payoff","failed_approach":"Using only the final price turns it into a vanilla put.","family":"w2-options_payoff_and_settlement-lookback-payoff-fixed-put-extreme","id":"FA-61696","implementations":{"attempt":{"sha256":"699ed7e522981f38fc32a54bf31023fd62a12a6f76da33b829638b993fbdd3dd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(kind, path, strike):\n    final = path[-1]\n    if kind == 'float-call':\n        pay = final - min(path)\n    elif kind == 'float-put':\n        pay = max(path) - final\n    elif kind == 'fixed-call':\n        pay = max(max(path) - strike, 0)\n    else:\n        pay = max(strike - final, 0)\n    return round(pay, 6)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression fixed put extreme 1', ['fixed-put', [100.0, 95.0, 85.5, 94.05, 103.45, 107.59], 90], 4.5], ['regression fixed put extreme 2', ['fixed-put', [100.0, 90.0, 85.5, 88.92, 88.92, 80.03], 90], 9.97], ['partial repair probe 1', ['fixed-put', [100.0, 90.0, 81.0, 72.9, 80.19, 72.17, 75.06], 100], 27.83], ['partial repair probe 2', ['fixed-put', [100.0, 104.0, 104.0], 115], 15.0], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-call', [100.0, 104.0, 114.4], 90], 24.4], ['normal control 2', ['float-put', [97.81, 108.68, 114.4, 110.0, 110.0, 100.0], 115], 14.4], ['normal control 3', ['float-put', [84.47, 88.92, 93.6, 104.0, 100.0], 100], 4.0]], [['regression fixed put extreme 1', ['fixed-put', [100.0, 95.0, 90.25, 93.86, 89.17, 80.25, 88.28], 100], 19.75], ['regression fixed put extreme 2', ['fixed-put', [72.9, 81.0, 90.0, 100.0], 100], 27.1], ['partial repair probe 1', ['fixed-put', [118.11, 124.33, 119.55, 114.95, 104.5, 95.0, 100.0], 100], 5.0], ['partial repair probe 2', ['fixed-put', [83.63, 92.92, 84.47, 81.22, 85.5, 90.0, 100.0], 100], 18.78], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['float-call', [95.0, 100.0], 90], 5.0], ['normal control 2', ['float-call', [87.85, 84.47, 88.92, 98.8, 104.0, 100.0], 105], 15.53], ['normal control 3', ['fixed-call', [100.0, 110.0, 114.4, 108.68, 108.68, 103.25, 113.58], 90], 24.4]], [['regression fixed put extreme 1', ['fixed-put', [100.0, 100.0, 110.0, 114.4, 125.84, 119.55], 105], 5.0], ['regression fixed put extreme 2', ['fixed-put', [100.0, 104.0, 114.4, 125.84, 125.84], 105], 5.0], ['partial repair probe 1', ['fixed-put', [100.0, 90.0, 99.0, 108.9, 113.26], 105], 15.0], ['partial repair probe 2', ['fixed-put', [90.0, 90.0, 90.0, 100.0], 105], 15.0], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['float-put', [100.0, 104.0, 93.6, 88.92], 105], 15.08], ['normal control 2', ['float-put', [100.0, 100.0, 95.0, 85.5, 81.22, 73.1], 105], 26.9], ['normal control 3', ['float-put', [114.4, 104.0, 100.0], 105], 14.4]], [['regression fixed put extreme 1', ['fixed-put', [100.0, 95.0, 98.8, 98.8, 108.68, 119.55], 115], 20.0], ['regression fixed put extreme 2', ['fixed-put', [100.0, 90.0, 81.0, 76.95, 84.65, 93.12], 105], 28.05], ['partial repair probe 1', ['fixed-put', [98.8, 95.0, 95.0, 100.0], 100], 5.0], ['partial repair probe 2', ['fixed-put', [100.0, 100.0, 100.0, 104.0, 114.4, 118.98, 123.74], 105], 5.0], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-call', [100.0, 95.0, 95.0], 115], 0], ['normal control 2', ['float-call', [100.0, 110.0, 104.5, 99.27, 89.34], 105], 0.0], ['normal control 3', ['float-call', [100.0, 90.0, 90.0, 90.0, 99.0, 108.9], 115], 18.9]], [['regression fixed put extreme 1', ['fixed-put', [104.5, 110.0, 100.0], 115], 15.0], ['regression fixed put extreme 2', ['fixed-put', [100.0, 90.0, 85.5], 100], 14.5], ['partial repair probe 1', ['fixed-put', [100.0, 95.0, 90.25, 93.86, 103.25, 113.58, 102.22], 115], 24.75], ['partial repair probe 2', ['fixed-put', [100.0, 104.0, 108.16, 102.75, 106.86], 115], 15.0], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-put', [110.0, 100.0], 100], 0.0], ['normal control 2', ['float-put', [100.0, 104.0], 100], 0.0], ['normal control 3', ['fixed-call', [100.0, 90.0, 90.0, 81.0], 105], 0]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"833471dd23acf6c4cca223fa40768b574d4bc0c589177671bd6b7a069d957915","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(kind, path, strike):\n    final = path[-1]\n    if kind == 'float-call':\n        pay = final - min(path)\n    elif kind == 'float-put':\n        pay = max(path) - final\n    elif kind == 'fixed-call':\n        pay = max(max(path) - strike, 0)\n    else:\n        pay = max(strike - max(path), 0)\n    return round(pay, 6)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression fixed put extreme 1', ['fixed-put', [100.0, 95.0, 85.5, 94.05, 103.45, 107.59], 90], 4.5], ['regression fixed put extreme 2', ['fixed-put', [100.0, 90.0, 85.5, 88.92, 88.92, 80.03], 90], 9.97], ['partial repair probe 1', ['fixed-put', [100.0, 90.0, 81.0, 72.9, 80.19, 72.17, 75.06], 100], 27.83], ['partial repair probe 2', ['fixed-put', [100.0, 104.0, 104.0], 115], 15.0], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-call', [100.0, 104.0, 114.4], 90], 24.4], ['normal control 2', ['float-put', [97.81, 108.68, 114.4, 110.0, 110.0, 100.0], 115], 14.4], ['normal control 3', ['float-put', [84.47, 88.92, 93.6, 104.0, 100.0], 100], 4.0]], [['regression fixed put extreme 1', ['fixed-put', [100.0, 95.0, 90.25, 93.86, 89.17, 80.25, 88.28], 100], 19.75], ['regression fixed put extreme 2', ['fixed-put', [72.9, 81.0, 90.0, 100.0], 100], 27.1], ['partial repair probe 1', ['fixed-put', [118.11, 124.33, 119.55, 114.95, 104.5, 95.0, 100.0], 100], 5.0], ['partial repair probe 2', ['fixed-put', [83.63, 92.92, 84.47, 81.22, 85.5, 90.0, 100.0], 100], 18.78], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['float-call', [95.0, 100.0], 90], 5.0], ['normal control 2', ['float-call', [87.85, 84.47, 88.92, 98.8, 104.0, 100.0], 105], 15.53], ['normal control 3', ['fixed-call', [100.0, 110.0, 114.4, 108.68, 108.68, 103.25, 113.58], 90], 24.4]], [['regression fixed put extreme 1', ['fixed-put', [100.0, 100.0, 110.0, 114.4, 125.84, 119.55], 105], 5.0], ['regression fixed put extreme 2', ['fixed-put', [100.0, 104.0, 114.4, 125.84, 125.84], 105], 5.0], ['partial repair probe 1', ['fixed-put', [100.0, 90.0, 99.0, 108.9, 113.26], 105], 15.0], ['partial repair probe 2', ['fixed-put', [90.0, 90.0, 90.0, 100.0], 105], 15.0], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['float-put', [100.0, 104.0, 93.6, 88.92], 105], 15.08], ['normal control 2', ['float-put', [100.0, 100.0, 95.0, 85.5, 81.22, 73.1], 105], 26.9], ['normal control 3', ['float-put', [114.4, 104.0, 100.0], 105], 14.4]], [['regression fixed put extreme 1', ['fixed-put', [100.0, 95.0, 98.8, 98.8, 108.68, 119.55], 115], 20.0], ['regression fixed put extreme 2', ['fixed-put', [100.0, 90.0, 81.0, 76.95, 84.65, 93.12], 105], 28.05], ['partial repair probe 1', ['fixed-put', [98.8, 95.0, 95.0, 100.0], 100], 5.0], ['partial repair probe 2', ['fixed-put', [100.0, 100.0, 100.0, 104.0, 114.4, 118.98, 123.74], 105], 5.0], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-call', [100.0, 95.0, 95.0], 115], 0], ['normal control 2', ['float-call', [100.0, 110.0, 104.5, 99.27, 89.34], 105], 0.0], ['normal control 3', ['float-call', [100.0, 90.0, 90.0, 90.0, 99.0, 108.9], 115], 18.9]], [['regression fixed put extreme 1', ['fixed-put', [104.5, 110.0, 100.0], 115], 15.0], ['regression fixed put extreme 2', ['fixed-put', [100.0, 90.0, 85.5], 100], 14.5], ['partial repair probe 1', ['fixed-put', [100.0, 95.0, 90.25, 93.86, 103.25, 113.58, 102.22], 115], 24.75], ['partial repair probe 2', ['fixed-put', [100.0, 104.0, 108.16, 102.75, 106.86], 115], 15.0], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-put', [110.0, 100.0], 100], 0.0], ['normal control 2', ['float-put', [100.0, 104.0], 100], 0.0], ['normal control 3', ['fixed-call', [100.0, 90.0, 90.0, 81.0], 105], 0]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic toy contract stated explicitly in the contract field; no claim of conformance to any exchange or clearing rulebook. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-options_payoff_and_settlement-lookback-payoff-fixed-put-extreme","generated_at":"2026-09-29T14:46:57.722419+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Option expiry, exercise and settlement engines move cash and shares; a wrong branch misstates obligations.","root_cause":"The put branch uses max(path) instead of min(path).","sha256":"c1fbc95700fe27a9c4cd0c9157fb95b6f327a0d644b20cbaf2a71ad8324796df","title":"Lookback option payoff: the fixed-strike put uses the path maximum · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":41.604,"exit_code":1,"observations":[{"actual":0,"check":"regression fixed put extreme 1","expected":4.5,"passed":false},{"actual":9.97,"check":"regression fixed put extreme 2","expected":9.97,"passed":true},{"actual":24.94,"check":"partial repair probe 1","expected":27.83,"passed":false},{"actual":11.0,"check":"partial repair probe 2","expected":15.0,"passed":false},{"actual":5.0,"check":"boundary control 1","expected":5.0,"passed":true},{"actual":24.4,"check":"normal control 1","expected":24.4,"passed":true},{"actual":14.4,"check":"normal control 2","expected":14.4,"passed":true},{"actual":4.0,"check":"normal control 3","expected":4.0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression fixed put extreme 1\", \"actual\": 0, \"expected\": 4.5, \"passed\": false}, {\"check\": \"regression fixed put extreme 2\", \"actual\": 9.97, \"expected\": 9.97, \"passed\": true}, {\"check\": \"partial repair probe 1\", \"actual\": 24.94, \"expected\": 27.83, \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": 11.0, \"expected\": 15.0, \"passed\": false}, {\"check\": \"boundary control 1\", \"actual\": 5.0, \"expected\": 5.0, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 24.4, \"expected\": 24.4, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 14.4, \"expected\": 14.4, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 4.0, \"expected\": 4.0, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.331,"exit_code":1,"observations":[{"actual":0,"check":"regression fixed put extreme 1","expected":4.5,"passed":false},{"actual":0,"check":"regression fixed put extreme 2","expected":9.97,"passed":false},{"actual":0.0,"check":"partial repair probe 1","expected":27.83,"passed":false},{"actual":11.0,"check":"partial repair probe 2","expected":15.0,"passed":false},{"actual":5.0,"check":"boundary control 1","expected":5.0,"passed":true},{"actual":24.4,"check":"normal control 1","expected":24.4,"passed":true},{"actual":14.4,"check":"normal control 2","expected":14.4,"passed":true},{"actual":4.0,"check":"normal control 3","expected":4.0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression fixed put extreme 1\", \"actual\": 0, \"expected\": 4.5, \"passed\": false}, {\"check\": \"regression fixed put extreme 2\", \"actual\": 0, \"expected\": 9.97, \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": 0.0, \"expected\": 27.83, \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": 11.0, \"expected\": 15.0, \"passed\": false}, {\"check\": \"boundary control 1\", \"actual\": 5.0, \"expected\": 5.0, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 24.4, \"expected\": 24.4, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 14.4, \"expected\": 14.4, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 4.0, \"expected\": 4.0, \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}