{"abstract":"Semi-annual and quarterly bonds are discounted at the full annual yield per period.","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.","evaluation_group":"w2-bond_day_count_conventions-street-yield-to-price","failed_approach":"Converting y as an effective annual rate is a different yield convention.","family":"w2-bond_day_count_conventions-street-yield-to-price-periodic-yield","id":"FA-61096","implementations":{"attempt":{"sha256":"4b9d2a5b6ed0575583585e102646dd6cfc3f45c97a16e5abbb1c1bd450f2f2b5","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 / (Q - P).days\n    c = 100 * rate / freq\n    v = (1 + y) ** (-1 / 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 periodic yield 1', [[2029, 8, 25], [2029, 7, 4], [2030, 1, 4], 4, 0.06, 0.05, 2], [102.594434, 101.746608]], ['regression periodic yield 2', [[2035, 11, 15], [2035, 9, 12], [2035, 12, 12], 19, 0.015, 0.11, 4], [66.471976, 66.20824]], ['partial repair probe 1', [[2034, 6, 20], [2034, 4, 30], [2034, 7, 30], 25, 0.06, 0.11, 4], [78.80367, 77.96301]], ['partial repair probe 2', [[2025, 11, 9], [2025, 11, 9], [2026, 5, 9], 8, 0.03, 0.11, 2], [74.661736, 74.661736]], ['normal control 1', [[2020, 8, 26], [2019, 9, 19], [2020, 9, 19], 3, 0.03, 0.08, 1], [93.610067, 90.806789]], ['normal control 2', [[2017, 9, 27], [2017, 4, 24], [2018, 4, 24], 19, 0.075, 0.08, 1], [98.381618, 95.176138]], ['normal control 3', [[2041, 3, 19], [2040, 9, 20], [2041, 9, 20], 10, 0.045, 0.11, 1], [64.979583, 62.760405]], ['normal control 4', [[2035, 11, 19], [2035, 11, 19], [2036, 11, 19], 8, 0.0, 0.08, 1], [54.026888, 54.026888]]], [['regression periodic yield 1', [[2018, 2, 28], [2018, 2, 28], [2018, 8, 28], 11, 0.06, 0.005, 2], [129.801123, 129.801123]], ['regression periodic yield 2', [[2011, 1, 15], [2011, 1, 4], [2011, 7, 4], 2, 0.075, 0.02, 2], [105.482354, 105.254453]], ['partial repair probe 1', [[2014, 9, 17], [2014, 9, 16], [2015, 3, 16], 5, 0.015, 0.11, 2], [79.739733, 79.735589]], ['partial repair probe 2', [[2017, 4, 20], [2017, 3, 30], [2017, 6, 30], 27, 0.03, 0.005, 4], [116.616471, 116.445275]], ['normal control 1', [[2013, 8, 29], [2013, 5, 7], [2014, 5, 7], 16, 0.0, 0.02, 1], [73.296516, 73.296516]], ['normal control 2', [[2009, 9, 17], [2009, 5, 28], [2010, 5, 28], 22, 0.06, 0.11, 1], [61.045174, 59.204078]], ['normal control 3', [[2010, 12, 25], [2010, 8, 29], [2011, 8, 29], 13, 0.0, 0.035, 1], [64.655501, 64.655501]], ['normal control 4', [[2024, 5, 14], [2023, 7, 29], [2024, 7, 29], 4, 0.06, 0.005, 1], [122.209731, 117.455633]]], [['regression periodic yield 1', [[2008, 1, 2], [2007, 7, 28], [2008, 1, 28], 1, 0.06, 0.035, 2], [102.747811, 100.171724]], ['regression periodic yield 2', [[2031, 8, 13], [2031, 5, 31], [2031, 8, 31], 17, 0.0, 0.035, 4], [86.840632, 86.840632]], ['partial repair probe 1', [[2019, 11, 13], [2019, 10, 26], [2020, 1, 26], 16, 0.0, 0.035, 4], [87.137179, 87.137179]], ['partial repair probe 2', [[2013, 9, 4], [2013, 7, 27], [2013, 10, 27], 23, 0.045, 0.02, 4], [113.787626, 113.310723]], ['normal control 1', [[2023, 5, 14], [2022, 10, 19], [2023, 10, 19], 15, 0.03, 0.08, 1], [59.754581, 58.053212]], ['normal control 2', [[2012, 2, 11], [2011, 12, 12], [2012, 12, 12], 11, 0.06, 0.08, 1], [86.828697, 85.828697]], ['normal control 3', [[2021, 3, 4], [2021, 3, 2], [2022, 3, 2], 4, 0.06, 0.11, 1], [84.536098, 84.503222]], ['normal control 4', [[2018, 3, 6], [2017, 6, 22], [2018, 6, 22], 30, 0.03, 0.11, 1], [32.771384, 30.659055]]], [['regression periodic yield 1', [[2020, 10, 13], [2020, 5, 31], [2020, 11, 30], 17, 0.0, 0.035, 2], [75.417663, 75.417663]], ['regression periodic yield 2', [[2019, 11, 12], [2019, 8, 7], [2020, 2, 7], 11, 0.075, 0.08, 2], [99.853263, 97.876361]], ['partial repair probe 1', [[2005, 3, 9], [2005, 2, 28], [2005, 8, 28], 16, 0.015, 0.02, 2], [96.3682, 96.330907]], ['partial repair probe 2', [[2020, 4, 12], [2020, 2, 29], [2020, 8, 29], 21, 0.015, 0.11, 2], [42.223341, 42.046143]], ['normal control 1', [[2023, 11, 13], [2023, 2, 28], [2024, 2, 28], 12, 0.03, 0.11, 1], [51.740507, 49.619959]], ['normal control 2', [[2009, 9, 15], [2008, 11, 28], [2009, 11, 28], 17, 0.015, 0.005, 1], [116.721839, 115.525949]], ['normal control 3', [[2008, 12, 26], [2008, 2, 27], [2009, 2, 27], 13, 0.075, 0.035, 1], [145.290439, 139.081423]], ['normal control 4', [[2017, 5, 16], [2016, 6, 30], [2017, 6, 30], 24, 0.03, 0.11, 1], [36.397224, 33.767087]]], [['regression periodic yield 1', [[2012, 2, 7], [2011, 9, 30], [2012, 3, 30], 3, 0.015, 0.05, 2], [96.692428, 96.156713]], ['regression periodic yield 2', [[2027, 7, 29], [2027, 7, 29], [2028, 1, 29], 2, 0.045, 0.08, 2], [96.699334, 96.699334]], ['partial repair probe 1', [[2025, 2, 27], [2024, 10, 28], [2025, 4, 28], 28, 0.03, 0.11, 2], [45.104404, 44.098909]], ['partial repair probe 2', [[2016, 2, 25], [2015, 12, 15], [2016, 6, 15], 29, 0.06, 0.005, 2], [177.008917, 175.828589]], ['normal control 1', [[2016, 6, 6], [2016, 5, 1], [2017, 5, 1], 5, 0.015, 0.11, 1], [65.560333, 65.412387]], ['normal control 2', [[2010, 2, 23], [2009, 10, 19], [2010, 10, 19], 8, 0.03, 0.11, 1], [61.006523, 59.962688]], ['normal control 3', [[2011, 9, 5], [2011, 4, 7], [2012, 4, 7], 24, 0.03, 0.005, 1], [156.729336, 155.491631]], ['normal control 4', [[2035, 9, 3], [2034, 9, 30], [2035, 9, 30], 30, 0.015, 0.02, 1], [90.445222, 89.056181]]]]\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":"a69e960a6e659f882b87934e599fdc0ccd9900cdaa147012f848abf5e28a7a0d","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 / (Q - P).days\n    c = 100 * rate / freq\n    v = 1 / (1 + y)\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 periodic yield 1', [[2029, 8, 25], [2029, 7, 4], [2030, 1, 4], 4, 0.06, 0.05, 2], [102.594434, 101.746608]], ['regression periodic yield 2', [[2035, 11, 15], [2035, 9, 12], [2035, 12, 12], 19, 0.015, 0.11, 4], [66.471976, 66.20824]], ['partial repair probe 1', [[2034, 6, 20], [2034, 4, 30], [2034, 7, 30], 25, 0.06, 0.11, 4], [78.80367, 77.96301]], ['partial repair probe 2', [[2025, 11, 9], [2025, 11, 9], [2026, 5, 9], 8, 0.03, 0.11, 2], [74.661736, 74.661736]], ['normal control 1', [[2020, 8, 26], [2019, 9, 19], [2020, 9, 19], 3, 0.03, 0.08, 1], [93.610067, 90.806789]], ['normal control 2', [[2017, 9, 27], [2017, 4, 24], [2018, 4, 24], 19, 0.075, 0.08, 1], [98.381618, 95.176138]], ['normal control 3', [[2041, 3, 19], [2040, 9, 20], [2041, 9, 20], 10, 0.045, 0.11, 1], [64.979583, 62.760405]], ['normal control 4', [[2035, 11, 19], [2035, 11, 19], [2036, 11, 19], 8, 0.0, 0.08, 1], [54.026888, 54.026888]]], [['regression periodic yield 1', [[2018, 2, 28], [2018, 2, 28], [2018, 8, 28], 11, 0.06, 0.005, 2], [129.801123, 129.801123]], ['regression periodic yield 2', [[2011, 1, 15], [2011, 1, 4], [2011, 7, 4], 2, 0.075, 0.02, 2], [105.482354, 105.254453]], ['partial repair probe 1', [[2014, 9, 17], [2014, 9, 16], [2015, 3, 16], 5, 0.015, 0.11, 2], [79.739733, 79.735589]], ['partial repair probe 2', [[2017, 4, 20], [2017, 3, 30], [2017, 6, 30], 27, 0.03, 0.005, 4], [116.616471, 116.445275]], ['normal control 1', [[2013, 8, 29], [2013, 5, 7], [2014, 5, 7], 16, 0.0, 0.02, 1], [73.296516, 73.296516]], ['normal control 2', [[2009, 9, 17], [2009, 5, 28], [2010, 5, 28], 22, 0.06, 0.11, 1], [61.045174, 59.204078]], ['normal control 3', [[2010, 12, 25], [2010, 8, 29], [2011, 8, 29], 13, 0.0, 0.035, 1], [64.655501, 64.655501]], ['normal control 4', [[2024, 5, 14], [2023, 7, 29], [2024, 7, 29], 4, 0.06, 0.005, 1], [122.209731, 117.455633]]], [['regression periodic yield 1', [[2008, 1, 2], [2007, 7, 28], [2008, 1, 28], 1, 0.06, 0.035, 2], [102.747811, 100.171724]], ['regression periodic yield 2', [[2031, 8, 13], [2031, 5, 31], [2031, 8, 31], 17, 0.0, 0.035, 4], [86.840632, 86.840632]], ['partial repair probe 1', [[2019, 11, 13], [2019, 10, 26], [2020, 1, 26], 16, 0.0, 0.035, 4], [87.137179, 87.137179]], ['partial repair probe 2', [[2013, 9, 4], [2013, 7, 27], [2013, 10, 27], 23, 0.045, 0.02, 4], [113.787626, 113.310723]], ['normal control 1', [[2023, 5, 14], [2022, 10, 19], [2023, 10, 19], 15, 0.03, 0.08, 1], [59.754581, 58.053212]], ['normal control 2', [[2012, 2, 11], [2011, 12, 12], [2012, 12, 12], 11, 0.06, 0.08, 1], [86.828697, 85.828697]], ['normal control 3', [[2021, 3, 4], [2021, 3, 2], [2022, 3, 2], 4, 0.06, 0.11, 1], [84.536098, 84.503222]], ['normal control 4', [[2018, 3, 6], [2017, 6, 22], [2018, 6, 22], 30, 0.03, 0.11, 1], [32.771384, 30.659055]]], [['regression periodic yield 1', [[2020, 10, 13], [2020, 5, 31], [2020, 11, 30], 17, 0.0, 0.035, 2], [75.417663, 75.417663]], ['regression periodic yield 2', [[2019, 11, 12], [2019, 8, 7], [2020, 2, 7], 11, 0.075, 0.08, 2], [99.853263, 97.876361]], ['partial repair probe 1', [[2005, 3, 9], [2005, 2, 28], [2005, 8, 28], 16, 0.015, 0.02, 2], [96.3682, 96.330907]], ['partial repair probe 2', [[2020, 4, 12], [2020, 2, 29], [2020, 8, 29], 21, 0.015, 0.11, 2], [42.223341, 42.046143]], ['normal control 1', [[2023, 11, 13], [2023, 2, 28], [2024, 2, 28], 12, 0.03, 0.11, 1], [51.740507, 49.619959]], ['normal control 2', [[2009, 9, 15], [2008, 11, 28], [2009, 11, 28], 17, 0.015, 0.005, 1], [116.721839, 115.525949]], ['normal control 3', [[2008, 12, 26], [2008, 2, 27], [2009, 2, 27], 13, 0.075, 0.035, 1], [145.290439, 139.081423]], ['normal control 4', [[2017, 5, 16], [2016, 6, 30], [2017, 6, 30], 24, 0.03, 0.11, 1], [36.397224, 33.767087]]], [['regression periodic yield 1', [[2012, 2, 7], [2011, 9, 30], [2012, 3, 30], 3, 0.015, 0.05, 2], [96.692428, 96.156713]], ['regression periodic yield 2', [[2027, 7, 29], [2027, 7, 29], [2028, 1, 29], 2, 0.045, 0.08, 2], [96.699334, 96.699334]], ['partial repair probe 1', [[2025, 2, 27], [2024, 10, 28], [2025, 4, 28], 28, 0.03, 0.11, 2], [45.104404, 44.098909]], ['partial repair probe 2', [[2016, 2, 25], [2015, 12, 15], [2016, 6, 15], 29, 0.06, 0.005, 2], [177.008917, 175.828589]], ['normal control 1', [[2016, 6, 6], [2016, 5, 1], [2017, 5, 1], 5, 0.015, 0.11, 1], [65.560333, 65.412387]], ['normal control 2', [[2010, 2, 23], [2009, 10, 19], [2010, 10, 19], 8, 0.03, 0.11, 1], [61.006523, 59.962688]], ['normal control 3', [[2011, 9, 5], [2011, 4, 7], [2012, 4, 7], 24, 0.03, 0.005, 1], [156.729336, 155.491631]], ['normal control 4', [[2035, 9, 3], [2034, 9, 30], [2035, 9, 30], 30, 0.015, 0.02, 1], [90.445222, 89.056181]]]]\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"},"fixed":{"sha256":"6ee69e6a3936819e211627431db0a75a916b544fc62d53f7ce06be2ce3fafd1c","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 / (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 periodic yield 1', [[2029, 8, 25], [2029, 7, 4], [2030, 1, 4], 4, 0.06, 0.05, 2], [102.594434, 101.746608]], ['regression periodic yield 2', [[2035, 11, 15], [2035, 9, 12], [2035, 12, 12], 19, 0.015, 0.11, 4], [66.471976, 66.20824]], ['partial repair probe 1', [[2034, 6, 20], [2034, 4, 30], [2034, 7, 30], 25, 0.06, 0.11, 4], [78.80367, 77.96301]], ['partial repair probe 2', [[2025, 11, 9], [2025, 11, 9], [2026, 5, 9], 8, 0.03, 0.11, 2], [74.661736, 74.661736]], ['normal control 1', [[2020, 8, 26], [2019, 9, 19], [2020, 9, 19], 3, 0.03, 0.08, 1], [93.610067, 90.806789]], ['normal control 2', [[2017, 9, 27], [2017, 4, 24], [2018, 4, 24], 19, 0.075, 0.08, 1], [98.381618, 95.176138]], ['normal control 3', [[2041, 3, 19], [2040, 9, 20], [2041, 9, 20], 10, 0.045, 0.11, 1], [64.979583, 62.760405]], ['normal control 4', [[2035, 11, 19], [2035, 11, 19], [2036, 11, 19], 8, 0.0, 0.08, 1], [54.026888, 54.026888]]], [['regression periodic yield 1', [[2018, 2, 28], [2018, 2, 28], [2018, 8, 28], 11, 0.06, 0.005, 2], [129.801123, 129.801123]], ['regression periodic yield 2', [[2011, 1, 15], [2011, 1, 4], [2011, 7, 4], 2, 0.075, 0.02, 2], [105.482354, 105.254453]], ['partial repair probe 1', [[2014, 9, 17], [2014, 9, 16], [2015, 3, 16], 5, 0.015, 0.11, 2], [79.739733, 79.735589]], ['partial repair probe 2', [[2017, 4, 20], [2017, 3, 30], [2017, 6, 30], 27, 0.03, 0.005, 4], [116.616471, 116.445275]], ['normal control 1', [[2013, 8, 29], [2013, 5, 7], [2014, 5, 7], 16, 0.0, 0.02, 1], [73.296516, 73.296516]], ['normal control 2', [[2009, 9, 17], [2009, 5, 28], [2010, 5, 28], 22, 0.06, 0.11, 1], [61.045174, 59.204078]], ['normal control 3', [[2010, 12, 25], [2010, 8, 29], [2011, 8, 29], 13, 0.0, 0.035, 1], [64.655501, 64.655501]], ['normal control 4', [[2024, 5, 14], [2023, 7, 29], [2024, 7, 29], 4, 0.06, 0.005, 1], [122.209731, 117.455633]]], [['regression periodic yield 1', [[2008, 1, 2], [2007, 7, 28], [2008, 1, 28], 1, 0.06, 0.035, 2], [102.747811, 100.171724]], ['regression periodic yield 2', [[2031, 8, 13], [2031, 5, 31], [2031, 8, 31], 17, 0.0, 0.035, 4], [86.840632, 86.840632]], ['partial repair probe 1', [[2019, 11, 13], [2019, 10, 26], [2020, 1, 26], 16, 0.0, 0.035, 4], [87.137179, 87.137179]], ['partial repair probe 2', [[2013, 9, 4], [2013, 7, 27], [2013, 10, 27], 23, 0.045, 0.02, 4], [113.787626, 113.310723]], ['normal control 1', [[2023, 5, 14], [2022, 10, 19], [2023, 10, 19], 15, 0.03, 0.08, 1], [59.754581, 58.053212]], ['normal control 2', [[2012, 2, 11], [2011, 12, 12], [2012, 12, 12], 11, 0.06, 0.08, 1], [86.828697, 85.828697]], ['normal control 3', [[2021, 3, 4], [2021, 3, 2], [2022, 3, 2], 4, 0.06, 0.11, 1], [84.536098, 84.503222]], ['normal control 4', [[2018, 3, 6], [2017, 6, 22], [2018, 6, 22], 30, 0.03, 0.11, 1], [32.771384, 30.659055]]], [['regression periodic yield 1', [[2020, 10, 13], [2020, 5, 31], [2020, 11, 30], 17, 0.0, 0.035, 2], [75.417663, 75.417663]], ['regression periodic yield 2', [[2019, 11, 12], [2019, 8, 7], [2020, 2, 7], 11, 0.075, 0.08, 2], [99.853263, 97.876361]], ['partial repair probe 1', [[2005, 3, 9], [2005, 2, 28], [2005, 8, 28], 16, 0.015, 0.02, 2], [96.3682, 96.330907]], ['partial repair probe 2', [[2020, 4, 12], [2020, 2, 29], [2020, 8, 29], 21, 0.015, 0.11, 2], [42.223341, 42.046143]], ['normal control 1', [[2023, 11, 13], [2023, 2, 28], [2024, 2, 28], 12, 0.03, 0.11, 1], [51.740507, 49.619959]], ['normal control 2', [[2009, 9, 15], [2008, 11, 28], [2009, 11, 28], 17, 0.015, 0.005, 1], [116.721839, 115.525949]], ['normal control 3', [[2008, 12, 26], [2008, 2, 27], [2009, 2, 27], 13, 0.075, 0.035, 1], [145.290439, 139.081423]], ['normal control 4', [[2017, 5, 16], [2016, 6, 30], [2017, 6, 30], 24, 0.03, 0.11, 1], [36.397224, 33.767087]]], [['regression periodic yield 1', [[2012, 2, 7], [2011, 9, 30], [2012, 3, 30], 3, 0.015, 0.05, 2], [96.692428, 96.156713]], ['regression periodic yield 2', [[2027, 7, 29], [2027, 7, 29], [2028, 1, 29], 2, 0.045, 0.08, 2], [96.699334, 96.699334]], ['partial repair probe 1', [[2025, 2, 27], [2024, 10, 28], [2025, 4, 28], 28, 0.03, 0.11, 2], [45.104404, 44.098909]], ['partial repair probe 2', [[2016, 2, 25], [2015, 12, 15], [2016, 6, 15], 29, 0.06, 0.005, 2], [177.008917, 175.828589]], ['normal control 1', [[2016, 6, 6], [2016, 5, 1], [2017, 5, 1], 5, 0.015, 0.11, 1], [65.560333, 65.412387]], ['normal control 2', [[2010, 2, 23], [2009, 10, 19], [2010, 10, 19], 8, 0.03, 0.11, 1], [61.006523, 59.962688]], ['normal control 3', [[2011, 9, 5], [2011, 4, 7], [2012, 4, 7], 24, 0.03, 0.005, 1], [156.729336, 155.491631]], ['normal control 4', [[2035, 9, 3], [2034, 9, 30], [2035, 9, 30], 30, 0.015, 0.02, 1], [90.445222, 89.056181]]]]\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-periodic-yield","generated_at":"2026-09-29T14:46:52.067910+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.","repair":"Use v = 1/(1 + y/freq).","root_cause":"The discount factor ignores the payment frequency.","sha256":"6d2d546a252e4d8a56534dd8fb7a7ba08096742a4e1abac65cb68e3a92511350","title":"Street-convention yield to price with fractional first period: the annual yield is used as the per-period discount rate · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.708,"exit_code":1,"observations":[{"actual":[102.70279,101.854964],"check":"regression periodic yield 1","expected":[102.594434,101.746608],"passed":false},{"actual":[67.689547,67.42581],"check":"regression periodic yield 2","expected":[66.471976,66.20824],"passed":false},{"actual":[80.443758,79.603099],"check":"partial repair probe 1","expected":[78.80367,77.96301],"passed":false},{"actual":[75.42971,75.42971],"check":"partial repair probe 2","expected":[74.661736,74.661736],"passed":false},{"actual":[93.610067,90.806789],"check":"normal control 1","expected":[93.610067,90.806789],"passed":true},{"actual":[98.381618,95.176138],"check":"normal control 2","expected":[98.381618,95.176138],"passed":true},{"actual":[64.979583,62.760405],"check":"normal control 3","expected":[64.979583,62.760405],"passed":true},{"actual":[54.026888,54.026888],"check":"normal control 4","expected":[54.026888,54.026888],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression periodic yield 1\", \"actual\": [102.70279, 101.854964], \"expected\": [102.594434, 101.746608], \"passed\": false}, {\"check\": \"regression periodic yield 2\", \"actual\": [67.689547, 67.42581], \"expected\": [66.471976, 66.20824], \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": [80.443758, 79.603099], \"expected\": [78.80367, 77.96301], \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": [75.42971, 75.42971], \"expected\": [74.661736, 74.661736], \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": [93.610067, 90.806789], \"expected\": [93.610067, 90.806789], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [98.381618, 95.176138], \"expected\": [98.381618, 95.176138], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [64.979583, 62.760405], \"expected\": [64.979583, 62.760405], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [54.026888, 54.026888], \"expected\": [54.026888, 54.026888], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.09,"exit_code":1,"observations":[{"actual":[94.198037,93.350211],"check":"regression periodic yield 1","expected":[102.594434,101.746608],"passed":false},{"actual":[17.979886,17.71615],"check":"regression periodic yield 2","expected":[66.471976,66.20824],"passed":false},{"actual":[21.197664,20.357005],"check":"partial repair probe 1","expected":[78.80367,77.96301],"passed":false},{"actual":[51.111834,51.111834],"check":"partial repair probe 2","expected":[74.661736,74.661736],"passed":false},{"actual":[93.610067,90.806789],"check":"normal control 1","expected":[93.610067,90.806789],"passed":true},{"actual":[98.381618,95.176138],"check":"normal control 2","expected":[98.381618,95.176138],"passed":true},{"actual":[64.979583,62.760405],"check":"normal control 3","expected":[64.979583,62.760405],"passed":true},{"actual":[54.026888,54.026888],"check":"normal control 4","expected":[54.026888,54.026888],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression periodic yield 1\", \"actual\": [94.198037, 93.350211], \"expected\": [102.594434, 101.746608], \"passed\": false}, {\"check\": \"regression periodic yield 2\", \"actual\": [17.979886, 17.71615], \"expected\": [66.471976, 66.20824], \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": [21.197664, 20.357005], \"expected\": [78.80367, 77.96301], \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": [51.111834, 51.111834], \"expected\": [74.661736, 74.661736], \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": [93.610067, 90.806789], \"expected\": [93.610067, 90.806789], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [98.381618, 95.176138], \"expected\": [98.381618, 95.176138], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [64.979583, 62.760405], \"expected\": [64.979583, 62.760405], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [54.026888, 54.026888], \"expected\": [54.026888, 54.026888], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":47.895,"exit_code":0,"observations":[{"actual":[102.594434,101.746608],"check":"regression periodic yield 1","expected":[102.594434,101.746608],"passed":true},{"actual":[66.471976,66.20824],"check":"regression periodic yield 2","expected":[66.471976,66.20824],"passed":true},{"actual":[78.80367,77.96301],"check":"partial repair probe 1","expected":[78.80367,77.96301],"passed":true},{"actual":[74.661736,74.661736],"check":"partial repair probe 2","expected":[74.661736,74.661736],"passed":true},{"actual":[93.610067,90.806789],"check":"normal control 1","expected":[93.610067,90.806789],"passed":true},{"actual":[98.381618,95.176138],"check":"normal control 2","expected":[98.381618,95.176138],"passed":true},{"actual":[64.979583,62.760405],"check":"normal control 3","expected":[64.979583,62.760405],"passed":true},{"actual":[54.026888,54.026888],"check":"normal control 4","expected":[54.026888,54.026888],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression periodic yield 1\", \"actual\": [102.594434, 101.746608], \"expected\": [102.594434, 101.746608], \"passed\": true}, {\"check\": \"regression periodic yield 2\", \"actual\": [66.471976, 66.20824], \"expected\": [66.471976, 66.20824], \"passed\": true}, {\"check\": \"partial repair probe 1\", \"actual\": [78.80367, 77.96301], \"expected\": [78.80367, 77.96301], \"passed\": true}, {\"check\": \"partial repair probe 2\", \"actual\": [74.661736, 74.661736], \"expected\": [74.661736, 74.661736], \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": [93.610067, 90.806789], \"expected\": [93.610067, 90.806789], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [98.381618, 95.176138], \"expected\": [98.381618, 95.176138], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [64.979583, 62.760405], \"expected\": [64.979583, 62.760405], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [54.026888, 54.026888], \"expected\": [54.026888, 54.026888], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}