FAILURE MAP
← Case archive

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

Money-market certificate priced from yield: accrued interest is added to reach the clean price · case 01

Clean prices exceed dirty prices.

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

ROOT CAUSE

The clean price adds accrued instead of subtracting it.

VERIFIED REPAIR

Clean equals dirty minus accrued.

Unsuccessful approach: Discounting accrued before subtracting mixes present and nominal amounts.

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 * 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 clean price derivation 1', [[2010, 5, 30], [2010, 12, 7], [2010, 8, 2], 0.05, 0.03], [101.577747, 100.688858]], ['regression clean price derivation 2', [[2040, 1, 6], [2040, 4, 5], [2040, 3, 28], 0.065, 0.01], [101.602422, 100.121866]], ['partial repair probe 1', [[2030, 7, 31], [2031, 8, 4], [2030, 12, 3], 0.05, 0.09], [99.081056, 97.344944]], ['partial repair probe 2', [[2022, 6, 30], [2022, 9, 2], [2022, 7, 16], 0.0375, 0.09], [99.472991, 99.306324]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2019, 1, 11], [2019, 12, 22], [2019, 9, 2], 0.0, 0.03], [99.083478, 99.083478]], ['normal control 2', [[2011, 6, 26], [2012, 3, 11], [2011, 9, 14], 0.0, 0.045], [97.811468, 97.811468]], ['normal control 3', [[2015, 9, 30], [2016, 8, 26], [2015, 12, 13], 0.0, 0.06], [95.8926, 95.8926]]], [['regression clean price derivation 1', [[2035, 7, 28], [2036, 3, 28], [2036, 3, 10], 0.065, 0.09], [103.937835, 99.85728]], ['regression clean price derivation 2', [[2019, 11, 20], [2020, 3, 24], [2020, 1, 11], 0.0375, 0.09], [99.486456, 98.944789]], ['partial repair probe 1', [[2020, 11, 4], [2021, 11, 26], [2021, 8, 4], 0.0375, 0.09], [101.148517, 98.304767]], ['partial repair probe 2', [[2025, 5, 24], [2026, 7, 8], [2026, 4, 29], 0.0375, 0.09], [102.477477, 98.935811]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2026, 9, 26], [2028, 6, 12], [2028, 6, 11], 0.0, 0.045], [99.987502, 99.987502]], ['normal control 2', [[2021, 2, 20], [2023, 1, 9], [2021, 7, 11], 0.0, 0.045], [93.600094, 93.600094]], ['normal control 3', [[2015, 3, 18], [2015, 10, 12], [2015, 4, 10], 0.0, 0.06], [97.008892, 97.008892]]], [['regression clean price derivation 1', [[2018, 1, 30], [2018, 12, 27], [2018, 10, 23], 0.065, 0.01], [105.785387, 100.98261]], ['regression clean price derivation 2', [[2021, 2, 16], [2021, 6, 9], [2021, 3, 4], 0.065, 0.01], [101.766075, 101.477186]], ['partial repair probe 1', [[2016, 7, 31], [2018, 6, 4], [2017, 10, 13], 0.02, 0.045], [100.790759, 98.35187]], ['partial repair probe 2', [[2030, 10, 7], [2031, 12, 3], [2031, 8, 31], 0.02, 0.01], [102.077908, 100.255685]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2030, 7, 29], [2031, 7, 21], [2031, 5, 21], 0.0, 0.06], [98.993565, 98.993565]], ['normal control 2', [[2038, 5, 1], [2039, 3, 24], [2039, 3, 19], 0.0, 0.01], [99.986113, 99.986113]], ['normal control 3', [[2020, 9, 30], [2021, 9, 18], [2020, 12, 24], 0.0, 0.045], [96.758587, 96.758587]]], [['regression clean price derivation 1', [[2021, 7, 27], [2022, 5, 27], [2021, 11, 10], 0.05, 0.01], [103.652135, 102.179913]], ['regression clean price derivation 2', [[2015, 5, 31], [2017, 3, 15], [2016, 5, 21], 0.05, 0.06], [103.92188, 98.977436]], ['partial repair probe 1', [[2035, 10, 18], [2036, 3, 3], [2035, 11, 9], 0.02, 0.01], [100.44026, 100.318038]], ['partial repair probe 2', [[2029, 1, 6], [2030, 1, 13], [2029, 11, 27], 0.05, 0.045], [104.552421, 100.038532]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2036, 9, 30], [2037, 10, 4], [2037, 3, 27], 0.0, 0.01], [99.472244, 99.472244]], ['normal control 2', [[2023, 1, 31], [2023, 11, 21], [2023, 9, 12], 0.0, 0.01], [99.805933, 99.805933]], ['normal control 3', [[2037, 12, 22], [2038, 12, 29], [2038, 11, 14], 0.0, 0.03], [99.626401, 99.626401]]], [['regression clean price derivation 1', [[2024, 12, 30], [2025, 8, 22], [2025, 3, 12], 0.02, 0.06], [98.62621, 98.22621]], ['regression clean price derivation 2', [[2023, 6, 28], [2025, 1, 13], [2024, 3, 13], 0.05, 0.01], [106.938247, 103.341025]], ['partial repair probe 1', [[2026, 10, 12], [2027, 9, 21], [2026, 11, 10], 0.065, 0.06], [100.91317, 100.389559]], ['partial repair probe 2', [[2028, 2, 29], [2029, 3, 19], [2028, 3, 12], 0.0375, 0.01], [102.936325, 102.811325]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2019, 9, 17], [2021, 1, 6], [2020, 4, 29], 0.0, 0.03], [97.943193, 97.943193]], ['normal control 2', [[2019, 10, 31], [2020, 5, 13], [2019, 11, 25], 0.0, 0.09], [95.923261, 95.923261]], ['normal control 3', [[2018, 9, 30], [2019, 1, 16], [2018, 11, 22], 0.0, 0.03], [99.543758, 99.543758]]]]
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 clean price derivation 1[101.577747, 102.466636][101.577747, 100.688858]Failed
regression clean price derivation 2[101.602422, 103.082977][101.602422, 100.121866]Failed
partial repair probe 1[99.081056, 100.817167][99.081056, 97.344944]Failed
partial repair probe 2[99.472991, 99.639657][99.472991, 99.306324]Failed
boundary control 1[100.0, 100.0][100.0, 100.0]Passed
normal control 1[99.083478, 99.083478][99.083478, 99.083478]Passed
normal control 2[97.811468, 97.811468][97.811468, 97.811468]Passed
normal control 3[95.8926, 95.8926][95.8926, 95.8926]Passed

