{"abstract":"Positions in the money by exactly the threshold expire worthless.","category":"Options payoff and settlement","checks":8,"contract":"Inputs kind C/P, strike, settlement price, signed contracts (+long, -short), multiplier, a minimum in-the-money amount and a long-holder instruction (auto, exercise, dnx). Work in integer cents. Intrinsic is max(0, S-K) for calls, max(0, K-S) for puts. The automatic rule exercises when intrinsic >= threshold. Longs follow their instruction (exercise always exercises, dnx never, auto uses the rule); shorts are assigned by the automatic rule. Cash = intrinsic*multiplier*|contracts| if exercised, negative for shorts. Return [exercised, cash in currency units].","contract_signature":"kind, strike, settle, contracts, multiplier, min_itm, instruction","evaluation_group":"w2-options_payoff_and_settlement-cash-settled-expiry","failed_approach":"Lowering the threshold by a cent exercises options one cent short of it.","family":"w2-options_payoff_and_settlement-cash-settled-expiry-automatic-exercise-threshold","id":"FA-61341","implementations":{"attempt":{"sha256":"60592ab247721df2356da7edf2e9b24f8bda8e52ef4bade75460bf2fe48c973a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(kind, strike, settle, contracts, multiplier, min_itm, instruction):\n    k = round(strike * 100)\n    s = round(settle * 100)\n    thr = round(min_itm * 100)\n    intrinsic = max(0, s - k) if kind == 'C' else max(0, k - s)\n    auto = intrinsic >= thr - 1\n    if contracts > 0:\n        if instruction == 'exercise':\n            ex = True\n        elif instruction == 'dnx':\n            ex = False\n        else:\n            ex = auto\n    else:\n        ex = auto\n    cash = intrinsic * multiplier * abs(contracts) if ex else 0\n    if contracts < 0:\n        cash = -cash\n    return [ex, cash / 100]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression automatic exercise threshold 1', ['C', 101.5, 101.52, -10, 10, 0.02, 'exercise'], [True, -2.0]], ['regression automatic exercise threshold 2', ['C', 101.5, 101.51, -10, 100, 0.01, 'dnx'], [True, -10.0]], ['partial repair probe 1', ['P', 50, 51.37, 1, 50, 0.01, 'auto'], [False, 0.0]], ['partial repair probe 2', ['P', 25, 25.05, -4, 100, 0.01, 'auto'], [False, 0.0]], ['boundary control 1', ['C', 100, 99.0, 2, 100, 0.01, 'exercise'], [True, 0.0]], ['boundary control 2', ['C', 100, 105, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['normal control 1', ['C', 150, 149.95, -10, 100, 0.02, 'exercise'], [False, 0.0]], ['normal control 2', ['C', 25, 24.95, 1, 100, 0.05, 'auto'], [False, 0.0]]], [['regression automatic exercise threshold 1', ['P', 50, 49.99, -4, 100, 0.01, 'auto'], [True, -4.0]], ['regression automatic exercise threshold 2', ['C', 100, 100.05, 3, 100, 0.05, 'auto'], [True, 15.0]], ['partial repair probe 1', ['C', 101.5, 101.49, -10, 10, 0.01, 'auto'], [False, 0.0]], ['partial repair probe 2', ['C', 4500, 4500, -4, 100, 0.01, 'dnx'], [False, 0.0]], ['boundary control 1', ['C', 100, 99.0, 2, 100, 0.01, 'exercise'], [True, 0.0]], ['boundary control 2', ['C', 100, 105, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['normal control 1', ['P', 100, 99.95, 1, 50, 0.05, 'exercise'], [True, 2.5]], ['normal control 2', ['C', 150, 149.99, -4, 10, 0.02, 'auto'], [False, 0.0]]], [['regression automatic exercise threshold 1', ['P', 100, 99.99, -1, 50, 0.01, 'dnx'], [True, -0.5]], ['regression automatic exercise threshold 2', ['C', 4500, 4500.01, -4, 100, 0.01, 'exercise'], [True, -4.0]], ['partial repair probe 1', ['P', 101.5, 113.75, -10, 10, 0.01, 'dnx'], [False, 0.0]], ['partial repair probe 2', ['P', 50, 50.02, -1, 100, 0.01, 'auto'], [False, 0.0]], ['boundary control 1', ['C', 100, 105, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['boundary control 2', ['C', 100, 99.0, 2, 100, 0.01, 'exercise'], [True, 0.0]], ['normal control 1', ['C', 25, 24.98, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['normal control 2', ['C', 101.5, 101.6, -10, 100, 0.05, 'dnx'], [True, -100.0]]], [['regression automatic exercise threshold 1', ['C', 100, 100.02, -1, 50, 0.02, 'auto'], [True, -1.0]], ['regression automatic exercise threshold 2', ['C', 150, 150.05, -10, 100, 0.05, 'exercise'], [True, -50.0]], ['partial repair probe 1', ['P', 50, 62.25, -1, 50, 0.01, 'auto'], [False, 0.0]], ['partial repair probe 2', ['C', 50, 49.99, 1, 100, 0.01, 'auto'], [False, 0.0]], ['boundary control 1', ['C', 100, 105, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['boundary control 2', ['C', 100, 99.0, 2, 100, 0.01, 'exercise'], [True, 0.0]], ['normal control 1', ['P', 212.5, 212.55, 10, 50, 0.02, 'dnx'], [False, 0.0]], ['normal control 2', ['P', 4500, 4500.04, -10, 10, 0.05, 'auto'], [False, 0.0]]], [['regression automatic exercise threshold 1', ['P', 101.5, 101.48, -10, 100, 0.02, 'auto'], [True, -20.0]], ['regression automatic exercise threshold 2', ['C', 101.5, 101.51, -1, 100, 0.01, 'dnx'], [True, -1.0]], ['partial repair probe 1', ['P', 101.5, 102.87, -1, 100, 0.01, 'auto'], [False, 0.0]], ['partial repair probe 2', ['P', 25, 25, 1, 10, 0.01, 'auto'], [False, 0.0]], ['boundary control 1', ['C', 100, 99.0, 2, 100, 0.01, 'exercise'], [True, 0.0]], ['boundary control 2', ['C', 100, 105, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['normal control 1', ['C', 212.5, 212.48, -4, 100, 0.02, 'auto'], [False, 0.0]], ['normal control 2', ['P', 101.5, 101.5, -1, 100, 0.02, 'exercise'], [False, 0.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":"6019a8728ea19ed3402be99f4d9a307f7583201ab4c675c4814aed94b4299635","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(kind, strike, settle, contracts, multiplier, min_itm, instruction):\n    k = round(strike * 100)\n    s = round(settle * 100)\n    thr = round(min_itm * 100)\n    intrinsic = max(0, s - k) if kind == 'C' else max(0, k - s)\n    auto = intrinsic > thr\n    if contracts > 0:\n        if instruction == 'exercise':\n            ex = True\n        elif instruction == 'dnx':\n            ex = False\n        else:\n            ex = auto\n    else:\n        ex = auto\n    cash = intrinsic * multiplier * abs(contracts) if ex else 0\n    if contracts < 0:\n        cash = -cash\n    return [ex, cash / 100]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression automatic exercise threshold 1', ['C', 101.5, 101.52, -10, 10, 0.02, 'exercise'], [True, -2.0]], ['regression automatic exercise threshold 2', ['C', 101.5, 101.51, -10, 100, 0.01, 'dnx'], [True, -10.0]], ['partial repair probe 1', ['P', 50, 51.37, 1, 50, 0.01, 'auto'], [False, 0.0]], ['partial repair probe 2', ['P', 25, 25.05, -4, 100, 0.01, 'auto'], [False, 0.0]], ['boundary control 1', ['C', 100, 99.0, 2, 100, 0.01, 'exercise'], [True, 0.0]], ['boundary control 2', ['C', 100, 105, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['normal control 1', ['C', 150, 149.95, -10, 100, 0.02, 'exercise'], [False, 0.0]], ['normal control 2', ['C', 25, 24.95, 1, 100, 0.05, 'auto'], [False, 0.0]]], [['regression automatic exercise threshold 1', ['P', 50, 49.99, -4, 100, 0.01, 'auto'], [True, -4.0]], ['regression automatic exercise threshold 2', ['C', 100, 100.05, 3, 100, 0.05, 'auto'], [True, 15.0]], ['partial repair probe 1', ['C', 101.5, 101.49, -10, 10, 0.01, 'auto'], [False, 0.0]], ['partial repair probe 2', ['C', 4500, 4500, -4, 100, 0.01, 'dnx'], [False, 0.0]], ['boundary control 1', ['C', 100, 99.0, 2, 100, 0.01, 'exercise'], [True, 0.0]], ['boundary control 2', ['C', 100, 105, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['normal control 1', ['P', 100, 99.95, 1, 50, 0.05, 'exercise'], [True, 2.5]], ['normal control 2', ['C', 150, 149.99, -4, 10, 0.02, 'auto'], [False, 0.0]]], [['regression automatic exercise threshold 1', ['P', 100, 99.99, -1, 50, 0.01, 'dnx'], [True, -0.5]], ['regression automatic exercise threshold 2', ['C', 4500, 4500.01, -4, 100, 0.01, 'exercise'], [True, -4.0]], ['partial repair probe 1', ['P', 101.5, 113.75, -10, 10, 0.01, 'dnx'], [False, 0.0]], ['partial repair probe 2', ['P', 50, 50.02, -1, 100, 0.01, 'auto'], [False, 0.0]], ['boundary control 1', ['C', 100, 105, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['boundary control 2', ['C', 100, 99.0, 2, 100, 0.01, 'exercise'], [True, 0.0]], ['normal control 1', ['C', 25, 24.98, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['normal control 2', ['C', 101.5, 101.6, -10, 100, 0.05, 'dnx'], [True, -100.0]]], [['regression automatic exercise threshold 1', ['C', 100, 100.02, -1, 50, 0.02, 'auto'], [True, -1.0]], ['regression automatic exercise threshold 2', ['C', 150, 150.05, -10, 100, 0.05, 'exercise'], [True, -50.0]], ['partial repair probe 1', ['P', 50, 62.25, -1, 50, 0.01, 'auto'], [False, 0.0]], ['partial repair probe 2', ['C', 50, 49.99, 1, 100, 0.01, 'auto'], [False, 0.0]], ['boundary control 1', ['C', 100, 105, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['boundary control 2', ['C', 100, 99.0, 2, 100, 0.01, 'exercise'], [True, 0.0]], ['normal control 1', ['P', 212.5, 212.55, 10, 50, 0.02, 'dnx'], [False, 0.0]], ['normal control 2', ['P', 4500, 4500.04, -10, 10, 0.05, 'auto'], [False, 0.0]]], [['regression automatic exercise threshold 1', ['P', 101.5, 101.48, -10, 100, 0.02, 'auto'], [True, -20.0]], ['regression automatic exercise threshold 2', ['C', 101.5, 101.51, -1, 100, 0.01, 'dnx'], [True, -1.0]], ['partial repair probe 1', ['P', 101.5, 102.87, -1, 100, 0.01, 'auto'], [False, 0.0]], ['partial repair probe 2', ['P', 25, 25, 1, 10, 0.01, 'auto'], [False, 0.0]], ['boundary control 1', ['C', 100, 99.0, 2, 100, 0.01, 'exercise'], [True, 0.0]], ['boundary control 2', ['C', 100, 105, 1, 100, 0.01, 'dnx'], [False, 0.0]], ['normal control 1', ['C', 212.5, 212.48, -4, 100, 0.02, 'auto'], [False, 0.0]], ['normal control 2', ['P', 101.5, 101.5, -1, 100, 0.02, 'exercise'], [False, 0.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-cash-settled-expiry-automatic-exercise-threshold","generated_at":"2026-09-29T14:46:54.336735+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 automatic rule compares intrinsic > threshold instead of >=.","sha256":"ef3613fb836f4b4dfd74b6065088c8a59823add988f166d2cc2e38cc69a02b1b","title":"Cash-settled expiry with exercise by exception: an option exactly at the minimum in-the-money amount is abandoned · 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":38.863,"exit_code":1,"observations":[{"actual":[true,-2.0],"check":"regression automatic exercise threshold 1","expected":[true,-2.0],"passed":true},{"actual":[true,-10.0],"check":"regression automatic exercise threshold 2","expected":[true,-10.0],"passed":true},{"actual":[true,0.0],"check":"partial repair probe 1","expected":[false,0.0],"passed":false},{"actual":[true,0.0],"check":"partial repair probe 2","expected":[false,0.0],"passed":false},{"actual":[true,0.0],"check":"boundary control 1","expected":[true,0.0],"passed":true},{"actual":[false,0.0],"check":"boundary control 2","expected":[false,0.0],"passed":true},{"actual":[false,0.0],"check":"normal control 1","expected":[false,0.0],"passed":true},{"actual":[false,0.0],"check":"normal control 2","expected":[false,0.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression automatic exercise threshold 1\", \"actual\": [true, -2.0], \"expected\": [true, -2.0], \"passed\": true}, {\"check\": \"regression automatic exercise threshold 2\", \"actual\": [true, -10.0], \"expected\": [true, -10.0], \"passed\": true}, {\"check\": \"partial repair probe 1\", \"actual\": [true, 0.0], \"expected\": [false, 0.0], \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": [true, 0.0], \"expected\": [false, 0.0], \"passed\": false}, {\"check\": \"boundary control 1\", \"actual\": [true, 0.0], \"expected\": [true, 0.0], \"passed\": true}, {\"check\": \"boundary control 2\", \"actual\": [false, 0.0], \"expected\": [false, 0.0], \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": [false, 0.0], \"expected\": [false, 0.0], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [false, 0.0], \"expected\": [false, 0.0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.252,"exit_code":1,"observations":[{"actual":[false,0.0],"check":"regression automatic exercise threshold 1","expected":[true,-2.0],"passed":false},{"actual":[false,0.0],"check":"regression automatic exercise threshold 2","expected":[true,-10.0],"passed":false},{"actual":[false,0.0],"check":"partial repair probe 1","expected":[false,0.0],"passed":true},{"actual":[false,0.0],"check":"partial repair probe 2","expected":[false,0.0],"passed":true},{"actual":[true,0.0],"check":"boundary control 1","expected":[true,0.0],"passed":true},{"actual":[false,0.0],"check":"boundary control 2","expected":[false,0.0],"passed":true},{"actual":[false,0.0],"check":"normal control 1","expected":[false,0.0],"passed":true},{"actual":[false,0.0],"check":"normal control 2","expected":[false,0.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression automatic exercise threshold 1\", \"actual\": [false, 0.0], \"expected\": [true, -2.0], \"passed\": false}, {\"check\": \"regression automatic exercise threshold 2\", \"actual\": [false, 0.0], \"expected\": [true, -10.0], \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": [false, 0.0], \"expected\": [false, 0.0], \"passed\": true}, {\"check\": \"partial repair probe 2\", \"actual\": [false, 0.0], \"expected\": [false, 0.0], \"passed\": true}, {\"check\": \"boundary control 1\", \"actual\": [true, 0.0], \"expected\": [true, 0.0], \"passed\": true}, {\"check\": \"boundary control 2\", \"actual\": [false, 0.0], \"expected\": [false, 0.0], \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": [false, 0.0], \"expected\": [false, 0.0], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [false, 0.0], \"expected\": [false, 0.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."}}