{"abstract":"Prices are discounted for the part of the period that has already elapsed.","category":"Bond day-count conventions","checks":8,"contract":"Inputs settle, prev and next coupon dates [y,m,d], n remaining coupons (including next), annual coupon rate, annual yield y and frequency. w = days(settle, next)/days(prev, next); c = 100*rate/freq; v = 1/(1+y/freq). Dirty = sum_{k=0}^{n-1} c*v^(k+w) + 100*v^(n-1+w); accrued = c*(1-w); return [dirty, dirty-accrued] each rounded to 6 decimals.","contract_signature":"settle, prev, nxt, n, rate, y, freq","evaluation_group":"w2-bond_day_count_conventions-street-yield-to-price","failed_approach":"Dividing remaining days by a nominal 365/freq period ignores the actual period length.","family":"w2-bond_day_count_conventions-street-yield-to-price-fractional-period-exponent","id":"FA-61076","implementations":{"attempt":{"sha256":"5e06a1bffbfa65f5a8d67ba0da6958ab33fae64a038cfd4e7b61c7824762cb33","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime\nN = 1\nobservations = []\ndef solve(settle, prev, nxt, n, rate, y, freq):\n    S = datetime.date(*settle)\n    P = datetime.date(*prev)\n    Q = datetime.date(*nxt)\n    w = (Q - S).days / (365 / freq)\n    c = 100 * rate / freq\n    v = 1 / (1 + y / freq)\n    dirty = sum(c * v ** (k + w) for k in range(n)) + 100 * v ** (n - 1 + w)\n    accrued = c * (1 - w)\n    return [round(dirty, 6), round(dirty - accrued, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression fractional period exponent 1', [[2022, 1, 5], [2021, 10, 28], [2022, 1, 28], 8, 0.045, 0.005, 4], [108.056379, 107.212629]], ['regression fractional period exponent 2', [[2036, 10, 9], [2036, 5, 29], [2036, 11, 29], 9, 0.075, 0.035, 2], [117.991368, 115.28077]], ['partial repair probe 1', [[2024, 4, 15], [2024, 1, 15], [2024, 7, 15], 1, 0.04, 0.04, 2], [100.995049, 99.995049]], ['normal control 1', [[2006, 10, 30], [2006, 10, 23], [2007, 4, 23], 2, 0.075, 0.005, 2], [106.984111, 106.83988]], ['normal control 2', [[2009, 5, 28], [2009, 3, 31], [2009, 9, 30], 15, 0.015, 0.08, 2], [64.664079, 64.426374]], ['normal control 3', [[2007, 9, 17], [2007, 7, 30], [2008, 1, 30], 6, 0.045, 0.08, 2], [91.77988, 91.180695]], ['normal control 4', [[2036, 12, 24], [2036, 9, 30], [2037, 9, 30], 20, 0.045, 0.11, 1], [49.425067, 48.377122]], ['normal control 5', [[2037, 5, 8], [2037, 3, 30], [2037, 9, 30], 29, 0.075, 0.08, 2], [96.553401, 95.758564]]], [['regression fractional period exponent 1', [[2020, 2, 15], [2019, 10, 28], [2020, 4, 28], 4, 0.075, 0.08, 2], [101.456417, 99.202318]], ['regression fractional period exponent 2', [[2018, 9, 11], [2018, 7, 14], [2019, 1, 14], 8, 0.0, 0.02, 2], [92.643439, 92.643439]], ['partial repair probe 1', [[2024, 4, 15], [2024, 1, 15], [2024, 7, 15], 1, 0.04, 0.04, 2], [100.995049, 99.995049]], ['partial repair probe 2', [[2032, 4, 14], [2032, 2, 29], [2032, 5, 29], 22, 0.0, 0.02, 4], [89.831711, 89.831711]], ['normal control 1', [[2009, 12, 6], [2009, 11, 8], [2010, 5, 8], 16, 0.06, 0.05, 2], [106.935199, 106.47111]], ['normal control 2', [[2029, 7, 8], [2029, 7, 3], [2030, 1, 3], 23, 0.045, 0.05, 2], [95.731186, 95.670045]], ['normal control 3', [[2028, 5, 20], [2028, 3, 29], [2028, 6, 29], 21, 0.015, 0.05, 4], [84.517874, 84.305918]], ['normal control 4', [[2037, 4, 15], [2036, 10, 25], [2037, 4, 25], 22, 0.03, 0.11, 2], [52.245103, 50.82752]]], [['regression fractional period exponent 1', [[2010, 2, 11], [2009, 12, 29], [2010, 3, 29], 3, 0.03, 0.05, 4], [99.13699, 98.770324]], ['regression fractional period exponent 2', [[2010, 12, 7], [2010, 7, 10], [2011, 1, 10], 25, 0.045, 0.08, 2], [75.022131, 73.187892]], ['partial repair probe 1', [[2015, 12, 8], [2015, 9, 8], [2016, 3, 8], 4, 0.045, 0.02, 2], [105.40054, 104.27554]], ['partial repair probe 2', [[2024, 4, 15], [2024, 1, 15], [2024, 7, 15], 1, 0.04, 0.04, 2], [100.995049, 99.995049]], ['normal control 1', [[2016, 3, 8], [2016, 3, 8], [2016, 9, 8], 13, 0.0, 0.005, 2], [96.806171, 96.806171]], ['normal control 2', [[2040, 3, 2], [2039, 11, 30], [2040, 5, 30], 1, 0.075, 0.11, 2], [101.068867, 99.152658]], ['normal control 3', [[2028, 1, 30], [2028, 1, 12], [2028, 7, 12], 8, 0.015, 0.02, 2], [98.183655, 98.10948]], ['normal control 4', [[2021, 4, 14], [2021, 1, 31], [2021, 7, 31], 27, 0.075, 0.05, 2], [125.57439, 124.061959]]], [['regression fractional period exponent 1', [[2019, 3, 7], [2018, 7, 17], [2019, 7, 17], 18, 0.0, 0.035, 1], [55.031452, 55.031452]], ['regression fractional period exponent 2', [[2006, 6, 2], [2006, 5, 1], [2006, 11, 1], 6, 0.06, 0.02, 2], [111.784227, 111.262488]], ['partial repair probe 1', [[2024, 4, 15], [2024, 1, 15], [2024, 7, 15], 1, 0.04, 0.04, 2], [100.995049, 99.995049]], ['normal control 1', [[2011, 3, 2], [2011, 2, 24], [2011, 8, 24], 2, 0.075, 0.02, 2], [105.453364, 105.329055]], ['normal control 2', [[2023, 1, 29], [2022, 12, 31], [2023, 6, 30], 11, 0.06, 0.02, 2], [120.927892, 120.447229]], ['normal control 3', [[2030, 6, 19], [2030, 5, 29], [2031, 5, 29], 1, 0.0, 0.02, 1], [98.150978, 98.150978]], ['normal control 4', [[2023, 6, 17], [2023, 5, 30], [2023, 8, 30], 22, 0.015, 0.05, 4], [83.463368, 83.389999]], ['normal control 5', [[2009, 2, 16], [2009, 2, 16], [2009, 8, 16], 24, 0.06, 0.005, 2], [163.981444, 163.981444]]], [['regression fractional period exponent 1', [[2028, 7, 3], [2028, 6, 30], [2028, 12, 30], 10, 0.06, 0.005, 2], [127.130829, 127.081649]], ['regression fractional period exponent 2', [[2007, 6, 15], [2007, 5, 7], [2008, 5, 7], 11, 0.075, 0.005, 1], [174.832079, 174.032898]], ['partial repair probe 1', [[2024, 4, 15], [2024, 1, 15], [2024, 7, 15], 1, 0.04, 0.04, 2], [100.995049, 99.995049]], ['normal control 1', [[2036, 2, 11], [2035, 2, 28], [2036, 2, 28], 2, 0.045, 0.11, 1], [98.165837, 93.875426]], ['normal control 2', [[2021, 11, 6], [2021, 8, 31], [2021, 11, 30], 7, 0.015, 0.05, 4], [95.035369, 94.75927]], ['normal control 3', [[2037, 6, 23], [2037, 3, 1], [2037, 9, 1], 5, 0.015, 0.11, 2], [82.404841, 81.940167]], ['normal control 4', [[2024, 1, 27], [2023, 12, 31], [2024, 3, 31], 4, 0.03, 0.035, 4], [99.768303, 99.545776]], ['normal control 5', [[2029, 10, 23], [2029, 4, 30], [2029, 10, 30], 29, 0.06, 0.08, 2], [86.207507, 83.322261]]]]\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":"228fd9c2f7f978b131985a5dc414d4d93bfdfe54f3a4e518bfd8b5bd9f2fe9b5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime\nN = 1\nobservations = []\ndef solve(settle, prev, nxt, n, rate, y, freq):\n    S = datetime.date(*settle)\n    P = datetime.date(*prev)\n    Q = datetime.date(*nxt)\n    w = (S - P).days / (Q - P).days\n    c = 100 * rate / freq\n    v = 1 / (1 + y / freq)\n    dirty = sum(c * v ** (k + w) for k in range(n)) + 100 * v ** (n - 1 + w)\n    accrued = c * (1 - w)\n    return [round(dirty, 6), round(dirty - accrued, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression fractional period exponent 1', [[2022, 1, 5], [2021, 10, 28], [2022, 1, 28], 8, 0.045, 0.005, 4], [108.056379, 107.212629]], ['regression fractional period exponent 2', [[2036, 10, 9], [2036, 5, 29], [2036, 11, 29], 9, 0.075, 0.035, 2], [117.991368, 115.28077]], ['partial repair probe 1', [[2024, 4, 15], [2024, 1, 15], [2024, 7, 15], 1, 0.04, 0.04, 2], [100.995049, 99.995049]], ['normal control 1', [[2006, 10, 30], [2006, 10, 23], [2007, 4, 23], 2, 0.075, 0.005, 2], [106.984111, 106.83988]], ['normal control 2', [[2009, 5, 28], [2009, 3, 31], [2009, 9, 30], 15, 0.015, 0.08, 2], [64.664079, 64.426374]], ['normal control 3', [[2007, 9, 17], [2007, 7, 30], [2008, 1, 30], 6, 0.045, 0.08, 2], [91.77988, 91.180695]], ['normal control 4', [[2036, 12, 24], [2036, 9, 30], [2037, 9, 30], 20, 0.045, 0.11, 1], [49.425067, 48.377122]], ['normal control 5', [[2037, 5, 8], [2037, 3, 30], [2037, 9, 30], 29, 0.075, 0.08, 2], [96.553401, 95.758564]]], [['regression fractional period exponent 1', [[2020, 2, 15], [2019, 10, 28], [2020, 4, 28], 4, 0.075, 0.08, 2], [101.456417, 99.202318]], ['regression fractional period exponent 2', [[2018, 9, 11], [2018, 7, 14], [2019, 1, 14], 8, 0.0, 0.02, 2], [92.643439, 92.643439]], ['partial repair probe 1', [[2024, 4, 15], [2024, 1, 15], [2024, 7, 15], 1, 0.04, 0.04, 2], [100.995049, 99.995049]], ['partial repair probe 2', [[2032, 4, 14], [2032, 2, 29], [2032, 5, 29], 22, 0.0, 0.02, 4], [89.831711, 89.831711]], ['normal control 1', [[2009, 12, 6], [2009, 11, 8], [2010, 5, 8], 16, 0.06, 0.05, 2], [106.935199, 106.47111]], ['normal control 2', [[2029, 7, 8], [2029, 7, 3], [2030, 1, 3], 23, 0.045, 0.05, 2], [95.731186, 95.670045]], ['normal control 3', [[2028, 5, 20], [2028, 3, 29], [2028, 6, 29], 21, 0.015, 0.05, 4], [84.517874, 84.305918]], ['normal control 4', [[2037, 4, 15], [2036, 10, 25], [2037, 4, 25], 22, 0.03, 0.11, 2], [52.245103, 50.82752]]], [['regression fractional period exponent 1', [[2010, 2, 11], [2009, 12, 29], [2010, 3, 29], 3, 0.03, 0.05, 4], [99.13699, 98.770324]], ['regression fractional period exponent 2', [[2010, 12, 7], [2010, 7, 10], [2011, 1, 10], 25, 0.045, 0.08, 2], [75.022131, 73.187892]], ['partial repair probe 1', [[2015, 12, 8], [2015, 9, 8], [2016, 3, 8], 4, 0.045, 0.02, 2], [105.40054, 104.27554]], ['partial repair probe 2', [[2024, 4, 15], [2024, 1, 15], [2024, 7, 15], 1, 0.04, 0.04, 2], [100.995049, 99.995049]], ['normal control 1', [[2016, 3, 8], [2016, 3, 8], [2016, 9, 8], 13, 0.0, 0.005, 2], [96.806171, 96.806171]], ['normal control 2', [[2040, 3, 2], [2039, 11, 30], [2040, 5, 30], 1, 0.075, 0.11, 2], [101.068867, 99.152658]], ['normal control 3', [[2028, 1, 30], [2028, 1, 12], [2028, 7, 12], 8, 0.015, 0.02, 2], [98.183655, 98.10948]], ['normal control 4', [[2021, 4, 14], [2021, 1, 31], [2021, 7, 31], 27, 0.075, 0.05, 2], [125.57439, 124.061959]]], [['regression fractional period exponent 1', [[2019, 3, 7], [2018, 7, 17], [2019, 7, 17], 18, 0.0, 0.035, 1], [55.031452, 55.031452]], ['regression fractional period exponent 2', [[2006, 6, 2], [2006, 5, 1], [2006, 11, 1], 6, 0.06, 0.02, 2], [111.784227, 111.262488]], ['partial repair probe 1', [[2024, 4, 15], [2024, 1, 15], [2024, 7, 15], 1, 0.04, 0.04, 2], [100.995049, 99.995049]], ['normal control 1', [[2011, 3, 2], [2011, 2, 24], [2011, 8, 24], 2, 0.075, 0.02, 2], [105.453364, 105.329055]], ['normal control 2', [[2023, 1, 29], [2022, 12, 31], [2023, 6, 30], 11, 0.06, 0.02, 2], [120.927892, 120.447229]], ['normal control 3', [[2030, 6, 19], [2030, 5, 29], [2031, 5, 29], 1, 0.0, 0.02, 1], [98.150978, 98.150978]], ['normal control 4', [[2023, 6, 17], [2023, 5, 30], [2023, 8, 30], 22, 0.015, 0.05, 4], [83.463368, 83.389999]], ['normal control 5', [[2009, 2, 16], [2009, 2, 16], [2009, 8, 16], 24, 0.06, 0.005, 2], [163.981444, 163.981444]]], [['regression fractional period exponent 1', [[2028, 7, 3], [2028, 6, 30], [2028, 12, 30], 10, 0.06, 0.005, 2], [127.130829, 127.081649]], ['regression fractional period exponent 2', [[2007, 6, 15], [2007, 5, 7], [2008, 5, 7], 11, 0.075, 0.005, 1], [174.832079, 174.032898]], ['partial repair probe 1', [[2024, 4, 15], [2024, 1, 15], [2024, 7, 15], 1, 0.04, 0.04, 2], [100.995049, 99.995049]], ['normal control 1', [[2036, 2, 11], [2035, 2, 28], [2036, 2, 28], 2, 0.045, 0.11, 1], [98.165837, 93.875426]], ['normal control 2', [[2021, 11, 6], [2021, 8, 31], [2021, 11, 30], 7, 0.015, 0.05, 4], [95.035369, 94.75927]], ['normal control 3', [[2037, 6, 23], [2037, 3, 1], [2037, 9, 1], 5, 0.015, 0.11, 2], [82.404841, 81.940167]], ['normal control 4', [[2024, 1, 27], [2023, 12, 31], [2024, 3, 31], 4, 0.03, 0.035, 4], [99.768303, 99.545776]], ['normal control 5', [[2029, 10, 23], [2029, 4, 30], [2029, 10, 30], 29, 0.06, 0.08, 2], [86.207507, 83.322261]]]]\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 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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-bond_day_count_conventions-street-yield-to-price-fractional-period-exponent","generated_at":"2026-09-29T14:46:51.730124+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Bond accrual and pricing systems depend on exact day-count arithmetic; a single-day error changes settlement cash.","root_cause":"w is computed from prev to settle instead of settle to next.","sha256":"03e1653821b125ff8ae5fb5ce2e8feef3b49a9536469bb91d860f2af3c83ed7a","title":"Street-convention yield to price with fractional first period: the discount fraction measures elapsed instead of remaining days · 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":44.781,"exit_code":1,"observations":[{"actual":[108.056102,107.214663],"check":"regression fractional period exponent 1","expected":[108.056379,107.212629],"passed":false},{"actual":[117.986704,115.284649],"check":"regression fractional period exponent 2","expected":[117.991368,115.28077],"passed":false},{"actual":[100.997789,99.995049],"check":"partial repair probe 1","expected":[100.995049,99.995049],"passed":false},{"actual":[106.984815,106.830705],"check":"normal control 1","expected":[106.984111,106.83988],"passed":false},{"actual":[64.659333,64.423032],"check":"normal control 2","expected":[64.664079,64.426374],"passed":false},{"actual":[91.758175,91.172559],"check":"normal control 3","expected":[91.77988,91.180695],"passed":false},{"actual":[49.425067,48.377122],"check":"normal control 4","expected":[49.425067,48.377122],"passed":true},{"actual":[96.528876,95.758328],"check":"normal control 5","expected":[96.553401,95.758564],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression fractional period exponent 1\", \"actual\": [108.056102, 107.214663], \"expected\": [108.056379, 107.212629], \"passed\": false}, {\"check\": \"regression fractional period exponent 2\", \"actual\": [117.986704, 115.284649], \"expected\": [117.991368, 115.28077], \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": [100.997789, 99.995049], \"expected\": [100.995049, 99.995049], \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": [106.984815, 106.830705], \"expected\": [106.984111, 106.83988], \"passed\": false}, {\"check\": \"normal control 2\", \"actual\": [64.659333, 64.423032], \"expected\": [64.664079, 64.426374], \"passed\": false}, {\"check\": \"normal control 3\", \"actual\": [91.758175, 91.172559], \"expected\": [91.77988, 91.180695], \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": [49.425067, 48.377122], \"expected\": [49.425067, 48.377122], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [96.528876, 95.758328], \"expected\": [96.553401, 95.758564], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.026,"exit_code":1,"observations":[{"actual":[107.988907,107.707657],"check":"regression fractional period exponent 1","expected":[108.056379,107.212629],"passed":false},{"actual":[117.08264,116.043237],"check":"regression fractional period exponent 2","expected":[117.991368,115.28077],"passed":false},{"actual":[100.995049,99.995049],"check":"partial repair probe 1","expected":[100.995049,99.995049],"passed":true},{"actual":[107.230974,103.625204],"check":"normal control 1","expected":[106.984111,106.83988],"passed":false},{"actual":[65.599322,65.087027],"check":"normal control 2","expected":[64.664079,64.426374],"passed":false},{"actual":[93.477851,91.827036],"check":"normal control 3","expected":[91.77988,91.180695],"passed":false},{"actual":[52.258978,48.806923],"check":"normal control 4","expected":[49.425067,48.377122],"passed":false},{"actual":[98.759813,95.80465],"check":"normal control 5","expected":[96.553401,95.758564],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression fractional period exponent 1\", \"actual\": [107.988907, 107.707657], \"expected\": [108.056379, 107.212629], \"passed\": false}, {\"check\": \"regression fractional period exponent 2\", \"actual\": [117.08264, 116.043237], \"expected\": [117.991368, 115.28077], \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": [100.995049, 99.995049], \"expected\": [100.995049, 99.995049], \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": [107.230974, 103.625204], \"expected\": [106.984111, 106.83988], \"passed\": false}, {\"check\": \"normal control 2\", \"actual\": [65.599322, 65.087027], \"expected\": [64.664079, 64.426374], \"passed\": false}, {\"check\": \"normal control 3\", \"actual\": [93.477851, 91.827036], \"expected\": [91.77988, 91.180695], \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": [52.258978, 48.806923], \"expected\": [49.425067, 48.377122], \"passed\": false}, {\"check\": \"normal control 5\", \"actual\": [98.759813, 95.80465], \"expected\": [96.553401, 95.758564], \"passed\": false}], \"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."}}