FA-61586 / Options payoff and settlement / Open access
Special opening settlement value for index options: component weights are ignored · case 01
Settlement is a plain price average scaled by the divisor.
ROOT CAUSE
Prices are summed without their weights.
VERIFIED REPAIR
Multiply each price by its weight.
Unsuccessful approach: Weighting only components that opened leaves fallback prices unweighted.
Case contract
Inputs components [weight, opening price or None, last close] and a divisor. Each component uses its opening price, or its last close if it did not open. Settlement = sum(weight*price)/divisor computed in Decimal and rounded half-up to cents. Return as a string.
Why this case matters
Option expiry, exercise and settlement engines move cash and shares; a wrong branch misstates obligations.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_DOWN
N = 1
observations = []
def solve(components, divisor):
total = Decimal(0)
for w, op, close in components:
px = op if op is not None else close
total += Decimal(str(px))
val = (total / Decimal(str(divisor))).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
return str(val)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression component weighting 1', [[[3, 13.479, 12.986], [0.5, 161.37, 158.976], [0.5, 193.135, 197.081]], 8], '27.21'], ['regression component weighting 2', [[[3, 51.56, 53.295], [0.5, 174.778, 175.271], [2, None, 155.681]], 4], '138.36'], ['partial repair probe 1', [[[2, 117.299, 112.037], [0.5, None, 24.449]], 4], '61.71'], ['partial repair probe 2', [[[1.5, 136.595, 140.125], [2, None, 78.392], [1.5, 102.304, 98.119], [1.5, 106.144, 103.36], [1.5, 65.339, 68.752], [2, None, 149.232]], 0.5], '2141.64'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 81.482, 82.869], [1, None, 60.357]], 1], '141.84'], ['normal control 2', [[[1, 66.523, 68.001], [1, 118.251, 120.993]], 2], '92.39'], ['normal control 3', [[[1, None, 88.977], [1, None, 49.669], [1, 68.444, 70.558], [1, 143.834, 140.092]], 8], '43.87']], [['regression component weighting 1', [[[3, 127.711, 129.547], [3, None, 97.406], [1.5, None, 128.005], [1.5, 108.974, 105.749], [1.5, None, 132.697], [2, 80.439, 81.276]], 1.25], '1112.59'], ['regression component weighting 2', [[[3, 19.347, 18.546], [3, 53.415, 51.55], [2, 62.823, 63.572], [1, 180.607, 184.998], [2, 116.252, 114.41]], 4], '189.26'], ['partial repair probe 1', [[[0.5, None, 88.66], [1.5, 110.336, 108.494]], 1], '209.83'], ['partial repair probe 2', [[[3, None, 154.303], [2, 111.662, 115.172], [0.5, None, 65.001], [2, 149.367, 155.124], [0.5, None, 11.233]], 0.5], '2046.17'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 78.421, 79.525], [1, 179.157, 177.457]], 1], '257.58'], ['normal control 2', [[[1, None, 166.839], [1, 184.801, 188.328]], 8], '43.96'], ['normal control 3', [[[1, 166.869, 166.945], [1, 155.555, 154.795]], 0.5], '644.85']], [['regression component weighting 1', [[[2, 128.325, 134.42], [2, 70.639, 68.693], [3, None, 33.965], [2, None, 109.542], [2, 117.98, 116.309], [0.5, 15.763, 16.39]], 1.25], '770.20'], ['regression component weighting 2', [[[1, 16.248, 16.214], [0.5, 203.435, 198.134], [3, None, 58.341], [2, None, 139.181], [0.5, None, 29.931]], 2], '293.16'], ['partial repair probe 1', [[[3, 182.204, 176.361], [3, None, 65.618], [1.5, 68.079, 70.602], [1, None, 194.423]], 0.5], '2080.02'], ['partial repair probe 2', [[[2, 76.311, 79.686], [1.5, 134.131, 131.019], [3, None, 131.954], [1, None, 83.653], [0.5, None, 107.976]], 2], '443.66'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, None, 137.951], [1, None, 129.725], [1, 94.553, 90.269], [1, 84.63, 85.23], [1, None, 33.797]], 1], '480.66'], ['normal control 2', [[[1, 95.732, 99.548], [1, 10.24, 10.021]], 2], '52.99'], ['normal control 3', [[[1, 192.215, 195.95], [1, 26.3, 26.83]], 0.5], '437.03']], [['regression component weighting 1', [[[1, 153.045, 147.169], [1, 59.608, 59.609], [1, 162.952, 160.301], [1, 12.856, 13.271], [0.5, 24.004, 23.062]], 0.5], '800.93'], ['regression component weighting 2', [[[1.5, 37.724, 38.183], [1, 162.145, 159.23], [1.5, 196.22, 194.54]], 2], '256.53'], ['partial repair probe 1', [[[1, 18.793, 18.089], [0.5, 116.372, 112.157], [2, 32.811, 32.915], [1.5, None, 197.202]], 1.25], '350.72'], ['partial repair probe 2', [[[0.5, None, 47.219], [2, None, 175.641]], 1.25], '299.91'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 20.872, 21.251], [1, None, 100.111]], 1], '120.98'], ['normal control 2', [[[1, 121.743, 124.99], [1, 17.002, 17.602]], 1], '138.75'], ['normal control 3', [[[1, 99.296, 100.215], [1, 188.519, 182.158]], 8], '35.98']], [['regression component weighting 1', [[[1, 208.403, 199.958], [3, 141.132, 144.086], [2, 48.774, 48.99], [2, None, 48.807], [3, None, 121.457]], 4], '297.83'], ['regression component weighting 2', [[[1.5, 62.219, 62.373], [1, 193.83, 198.269]], 4], '71.79'], ['partial repair probe 1', [[[1.5, None, 80.916], [1, 12.21, 11.683], [0.5, 154.941, 151.005], [1, 39.42, 39.707]], 0.5], '500.95'], ['partial repair probe 2', [[[1.5, None, 189.456], [2, 126.608, 131.279], [0.5, 191.182, 192.847], [2, None, 32.658], [1.5, 122.29, 125.114]], 2], '440.87'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 76.249, 73.412], [1, 146.143, 141.273], [1, None, 26.499]], 2], '124.45'], ['normal control 2', [[[1, 139.48, 138.297], [1, 149.017, 145.959]], 4], '72.12'], ['normal control 3', [[[1, None, 180.47], [1, 83.49, 85.396]], 0.5], '527.92']]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression component weighting 1 | 46.00 | 27.21 | Failed |
| regression component weighting 2 | 95.50 | 138.36 | Failed |
| partial repair probe 1 | 35.44 | 61.71 | Failed |
| partial repair probe 2 | 1276.01 | 2141.64 | Failed |
| boundary control 1 | 10.01 | 10.01 | Passed |
| normal control 1 | 141.84 | 141.84 | Passed |
| normal control 2 | 92.39 | 92.39 | Passed |
| normal control 3 | 43.87 | 43.87 | Passed |
SHA-256 / b6bc247723240353ac63e92693d225a93ee3e116177000c0530be698bf05d6e9
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_DOWN
N = 1
observations = []
def solve(components, divisor):
total = Decimal(0)
for w, op, close in components:
px = op if op is not None else close
total += (Decimal(str(w)) if op is not None else 1) * Decimal(str(px))
val = (total / Decimal(str(divisor))).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
return str(val)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression component weighting 1', [[[3, 13.479, 12.986], [0.5, 161.37, 158.976], [0.5, 193.135, 197.081]], 8], '27.21'], ['regression component weighting 2', [[[3, 51.56, 53.295], [0.5, 174.778, 175.271], [2, None, 155.681]], 4], '138.36'], ['partial repair probe 1', [[[2, 117.299, 112.037], [0.5, None, 24.449]], 4], '61.71'], ['partial repair probe 2', [[[1.5, 136.595, 140.125], [2, None, 78.392], [1.5, 102.304, 98.119], [1.5, 106.144, 103.36], [1.5, 65.339, 68.752], [2, None, 149.232]], 0.5], '2141.64'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 81.482, 82.869], [1, None, 60.357]], 1], '141.84'], ['normal control 2', [[[1, 66.523, 68.001], [1, 118.251, 120.993]], 2], '92.39'], ['normal control 3', [[[1, None, 88.977], [1, None, 49.669], [1, 68.444, 70.558], [1, 143.834, 140.092]], 8], '43.87']], [['regression component weighting 1', [[[3, 127.711, 129.547], [3, None, 97.406], [1.5, None, 128.005], [1.5, 108.974, 105.749], [1.5, None, 132.697], [2, 80.439, 81.276]], 1.25], '1112.59'], ['regression component weighting 2', [[[3, 19.347, 18.546], [3, 53.415, 51.55], [2, 62.823, 63.572], [1, 180.607, 184.998], [2, 116.252, 114.41]], 4], '189.26'], ['partial repair probe 1', [[[0.5, None, 88.66], [1.5, 110.336, 108.494]], 1], '209.83'], ['partial repair probe 2', [[[3, None, 154.303], [2, 111.662, 115.172], [0.5, None, 65.001], [2, 149.367, 155.124], [0.5, None, 11.233]], 0.5], '2046.17'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 78.421, 79.525], [1, 179.157, 177.457]], 1], '257.58'], ['normal control 2', [[[1, None, 166.839], [1, 184.801, 188.328]], 8], '43.96'], ['normal control 3', [[[1, 166.869, 166.945], [1, 155.555, 154.795]], 0.5], '644.85']], [['regression component weighting 1', [[[2, 128.325, 134.42], [2, 70.639, 68.693], [3, None, 33.965], [2, None, 109.542], [2, 117.98, 116.309], [0.5, 15.763, 16.39]], 1.25], '770.20'], ['regression component weighting 2', [[[1, 16.248, 16.214], [0.5, 203.435, 198.134], [3, None, 58.341], [2, None, 139.181], [0.5, None, 29.931]], 2], '293.16'], ['partial repair probe 1', [[[3, 182.204, 176.361], [3, None, 65.618], [1.5, 68.079, 70.602], [1, None, 194.423]], 0.5], '2080.02'], ['partial repair probe 2', [[[2, 76.311, 79.686], [1.5, 134.131, 131.019], [3, None, 131.954], [1, None, 83.653], [0.5, None, 107.976]], 2], '443.66'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, None, 137.951], [1, None, 129.725], [1, 94.553, 90.269], [1, 84.63, 85.23], [1, None, 33.797]], 1], '480.66'], ['normal control 2', [[[1, 95.732, 99.548], [1, 10.24, 10.021]], 2], '52.99'], ['normal control 3', [[[1, 192.215, 195.95], [1, 26.3, 26.83]], 0.5], '437.03']], [['regression component weighting 1', [[[1, 153.045, 147.169], [1, 59.608, 59.609], [1, 162.952, 160.301], [1, 12.856, 13.271], [0.5, 24.004, 23.062]], 0.5], '800.93'], ['regression component weighting 2', [[[1.5, 37.724, 38.183], [1, 162.145, 159.23], [1.5, 196.22, 194.54]], 2], '256.53'], ['partial repair probe 1', [[[1, 18.793, 18.089], [0.5, 116.372, 112.157], [2, 32.811, 32.915], [1.5, None, 197.202]], 1.25], '350.72'], ['partial repair probe 2', [[[0.5, None, 47.219], [2, None, 175.641]], 1.25], '299.91'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 20.872, 21.251], [1, None, 100.111]], 1], '120.98'], ['normal control 2', [[[1, 121.743, 124.99], [1, 17.002, 17.602]], 1], '138.75'], ['normal control 3', [[[1, 99.296, 100.215], [1, 188.519, 182.158]], 8], '35.98']], [['regression component weighting 1', [[[1, 208.403, 199.958], [3, 141.132, 144.086], [2, 48.774, 48.99], [2, None, 48.807], [3, None, 121.457]], 4], '297.83'], ['regression component weighting 2', [[[1.5, 62.219, 62.373], [1, 193.83, 198.269]], 4], '71.79'], ['partial repair probe 1', [[[1.5, None, 80.916], [1, 12.21, 11.683], [0.5, 154.941, 151.005], [1, 39.42, 39.707]], 0.5], '500.95'], ['partial repair probe 2', [[[1.5, None, 189.456], [2, 126.608, 131.279], [0.5, 191.182, 192.847], [2, None, 32.658], [1.5, 122.29, 125.114]], 2], '440.87'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 76.249, 73.412], [1, 146.143, 141.273], [1, None, 26.499]], 2], '124.45'], ['normal control 2', [[[1, 139.48, 138.297], [1, 149.017, 145.959]], 4], '72.12'], ['normal control 3', [[[1, None, 180.47], [1, 83.49, 85.396]], 0.5], '527.92']]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression component weighting 1 | 27.21 | 27.21 | Passed |
| regression component weighting 2 | 99.44 | 138.36 | Failed |
| partial repair probe 1 | 64.76 | 61.71 | Failed |
| partial repair probe 2 | 1686.39 | 2141.64 | Failed |
| boundary control 1 | 10.01 | 10.01 | Passed |
| normal control 1 | 141.84 | 141.84 | Passed |
| normal control 2 | 92.39 | 92.39 | Passed |
| normal control 3 | 43.87 | 43.87 | Passed |
SHA-256 / 236d21148f7ca786f6690a594a4965b644a9f29d7e239b22fec3e3d61d4176bd
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_DOWN
N = 1
observations = []
def solve(components, divisor):
total = Decimal(0)
for w, op, close in components:
px = op if op is not None else close
total += Decimal(str(w)) * Decimal(str(px))
val = (total / Decimal(str(divisor))).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
return str(val)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression component weighting 1', [[[3, 13.479, 12.986], [0.5, 161.37, 158.976], [0.5, 193.135, 197.081]], 8], '27.21'], ['regression component weighting 2', [[[3, 51.56, 53.295], [0.5, 174.778, 175.271], [2, None, 155.681]], 4], '138.36'], ['partial repair probe 1', [[[2, 117.299, 112.037], [0.5, None, 24.449]], 4], '61.71'], ['partial repair probe 2', [[[1.5, 136.595, 140.125], [2, None, 78.392], [1.5, 102.304, 98.119], [1.5, 106.144, 103.36], [1.5, 65.339, 68.752], [2, None, 149.232]], 0.5], '2141.64'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 81.482, 82.869], [1, None, 60.357]], 1], '141.84'], ['normal control 2', [[[1, 66.523, 68.001], [1, 118.251, 120.993]], 2], '92.39'], ['normal control 3', [[[1, None, 88.977], [1, None, 49.669], [1, 68.444, 70.558], [1, 143.834, 140.092]], 8], '43.87']], [['regression component weighting 1', [[[3, 127.711, 129.547], [3, None, 97.406], [1.5, None, 128.005], [1.5, 108.974, 105.749], [1.5, None, 132.697], [2, 80.439, 81.276]], 1.25], '1112.59'], ['regression component weighting 2', [[[3, 19.347, 18.546], [3, 53.415, 51.55], [2, 62.823, 63.572], [1, 180.607, 184.998], [2, 116.252, 114.41]], 4], '189.26'], ['partial repair probe 1', [[[0.5, None, 88.66], [1.5, 110.336, 108.494]], 1], '209.83'], ['partial repair probe 2', [[[3, None, 154.303], [2, 111.662, 115.172], [0.5, None, 65.001], [2, 149.367, 155.124], [0.5, None, 11.233]], 0.5], '2046.17'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 78.421, 79.525], [1, 179.157, 177.457]], 1], '257.58'], ['normal control 2', [[[1, None, 166.839], [1, 184.801, 188.328]], 8], '43.96'], ['normal control 3', [[[1, 166.869, 166.945], [1, 155.555, 154.795]], 0.5], '644.85']], [['regression component weighting 1', [[[2, 128.325, 134.42], [2, 70.639, 68.693], [3, None, 33.965], [2, None, 109.542], [2, 117.98, 116.309], [0.5, 15.763, 16.39]], 1.25], '770.20'], ['regression component weighting 2', [[[1, 16.248, 16.214], [0.5, 203.435, 198.134], [3, None, 58.341], [2, None, 139.181], [0.5, None, 29.931]], 2], '293.16'], ['partial repair probe 1', [[[3, 182.204, 176.361], [3, None, 65.618], [1.5, 68.079, 70.602], [1, None, 194.423]], 0.5], '2080.02'], ['partial repair probe 2', [[[2, 76.311, 79.686], [1.5, 134.131, 131.019], [3, None, 131.954], [1, None, 83.653], [0.5, None, 107.976]], 2], '443.66'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, None, 137.951], [1, None, 129.725], [1, 94.553, 90.269], [1, 84.63, 85.23], [1, None, 33.797]], 1], '480.66'], ['normal control 2', [[[1, 95.732, 99.548], [1, 10.24, 10.021]], 2], '52.99'], ['normal control 3', [[[1, 192.215, 195.95], [1, 26.3, 26.83]], 0.5], '437.03']], [['regression component weighting 1', [[[1, 153.045, 147.169], [1, 59.608, 59.609], [1, 162.952, 160.301], [1, 12.856, 13.271], [0.5, 24.004, 23.062]], 0.5], '800.93'], ['regression component weighting 2', [[[1.5, 37.724, 38.183], [1, 162.145, 159.23], [1.5, 196.22, 194.54]], 2], '256.53'], ['partial repair probe 1', [[[1, 18.793, 18.089], [0.5, 116.372, 112.157], [2, 32.811, 32.915], [1.5, None, 197.202]], 1.25], '350.72'], ['partial repair probe 2', [[[0.5, None, 47.219], [2, None, 175.641]], 1.25], '299.91'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 20.872, 21.251], [1, None, 100.111]], 1], '120.98'], ['normal control 2', [[[1, 121.743, 124.99], [1, 17.002, 17.602]], 1], '138.75'], ['normal control 3', [[[1, 99.296, 100.215], [1, 188.519, 182.158]], 8], '35.98']], [['regression component weighting 1', [[[1, 208.403, 199.958], [3, 141.132, 144.086], [2, 48.774, 48.99], [2, None, 48.807], [3, None, 121.457]], 4], '297.83'], ['regression component weighting 2', [[[1.5, 62.219, 62.373], [1, 193.83, 198.269]], 4], '71.79'], ['partial repair probe 1', [[[1.5, None, 80.916], [1, 12.21, 11.683], [0.5, 154.941, 151.005], [1, 39.42, 39.707]], 0.5], '500.95'], ['partial repair probe 2', [[[1.5, None, 189.456], [2, 126.608, 131.279], [0.5, 191.182, 192.847], [2, None, 32.658], [1.5, 122.29, 125.114]], 2], '440.87'], ['boundary control 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['normal control 1', [[[1, 76.249, 73.412], [1, 146.143, 141.273], [1, None, 26.499]], 2], '124.45'], ['normal control 2', [[[1, 139.48, 138.297], [1, 149.017, 145.959]], 4], '72.12'], ['normal control 3', [[[1, None, 180.47], [1, 83.49, 85.396]], 0.5], '527.92']]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression component weighting 1 | 27.21 | 27.21 | Passed |
| regression component weighting 2 | 138.36 | 138.36 | Passed |
| partial repair probe 1 | 61.71 | 61.71 | Passed |
| partial repair probe 2 | 2141.64 | 2141.64 | Passed |
| boundary control 1 | 10.01 | 10.01 | Passed |
| normal control 1 | 141.84 | 141.84 | Passed |
| normal control 2 | 92.39 | 92.39 | Passed |
| normal control 3 | 43.87 | 43.87 | Passed |
SHA-256 / 38d8ac81b20961ad6b9737908fd8b63c202494ca4ef6732d28b0b71312fd5483
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:46:56.700161+00:00.
Case digest / 2ed0ce7b20f94b705fc5f8c2a80024b051b2b3f512ae0993614274e7c8878057