{"abstract":"Floating-strike puts produce negative payoffs.","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":"Taking an absolute value over a maximum that excludes the initial fixing still misses early highs.","family":"w2-options_payoff_and_settlement-lookback-payoff-floating-put-orientation","id":"FA-61686","implementations":{"attempt":{"sha256":"7eb772b2cf56219d14d00729931f505df81c1b8833189efa30ce6c55d335d867","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 = abs(final - max(path[1:]))\n    elif kind == 'fixed-call':\n        pay = max(max(path) - strike, 0)\n    else:\n        pay = max(strike - min(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 floating put orientation 1', ['float-put', [98.01, 98.01, 89.1, 99.0, 110.0, 110.0, 100.0], 115], 10.0], ['regression floating put orientation 2', ['float-put', [119.55, 125.84, 121.0, 121.0, 110.0, 110.0, 100.0], 115], 25.84], ['partial repair probe 1', ['float-put', [100.0, 90.0, 90.0, 81.0], 100], 19.0], ['partial repair probe 2', ['float-put', [100.0, 95.0, 98.8], 90], 1.2], ['boundary control 1', ['fixed-put', [100.0, 80.0, 100.0], 100], 20.0], ['boundary control 2', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-put', [100.0, 110.0, 121.0, 125.84], 115], 15.0], ['normal control 2', ['float-call', [100.0, 100.0, 110.0, 110.0, 110.0], 115], 10.0]], [['regression floating put orientation 1', ['float-put', [100.0, 104.0, 114.4, 108.68], 90], 5.72], ['regression floating put orientation 2', ['float-put', [100.0, 90.0, 93.6, 88.92, 88.92], 90], 11.08], ['partial repair probe 1', ['float-put', [100.0, 95.0], 100], 5.0], ['partial repair probe 2', ['float-put', [118.98, 114.4, 110.0, 100.0], 100], 18.98], ['boundary control 1', ['fixed-put', [100.0, 80.0, 100.0], 100], 20.0], ['boundary control 2', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-call', [113.8, 103.45, 94.05, 104.5, 95.0, 100.0], 100], 13.8], ['normal control 2', ['fixed-call', [100.0, 104.0], 105], 0]], [['regression floating put orientation 1', ['float-put', [100.0, 104.0, 104.0, 93.6, 84.24, 75.82], 100], 28.18], ['regression floating put orientation 2', ['float-put', [100.0, 90.0, 81.0, 76.95, 69.26, 72.03, 79.23], 115], 20.77], ['partial repair probe 1', ['float-put', [100.0, 95.0, 90.25, 93.86, 84.47, 76.02, 76.02], 100], 23.98], ['partial repair probe 2', ['float-put', [100.0, 90.0, 85.5, 76.95, 80.03, 88.03], 90], 11.97], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['boundary control 2', ['fixed-put', [100.0, 80.0, 100.0], 100], 20.0], ['normal control 1', ['float-call', [104.0, 104.0, 100.0], 115], 0.0], ['normal control 2', ['float-call', [100.0, 90.0, 85.5, 81.22, 81.22], 105], 0.0]], [['regression floating put orientation 1', ['float-put', [100.0, 104.0, 114.4, 125.84, 130.87, 136.1, 122.49], 105], 13.61], ['regression floating put orientation 2', ['float-put', [100.0, 104.0, 108.16, 102.75, 97.61, 107.37, 96.63], 90], 11.53], ['partial repair probe 1', ['float-put', [100.0, 90.0, 81.0, 81.0, 81.0, 76.95], 105], 23.05], ['partial repair probe 2', ['float-put', [100.0, 90.0, 81.0, 84.24, 80.03], 90], 19.97], ['boundary control 1', ['fixed-put', [100.0, 80.0, 100.0], 100], 20.0], ['boundary control 2', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-put', [100.0, 90.0, 93.6], 115], 25.0], ['normal control 2', ['float-call', [75.82, 84.24, 81.0, 90.0, 100.0, 100.0], 115], 24.18]], [['regression floating put orientation 1', ['float-put', [124.33, 119.55, 114.95, 114.95, 121.0, 110.0, 100.0], 105], 24.33], ['regression floating put orientation 2', ['float-put', [100.0, 95.0, 98.8, 93.86, 93.86], 105], 6.14], ['partial repair probe 1', ['float-put', [100.0, 90.0, 85.5, 76.95, 80.03, 88.03, 79.23], 90], 20.77], ['partial repair probe 2', ['float-put', [110.0, 100.0], 100], 10.0], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['boundary control 2', ['fixed-put', [100.0, 80.0, 100.0], 100], 20.0], ['normal control 1', ['float-call', [117.55, 123.74, 118.98, 114.4, 104.0, 100.0], 90], 0.0], ['normal control 2', ['fixed-put', [100.0, 90.0, 93.6, 97.34], 115], 25.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":"8196ef09e2a0a75f7291ba8dcdd3dfec1d8da83db79c339f00784f2b92a7da42","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 = final - max(path)\n    elif kind == 'fixed-call':\n        pay = max(max(path) - strike, 0)\n    else:\n        pay = max(strike - min(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 floating put orientation 1', ['float-put', [98.01, 98.01, 89.1, 99.0, 110.0, 110.0, 100.0], 115], 10.0], ['regression floating put orientation 2', ['float-put', [119.55, 125.84, 121.0, 121.0, 110.0, 110.0, 100.0], 115], 25.84], ['partial repair probe 1', ['float-put', [100.0, 90.0, 90.0, 81.0], 100], 19.0], ['partial repair probe 2', ['float-put', [100.0, 95.0, 98.8], 90], 1.2], ['boundary control 1', ['fixed-put', [100.0, 80.0, 100.0], 100], 20.0], ['boundary control 2', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-put', [100.0, 110.0, 121.0, 125.84], 115], 15.0], ['normal control 2', ['float-call', [100.0, 100.0, 110.0, 110.0, 110.0], 115], 10.0]], [['regression floating put orientation 1', ['float-put', [100.0, 104.0, 114.4, 108.68], 90], 5.72], ['regression floating put orientation 2', ['float-put', [100.0, 90.0, 93.6, 88.92, 88.92], 90], 11.08], ['partial repair probe 1', ['float-put', [100.0, 95.0], 100], 5.0], ['partial repair probe 2', ['float-put', [118.98, 114.4, 110.0, 100.0], 100], 18.98], ['boundary control 1', ['fixed-put', [100.0, 80.0, 100.0], 100], 20.0], ['boundary control 2', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-call', [113.8, 103.45, 94.05, 104.5, 95.0, 100.0], 100], 13.8], ['normal control 2', ['fixed-call', [100.0, 104.0], 105], 0]], [['regression floating put orientation 1', ['float-put', [100.0, 104.0, 104.0, 93.6, 84.24, 75.82], 100], 28.18], ['regression floating put orientation 2', ['float-put', [100.0, 90.0, 81.0, 76.95, 69.26, 72.03, 79.23], 115], 20.77], ['partial repair probe 1', ['float-put', [100.0, 95.0, 90.25, 93.86, 84.47, 76.02, 76.02], 100], 23.98], ['partial repair probe 2', ['float-put', [100.0, 90.0, 85.5, 76.95, 80.03, 88.03], 90], 11.97], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['boundary control 2', ['fixed-put', [100.0, 80.0, 100.0], 100], 20.0], ['normal control 1', ['float-call', [104.0, 104.0, 100.0], 115], 0.0], ['normal control 2', ['float-call', [100.0, 90.0, 85.5, 81.22, 81.22], 105], 0.0]], [['regression floating put orientation 1', ['float-put', [100.0, 104.0, 114.4, 125.84, 130.87, 136.1, 122.49], 105], 13.61], ['regression floating put orientation 2', ['float-put', [100.0, 104.0, 108.16, 102.75, 97.61, 107.37, 96.63], 90], 11.53], ['partial repair probe 1', ['float-put', [100.0, 90.0, 81.0, 81.0, 81.0, 76.95], 105], 23.05], ['partial repair probe 2', ['float-put', [100.0, 90.0, 81.0, 84.24, 80.03], 90], 19.97], ['boundary control 1', ['fixed-put', [100.0, 80.0, 100.0], 100], 20.0], ['boundary control 2', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['normal control 1', ['fixed-put', [100.0, 90.0, 93.6], 115], 25.0], ['normal control 2', ['float-call', [75.82, 84.24, 81.0, 90.0, 100.0, 100.0], 115], 24.18]], [['regression floating put orientation 1', ['float-put', [124.33, 119.55, 114.95, 114.95, 121.0, 110.0, 100.0], 105], 24.33], ['regression floating put orientation 2', ['float-put', [100.0, 95.0, 98.8, 93.86, 93.86], 105], 6.14], ['partial repair probe 1', ['float-put', [100.0, 90.0, 85.5, 76.95, 80.03, 88.03, 79.23], 90], 20.77], ['partial repair probe 2', ['float-put', [110.0, 100.0], 100], 10.0], ['boundary control 1', ['float-call', [90.0, 100.0, 95.0], 100], 5.0], ['boundary control 2', ['fixed-put', [100.0, 80.0, 100.0], 100], 20.0], ['normal control 1', ['float-call', [117.55, 123.74, 118.98, 114.4, 104.0, 100.0], 90], 0.0], ['normal control 2', ['fixed-put', [100.0, 90.0, 93.6, 97.34], 115], 25.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-floating-put-orientation","generated_at":"2026-09-29T14:46:57.507044+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 operands are reversed.","sha256":"443b007a9c37654c682d618a44c7edb3223a525611d17d5f8798b58c4cec1de7","title":"Lookback option payoff: the floating put subtracts the maximum from the final price · 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":40.849,"exit_code":1,"observations":[{"actual":10.0,"check":"regression floating put orientation 1","expected":10.0,"passed":true},{"actual":25.84,"check":"regression floating put orientation 2","expected":25.84,"passed":true},{"actual":9.0,"check":"partial repair probe 1","expected":19.0,"passed":false},{"actual":0.0,"check":"partial repair probe 2","expected":1.2,"passed":false},{"actual":20.0,"check":"boundary control 1","expected":20.0,"passed":true},{"actual":5.0,"check":"boundary control 2","expected":5.0,"passed":true},{"actual":15.0,"check":"normal control 1","expected":15.0,"passed":true},{"actual":10.0,"check":"normal control 2","expected":10.0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression floating put orientation 1\", \"actual\": 10.0, \"expected\": 10.0, \"passed\": true}, {\"check\": \"regression floating put orientation 2\", \"actual\": 25.84, \"expected\": 25.84, \"passed\": true}, {\"check\": \"partial repair probe 1\", \"actual\": 9.0, \"expected\": 19.0, \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": 0.0, \"expected\": 1.2, \"passed\": false}, {\"check\": \"boundary control 1\", \"actual\": 20.0, \"expected\": 20.0, \"passed\": true}, {\"check\": \"boundary control 2\", \"actual\": 5.0, \"expected\": 5.0, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 15.0, \"expected\": 15.0, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 10.0, \"expected\": 10.0, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.206,"exit_code":1,"observations":[{"actual":-10.0,"check":"regression floating put orientation 1","expected":10.0,"passed":false},{"actual":-25.84,"check":"regression floating put orientation 2","expected":25.84,"passed":false},{"actual":-19.0,"check":"partial repair probe 1","expected":19.0,"passed":false},{"actual":-1.2,"check":"partial repair probe 2","expected":1.2,"passed":false},{"actual":20.0,"check":"boundary control 1","expected":20.0,"passed":true},{"actual":5.0,"check":"boundary control 2","expected":5.0,"passed":true},{"actual":15.0,"check":"normal control 1","expected":15.0,"passed":true},{"actual":10.0,"check":"normal control 2","expected":10.0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression floating put orientation 1\", \"actual\": -10.0, \"expected\": 10.0, \"passed\": false}, {\"check\": \"regression floating put orientation 2\", \"actual\": -25.84, \"expected\": 25.84, \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": -19.0, \"expected\": 19.0, \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": -1.2, \"expected\": 1.2, \"passed\": false}, {\"check\": \"boundary control 1\", \"actual\": 20.0, \"expected\": 20.0, \"passed\": true}, {\"check\": \"boundary control 2\", \"actual\": 5.0, \"expected\": 5.0, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 15.0, \"expected\": 15.0, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 10.0, \"expected\": 10.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."}}