SHA-256 / aac59a57a93debfeff8c55b33abb0ee1399a878a614a96afa6ef00cd07c87b99

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 / (1 + y * R / 360), 6)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression clean price derivation 1', [[2010, 5, 30], [2010, 12, 7], [2010, 8, 2], 0.05, 0.03], [101.577747, 100.688858]], ['regression clean price derivation 2', [[2040, 1, 6], [2040, 4, 5], [2040, 3, 28], 0.065, 0.01], [101.602422, 100.121866]], ['partial repair probe 1', [[2030, 7, 31], [2031, 8, 4], [2030, 12, 3], 0.05, 0.09], [99.081056, 97.344944]], ['partial repair probe 2', [[2022, 6, 30], [2022, 9, 2], [2022, 7, 16], 0.0375, 0.09], [99.472991, 99.306324]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2019, 1, 11], [2019, 12, 22], [2019, 9, 2], 0.0, 0.03], [99.083478, 99.083478]], ['normal control 2', [[2011, 6, 26], [2012, 3, 11], [2011, 9, 14], 0.0, 0.045], [97.811468, 97.811468]], ['normal control 3', [[2015, 9, 30], [2016, 8, 26], [2015, 12, 13], 0.0, 0.06], [95.8926, 95.8926]]], [['regression clean price derivation 1', [[2035, 7, 28], [2036, 3, 28], [2036, 3, 10], 0.065, 0.09], [103.937835, 99.85728]], ['regression clean price derivation 2', [[2019, 11, 20], [2020, 3, 24], [2020, 1, 11], 0.0375, 0.09], [99.486456, 98.944789]], ['partial repair probe 1', [[2020, 11, 4], [2021, 11, 26], [2021, 8, 4], 0.0375, 0.09], [101.148517, 98.304767]], ['partial repair probe 2', [[2025, 5, 24], [2026, 7, 8], [2026, 4, 29], 0.0375, 0.09], [102.477477, 98.935811]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2026, 9, 26], [2028, 6, 12], [2028, 6, 11], 0.0, 0.045], [99.987502, 99.987502]], ['normal control 2', [[2021, 2, 20], [2023, 1, 9], [2021, 7, 11], 0.0, 0.045], [93.600094, 93.600094]], ['normal control 3', [[2015, 3, 18], [2015, 10, 12], [2015, 4, 10], 0.0, 0.06], [97.008892, 97.008892]]], [['regression clean price derivation 1', [[2018, 1, 30], [2018, 12, 27], [2018, 10, 23], 0.065, 0.01], [105.785387, 100.98261]], ['regression clean price derivation 2', [[2021, 2, 16], [2021, 6, 9], [2021, 3, 4], 0.065, 0.01], [101.766075, 101.477186]], ['partial repair probe 1', [[2016, 7, 31], [2018, 6, 4], [2017, 10, 13], 0.02, 0.045], [100.790759, 98.35187]], ['partial repair probe 2', [[2030, 10, 7], [2031, 12, 3], [2031, 8, 31], 0.02, 0.01], [102.077908, 100.255685]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2030, 7, 29], [2031, 7, 21], [2031, 5, 21], 0.0, 0.06], [98.993565, 98.993565]], ['normal control 2', [[2038, 5, 1], [2039, 3, 24], [2039, 3, 19], 0.0, 0.01], [99.986113, 99.986113]], ['normal control 3', [[2020, 9, 30], [2021, 9, 18], [2020, 12, 24], 0.0, 0.045], [96.758587, 96.758587]]], [['regression clean price derivation 1', [[2021, 7, 27], [2022, 5, 27], [2021, 11, 10], 0.05, 0.01], [103.652135, 102.179913]], ['regression clean price derivation 2', [[2015, 5, 31], [2017, 3, 15], [2016, 5, 21], 0.05, 0.06], [103.92188, 98.977436]], ['partial repair probe 1', [[2035, 10, 18], [2036, 3, 3], [2035, 11, 9], 0.02, 0.01], [100.44026, 100.318038]], ['partial repair probe 2', [[2029, 1, 6], [2030, 1, 13], [2029, 11, 27], 0.05, 0.045], [104.552421, 100.038532]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2036, 9, 30], [2037, 10, 4], [2037, 3, 27], 0.0, 0.01], [99.472244, 99.472244]], ['normal control 2', [[2023, 1, 31], [2023, 11, 21], [2023, 9, 12], 0.0, 0.01], [99.805933, 99.805933]], ['normal control 3', [[2037, 12, 22], [2038, 12, 29], [2038, 11, 14], 0.0, 0.03], [99.626401, 99.626401]]], [['regression clean price derivation 1', [[2024, 12, 30], [2025, 8, 22], [2025, 3, 12], 0.02, 0.06], [98.62621, 98.22621]], ['regression clean price derivation 2', [[2023, 6, 28], [2025, 1, 13], [2024, 3, 13], 0.05, 0.01], [106.938247, 103.341025]], ['partial repair probe 1', [[2026, 10, 12], [2027, 9, 21], [2026, 11, 10], 0.065, 0.06], [100.91317, 100.389559]], ['partial repair probe 2', [[2028, 2, 29], [2029, 3, 19], [2028, 3, 12], 0.0375, 0.01], [102.936325, 102.811325]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2019, 9, 17], [2021, 1, 6], [2020, 4, 29], 0.0, 0.03], [97.943193, 97.943193]], ['normal control 2', [[2019, 10, 31], [2020, 5, 13], [2019, 11, 25], 0.0, 0.09], [95.923261, 95.923261]], ['normal control 3', [[2018, 9, 30], [2019, 1, 16], [2018, 11, 22], 0.0, 0.03], [99.543758, 99.543758]]]]
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 clean price derivation 1[101.577747, 100.698167][101.577747, 100.688858]Failed
regression clean price derivation 2[101.602422, 100.122195][101.602422, 100.121866]Failed
partial repair probe 1[99.081056, 97.444759][99.081056, 97.344944]Failed
partial repair probe 2[99.472991, 99.3083][99.472991, 99.306324]Failed
boundary control 1[100.0, 100.0][100.0, 100.0]Passed
normal control 1[99.083478, 99.083478][99.083478, 99.083478]Passed
normal control 2[97.811468, 97.811468][97.811468, 97.811468]Passed
normal control 3[95.8926, 95.8926][95.8926, 95.8926]Passed

