{"abstract":"Expiring in-the-money options are valued at zero.","category":"Options payoff and settlement","checks":8,"contract":"Inputs kind, spot S, strike K, rate r, dividend yield q, volatility sigma and calendar days to expiry. T = days/365. At days == 0 return intrinsic value. Otherwise d1 = (ln(S/K) + (r - q + sigma^2/2)T)/(sigma sqrt T), d2 = d1 - sigma sqrt T, call = S e^{-qT} N(d1) - K e^{-rT} N(d2), put = K e^{-rT} N(-d2) - S e^{-qT} N(-d1). Round to 6.","contract_signature":"kind, S, K, r, q, sigma, days","evaluation_group":"w2-options_payoff_and_settlement-black-scholes-dividend-yield","failed_approach":"Returning call intrinsic for every kind misvalues expiring puts.","family":"w2-options_payoff_and_settlement-black-scholes-dividend-yield-expiry-intrinsic","id":"FA-61566","implementations":{"attempt":{"sha256":"39a55c780c59b74bbe561053c892c7342f02b41bd0707cf6efc57a288dc10c5f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(kind, S, K, r, q, sigma, days):\n    def N(x):\n        return 0.5 * (1 + math.erf(x / math.sqrt(2)))\n    T = days / 365\n    if days == 0:\n        return round(max(S - K, 0.0), 6)\n    d1 = (math.log(S / K) + (r - q + 0.5 * sigma ** 2) * T) / (sigma * math.sqrt(T))\n    d2 = d1 - sigma * math.sqrt(T)\n    if kind == 'C':\n        v = S * math.exp(-q * T) * N(d1) - K * math.exp(-r * T) * N(d2)\n    else:\n        v = K * math.exp(-r * T) * N(-d2) - S * math.exp(-q * T) * N(-d1)\n    return round(v, 6)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression expiry intrinsic 1', ['C', 100.0, 95.0, 0.0, 0.0, 0.2, 0], 5.0], ['regression expiry intrinsic 2', ['P', 90.0, 105.0, 0.05, 0.0, 0.35, 0], 15.0], ['partial repair probe 1', ['P', 110.0, 100.0, 0.02, 0.0, 0.2, 0], 0.0], ['partial repair probe 2', ['P', 110.0, 105.0, 0.02, 0.0, 0.35, 0], 0.0], ['normal control 1', ['C', 90.0, 105.0, 0.02, 0.015, 0.35, 730], 12.381799], ['normal control 2', ['P', 110.0, 100.0, 0.0, 0.015, 0.1, 365], 1.243579], ['normal control 3', ['P', 110.0, 105.0, 0.0, 0.0, 0.1, 7], 0.000151], ['normal control 4', ['C', 100.0, 100.0, 0.0, 0.015, 0.1, 365], 3.25808]], [['regression expiry intrinsic 1', ['C', 100.0, 95.0, 0.02, 0.015, 0.2, 0], 5.0], ['regression expiry intrinsic 2', ['P', 90.0, 95.0, 0.02, 0.015, 0.2, 0], 5.0], ['partial repair probe 1', ['P', 100.0, 95.0, 0.05, 0.03, 0.35, 0], 0.0], ['partial repair probe 2', ['P', 100.0, 95.0, 0.0, 0.03, 0.1, 0], 0.0], ['normal control 1', ['P', 90.0, 95.0, 0.0, 0.0, 0.2, 30], 5.491714], ['normal control 2', ['P', 110.0, 100.0, 0.02, 0.03, 0.2, 91], 0.989366], ['normal control 3', ['P', 110.0, 95.0, 0.02, 0.03, 0.2, 7], 0.0], ['normal control 4', ['P', 90.0, 95.0, 0.02, 0.0, 0.35, 182], 11.222351]], [['regression expiry intrinsic 1', ['P', 90.0, 100.0, 0.02, 0.0, 0.2, 0], 10.0], ['regression expiry intrinsic 2', ['P', 100.0, 105.0, 0.05, 0.0, 0.35, 0], 5.0], ['partial repair probe 1', ['P', 100.0, 95.0, 0.05, 0.0, 0.2, 0], 0.0], ['partial repair probe 2', ['P', 110.0, 100.0, 0.0, 0.0, 0.2, 0], 0.0], ['normal control 1', ['C', 90.0, 105.0, 0.02, 0.0, 0.2, 91], 0.287643], ['normal control 2', ['P', 110.0, 105.0, 0.02, 0.0, 0.35, 91], 5.027049], ['normal control 3', ['C', 90.0, 105.0, 0.02, 0.03, 0.1, 730], 0.68644], ['normal control 4', ['P', 110.0, 105.0, 0.05, 0.015, 0.1, 365], 1.21651]], [['regression expiry intrinsic 1', ['P', 90.0, 100.0, 0.05, 0.0, 0.2, 0], 10.0], ['regression expiry intrinsic 2', ['C', 110.0, 105.0, 0.05, 0.0, 0.2, 0], 5.0], ['partial repair probe 1', ['P', 100.0, 95.0, 0.0, 0.0, 0.1, 0], 0.0], ['partial repair probe 2', ['P', 110.0, 100.0, 0.05, 0.015, 0.2, 0], 0.0], ['normal control 1', ['C', 90.0, 105.0, 0.05, 0.03, 0.35, 7], 0.000965], ['normal control 2', ['P', 110.0, 100.0, 0.05, 0.03, 0.1, 1], 0.0], ['normal control 3', ['P', 100.0, 95.0, 0.05, 0.03, 0.1, 7], 3.1e-05], ['normal control 4', ['P', 90.0, 105.0, 0.0, 0.015, 0.2, 365], 18.471878]], [['regression expiry intrinsic 1', ['P', 90.0, 95.0, 0.02, 0.03, 0.2, 0], 5.0], ['regression expiry intrinsic 2', ['C', 110.0, 100.0, 0.0, 0.015, 0.2, 0], 10.0], ['partial repair probe 1', ['P', 110.0, 105.0, 0.0, 0.0, 0.1, 0], 0.0], ['partial repair probe 2', ['P', 110.0, 100.0, 0.05, 0.0, 0.2, 0], 0.0], ['normal control 1', ['C', 110.0, 105.0, 0.0, 0.03, 0.1, 1], 4.990959], ['normal control 2', ['P', 100.0, 100.0, 0.02, 0.03, 0.2, 7], 1.113996], ['normal control 3', ['P', 110.0, 105.0, 0.05, 0.015, 0.2, 7], 0.053891], ['normal control 4', ['C', 100.0, 95.0, 0.02, 0.0, 0.1, 30], 5.191459]]]\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":"d04f134fb94a6340636cf352c0ae6dd025ac7ab45405169779a3d097a2ee8ce5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(kind, S, K, r, q, sigma, days):\n    def N(x):\n        return 0.5 * (1 + math.erf(x / math.sqrt(2)))\n    T = days / 365\n    if days == 0:\n        return 0.0\n    d1 = (math.log(S / K) + (r - q + 0.5 * sigma ** 2) * T) / (sigma * math.sqrt(T))\n    d2 = d1 - sigma * math.sqrt(T)\n    if kind == 'C':\n        v = S * math.exp(-q * T) * N(d1) - K * math.exp(-r * T) * N(d2)\n    else:\n        v = K * math.exp(-r * T) * N(-d2) - S * math.exp(-q * T) * N(-d1)\n    return round(v, 6)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression expiry intrinsic 1', ['C', 100.0, 95.0, 0.0, 0.0, 0.2, 0], 5.0], ['regression expiry intrinsic 2', ['P', 90.0, 105.0, 0.05, 0.0, 0.35, 0], 15.0], ['partial repair probe 1', ['P', 110.0, 100.0, 0.02, 0.0, 0.2, 0], 0.0], ['partial repair probe 2', ['P', 110.0, 105.0, 0.02, 0.0, 0.35, 0], 0.0], ['normal control 1', ['C', 90.0, 105.0, 0.02, 0.015, 0.35, 730], 12.381799], ['normal control 2', ['P', 110.0, 100.0, 0.0, 0.015, 0.1, 365], 1.243579], ['normal control 3', ['P', 110.0, 105.0, 0.0, 0.0, 0.1, 7], 0.000151], ['normal control 4', ['C', 100.0, 100.0, 0.0, 0.015, 0.1, 365], 3.25808]], [['regression expiry intrinsic 1', ['C', 100.0, 95.0, 0.02, 0.015, 0.2, 0], 5.0], ['regression expiry intrinsic 2', ['P', 90.0, 95.0, 0.02, 0.015, 0.2, 0], 5.0], ['partial repair probe 1', ['P', 100.0, 95.0, 0.05, 0.03, 0.35, 0], 0.0], ['partial repair probe 2', ['P', 100.0, 95.0, 0.0, 0.03, 0.1, 0], 0.0], ['normal control 1', ['P', 90.0, 95.0, 0.0, 0.0, 0.2, 30], 5.491714], ['normal control 2', ['P', 110.0, 100.0, 0.02, 0.03, 0.2, 91], 0.989366], ['normal control 3', ['P', 110.0, 95.0, 0.02, 0.03, 0.2, 7], 0.0], ['normal control 4', ['P', 90.0, 95.0, 0.02, 0.0, 0.35, 182], 11.222351]], [['regression expiry intrinsic 1', ['P', 90.0, 100.0, 0.02, 0.0, 0.2, 0], 10.0], ['regression expiry intrinsic 2', ['P', 100.0, 105.0, 0.05, 0.0, 0.35, 0], 5.0], ['partial repair probe 1', ['P', 100.0, 95.0, 0.05, 0.0, 0.2, 0], 0.0], ['partial repair probe 2', ['P', 110.0, 100.0, 0.0, 0.0, 0.2, 0], 0.0], ['normal control 1', ['C', 90.0, 105.0, 0.02, 0.0, 0.2, 91], 0.287643], ['normal control 2', ['P', 110.0, 105.0, 0.02, 0.0, 0.35, 91], 5.027049], ['normal control 3', ['C', 90.0, 105.0, 0.02, 0.03, 0.1, 730], 0.68644], ['normal control 4', ['P', 110.0, 105.0, 0.05, 0.015, 0.1, 365], 1.21651]], [['regression expiry intrinsic 1', ['P', 90.0, 100.0, 0.05, 0.0, 0.2, 0], 10.0], ['regression expiry intrinsic 2', ['C', 110.0, 105.0, 0.05, 0.0, 0.2, 0], 5.0], ['partial repair probe 1', ['P', 100.0, 95.0, 0.0, 0.0, 0.1, 0], 0.0], ['partial repair probe 2', ['P', 110.0, 100.0, 0.05, 0.015, 0.2, 0], 0.0], ['normal control 1', ['C', 90.0, 105.0, 0.05, 0.03, 0.35, 7], 0.000965], ['normal control 2', ['P', 110.0, 100.0, 0.05, 0.03, 0.1, 1], 0.0], ['normal control 3', ['P', 100.0, 95.0, 0.05, 0.03, 0.1, 7], 3.1e-05], ['normal control 4', ['P', 90.0, 105.0, 0.0, 0.015, 0.2, 365], 18.471878]], [['regression expiry intrinsic 1', ['P', 90.0, 95.0, 0.02, 0.03, 0.2, 0], 5.0], ['regression expiry intrinsic 2', ['C', 110.0, 100.0, 0.0, 0.015, 0.2, 0], 10.0], ['partial repair probe 1', ['P', 110.0, 105.0, 0.0, 0.0, 0.1, 0], 0.0], ['partial repair probe 2', ['P', 110.0, 100.0, 0.05, 0.0, 0.2, 0], 0.0], ['normal control 1', ['C', 110.0, 105.0, 0.0, 0.03, 0.1, 1], 4.990959], ['normal control 2', ['P', 100.0, 100.0, 0.02, 0.03, 0.2, 7], 1.113996], ['normal control 3', ['P', 110.0, 105.0, 0.05, 0.015, 0.2, 7], 0.053891], ['normal control 4', ['C', 100.0, 95.0, 0.02, 0.0, 0.1, 30], 5.191459]]]\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-black-scholes-dividend-yield-expiry-intrinsic","generated_at":"2026-09-29T14:46:56.437175+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 days == 0 guard returns 0.0 instead of intrinsic.","sha256":"6e7c24b53b7e48d917b8f0e5bec08ec57829d9e0cee13bfe228f775fa8b76611","title":"European option value with continuous dividend yield: an option at expiry returns zero · 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":39.287,"exit_code":1,"observations":[{"actual":5.0,"check":"regression expiry intrinsic 1","expected":5.0,"passed":true},{"actual":0.0,"check":"regression expiry intrinsic 2","expected":15.0,"passed":false},{"actual":10.0,"check":"partial repair probe 1","expected":0.0,"passed":false},{"actual":5.0,"check":"partial repair probe 2","expected":0.0,"passed":false},{"actual":12.381799,"check":"normal control 1","expected":12.381799,"passed":true},{"actual":1.243579,"check":"normal control 2","expected":1.243579,"passed":true},{"actual":0.000151,"check":"normal control 3","expected":0.000151,"passed":true},{"actual":3.25808,"check":"normal control 4","expected":3.25808,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression expiry intrinsic 1\", \"actual\": 5.0, \"expected\": 5.0, \"passed\": true}, {\"check\": \"regression expiry intrinsic 2\", \"actual\": 0.0, \"expected\": 15.0, \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": 10.0, \"expected\": 0.0, \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": 5.0, \"expected\": 0.0, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": 12.381799, \"expected\": 12.381799, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 1.243579, \"expected\": 1.243579, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 0.000151, \"expected\": 0.000151, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 3.25808, \"expected\": 3.25808, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.654,"exit_code":1,"observations":[{"actual":0.0,"check":"regression expiry intrinsic 1","expected":5.0,"passed":false},{"actual":0.0,"check":"regression expiry intrinsic 2","expected":15.0,"passed":false},{"actual":0.0,"check":"partial repair probe 1","expected":0.0,"passed":true},{"actual":0.0,"check":"partial repair probe 2","expected":0.0,"passed":true},{"actual":12.381799,"check":"normal control 1","expected":12.381799,"passed":true},{"actual":1.243579,"check":"normal control 2","expected":1.243579,"passed":true},{"actual":0.000151,"check":"normal control 3","expected":0.000151,"passed":true},{"actual":3.25808,"check":"normal control 4","expected":3.25808,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression expiry intrinsic 1\", \"actual\": 0.0, \"expected\": 5.0, \"passed\": false}, {\"check\": \"regression expiry intrinsic 2\", \"actual\": 0.0, \"expected\": 15.0, \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": 0.0, \"expected\": 0.0, \"passed\": true}, {\"check\": \"partial repair probe 2\", \"actual\": 0.0, \"expected\": 0.0, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 12.381799, \"expected\": 12.381799, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 1.243579, \"expected\": 1.243579, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 0.000151, \"expected\": 0.000151, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 3.25808, \"expected\": 3.25808, \"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."}}