FA-61831 / Options payoff and settlement / Open access
Option order price tick rounding: penny classes keep a one-cent tick above 3.00 · case 01
Penny-class orders above 3.00 are priced in cents.
ROOT CAUSE
The large-price branch uses 10 mills for penny classes.
VERIFIED REPAIR
Penny classes use 0.05 at or above 3.00.
Unsuccessful approach: Using 0.10 for penny classes ignores the program.
Case contract
Inputs a limit price (up to 3 decimals), side and penny-program flag. Work in mills. Below 3.000 the tick is 0.01 for penny classes and 0.05 otherwise; at or above 3.000 it is 0.05 for penny classes and 0.10 otherwise. Buy orders round down to a tick, sell orders round up; prices already on a tick are unchanged. Return the price as a float.
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
N = 1
observations = []
def solve(price, side, penny):
m = round(price * 1000)
small = m < 3000
tick = (10 if penny else 50) if small else (10 if penny else 100)
if side == 'buy':
out = m // tick * tick
else:
out = -(-m // tick) * tick
return out / 1000
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression penny tick above threshold 1', [3.075, 'sell', True], 3.1], ['regression penny tick above threshold 2', [3.03, 'sell', True], 3.05], ['partial repair probe 1', [12.344, 'sell', True], 12.35], ['partial repair probe 2', [3.049, 'sell', True], 3.05], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [12.34, 'sell', False], 12.4], ['normal control 2', [3.074, 'sell', False], 3.1]], [['regression penny tick above threshold 1', [3.082, 'buy', True], 3.05], ['regression penny tick above threshold 2', [3.004, 'sell', True], 3.05], ['partial repair probe 1', [3.049, 'sell', True], 3.05], ['partial repair probe 2', [12.345, 'sell', True], 12.35], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [1.26, 'sell', False], 1.3], ['normal control 2', [2.962, 'buy', False], 2.95]], [['regression penny tick above threshold 1', [3.001, 'sell', True], 3.05], ['regression penny tick above threshold 2', [3.012, 'buy', True], 3.0], ['partial repair probe 1', [4.15, 'sell', True], 4.15], ['partial repair probe 2', [3.05, 'buy', True], 3.05], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [12.389, 'sell', False], 12.4], ['normal control 2', [4.104, 'sell', False], 4.2]], [['regression penny tick above threshold 1', [12.41, 'buy', True], 12.4], ['regression penny tick above threshold 2', [3.02, 'buy', True], 3.0], ['partial repair probe 1', [3.05, 'sell', True], 3.05], ['partial repair probe 2', [4.15, 'buy', True], 4.15], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [12.389, 'sell', False], 12.4], ['normal control 2', [4.104, 'buy', False], 4.1]], [['regression penny tick above threshold 1', [12.344, 'buy', True], 12.3], ['regression penny tick above threshold 2', [3.039, 'buy', True], 3.0], ['partial repair probe 1', [12.352, 'buy', True], 12.35], ['partial repair probe 2', [4.15, 'sell', True], 4.15], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [3.075, 'buy', False], 3.0], ['normal control 2', [3.004, 'buy', True], 3.0]]]
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 penny tick above threshold 1 | 3.08 | 3.1 | Failed |
| regression penny tick above threshold 2 | 3.03 | 3.05 | Failed |
| partial repair probe 1 | 12.35 | 12.35 | Passed |
| partial repair probe 2 | 3.05 | 3.05 | Passed |
| boundary control 1 | 3.0 | 3.0 | Passed |
| boundary control 2 | 2.95 | 2.95 | Passed |
| normal control 1 | 12.4 | 12.4 | Passed |
| normal control 2 | 3.1 | 3.1 | Passed |
SHA-256 / 6add467f12e20ad0d7a55ad327f04d31bd8037cc866374da81e9dc0693ba8667
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(price, side, penny):
m = round(price * 1000)
small = m < 3000
tick = (10 if penny else 50) if small else 100
if side == 'buy':
out = m // tick * tick
else:
out = -(-m // tick) * tick
return out / 1000
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression penny tick above threshold 1', [3.075, 'sell', True], 3.1], ['regression penny tick above threshold 2', [3.03, 'sell', True], 3.05], ['partial repair probe 1', [12.344, 'sell', True], 12.35], ['partial repair probe 2', [3.049, 'sell', True], 3.05], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [12.34, 'sell', False], 12.4], ['normal control 2', [3.074, 'sell', False], 3.1]], [['regression penny tick above threshold 1', [3.082, 'buy', True], 3.05], ['regression penny tick above threshold 2', [3.004, 'sell', True], 3.05], ['partial repair probe 1', [3.049, 'sell', True], 3.05], ['partial repair probe 2', [12.345, 'sell', True], 12.35], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [1.26, 'sell', False], 1.3], ['normal control 2', [2.962, 'buy', False], 2.95]], [['regression penny tick above threshold 1', [3.001, 'sell', True], 3.05], ['regression penny tick above threshold 2', [3.012, 'buy', True], 3.0], ['partial repair probe 1', [4.15, 'sell', True], 4.15], ['partial repair probe 2', [3.05, 'buy', True], 3.05], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [12.389, 'sell', False], 12.4], ['normal control 2', [4.104, 'sell', False], 4.2]], [['regression penny tick above threshold 1', [12.41, 'buy', True], 12.4], ['regression penny tick above threshold 2', [3.02, 'buy', True], 3.0], ['partial repair probe 1', [3.05, 'sell', True], 3.05], ['partial repair probe 2', [4.15, 'buy', True], 4.15], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [12.389, 'sell', False], 12.4], ['normal control 2', [4.104, 'buy', False], 4.1]], [['regression penny tick above threshold 1', [12.344, 'buy', True], 12.3], ['regression penny tick above threshold 2', [3.039, 'buy', True], 3.0], ['partial repair probe 1', [12.352, 'buy', True], 12.35], ['partial repair probe 2', [4.15, 'sell', True], 4.15], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [3.075, 'buy', False], 3.0], ['normal control 2', [3.004, 'buy', True], 3.0]]]
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 penny tick above threshold 1 | 3.1 | 3.1 | Passed |
| regression penny tick above threshold 2 | 3.1 | 3.05 | Failed |
| partial repair probe 1 | 12.4 | 12.35 | Failed |
| partial repair probe 2 | 3.1 | 3.05 | Failed |
| boundary control 1 | 3.0 | 3.0 | Passed |
| boundary control 2 | 2.95 | 2.95 | Passed |
| normal control 1 | 12.4 | 12.4 | Passed |
| normal control 2 | 3.1 | 3.1 | Passed |
SHA-256 / 20d9fa16373ffdc260dbdc2008271e7d0e1bf2a7cbfb6df9421fe45a5975870b
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(price, side, penny):
m = round(price * 1000)
small = m < 3000
tick = (10 if penny else 50) if small else (50 if penny else 100)
if side == 'buy':
out = m // tick * tick
else:
out = -(-m // tick) * tick
return out / 1000
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression penny tick above threshold 1', [3.075, 'sell', True], 3.1], ['regression penny tick above threshold 2', [3.03, 'sell', True], 3.05], ['partial repair probe 1', [12.344, 'sell', True], 12.35], ['partial repair probe 2', [3.049, 'sell', True], 3.05], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [12.34, 'sell', False], 12.4], ['normal control 2', [3.074, 'sell', False], 3.1]], [['regression penny tick above threshold 1', [3.082, 'buy', True], 3.05], ['regression penny tick above threshold 2', [3.004, 'sell', True], 3.05], ['partial repair probe 1', [3.049, 'sell', True], 3.05], ['partial repair probe 2', [12.345, 'sell', True], 12.35], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [1.26, 'sell', False], 1.3], ['normal control 2', [2.962, 'buy', False], 2.95]], [['regression penny tick above threshold 1', [3.001, 'sell', True], 3.05], ['regression penny tick above threshold 2', [3.012, 'buy', True], 3.0], ['partial repair probe 1', [4.15, 'sell', True], 4.15], ['partial repair probe 2', [3.05, 'buy', True], 3.05], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [12.389, 'sell', False], 12.4], ['normal control 2', [4.104, 'sell', False], 4.2]], [['regression penny tick above threshold 1', [12.41, 'buy', True], 12.4], ['regression penny tick above threshold 2', [3.02, 'buy', True], 3.0], ['partial repair probe 1', [3.05, 'sell', True], 3.05], ['partial repair probe 2', [4.15, 'buy', True], 4.15], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [12.389, 'sell', False], 12.4], ['normal control 2', [4.104, 'buy', False], 4.1]], [['regression penny tick above threshold 1', [12.344, 'buy', True], 12.3], ['regression penny tick above threshold 2', [3.039, 'buy', True], 3.0], ['partial repair probe 1', [12.352, 'buy', True], 12.35], ['partial repair probe 2', [4.15, 'sell', True], 4.15], ['boundary control 1', [3.0, 'buy', False], 3.0], ['boundary control 2', [2.95, 'sell', False], 2.95], ['normal control 1', [3.075, 'buy', False], 3.0], ['normal control 2', [3.004, 'buy', True], 3.0]]]
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 penny tick above threshold 1 | 3.1 | 3.1 | Passed |
| regression penny tick above threshold 2 | 3.05 | 3.05 | Passed |
| partial repair probe 1 | 12.35 | 12.35 | Passed |
| partial repair probe 2 | 3.05 | 3.05 | Passed |
| boundary control 1 | 3.0 | 3.0 | Passed |
| boundary control 2 | 2.95 | 2.95 | Passed |
| normal control 1 | 12.4 | 12.4 | Passed |
| normal control 2 | 3.1 | 3.1 | Passed |
SHA-256 / 43068a3f6f0d77cb20621e077b756db65935c634378598a6aa7220a9c30f4fa6
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:58.872982+00:00.
Case digest / b90ba8264e161bb614cf0845b53cb6e2dcc5e679ee6c28033e1dbd6acc4194ba