SHA-256 / 072fde944986588192f6512b14f5ff46f66cb37f1ad629bfe4a99f63d6414cd1

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 clean price derivation 1', [[2010, 5, 30], [2010, 12, 7], [2010, 8, 2], 0.05, 0.03], [101.577747, 100.688858]], ['regression clean price derivation 2', [[2040, 1, 6], [2040, 4, 5], [2040, 3, 28], 0.065, 0.01], [101.602422, 100.121866]], ['partial repair probe 1', [[2030, 7, 31], [2031, 8, 4], [2030, 12, 3], 0.05, 0.09], [99.081056, 97.344944]], ['partial repair probe 2', [[2022, 6, 30], [2022, 9, 2], [2022, 7, 16], 0.0375, 0.09], [99.472991, 99.306324]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2019, 1, 11], [2019, 12, 22], [2019, 9, 2], 0.0, 0.03], [99.083478, 99.083478]], ['normal control 2', [[2011, 6, 26], [2012, 3, 11], [2011, 9, 14], 0.0, 0.045], [97.811468, 97.811468]], ['normal control 3', [[2015, 9, 30], [2016, 8, 26], [2015, 12, 13], 0.0, 0.06], [95.8926, 95.8926]]], [['regression clean price derivation 1', [[2035, 7, 28], [2036, 3, 28], [2036, 3, 10], 0.065, 0.09], [103.937835, 99.85728]], ['regression clean price derivation 2', [[2019, 11, 20], [2020, 3, 24], [2020, 1, 11], 0.0375, 0.09], [99.486456, 98.944789]], ['partial repair probe 1', [[2020, 11, 4], [2021, 11, 26], [2021, 8, 4], 0.0375, 0.09], [101.148517, 98.304767]], ['partial repair probe 2', [[2025, 5, 24], [2026, 7, 8], [2026, 4, 29], 0.0375, 0.09], [102.477477, 98.935811]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2026, 9, 26], [2028, 6, 12], [2028, 6, 11], 0.0, 0.045], [99.987502, 99.987502]], ['normal control 2', [[2021, 2, 20], [2023, 1, 9], [2021, 7, 11], 0.0, 0.045], [93.600094, 93.600094]], ['normal control 3', [[2015, 3, 18], [2015, 10, 12], [2015, 4, 10], 0.0, 0.06], [97.008892, 97.008892]]], [['regression clean price derivation 1', [[2018, 1, 30], [2018, 12, 27], [2018, 10, 23], 0.065, 0.01], [105.785387, 100.98261]], ['regression clean price derivation 2', [[2021, 2, 16], [2021, 6, 9], [2021, 3, 4], 0.065, 0.01], [101.766075, 101.477186]], ['partial repair probe 1', [[2016, 7, 31], [2018, 6, 4], [2017, 10, 13], 0.02, 0.045], [100.790759, 98.35187]], ['partial repair probe 2', [[2030, 10, 7], [2031, 12, 3], [2031, 8, 31], 0.02, 0.01], [102.077908, 100.255685]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2030, 7, 29], [2031, 7, 21], [2031, 5, 21], 0.0, 0.06], [98.993565, 98.993565]], ['normal control 2', [[2038, 5, 1], [2039, 3, 24], [2039, 3, 19], 0.0, 0.01], [99.986113, 99.986113]], ['normal control 3', [[2020, 9, 30], [2021, 9, 18], [2020, 12, 24], 0.0, 0.045], [96.758587, 96.758587]]], [['regression clean price derivation 1', [[2021, 7, 27], [2022, 5, 27], [2021, 11, 10], 0.05, 0.01], [103.652135, 102.179913]], ['regression clean price derivation 2', [[2015, 5, 31], [2017, 3, 15], [2016, 5, 21], 0.05, 0.06], [103.92188, 98.977436]], ['partial repair probe 1', [[2035, 10, 18], [2036, 3, 3], [2035, 11, 9], 0.02, 0.01], [100.44026, 100.318038]], ['partial repair probe 2', [[2029, 1, 6], [2030, 1, 13], [2029, 11, 27], 0.05, 0.045], [104.552421, 100.038532]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2036, 9, 30], [2037, 10, 4], [2037, 3, 27], 0.0, 0.01], [99.472244, 99.472244]], ['normal control 2', [[2023, 1, 31], [2023, 11, 21], [2023, 9, 12], 0.0, 0.01], [99.805933, 99.805933]], ['normal control 3', [[2037, 12, 22], [2038, 12, 29], [2038, 11, 14], 0.0, 0.03], [99.626401, 99.626401]]], [['regression clean price derivation 1', [[2024, 12, 30], [2025, 8, 22], [2025, 3, 12], 0.02, 0.06], [98.62621, 98.22621]], ['regression clean price derivation 2', [[2023, 6, 28], [2025, 1, 13], [2024, 3, 13], 0.05, 0.01], [106.938247, 103.341025]], ['partial repair probe 1', [[2026, 10, 12], [2027, 9, 21], [2026, 11, 10], 0.065, 0.06], [100.91317, 100.389559]], ['partial repair probe 2', [[2028, 2, 29], [2029, 3, 19], [2028, 3, 12], 0.0375, 0.01], [102.936325, 102.811325]], ['boundary control 1', [[2024, 1, 1], [2024, 12, 31], [2024, 1, 1], 0.05, 0.05], [100.0, 100.0]], ['normal control 1', [[2019, 9, 17], [2021, 1, 6], [2020, 4, 29], 0.0, 0.03], [97.943193, 97.943193]], ['normal control 2', [[2019, 10, 31], [2020, 5, 13], [2019, 11, 25], 0.0, 0.09], [95.923261, 95.923261]], ['normal control 3', [[2018, 9, 30], [2019, 1, 16], [2018, 11, 22], 0.0, 0.03], [99.543758, 99.543758]]]]
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 clean price derivation 1[101.577747, 100.688858][101.577747, 100.688858]Passed
regression clean price derivation 2[101.602422, 100.121866][101.602422, 100.121866]Passed
partial repair probe 1[99.081056, 97.344944][99.081056, 97.344944]Passed
partial repair probe 2[99.472991, 99.306324][99.472991, 99.306324]Passed
boundary control 1[100.0, 100.0][100.0, 100.0]Passed
normal control 1[99.083478, 99.083478][99.083478, 99.083478]Passed
normal control 2[97.811468, 97.811468][97.811468, 97.811468]Passed
normal control 3[95.8926, 95.8926][95.8926, 95.8926]Passed

SHA-256 / 64967027a1a77cba76f735bb1a557727f241e461b574e45bc0aed403cdd9dd81

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.543173+00:00.

Case digest / 124d4f4b1a4dae92825a5edb83a4a0fad43c9efaf5edbc88615d26f543c02fdd