FAILURE MAP
← Case archive

FA-61246 / Bond day-count conventions / Open access

Money-market certificate priced from yield: the maturity value is discounted over the full term · case 01

Prices are too low for seasoned certificates.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Discounting uses days from issue rather than days remaining.

VERIFIED REPAIR

Discount over the remaining days from settlement to maturity.

Unsuccessful approach: Compounding the yield annually over the remaining days is a different convention.

Case contract

Inputs issue, maturity and settlement dates, coupon and yield (decimals). The instrument pays 100*(1 + coupon*T/360) at maturity where T = days(issue, maturity). Dirty = redemption/(1 + y*R/360) with R = days(settle, maturity); accrued = 100*coupon*A/360 with A = days(issue, settle). Return [dirty, dirty-accrued] rounded to 6.

Why this case matters

Bond accrual and pricing systems depend on exact day-count arithmetic; a single-day error changes settlement cash.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import datetime
N = 1
observations = []
def solve(issue, maturity, settle, coupon, y):
    I = datetime.date(*issue)
    M = datetime.date(*maturity)
    S = datetime.date(*settle)
    T = (M - I).days
    R = (M - S).days
    A = (S - I).days
    redemption = 100 * (1 + coupon * T / 360)
    dirty = redemption / (1 + y * T / 360)
    accrued = 100 * coupon * A / 360
    return [round(dirty, 6), round(dirty - accrued, 6)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression discount horizon 1', [[2021, 1, 1], [2021, 11, 14], [2021, 2, 7], 0.0375, 0.045], [99.808776, 99.42336]], ['regression discount horizon 2', [[2026, 12, 29], [2028, 3, 12], [2027, 8, 27], 0.065, 0.06], [104.478595, 100.127206]], ['partial repair probe 1', [[2035, 10, 9], [2036, 1, 26], [2035, 10, 9], 0.02, 0.01], [100.301864, 100.301864]], ['partial repair probe 2', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2017, 9, 10], [2018, 1, 23], [2018, 1, 2], 0.05, 0.03], [101.69703, 100.113697]], ['normal control 2', [[2025, 3, 31], [2025, 5, 1], [2025, 4, 2], 0.02, 0.03], [99.930723, 99.919612]], ['normal control 3', [[2032, 3, 1], [2033, 9, 16], [2032, 6, 23], 0.0, 0.09], [89.88764, 89.88764]], ['normal control 4', [[2017, 8, 6], [2018, 6, 17], [2018, 1, 13], 0.05, 0.03], [103.044015, 100.821793]]], [['regression discount horizon 1', [[2010, 5, 30], [2011, 8, 19], [2011, 6, 18], 0.065, 0.09], [106.403523, 99.47019]], ['regression discount horizon 2', [[2023, 11, 29], [2025, 8, 30], [2025, 1, 29], 0.0, 0.01], [99.411813, 99.411813]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['partial repair probe 2', [[2034, 12, 18], [2035, 9, 27], [2034, 12, 18], 0.065, 0.01], [104.289888, 104.289888]], ['normal control 1', [[2036, 9, 7], [2037, 7, 16], [2037, 1, 23], 0.0375, 0.01], [102.753359, 101.315859]], ['normal control 2', [[2029, 3, 30], [2030, 4, 2], [2029, 10, 9], 0.02, 0.03], [100.577687, 99.505464]], ['normal control 3', [[2040, 5, 8], [2041, 8, 24], [2040, 11, 27], 0.065, 0.01], [107.732286, 104.067008]], ['normal control 4', [[2024, 7, 25], [2025, 2, 7], [2024, 12, 10], 0.05, 0.09], [101.24278, 99.326113]]], [['regression discount horizon 1', [[2026, 8, 21], [2028, 1, 10], [2027, 7, 6], 0.02, 0.06], [99.692954, 97.920732]], ['regression discount horizon 2', [[2031, 12, 28], [2032, 6, 13], [2032, 3, 10], 0.02, 0.045], [99.748816, 99.343261]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['partial repair probe 2', [[2020, 7, 9], [2020, 11, 22], [2020, 7, 9], 0.02, 0.06], [98.522382, 98.522382]], ['normal control 1', [[2028, 12, 1], [2030, 2, 14], [2029, 9, 27], 0.02, 0.03], [101.263042, 99.596376]], ['normal control 2', [[2012, 7, 22], [2012, 12, 10], [2012, 8, 27], 0.0375, 0.03], [100.5886, 100.2136]], ['normal control 3', [[2014, 5, 10], [2014, 10, 6], [2014, 5, 14], 0.05, 0.01], [101.659981, 101.604425]], ['normal control 4', [[2019, 3, 22], [2020, 5, 3], [2019, 4, 14], 0.0375, 0.045], [99.463327, 99.223744]]], [['regression discount horizon 1', [[2037, 7, 28], [2037, 9, 23], [2037, 9, 10], 0.05, 0.03], [100.682594, 100.071483]], ['regression discount horizon 2', [[2031, 4, 1], [2031, 10, 5], [2031, 5, 23], 0.05, 0.01], [102.21392, 101.491698]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2021, 9, 1], [2022, 2, 21], [2021, 10, 11], 0.0375, 0.03], [100.686145, 100.269479]], ['normal control 2', [[2038, 10, 29], [2040, 5, 17], [2039, 4, 7], 0.02, 0.09], [93.639986, 92.751097]], ['normal control 3', [[2020, 11, 30], [2022, 3, 2], [2021, 11, 22], 0.0375, 0.06], [103.043033, 99.324283]], ['normal control 4', [[2034, 1, 31], [2034, 8, 14], [2034, 7, 27], 0.0, 0.06], [99.700897, 99.700897]], ['normal control 5', [[2025, 9, 22], [2026, 8, 31], [2025, 10, 1], 0.065, 0.01], [105.216877, 105.054377]]], [['regression discount horizon 1', [[2019, 12, 31], [2020, 7, 22], [2020, 2, 14], 0.02, 0.06], [98.522487, 98.272487]], ['regression discount horizon 2', [[2013, 8, 31], [2014, 5, 12], [2013, 9, 23], 0.0375, 0.01], [101.991389, 101.751805]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['partial repair probe 2', [[2027, 12, 11], [2028, 7, 2], [2027, 12, 11], 0.065, 0.06], [100.274017, 100.274017]], ['normal control 1', [[2039, 4, 3], [2040, 7, 12], [2040, 6, 8], 0.0375, 0.09], [103.970418, 99.470418]], ['normal control 2', [[2030, 9, 19], [2032, 3, 19], [2031, 12, 19], 0.0375, 0.09], [103.346777, 98.596777]], ['normal control 3', [[2038, 4, 9], [2038, 9, 2], [2038, 5, 21], 0.02, 0.03], [99.944922, 99.711588]], ['normal control 4', [[2013, 5, 31], [2015, 2, 3], [2014, 8, 4], 0.0, 0.01], [99.494238, 99.494238]]]]
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 fixtureActualExpectedOutcome
regression discount horizon 1[99.364755, 98.979338][99.808776, 99.42336]Failed
regression discount horizon 2[100.568152, 96.216764][104.478595, 100.127206]Failed
partial repair probe 1[100.301864, 100.301864][100.301864, 100.301864]Passed
partial repair probe 2[100.0, 100.0][100.0, 100.0]Passed
normal control 1[100.741656, 99.158323][101.69703, 100.113697]Failed
normal control 2[99.914111, 99.903][99.930723, 99.919612]Failed
normal control 3[87.642419, 87.642419][89.88764, 89.88764]Failed
normal control 4[101.705238, 99.483015][103.044015, 100.821793]Failed

SHA-256 / 13e2e3714f2b26db2c8bcb06e307529cd4cca099edf16e5061295759fcba08b4

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import datetime
N = 1
observations = []
def solve(issue, maturity, settle, coupon, y):
    I = datetime.date(*issue)
    M = datetime.date(*maturity)
    S = datetime.date(*settle)
    T = (M - I).days
    R = (M - S).days
    A = (S - I).days
    redemption = 100 * (1 + coupon * T / 360)
    dirty = redemption / (1 + y) ** (R / 360)
    accrued = 100 * coupon * A / 360
    return [round(dirty, 6), round(dirty - accrued, 6)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression discount horizon 1', [[2021, 1, 1], [2021, 11, 14], [2021, 2, 7], 0.0375, 0.045], [99.808776, 99.42336]], ['regression discount horizon 2', [[2026, 12, 29], [2028, 3, 12], [2027, 8, 27], 0.065, 0.06], [104.478595, 100.127206]], ['partial repair probe 1', [[2035, 10, 9], [2036, 1, 26], [2035, 10, 9], 0.02, 0.01], [100.301864, 100.301864]], ['partial repair probe 2', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2017, 9, 10], [2018, 1, 23], [2018, 1, 2], 0.05, 0.03], [101.69703, 100.113697]], ['normal control 2', [[2025, 3, 31], [2025, 5, 1], [2025, 4, 2], 0.02, 0.03], [99.930723, 99.919612]], ['normal control 3', [[2032, 3, 1], [2033, 9, 16], [2032, 6, 23], 0.0, 0.09], [89.88764, 89.88764]], ['normal control 4', [[2017, 8, 6], [2018, 6, 17], [2018, 1, 13], 0.05, 0.03], [103.044015, 100.821793]]], [['regression discount horizon 1', [[2010, 5, 30], [2011, 8, 19], [2011, 6, 18], 0.065, 0.09], [106.403523, 99.47019]], ['regression discount horizon 2', [[2023, 11, 29], [2025, 8, 30], [2025, 1, 29], 0.0, 0.01], [99.411813, 99.411813]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['partial repair probe 2', [[2034, 12, 18], [2035, 9, 27], [2034, 12, 18], 0.065, 0.01], [104.289888, 104.289888]], ['normal control 1', [[2036, 9, 7], [2037, 7, 16], [2037, 1, 23], 0.0375, 0.01], [102.753359, 101.315859]], ['normal control 2', [[2029, 3, 30], [2030, 4, 2], [2029, 10, 9], 0.02, 0.03], [100.577687, 99.505464]], ['normal control 3', [[2040, 5, 8], [2041, 8, 24], [2040, 11, 27], 0.065, 0.01], [107.732286, 104.067008]], ['normal control 4', [[2024, 7, 25], [2025, 2, 7], [2024, 12, 10], 0.05, 0.09], [101.24278, 99.326113]]], [['regression discount horizon 1', [[2026, 8, 21], [2028, 1, 10], [2027, 7, 6], 0.02, 0.06], [99.692954, 97.920732]], ['regression discount horizon 2', [[2031, 12, 28], [2032, 6, 13], [2032, 3, 10], 0.02, 0.045], [99.748816, 99.343261]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['partial repair probe 2', [[2020, 7, 9], [2020, 11, 22], [2020, 7, 9], 0.02, 0.06], [98.522382, 98.522382]], ['normal control 1', [[2028, 12, 1], [2030, 2, 14], [2029, 9, 27], 0.02, 0.03], [101.263042, 99.596376]], ['normal control 2', [[2012, 7, 22], [2012, 12, 10], [2012, 8, 27], 0.0375, 0.03], [100.5886, 100.2136]], ['normal control 3', [[2014, 5, 10], [2014, 10, 6], [2014, 5, 14], 0.05, 0.01], [101.659981, 101.604425]], ['normal control 4', [[2019, 3, 22], [2020, 5, 3], [2019, 4, 14], 0.0375, 0.045], [99.463327, 99.223744]]], [['regression discount horizon 1', [[2037, 7, 28], [2037, 9, 23], [2037, 9, 10], 0.05, 0.03], [100.682594, 100.071483]], ['regression discount horizon 2', [[2031, 4, 1], [2031, 10, 5], [2031, 5, 23], 0.05, 0.01], [102.21392, 101.491698]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2021, 9, 1], [2022, 2, 21], [2021, 10, 11], 0.0375, 0.03], [100.686145, 100.269479]], ['normal control 2', [[2038, 10, 29], [2040, 5, 17], [2039, 4, 7], 0.02, 0.09], [93.639986, 92.751097]], ['normal control 3', [[2020, 11, 30], [2022, 3, 2], [2021, 11, 22], 0.0375, 0.06], [103.043033, 99.324283]], ['normal control 4', [[2034, 1, 31], [2034, 8, 14], [2034, 7, 27], 0.0, 0.06], [99.700897, 99.700897]], ['normal control 5', [[2025, 9, 22], [2026, 8, 31], [2025, 10, 1], 0.065, 0.01], [105.216877, 105.054377]]], [['regression discount horizon 1', [[2019, 12, 31], [2020, 7, 22], [2020, 2, 14], 0.02, 0.06], [98.522487, 98.272487]], ['regression discount horizon 2', [[2013, 8, 31], [2014, 5, 12], [2013, 9, 23], 0.0375, 0.01], [101.991389, 101.751805]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['partial repair probe 2', [[2027, 12, 11], [2028, 7, 2], [2027, 12, 11], 0.065, 0.06], [100.274017, 100.274017]], ['normal control 1', [[2039, 4, 3], [2040, 7, 12], [2040, 6, 8], 0.0375, 0.09], [103.970418, 99.470418]], ['normal control 2', [[2030, 9, 19], [2032, 3, 19], [2031, 12, 19], 0.0375, 0.09], [103.346777, 98.596777]], ['normal control 3', [[2038, 4, 9], [2038, 9, 2], [2038, 5, 21], 0.02, 0.03], [99.944922, 99.711588]], ['normal control 4', [[2013, 5, 31], [2015, 2, 3], [2014, 8, 4], 0.0, 0.01], [99.494238, 99.494238]]]]
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 fixtureActualExpectedOutcome
regression discount horizon 1[99.825353, 99.439936][99.808776, 99.42336]Failed
regression discount horizon 2[104.522411, 100.171022][104.478595, 100.127206]Failed
partial repair probe 1[100.302913, 100.302913][100.301864, 100.301864]Failed
partial repair probe 2[99.998352, 99.998352][100.0, 100.0]Failed
normal control 1[101.699492, 100.116159][101.69703, 100.113697]Failed
normal control 2[99.933983, 99.922872][99.930723, 99.919612]Failed
normal control 3[89.787706, 89.787706][89.88764, 89.88764]Failed
normal control 4[103.055067, 100.832845][103.044015, 100.821793]Failed

SHA-256 / b66a067c616ac4621cfdde0fefe8573b5373e1ae5811df2b629db439255a255b

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import datetime
N = 1
observations = []
def solve(issue, maturity, settle, coupon, y):
    I = datetime.date(*issue)
    M = datetime.date(*maturity)
    S = datetime.date(*settle)
    T = (M - I).days
    R = (M - S).days
    A = (S - I).days
    redemption = 100 * (1 + coupon * T / 360)
    dirty = redemption / (1 + y * R / 360)
    accrued = 100 * coupon * A / 360
    return [round(dirty, 6), round(dirty - accrued, 6)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression discount horizon 1', [[2021, 1, 1], [2021, 11, 14], [2021, 2, 7], 0.0375, 0.045], [99.808776, 99.42336]], ['regression discount horizon 2', [[2026, 12, 29], [2028, 3, 12], [2027, 8, 27], 0.065, 0.06], [104.478595, 100.127206]], ['partial repair probe 1', [[2035, 10, 9], [2036, 1, 26], [2035, 10, 9], 0.02, 0.01], [100.301864, 100.301864]], ['partial repair probe 2', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2017, 9, 10], [2018, 1, 23], [2018, 1, 2], 0.05, 0.03], [101.69703, 100.113697]], ['normal control 2', [[2025, 3, 31], [2025, 5, 1], [2025, 4, 2], 0.02, 0.03], [99.930723, 99.919612]], ['normal control 3', [[2032, 3, 1], [2033, 9, 16], [2032, 6, 23], 0.0, 0.09], [89.88764, 89.88764]], ['normal control 4', [[2017, 8, 6], [2018, 6, 17], [2018, 1, 13], 0.05, 0.03], [103.044015, 100.821793]]], [['regression discount horizon 1', [[2010, 5, 30], [2011, 8, 19], [2011, 6, 18], 0.065, 0.09], [106.403523, 99.47019]], ['regression discount horizon 2', [[2023, 11, 29], [2025, 8, 30], [2025, 1, 29], 0.0, 0.01], [99.411813, 99.411813]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['partial repair probe 2', [[2034, 12, 18], [2035, 9, 27], [2034, 12, 18], 0.065, 0.01], [104.289888, 104.289888]], ['normal control 1', [[2036, 9, 7], [2037, 7, 16], [2037, 1, 23], 0.0375, 0.01], [102.753359, 101.315859]], ['normal control 2', [[2029, 3, 30], [2030, 4, 2], [2029, 10, 9], 0.02, 0.03], [100.577687, 99.505464]], ['normal control 3', [[2040, 5, 8], [2041, 8, 24], [2040, 11, 27], 0.065, 0.01], [107.732286, 104.067008]], ['normal control 4', [[2024, 7, 25], [2025, 2, 7], [2024, 12, 10], 0.05, 0.09], [101.24278, 99.326113]]], [['regression discount horizon 1', [[2026, 8, 21], [2028, 1, 10], [2027, 7, 6], 0.02, 0.06], [99.692954, 97.920732]], ['regression discount horizon 2', [[2031, 12, 28], [2032, 6, 13], [2032, 3, 10], 0.02, 0.045], [99.748816, 99.343261]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['partial repair probe 2', [[2020, 7, 9], [2020, 11, 22], [2020, 7, 9], 0.02, 0.06], [98.522382, 98.522382]], ['normal control 1', [[2028, 12, 1], [2030, 2, 14], [2029, 9, 27], 0.02, 0.03], [101.263042, 99.596376]], ['normal control 2', [[2012, 7, 22], [2012, 12, 10], [2012, 8, 27], 0.0375, 0.03], [100.5886, 100.2136]], ['normal control 3', [[2014, 5, 10], [2014, 10, 6], [2014, 5, 14], 0.05, 0.01], [101.659981, 101.604425]], ['normal control 4', [[2019, 3, 22], [2020, 5, 3], [2019, 4, 14], 0.0375, 0.045], [99.463327, 99.223744]]], [['regression discount horizon 1', [[2037, 7, 28], [2037, 9, 23], [2037, 9, 10], 0.05, 0.03], [100.682594, 100.071483]], ['regression discount horizon 2', [[2031, 4, 1], [2031, 10, 5], [2031, 5, 23], 0.05, 0.01], [102.21392, 101.491698]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2021, 9, 1], [2022, 2, 21], [2021, 10, 11], 0.0375, 0.03], [100.686145, 100.269479]], ['normal control 2', [[2038, 10, 29], [2040, 5, 17], [2039, 4, 7], 0.02, 0.09], [93.639986, 92.751097]], ['normal control 3', [[2020, 11, 30], [2022, 3, 2], [2021, 11, 22], 0.0375, 0.06], [103.043033, 99.324283]], ['normal control 4', [[2034, 1, 31], [2034, 8, 14], [2034, 7, 27], 0.0, 0.06], [99.700897, 99.700897]], ['normal control 5', [[2025, 9, 22], [2026, 8, 31], [2025, 10, 1], 0.065, 0.01], [105.216877, 105.054377]]], [['regression discount horizon 1', [[2019, 12, 31], [2020, 7, 22], [2020, 2, 14], 0.02, 0.06], [98.522487, 98.272487]], ['regression discount horizon 2', [[2013, 8, 31], [2014, 5, 12], [2013, 9, 23], 0.0375, 0.01], [101.991389, 101.751805]], ['partial repair probe 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['partial repair probe 2', [[2027, 12, 11], [2028, 7, 2], [2027, 12, 11], 0.065, 0.06], [100.274017, 100.274017]], ['normal control 1', [[2039, 4, 3], [2040, 7, 12], [2040, 6, 8], 0.0375, 0.09], [103.970418, 99.470418]], ['normal control 2', [[2030, 9, 19], [2032, 3, 19], [2031, 12, 19], 0.0375, 0.09], [103.346777, 98.596777]], ['normal control 3', [[2038, 4, 9], [2038, 9, 2], [2038, 5, 21], 0.02, 0.03], [99.944922, 99.711588]], ['normal control 4', [[2013, 5, 31], [2015, 2, 3], [2014, 8, 4], 0.0, 0.01], [99.494238, 99.494238]]]]
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 fixtureActualExpectedOutcome
regression discount horizon 1[99.808776, 99.42336][99.808776, 99.42336]Passed
regression discount horizon 2[104.478595, 100.127206][104.478595, 100.127206]Passed
partial repair probe 1[100.301864, 100.301864][100.301864, 100.301864]Passed
partial repair probe 2[100.0, 100.0][100.0, 100.0]Passed
normal control 1[101.69703, 100.113697][101.69703, 100.113697]Passed
normal control 2[99.930723, 99.919612][99.930723, 99.919612]Passed
normal control 3[89.88764, 89.88764][89.88764, 89.88764]Passed
normal control 4[103.044015, 100.821793][103.044015, 100.821793]Passed

SHA-256 / ad080c993b5942c8e333952e88a7dd177c5c59f22eeac9565b143af0b9685812

Verification & scope

A deterministic toy contract stated explicitly in the contract field; no claim of conformance to any published convention text. 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:53.526406+00:00.

Case digest / 90713585596d011ae466f6e30249638616dfa400fc1c3a4c18f588e83d1743e2