{"abstract":"Later periods compound earlier moves into their returns.","category":"Options payoff and settlement","checks":8,"contract":"Inputs reset prices (first is the initial level), local cap, local floor, global floor and notional. Each period return is S_i/S_{i-1} - 1 clipped to [local floor, local cap]. Payoff = notional * max(global floor, sum of clipped returns), in exact fractions, rounded to 6.","contract_signature":"resets, cap, floor, global_floor, notional","evaluation_group":"w2-options_payoff_and_settlement-cliquet-ratchet","failed_approach":"Dividing the price change by the initial level still uses the wrong base.","family":"w2-options_payoff_and_settlement-cliquet-ratchet-period-return-base","id":"FA-61701","implementations":{"attempt":{"sha256":"92cfa4f760e73f718c3a63b32c71dfc297b143ed61bad07a8e9fd0eb757221a3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(resets, cap, floor, global_floor, notional):\n    px = [Fraction(str(v)) for v in resets]\n    c = Fraction(str(cap))\n    f = Fraction(str(floor))\n    total = Fraction(0)\n    for prev, cur in zip(px, px[1:]):\n        r = (cur - prev) / px[0]\n        total += min(max(r, f), c)\n    pay = notional * max(Fraction(str(global_floor)), total)\n    return float(round(pay, 6))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression period return base 1', [[100.0, 107.0, 98.44, 90.56, 83.32, 95.82], 0.08, 0.0, 0.01, 1000], 150.0], ['regression period return base 2', [[100.0, 92.0, 78.2, 80.55, 92.63, 95.41, 109.72], 0.08, -0.05, 0.0, 1000000], 120063.026098], ['partial repair probe 1', [[100.0, 98.0, 96.04, 110.45], 0.05, -0.02, 0.0, 1000000], 10000.0], ['normal control 1', [[100.0, 98.0, 100.94, 98.92], 0.08, -0.05, 0.0, 1000000], 0.0], ['normal control 2', [[100.0, 85.0], 0.05, 0.0, 0.02, 1000], 20.0], ['normal control 3', [[100.0, 92.0, 94.76], 0.05, -0.05, 0.0, 1000], 0.0], ['normal control 4', [[100.0, 98.0], 0.08, -0.02, 0.01, 1000], 10.0], ['normal control 5', [[100.0, 85.0], 0.08, -0.02, 0.02, 1000], 20.0]], [['regression period return base 1', [[100.0, 107.0, 104.86, 120.59, 138.68, 138.68], 0.08, -0.05, 0.0, 1000], 210.0], ['regression period return base 2', [[100.0, 98.0, 98.0, 100.94, 92.86, 78.93, 84.46], 0.08, -0.02, 0.0, 1000000], 40062.080324], ['partial repair probe 1', [[100.0, 103.0, 106.09, 103.97, 119.57], 0.05, -0.02, 0.02, 1000], 90.016967], ['partial repair probe 2', [[100.0, 107.0, 110.21, 113.52], 0.08, -0.05, 0.01, 1000], 130.033572], ['normal control 1', [[100.0, 115.0], 0.05, -0.02, 0.0, 1000], 50.0], ['normal control 2', [[100.0, 115.0, 123.05], 0.05, 0.0, 0.01, 1000000], 100000.0], ['normal control 3', [[100.0, 100.0, 92.0, 90.16], 0.05, -0.02, 0.02, 1000], 20.0], ['normal control 4', [[100.0, 92.0, 92.0, 78.2, 66.47, 61.15, 65.43], 0.05, -0.05, 0.02, 1000000], 20000.0]], [['regression period return base 1', [[100.0, 98.0, 90.16, 96.47, 110.94, 94.3], 0.05, 0.0, 0.0, 1000], 100.0], ['regression period return base 2', [[100.0, 85.0, 97.75, 100.68, 115.78, 98.41], 0.05, -0.05, 0.02, 1000000], 29974.424552], ['partial repair probe 1', [[100.0, 92.0, 98.44, 96.47], 0.05, -0.02, 0.01, 1000000], 10000.0], ['normal control 1', [[100.0, 98.0, 90.16, 82.95], 0.08, 0.0, 0.0, 1000000], 0.0], ['normal control 2', [[100.0, 103.0, 110.21], 0.05, -0.05, 0.01, 1000], 80.0], ['normal control 3', [[100.0, 98.0, 90.16, 103.68, 95.39], 0.08, -0.05, 0.0, 1000000], 0.0], ['normal control 4', [[100.0, 92.0, 84.64, 82.95, 81.29, 74.79], 0.05, -0.02, 0.01, 1000000], 10000.0], ['normal control 5', [[100.0, 100.0, 100.0], 0.08, -0.02, 0.0, 1000000], 0.0]], [['regression period return base 1', [[100.0, 103.0, 110.21, 126.74, 145.75], 0.08, -0.02, 0.0, 1000000], 260000.0], ['regression period return base 2', [[100.0, 103.0, 103.0, 118.45], 0.05, 0.0, 0.0, 1000], 80.0], ['partial repair probe 1', [[100.0, 103.0, 103.0, 106.09, 90.18, 76.65, 82.02], 0.05, -0.05, 0.01, 1000], 10.0], ['normal control 1', [[100.0, 85.0, 97.75], 0.05, -0.05, 0.0, 1000], 0.0], ['normal control 2', [[100.0, 98.0, 83.3, 76.64], 0.08, 0.0, 0.02, 1000000], 20000.0], ['normal control 3', [[100.0, 98.0, 112.7, 95.8], 0.05, 0.0, 0.01, 1000000], 50000.0], ['normal control 4', [[100.0, 85.0, 72.25, 66.47, 56.5, 56.5], 0.08, -0.05, 0.02, 1000000], 20000.0], ['normal control 5', [[100.0, 100.0, 92.0], 0.05, -0.02, 0.01, 1000000], 10000.0]], [['regression period return base 1', [[100.0, 100.0, 107.0, 123.05, 104.59], 0.08, -0.02, 0.02, 1000], 130.0], ['regression period return base 2', [[100.0, 100.0, 85.0, 87.55, 90.18], 0.05, 0.0, 0.02, 1000], 60.039977], ['partial repair probe 1', [[100.0, 98.0, 112.7, 110.45, 113.76, 117.17], 0.08, -0.02, 0.02, 1000000], 99979.19069], ['partial repair probe 2', [[100.0, 103.0, 110.21, 93.68], 0.08, 0.0, 0.02, 1000000], 100000.0], ['normal control 1', [[100.0, 107.0], 0.08, -0.02, 0.0, 1000], 70.0], ['normal control 2', [[100.0, 98.0, 98.0], 0.05, -0.05, 0.0, 1000], 0.0], ['normal control 3', [[100.0, 85.0], 0.08, -0.02, 0.01, 1000000], 10000.0], ['normal control 4', [[100.0, 92.0, 78.2, 66.47], 0.05, 0.0, 0.01, 1000000], 10000.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":"887f19f7319d45a47259d08785f8f7b42fe1b2c2ab6b5894aafc67b276abe0bf","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(resets, cap, floor, global_floor, notional):\n    px = [Fraction(str(v)) for v in resets]\n    c = Fraction(str(cap))\n    f = Fraction(str(floor))\n    total = Fraction(0)\n    for prev, cur in zip(px, px[1:]):\n        r = cur / px[0] - 1\n        total += min(max(r, f), c)\n    pay = notional * max(Fraction(str(global_floor)), total)\n    return float(round(pay, 6))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression period return base 1', [[100.0, 107.0, 98.44, 90.56, 83.32, 95.82], 0.08, 0.0, 0.01, 1000], 150.0], ['regression period return base 2', [[100.0, 92.0, 78.2, 80.55, 92.63, 95.41, 109.72], 0.08, -0.05, 0.0, 1000000], 120063.026098], ['partial repair probe 1', [[100.0, 98.0, 96.04, 110.45], 0.05, -0.02, 0.0, 1000000], 10000.0], ['normal control 1', [[100.0, 98.0, 100.94, 98.92], 0.08, -0.05, 0.0, 1000000], 0.0], ['normal control 2', [[100.0, 85.0], 0.05, 0.0, 0.02, 1000], 20.0], ['normal control 3', [[100.0, 92.0, 94.76], 0.05, -0.05, 0.0, 1000], 0.0], ['normal control 4', [[100.0, 98.0], 0.08, -0.02, 0.01, 1000], 10.0], ['normal control 5', [[100.0, 85.0], 0.08, -0.02, 0.02, 1000], 20.0]], [['regression period return base 1', [[100.0, 107.0, 104.86, 120.59, 138.68, 138.68], 0.08, -0.05, 0.0, 1000], 210.0], ['regression period return base 2', [[100.0, 98.0, 98.0, 100.94, 92.86, 78.93, 84.46], 0.08, -0.02, 0.0, 1000000], 40062.080324], ['partial repair probe 1', [[100.0, 103.0, 106.09, 103.97, 119.57], 0.05, -0.02, 0.02, 1000], 90.016967], ['partial repair probe 2', [[100.0, 107.0, 110.21, 113.52], 0.08, -0.05, 0.01, 1000], 130.033572], ['normal control 1', [[100.0, 115.0], 0.05, -0.02, 0.0, 1000], 50.0], ['normal control 2', [[100.0, 115.0, 123.05], 0.05, 0.0, 0.01, 1000000], 100000.0], ['normal control 3', [[100.0, 100.0, 92.0, 90.16], 0.05, -0.02, 0.02, 1000], 20.0], ['normal control 4', [[100.0, 92.0, 92.0, 78.2, 66.47, 61.15, 65.43], 0.05, -0.05, 0.02, 1000000], 20000.0]], [['regression period return base 1', [[100.0, 98.0, 90.16, 96.47, 110.94, 94.3], 0.05, 0.0, 0.0, 1000], 100.0], ['regression period return base 2', [[100.0, 85.0, 97.75, 100.68, 115.78, 98.41], 0.05, -0.05, 0.02, 1000000], 29974.424552], ['partial repair probe 1', [[100.0, 92.0, 98.44, 96.47], 0.05, -0.02, 0.01, 1000000], 10000.0], ['normal control 1', [[100.0, 98.0, 90.16, 82.95], 0.08, 0.0, 0.0, 1000000], 0.0], ['normal control 2', [[100.0, 103.0, 110.21], 0.05, -0.05, 0.01, 1000], 80.0], ['normal control 3', [[100.0, 98.0, 90.16, 103.68, 95.39], 0.08, -0.05, 0.0, 1000000], 0.0], ['normal control 4', [[100.0, 92.0, 84.64, 82.95, 81.29, 74.79], 0.05, -0.02, 0.01, 1000000], 10000.0], ['normal control 5', [[100.0, 100.0, 100.0], 0.08, -0.02, 0.0, 1000000], 0.0]], [['regression period return base 1', [[100.0, 103.0, 110.21, 126.74, 145.75], 0.08, -0.02, 0.0, 1000000], 260000.0], ['regression period return base 2', [[100.0, 103.0, 103.0, 118.45], 0.05, 0.0, 0.0, 1000], 80.0], ['partial repair probe 1', [[100.0, 103.0, 103.0, 106.09, 90.18, 76.65, 82.02], 0.05, -0.05, 0.01, 1000], 10.0], ['normal control 1', [[100.0, 85.0, 97.75], 0.05, -0.05, 0.0, 1000], 0.0], ['normal control 2', [[100.0, 98.0, 83.3, 76.64], 0.08, 0.0, 0.02, 1000000], 20000.0], ['normal control 3', [[100.0, 98.0, 112.7, 95.8], 0.05, 0.0, 0.01, 1000000], 50000.0], ['normal control 4', [[100.0, 85.0, 72.25, 66.47, 56.5, 56.5], 0.08, -0.05, 0.02, 1000000], 20000.0], ['normal control 5', [[100.0, 100.0, 92.0], 0.05, -0.02, 0.01, 1000000], 10000.0]], [['regression period return base 1', [[100.0, 100.0, 107.0, 123.05, 104.59], 0.08, -0.02, 0.02, 1000], 130.0], ['regression period return base 2', [[100.0, 100.0, 85.0, 87.55, 90.18], 0.05, 0.0, 0.02, 1000], 60.039977], ['partial repair probe 1', [[100.0, 98.0, 112.7, 110.45, 113.76, 117.17], 0.08, -0.02, 0.02, 1000000], 99979.19069], ['partial repair probe 2', [[100.0, 103.0, 110.21, 93.68], 0.08, 0.0, 0.02, 1000000], 100000.0], ['normal control 1', [[100.0, 107.0], 0.08, -0.02, 0.0, 1000], 70.0], ['normal control 2', [[100.0, 98.0, 98.0], 0.05, -0.05, 0.0, 1000], 0.0], ['normal control 3', [[100.0, 85.0], 0.08, -0.02, 0.01, 1000000], 10000.0], ['normal control 4', [[100.0, 92.0, 78.2, 66.47], 0.05, 0.0, 0.01, 1000000], 10000.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-cliquet-ratchet-period-return-base","generated_at":"2026-09-29T14:46:57.748092+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":"Each return divides by the first reset level instead of the previous one.","sha256":"4e4ec732263c8789c6d840da9e6b353b76a4af1e0000647fa42653c96533cdc2","title":"Cliquet payoff with local caps and a global floor: returns are measured from the initial level · 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":45.319,"exit_code":1,"observations":[{"actual":150.0,"check":"regression period return base 1","expected":150.0,"passed":true},{"actual":111300.0,"check":"regression period return base 2","expected":120063.026098,"passed":false},{"actual":10400.0,"check":"partial repair probe 1","expected":10000.0,"passed":false},{"actual":0.0,"check":"normal control 1","expected":0.0,"passed":true},{"actual":20.0,"check":"normal control 2","expected":20.0,"passed":true},{"actual":0.0,"check":"normal control 3","expected":0.0,"passed":true},{"actual":10.0,"check":"normal control 4","expected":10.0,"passed":true},{"actual":20.0,"check":"normal control 5","expected":20.0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression period return base 1\", \"actual\": 150.0, \"expected\": 150.0, \"passed\": true}, {\"check\": \"regression period return base 2\", \"actual\": 111300.0, \"expected\": 120063.026098, \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": 10400.0, \"expected\": 10000.0, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": 0.0, \"expected\": 0.0, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 20.0, \"expected\": 20.0, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 0.0, \"expected\": 0.0, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 10.0, \"expected\": 10.0, \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": 20.0, \"expected\": 20.0, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":46.78,"exit_code":1,"observations":[{"actual":70.0,"check":"regression period return base 1","expected":150.0,"passed":false},{"actual":0.0,"check":"regression period return base 2","expected":120063.026098,"passed":false},{"actual":10000.0,"check":"partial repair probe 1","expected":10000.0,"passed":true},{"actual":0.0,"check":"normal control 1","expected":0.0,"passed":true},{"actual":20.0,"check":"normal control 2","expected":20.0,"passed":true},{"actual":0.0,"check":"normal control 3","expected":0.0,"passed":true},{"actual":10.0,"check":"normal control 4","expected":10.0,"passed":true},{"actual":20.0,"check":"normal control 5","expected":20.0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression period return base 1\", \"actual\": 70.0, \"expected\": 150.0, \"passed\": false}, {\"check\": \"regression period return base 2\", \"actual\": 0.0, \"expected\": 120063.026098, \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": 10000.0, \"expected\": 10000.0, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 0.0, \"expected\": 0.0, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 20.0, \"expected\": 20.0, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 0.0, \"expected\": 0.0, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 10.0, \"expected\": 10.0, \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": 20.0, \"expected\": 20.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."}}