{"abstract":"Trades in the first coupon period are refused.","category":"Bond day-count conventions","checks":8,"contract":"Inputs issue date, ascending coupon schedule (last = maturity) and settlement. Settlement before issue returns \"not issued\"; on or after maturity returns \"matured\". Otherwise return [period start, next coupon] where a settlement on a coupon date belongs to the following period and the first period starts at issue.","evaluation_group":"w2-bond_day_count_conventions-coupon-period-lookup","failed_approach":"Rejecting settlement on the issue date itself blocks primary settlement.","family":"w2-bond_day_count_conventions-coupon-period-lookup-pre-issue-guard","id":"FA-61326","implementations":{"attempt":{"sha256":"b25e6d6b1ca493a167c392d2215d0fe39849618ff332208c218acdbae4a54c58","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime\nimport bisect\nN = 1\nobservations = []\ndef solve(issue, schedule, settle):\n    I = datetime.date(*issue)\n    dates = [datetime.date(*d) for d in schedule]\n    S = datetime.date(*settle)\n    if S <= I:\n        return 'not issued'\n    if S >= dates[-1]:\n        return 'matured'\n    i = bisect.bisect_right(dates, S)\n    prev = dates[i - 1] if i > 0 else I\n    nxt = dates[i]\n    return [[prev.year, prev.month, prev.day], [nxt.year, nxt.month, nxt.day]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression pre-issue guard 1', [[2024, 4, 9], [[2024, 6, 16], [2025, 6, 16]], [2024, 5, 16]], [[2024, 4, 9], [2024, 6, 16]]], ['regression pre-issue guard 2', [[2026, 4, 22], [[2027, 3, 22], [2027, 9, 22]], [2026, 7, 12]], [[2026, 4, 22], [2027, 3, 22]]], ['partial repair probe 1', [[2020, 2, 21], [[2020, 3, 30], [2020, 6, 30], [2020, 9, 30]], [2020, 2, 21]], [[2020, 2, 21], [2020, 3, 30]]], ['partial repair probe 2', [[2019, 4, 25], [[2019, 12, 11], [2020, 3, 11], [2020, 6, 11], [2020, 9, 11], [2020, 12, 11]], [2019, 4, 25]], [[2019, 4, 25], [2019, 12, 11]]], ['normal control 1', [[2023, 5, 23], [[2023, 9, 30], [2024, 3, 30], [2024, 9, 30], [2025, 3, 30]], [2023, 5, 19]], 'not issued'], ['normal control 2', [[2037, 8, 30], [[2037, 11, 30], [2038, 2, 28], [2038, 5, 30], [2038, 8, 30], [2038, 11, 30]], [2038, 7, 31]], [[2038, 5, 30], [2038, 8, 30]]], ['normal control 3', [[2006, 5, 24], [[2006, 7, 31], [2006, 10, 31], [2007, 1, 31]], [2006, 8, 31]], [[2006, 7, 31], [2006, 10, 31]]], ['normal control 4', [[2033, 10, 20], [[2034, 1, 12], [2034, 7, 12], [2035, 1, 12]], [2035, 1, 12]], 'matured']], [['regression pre-issue guard 1', [[2038, 7, 13], [[2039, 6, 30], [2040, 6, 30], [2041, 6, 30], [2042, 6, 30], [2043, 6, 30]], [2038, 8, 30]], [[2038, 7, 13], [2039, 6, 30]]], ['regression pre-issue guard 2', [[2019, 9, 14], [[2020, 9, 29], [2021, 3, 29], [2021, 9, 29], [2022, 3, 29], [2022, 9, 29]], [2020, 3, 16]], [[2019, 9, 14], [2020, 9, 29]]], ['partial repair probe 1', [[2008, 7, 7], [[2008, 9, 15], [2008, 12, 15]], [2008, 7, 7]], [[2008, 7, 7], [2008, 9, 15]]], ['partial repair probe 2', [[2022, 1, 3], [[2022, 7, 31], [2023, 1, 31], [2023, 7, 31], [2024, 1, 31], [2024, 7, 31]], [2022, 1, 3]], [[2022, 1, 3], [2022, 7, 31]]], ['normal control 1', [[2004, 8, 30], [[2005, 5, 30], [2005, 11, 30], [2006, 5, 30]], [2005, 5, 30]], [[2005, 5, 30], [2005, 11, 30]]], ['normal control 2', [[2021, 4, 1], [[2021, 6, 30], [2022, 6, 30]], [2021, 9, 29]], [[2021, 6, 30], [2022, 6, 30]]], ['normal control 3', [[2035, 6, 6], [[2036, 6, 2], [2036, 12, 2]], [2036, 7, 30]], [[2036, 6, 2], [2036, 12, 2]]], ['normal control 4', [[2039, 11, 18], [[2040, 3, 28], [2040, 6, 28], [2040, 9, 28], [2040, 12, 28], [2041, 3, 28]], [2040, 4, 5]], [[2040, 3, 28], [2040, 6, 28]]]], [['regression pre-issue guard 1', [[2014, 12, 10], [[2015, 12, 31], [2016, 6, 30]], [2015, 11, 4]], [[2014, 12, 10], [2015, 12, 31]]], ['regression pre-issue guard 2', [[2016, 2, 8], [[2017, 2, 24], [2017, 5, 24], [2017, 8, 24], [2017, 11, 24], [2018, 2, 24], [2018, 5, 24]], [2016, 8, 10]], [[2016, 2, 8], [2017, 2, 24]]], ['partial repair probe 1', [[2010, 2, 12], [[2011, 1, 28], [2011, 7, 28], [2012, 1, 28], [2012, 7, 28], [2013, 1, 28]], [2010, 2, 12]], [[2010, 2, 12], [2011, 1, 28]]], ['partial repair probe 2', [[2032, 1, 15], [[2032, 12, 27], [2033, 3, 27], [2033, 6, 27], [2033, 9, 27]], [2032, 1, 15]], [[2032, 1, 15], [2032, 12, 27]]], ['normal control 1', [[2026, 12, 12], [[2027, 2, 11], [2027, 5, 11], [2027, 8, 11], [2027, 11, 11], [2028, 2, 11], [2028, 5, 11]], [2027, 2, 11]], [[2027, 2, 11], [2027, 5, 11]]], ['normal control 2', [[2016, 6, 2], [[2017, 1, 28], [2017, 7, 28], [2018, 1, 28], [2018, 7, 28], [2019, 1, 28]], [2016, 5, 28]], 'not issued'], ['normal control 3', [[2020, 6, 5], [[2021, 6, 30], [2021, 9, 30], [2021, 12, 30], [2022, 3, 30], [2022, 6, 30]], [2021, 7, 25]], [[2021, 6, 30], [2021, 9, 30]]], ['normal control 4', [[2034, 11, 1], [[2034, 11, 30], [2035, 5, 30], [2035, 11, 30], [2036, 5, 30]], [2035, 9, 9]], [[2035, 5, 30], [2035, 11, 30]]]], [['regression pre-issue guard 1', [[2019, 5, 4], [[2020, 3, 28], [2021, 3, 28], [2022, 3, 28]], [2019, 9, 1]], [[2019, 5, 4], [2020, 3, 28]]], ['regression pre-issue guard 2', [[2026, 11, 3], [[2027, 7, 31], [2028, 7, 31]], [2027, 3, 28]], [[2026, 11, 3], [2027, 7, 31]]], ['partial repair probe 1', [[2019, 6, 27], [[2019, 12, 31], [2020, 6, 30]], [2019, 6, 27]], [[2019, 6, 27], [2019, 12, 31]]], ['partial repair probe 2', [[2011, 1, 3], [[2011, 1, 13], [2011, 7, 13]], [2011, 1, 3]], [[2011, 1, 3], [2011, 1, 13]]], ['normal control 1', [[2038, 10, 4], [[2039, 1, 25], [2039, 7, 25], [2040, 1, 25]], [2039, 10, 20]], [[2039, 7, 25], [2040, 1, 25]]], ['normal control 2', [[2024, 4, 22], [[2024, 7, 20], [2025, 7, 20], [2026, 7, 20], [2027, 7, 20], [2028, 7, 20]], [2024, 4, 21]], 'not issued'], ['normal control 3', [[2018, 6, 22], [[2019, 7, 26], [2020, 1, 26], [2020, 7, 26], [2021, 1, 26], [2021, 7, 26], [2022, 1, 26]], [2020, 6, 1]], [[2020, 1, 26], [2020, 7, 26]]], ['normal control 4', [[2031, 1, 4], [[2031, 3, 29], [2031, 9, 29], [2032, 3, 29], [2032, 9, 29], [2033, 3, 29]], [2031, 4, 8]], [[2031, 3, 29], [2031, 9, 29]]]], [['regression pre-issue guard 1', [[2012, 11, 11], [[2013, 4, 20], [2013, 7, 20], [2013, 10, 20], [2014, 1, 20]], [2012, 12, 1]], [[2012, 11, 11], [2013, 4, 20]]], ['regression pre-issue guard 2', [[2021, 2, 3], [[2021, 12, 31], [2022, 6, 30], [2022, 12, 31], [2023, 6, 30]], [2021, 5, 9]], [[2021, 2, 3], [2021, 12, 31]]], ['partial repair probe 1', [[2038, 1, 19], [[2038, 11, 29], [2039, 2, 28], [2039, 5, 29]], [2038, 1, 19]], [[2038, 1, 19], [2038, 11, 29]]], ['partial repair probe 2', [[2008, 5, 10], [[2009, 3, 31], [2009, 6, 30]], [2008, 5, 10]], [[2008, 5, 10], [2009, 3, 31]]], ['normal control 1', [[2031, 3, 25], [[2031, 9, 29], [2032, 9, 29], [2033, 9, 29], [2034, 9, 29]], [2031, 3, 23]], 'not issued'], ['normal control 2', [[2009, 6, 7], [[2010, 5, 29], [2010, 8, 29], [2010, 11, 29]], [2010, 11, 29]], 'matured'], ['normal control 3', [[2032, 5, 17], [[2032, 10, 31], [2033, 10, 31], [2034, 10, 31], [2035, 10, 31], [2036, 10, 31]], [2034, 12, 25]], [[2034, 10, 31], [2035, 10, 31]]], ['normal control 4', [[2008, 12, 16], [[2009, 7, 31], [2009, 10, 31], [2010, 1, 31], [2010, 4, 30], [2010, 7, 31], [2010, 10, 31]], [2010, 3, 13]], [[2010, 1, 31], [2010, 4, 30]]]]]\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":"a74eee60bd097e03a6f00dfa734af7ff4baf0f62a805024234e51ec77f23b4b8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime\nimport bisect\nN = 1\nobservations = []\ndef solve(issue, schedule, settle):\n    I = datetime.date(*issue)\n    dates = [datetime.date(*d) for d in schedule]\n    S = datetime.date(*settle)\n    if S < dates[0]:\n        return 'not issued'\n    if S >= dates[-1]:\n        return 'matured'\n    i = bisect.bisect_right(dates, S)\n    prev = dates[i - 1] if i > 0 else I\n    nxt = dates[i]\n    return [[prev.year, prev.month, prev.day], [nxt.year, nxt.month, nxt.day]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression pre-issue guard 1', [[2024, 4, 9], [[2024, 6, 16], [2025, 6, 16]], [2024, 5, 16]], [[2024, 4, 9], [2024, 6, 16]]], ['regression pre-issue guard 2', [[2026, 4, 22], [[2027, 3, 22], [2027, 9, 22]], [2026, 7, 12]], [[2026, 4, 22], [2027, 3, 22]]], ['partial repair probe 1', [[2020, 2, 21], [[2020, 3, 30], [2020, 6, 30], [2020, 9, 30]], [2020, 2, 21]], [[2020, 2, 21], [2020, 3, 30]]], ['partial repair probe 2', [[2019, 4, 25], [[2019, 12, 11], [2020, 3, 11], [2020, 6, 11], [2020, 9, 11], [2020, 12, 11]], [2019, 4, 25]], [[2019, 4, 25], [2019, 12, 11]]], ['normal control 1', [[2023, 5, 23], [[2023, 9, 30], [2024, 3, 30], [2024, 9, 30], [2025, 3, 30]], [2023, 5, 19]], 'not issued'], ['normal control 2', [[2037, 8, 30], [[2037, 11, 30], [2038, 2, 28], [2038, 5, 30], [2038, 8, 30], [2038, 11, 30]], [2038, 7, 31]], [[2038, 5, 30], [2038, 8, 30]]], ['normal control 3', [[2006, 5, 24], [[2006, 7, 31], [2006, 10, 31], [2007, 1, 31]], [2006, 8, 31]], [[2006, 7, 31], [2006, 10, 31]]], ['normal control 4', [[2033, 10, 20], [[2034, 1, 12], [2034, 7, 12], [2035, 1, 12]], [2035, 1, 12]], 'matured']], [['regression pre-issue guard 1', [[2038, 7, 13], [[2039, 6, 30], [2040, 6, 30], [2041, 6, 30], [2042, 6, 30], [2043, 6, 30]], [2038, 8, 30]], [[2038, 7, 13], [2039, 6, 30]]], ['regression pre-issue guard 2', [[2019, 9, 14], [[2020, 9, 29], [2021, 3, 29], [2021, 9, 29], [2022, 3, 29], [2022, 9, 29]], [2020, 3, 16]], [[2019, 9, 14], [2020, 9, 29]]], ['partial repair probe 1', [[2008, 7, 7], [[2008, 9, 15], [2008, 12, 15]], [2008, 7, 7]], [[2008, 7, 7], [2008, 9, 15]]], ['partial repair probe 2', [[2022, 1, 3], [[2022, 7, 31], [2023, 1, 31], [2023, 7, 31], [2024, 1, 31], [2024, 7, 31]], [2022, 1, 3]], [[2022, 1, 3], [2022, 7, 31]]], ['normal control 1', [[2004, 8, 30], [[2005, 5, 30], [2005, 11, 30], [2006, 5, 30]], [2005, 5, 30]], [[2005, 5, 30], [2005, 11, 30]]], ['normal control 2', [[2021, 4, 1], [[2021, 6, 30], [2022, 6, 30]], [2021, 9, 29]], [[2021, 6, 30], [2022, 6, 30]]], ['normal control 3', [[2035, 6, 6], [[2036, 6, 2], [2036, 12, 2]], [2036, 7, 30]], [[2036, 6, 2], [2036, 12, 2]]], ['normal control 4', [[2039, 11, 18], [[2040, 3, 28], [2040, 6, 28], [2040, 9, 28], [2040, 12, 28], [2041, 3, 28]], [2040, 4, 5]], [[2040, 3, 28], [2040, 6, 28]]]], [['regression pre-issue guard 1', [[2014, 12, 10], [[2015, 12, 31], [2016, 6, 30]], [2015, 11, 4]], [[2014, 12, 10], [2015, 12, 31]]], ['regression pre-issue guard 2', [[2016, 2, 8], [[2017, 2, 24], [2017, 5, 24], [2017, 8, 24], [2017, 11, 24], [2018, 2, 24], [2018, 5, 24]], [2016, 8, 10]], [[2016, 2, 8], [2017, 2, 24]]], ['partial repair probe 1', [[2010, 2, 12], [[2011, 1, 28], [2011, 7, 28], [2012, 1, 28], [2012, 7, 28], [2013, 1, 28]], [2010, 2, 12]], [[2010, 2, 12], [2011, 1, 28]]], ['partial repair probe 2', [[2032, 1, 15], [[2032, 12, 27], [2033, 3, 27], [2033, 6, 27], [2033, 9, 27]], [2032, 1, 15]], [[2032, 1, 15], [2032, 12, 27]]], ['normal control 1', [[2026, 12, 12], [[2027, 2, 11], [2027, 5, 11], [2027, 8, 11], [2027, 11, 11], [2028, 2, 11], [2028, 5, 11]], [2027, 2, 11]], [[2027, 2, 11], [2027, 5, 11]]], ['normal control 2', [[2016, 6, 2], [[2017, 1, 28], [2017, 7, 28], [2018, 1, 28], [2018, 7, 28], [2019, 1, 28]], [2016, 5, 28]], 'not issued'], ['normal control 3', [[2020, 6, 5], [[2021, 6, 30], [2021, 9, 30], [2021, 12, 30], [2022, 3, 30], [2022, 6, 30]], [2021, 7, 25]], [[2021, 6, 30], [2021, 9, 30]]], ['normal control 4', [[2034, 11, 1], [[2034, 11, 30], [2035, 5, 30], [2035, 11, 30], [2036, 5, 30]], [2035, 9, 9]], [[2035, 5, 30], [2035, 11, 30]]]], [['regression pre-issue guard 1', [[2019, 5, 4], [[2020, 3, 28], [2021, 3, 28], [2022, 3, 28]], [2019, 9, 1]], [[2019, 5, 4], [2020, 3, 28]]], ['regression pre-issue guard 2', [[2026, 11, 3], [[2027, 7, 31], [2028, 7, 31]], [2027, 3, 28]], [[2026, 11, 3], [2027, 7, 31]]], ['partial repair probe 1', [[2019, 6, 27], [[2019, 12, 31], [2020, 6, 30]], [2019, 6, 27]], [[2019, 6, 27], [2019, 12, 31]]], ['partial repair probe 2', [[2011, 1, 3], [[2011, 1, 13], [2011, 7, 13]], [2011, 1, 3]], [[2011, 1, 3], [2011, 1, 13]]], ['normal control 1', [[2038, 10, 4], [[2039, 1, 25], [2039, 7, 25], [2040, 1, 25]], [2039, 10, 20]], [[2039, 7, 25], [2040, 1, 25]]], ['normal control 2', [[2024, 4, 22], [[2024, 7, 20], [2025, 7, 20], [2026, 7, 20], [2027, 7, 20], [2028, 7, 20]], [2024, 4, 21]], 'not issued'], ['normal control 3', [[2018, 6, 22], [[2019, 7, 26], [2020, 1, 26], [2020, 7, 26], [2021, 1, 26], [2021, 7, 26], [2022, 1, 26]], [2020, 6, 1]], [[2020, 1, 26], [2020, 7, 26]]], ['normal control 4', [[2031, 1, 4], [[2031, 3, 29], [2031, 9, 29], [2032, 3, 29], [2032, 9, 29], [2033, 3, 29]], [2031, 4, 8]], [[2031, 3, 29], [2031, 9, 29]]]], [['regression pre-issue guard 1', [[2012, 11, 11], [[2013, 4, 20], [2013, 7, 20], [2013, 10, 20], [2014, 1, 20]], [2012, 12, 1]], [[2012, 11, 11], [2013, 4, 20]]], ['regression pre-issue guard 2', [[2021, 2, 3], [[2021, 12, 31], [2022, 6, 30], [2022, 12, 31], [2023, 6, 30]], [2021, 5, 9]], [[2021, 2, 3], [2021, 12, 31]]], ['partial repair probe 1', [[2038, 1, 19], [[2038, 11, 29], [2039, 2, 28], [2039, 5, 29]], [2038, 1, 19]], [[2038, 1, 19], [2038, 11, 29]]], ['partial repair probe 2', [[2008, 5, 10], [[2009, 3, 31], [2009, 6, 30]], [2008, 5, 10]], [[2008, 5, 10], [2009, 3, 31]]], ['normal control 1', [[2031, 3, 25], [[2031, 9, 29], [2032, 9, 29], [2033, 9, 29], [2034, 9, 29]], [2031, 3, 23]], 'not issued'], ['normal control 2', [[2009, 6, 7], [[2010, 5, 29], [2010, 8, 29], [2010, 11, 29]], [2010, 11, 29]], 'matured'], ['normal control 3', [[2032, 5, 17], [[2032, 10, 31], [2033, 10, 31], [2034, 10, 31], [2035, 10, 31], [2036, 10, 31]], [2034, 12, 25]], [[2034, 10, 31], [2035, 10, 31]]], ['normal control 4', [[2008, 12, 16], [[2009, 7, 31], [2009, 10, 31], [2010, 1, 31], [2010, 4, 30], [2010, 7, 31], [2010, 10, 31]], [2010, 3, 13]], [[2010, 1, 31], [2010, 4, 30]]]]]\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":"008ea6370cd4b4572f0b3a6d172d4c185a2eefe012e6e8b5ebb1efdcc6979ab2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime\nimport bisect\nN = 1\nobservations = []\ndef solve(issue, schedule, settle):\n    I = datetime.date(*issue)\n    dates = [datetime.date(*d) for d in schedule]\n    S = datetime.date(*settle)\n    if S < I:\n        return 'not issued'\n    if S >= dates[-1]:\n        return 'matured'\n    i = bisect.bisect_right(dates, S)\n    prev = dates[i - 1] if i > 0 else I\n    nxt = dates[i]\n    return [[prev.year, prev.month, prev.day], [nxt.year, nxt.month, nxt.day]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression pre-issue guard 1', [[2024, 4, 9], [[2024, 6, 16], [2025, 6, 16]], [2024, 5, 16]], [[2024, 4, 9], [2024, 6, 16]]], ['regression pre-issue guard 2', [[2026, 4, 22], [[2027, 3, 22], [2027, 9, 22]], [2026, 7, 12]], [[2026, 4, 22], [2027, 3, 22]]], ['partial repair probe 1', [[2020, 2, 21], [[2020, 3, 30], [2020, 6, 30], [2020, 9, 30]], [2020, 2, 21]], [[2020, 2, 21], [2020, 3, 30]]], ['partial repair probe 2', [[2019, 4, 25], [[2019, 12, 11], [2020, 3, 11], [2020, 6, 11], [2020, 9, 11], [2020, 12, 11]], [2019, 4, 25]], [[2019, 4, 25], [2019, 12, 11]]], ['normal control 1', [[2023, 5, 23], [[2023, 9, 30], [2024, 3, 30], [2024, 9, 30], [2025, 3, 30]], [2023, 5, 19]], 'not issued'], ['normal control 2', [[2037, 8, 30], [[2037, 11, 30], [2038, 2, 28], [2038, 5, 30], [2038, 8, 30], [2038, 11, 30]], [2038, 7, 31]], [[2038, 5, 30], [2038, 8, 30]]], ['normal control 3', [[2006, 5, 24], [[2006, 7, 31], [2006, 10, 31], [2007, 1, 31]], [2006, 8, 31]], [[2006, 7, 31], [2006, 10, 31]]], ['normal control 4', [[2033, 10, 20], [[2034, 1, 12], [2034, 7, 12], [2035, 1, 12]], [2035, 1, 12]], 'matured']], [['regression pre-issue guard 1', [[2038, 7, 13], [[2039, 6, 30], [2040, 6, 30], [2041, 6, 30], [2042, 6, 30], [2043, 6, 30]], [2038, 8, 30]], [[2038, 7, 13], [2039, 6, 30]]], ['regression pre-issue guard 2', [[2019, 9, 14], [[2020, 9, 29], [2021, 3, 29], [2021, 9, 29], [2022, 3, 29], [2022, 9, 29]], [2020, 3, 16]], [[2019, 9, 14], [2020, 9, 29]]], ['partial repair probe 1', [[2008, 7, 7], [[2008, 9, 15], [2008, 12, 15]], [2008, 7, 7]], [[2008, 7, 7], [2008, 9, 15]]], ['partial repair probe 2', [[2022, 1, 3], [[2022, 7, 31], [2023, 1, 31], [2023, 7, 31], [2024, 1, 31], [2024, 7, 31]], [2022, 1, 3]], [[2022, 1, 3], [2022, 7, 31]]], ['normal control 1', [[2004, 8, 30], [[2005, 5, 30], [2005, 11, 30], [2006, 5, 30]], [2005, 5, 30]], [[2005, 5, 30], [2005, 11, 30]]], ['normal control 2', [[2021, 4, 1], [[2021, 6, 30], [2022, 6, 30]], [2021, 9, 29]], [[2021, 6, 30], [2022, 6, 30]]], ['normal control 3', [[2035, 6, 6], [[2036, 6, 2], [2036, 12, 2]], [2036, 7, 30]], [[2036, 6, 2], [2036, 12, 2]]], ['normal control 4', [[2039, 11, 18], [[2040, 3, 28], [2040, 6, 28], [2040, 9, 28], [2040, 12, 28], [2041, 3, 28]], [2040, 4, 5]], [[2040, 3, 28], [2040, 6, 28]]]], [['regression pre-issue guard 1', [[2014, 12, 10], [[2015, 12, 31], [2016, 6, 30]], [2015, 11, 4]], [[2014, 12, 10], [2015, 12, 31]]], ['regression pre-issue guard 2', [[2016, 2, 8], [[2017, 2, 24], [2017, 5, 24], [2017, 8, 24], [2017, 11, 24], [2018, 2, 24], [2018, 5, 24]], [2016, 8, 10]], [[2016, 2, 8], [2017, 2, 24]]], ['partial repair probe 1', [[2010, 2, 12], [[2011, 1, 28], [2011, 7, 28], [2012, 1, 28], [2012, 7, 28], [2013, 1, 28]], [2010, 2, 12]], [[2010, 2, 12], [2011, 1, 28]]], ['partial repair probe 2', [[2032, 1, 15], [[2032, 12, 27], [2033, 3, 27], [2033, 6, 27], [2033, 9, 27]], [2032, 1, 15]], [[2032, 1, 15], [2032, 12, 27]]], ['normal control 1', [[2026, 12, 12], [[2027, 2, 11], [2027, 5, 11], [2027, 8, 11], [2027, 11, 11], [2028, 2, 11], [2028, 5, 11]], [2027, 2, 11]], [[2027, 2, 11], [2027, 5, 11]]], ['normal control 2', [[2016, 6, 2], [[2017, 1, 28], [2017, 7, 28], [2018, 1, 28], [2018, 7, 28], [2019, 1, 28]], [2016, 5, 28]], 'not issued'], ['normal control 3', [[2020, 6, 5], [[2021, 6, 30], [2021, 9, 30], [2021, 12, 30], [2022, 3, 30], [2022, 6, 30]], [2021, 7, 25]], [[2021, 6, 30], [2021, 9, 30]]], ['normal control 4', [[2034, 11, 1], [[2034, 11, 30], [2035, 5, 30], [2035, 11, 30], [2036, 5, 30]], [2035, 9, 9]], [[2035, 5, 30], [2035, 11, 30]]]], [['regression pre-issue guard 1', [[2019, 5, 4], [[2020, 3, 28], [2021, 3, 28], [2022, 3, 28]], [2019, 9, 1]], [[2019, 5, 4], [2020, 3, 28]]], ['regression pre-issue guard 2', [[2026, 11, 3], [[2027, 7, 31], [2028, 7, 31]], [2027, 3, 28]], [[2026, 11, 3], [2027, 7, 31]]], ['partial repair probe 1', [[2019, 6, 27], [[2019, 12, 31], [2020, 6, 30]], [2019, 6, 27]], [[2019, 6, 27], [2019, 12, 31]]], ['partial repair probe 2', [[2011, 1, 3], [[2011, 1, 13], [2011, 7, 13]], [2011, 1, 3]], [[2011, 1, 3], [2011, 1, 13]]], ['normal control 1', [[2038, 10, 4], [[2039, 1, 25], [2039, 7, 25], [2040, 1, 25]], [2039, 10, 20]], [[2039, 7, 25], [2040, 1, 25]]], ['normal control 2', [[2024, 4, 22], [[2024, 7, 20], [2025, 7, 20], [2026, 7, 20], [2027, 7, 20], [2028, 7, 20]], [2024, 4, 21]], 'not issued'], ['normal control 3', [[2018, 6, 22], [[2019, 7, 26], [2020, 1, 26], [2020, 7, 26], [2021, 1, 26], [2021, 7, 26], [2022, 1, 26]], [2020, 6, 1]], [[2020, 1, 26], [2020, 7, 26]]], ['normal control 4', [[2031, 1, 4], [[2031, 3, 29], [2031, 9, 29], [2032, 3, 29], [2032, 9, 29], [2033, 3, 29]], [2031, 4, 8]], [[2031, 3, 29], [2031, 9, 29]]]], [['regression pre-issue guard 1', [[2012, 11, 11], [[2013, 4, 20], [2013, 7, 20], [2013, 10, 20], [2014, 1, 20]], [2012, 12, 1]], [[2012, 11, 11], [2013, 4, 20]]], ['regression pre-issue guard 2', [[2021, 2, 3], [[2021, 12, 31], [2022, 6, 30], [2022, 12, 31], [2023, 6, 30]], [2021, 5, 9]], [[2021, 2, 3], [2021, 12, 31]]], ['partial repair probe 1', [[2038, 1, 19], [[2038, 11, 29], [2039, 2, 28], [2039, 5, 29]], [2038, 1, 19]], [[2038, 1, 19], [2038, 11, 29]]], ['partial repair probe 2', [[2008, 5, 10], [[2009, 3, 31], [2009, 6, 30]], [2008, 5, 10]], [[2008, 5, 10], [2009, 3, 31]]], ['normal control 1', [[2031, 3, 25], [[2031, 9, 29], [2032, 9, 29], [2033, 9, 29], [2034, 9, 29]], [2031, 3, 23]], 'not issued'], ['normal control 2', [[2009, 6, 7], [[2010, 5, 29], [2010, 8, 29], [2010, 11, 29]], [2010, 11, 29]], 'matured'], ['normal control 3', [[2032, 5, 17], [[2032, 10, 31], [2033, 10, 31], [2034, 10, 31], [2035, 10, 31], [2036, 10, 31]], [2034, 12, 25]], [[2034, 10, 31], [2035, 10, 31]]], ['normal control 4', [[2008, 12, 16], [[2009, 7, 31], [2009, 10, 31], [2010, 1, 31], [2010, 4, 30], [2010, 7, 31], [2010, 10, 31]], [2010, 3, 13]], [[2010, 1, 31], [2010, 4, 30]]]]]\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-coupon-period-lookup-pre-issue-guard","generated_at":"2026-09-29T14:46:54.208956+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":"Reject only settlements strictly before the issue date.","root_cause":"The not-issued guard compares against the first coupon date instead of the issue date.","sha256":"3d34dfd8dab693166b38207af800ab59ac93c9cabdf2ad4de0a9cb1077eb016d","title":"Coupon period lookup for a settlement date: settlements before the first coupon are rejected as not issued · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.798,"exit_code":1,"observations":[{"actual":[[2024,4,9],[2024,6,16]],"check":"regression pre-issue guard 1","expected":[[2024,4,9],[2024,6,16]],"passed":true},{"actual":[[2026,4,22],[2027,3,22]],"check":"regression pre-issue guard 2","expected":[[2026,4,22],[2027,3,22]],"passed":true},{"actual":"not issued","check":"partial repair probe 1","expected":[[2020,2,21],[2020,3,30]],"passed":false},{"actual":"not issued","check":"partial repair probe 2","expected":[[2019,4,25],[2019,12,11]],"passed":false},{"actual":"not issued","check":"normal control 1","expected":"not issued","passed":true},{"actual":[[2038,5,30],[2038,8,30]],"check":"normal control 2","expected":[[2038,5,30],[2038,8,30]],"passed":true},{"actual":[[2006,7,31],[2006,10,31]],"check":"normal control 3","expected":[[2006,7,31],[2006,10,31]],"passed":true},{"actual":"matured","check":"normal control 4","expected":"matured","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression pre-issue guard 1\", \"actual\": [[2024, 4, 9], [2024, 6, 16]], \"expected\": [[2024, 4, 9], [2024, 6, 16]], \"passed\": true}, {\"check\": \"regression pre-issue guard 2\", \"actual\": [[2026, 4, 22], [2027, 3, 22]], \"expected\": [[2026, 4, 22], [2027, 3, 22]], \"passed\": true}, {\"check\": \"partial repair probe 1\", \"actual\": \"not issued\", \"expected\": [[2020, 2, 21], [2020, 3, 30]], \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": \"not issued\", \"expected\": [[2019, 4, 25], [2019, 12, 11]], \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": \"not issued\", \"expected\": \"not issued\", \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [[2038, 5, 30], [2038, 8, 30]], \"expected\": [[2038, 5, 30], [2038, 8, 30]], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [[2006, 7, 31], [2006, 10, 31]], \"expected\": [[2006, 7, 31], [2006, 10, 31]], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": \"matured\", \"expected\": \"matured\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.764,"exit_code":1,"observations":[{"actual":"not issued","check":"regression pre-issue guard 1","expected":[[2024,4,9],[2024,6,16]],"passed":false},{"actual":"not issued","check":"regression pre-issue guard 2","expected":[[2026,4,22],[2027,3,22]],"passed":false},{"actual":"not issued","check":"partial repair probe 1","expected":[[2020,2,21],[2020,3,30]],"passed":false},{"actual":"not issued","check":"partial repair probe 2","expected":[[2019,4,25],[2019,12,11]],"passed":false},{"actual":"not issued","check":"normal control 1","expected":"not issued","passed":true},{"actual":[[2038,5,30],[2038,8,30]],"check":"normal control 2","expected":[[2038,5,30],[2038,8,30]],"passed":true},{"actual":[[2006,7,31],[2006,10,31]],"check":"normal control 3","expected":[[2006,7,31],[2006,10,31]],"passed":true},{"actual":"matured","check":"normal control 4","expected":"matured","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression pre-issue guard 1\", \"actual\": \"not issued\", \"expected\": [[2024, 4, 9], [2024, 6, 16]], \"passed\": false}, {\"check\": \"regression pre-issue guard 2\", \"actual\": \"not issued\", \"expected\": [[2026, 4, 22], [2027, 3, 22]], \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": \"not issued\", \"expected\": [[2020, 2, 21], [2020, 3, 30]], \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": \"not issued\", \"expected\": [[2019, 4, 25], [2019, 12, 11]], \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": \"not issued\", \"expected\": \"not issued\", \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [[2038, 5, 30], [2038, 8, 30]], \"expected\": [[2038, 5, 30], [2038, 8, 30]], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [[2006, 7, 31], [2006, 10, 31]], \"expected\": [[2006, 7, 31], [2006, 10, 31]], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": \"matured\", \"expected\": \"matured\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.814,"exit_code":0,"observations":[{"actual":[[2024,4,9],[2024,6,16]],"check":"regression pre-issue guard 1","expected":[[2024,4,9],[2024,6,16]],"passed":true},{"actual":[[2026,4,22],[2027,3,22]],"check":"regression pre-issue guard 2","expected":[[2026,4,22],[2027,3,22]],"passed":true},{"actual":[[2020,2,21],[2020,3,30]],"check":"partial repair probe 1","expected":[[2020,2,21],[2020,3,30]],"passed":true},{"actual":[[2019,4,25],[2019,12,11]],"check":"partial repair probe 2","expected":[[2019,4,25],[2019,12,11]],"passed":true},{"actual":"not issued","check":"normal control 1","expected":"not issued","passed":true},{"actual":[[2038,5,30],[2038,8,30]],"check":"normal control 2","expected":[[2038,5,30],[2038,8,30]],"passed":true},{"actual":[[2006,7,31],[2006,10,31]],"check":"normal control 3","expected":[[2006,7,31],[2006,10,31]],"passed":true},{"actual":"matured","check":"normal control 4","expected":"matured","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression pre-issue guard 1\", \"actual\": [[2024, 4, 9], [2024, 6, 16]], \"expected\": [[2024, 4, 9], [2024, 6, 16]], \"passed\": true}, {\"check\": \"regression pre-issue guard 2\", \"actual\": [[2026, 4, 22], [2027, 3, 22]], \"expected\": [[2026, 4, 22], [2027, 3, 22]], \"passed\": true}, {\"check\": \"partial repair probe 1\", \"actual\": [[2020, 2, 21], [2020, 3, 30]], \"expected\": [[2020, 2, 21], [2020, 3, 30]], \"passed\": true}, {\"check\": \"partial repair probe 2\", \"actual\": [[2019, 4, 25], [2019, 12, 11]], \"expected\": [[2019, 4, 25], [2019, 12, 11]], \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": \"not issued\", \"expected\": \"not issued\", \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [[2038, 5, 30], [2038, 8, 30]], \"expected\": [[2038, 5, 30], [2038, 8, 30]], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [[2006, 7, 31], [2006, 10, 31]], \"expected\": [[2006, 7, 31], [2006, 10, 31]], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": \"matured\", \"expected\": \"matured\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}