{"abstract":"Converting an Act/360 rate to Act/365 lowers it instead of raising it.","category":"Bond day-count conventions","checks":8,"contract":"Inputs a nominal rate, from/to day-count year basis (360 or 365), from/to compounding frequency (0 = continuous). First rescale the nominal rate by to_basis/from_basis, then convert compounding through the effective annual rate: EAR = (1+r/m)^m - 1 or e^r - 1; target nominal = m*((1+EAR)^(1/m)-1) or ln(1+EAR). Return rounded to 10 decimals.","evaluation_group":"w2-bond_day_count_conventions-rate-basis-conversion","failed_approach":"Hard-coding the 360-to-365 case ignores conversions in the other direction.","family":"w2-bond_day_count_conventions-rate-basis-conversion-basis-ratio-direction","id":"FA-61276","implementations":{"attempt":{"sha256":"7b9348638930ce4abe622b42228d6c19f05cc27966766766bd309473271cb49d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(rate, from_basis, to_basis, from_comp, to_comp):\n    def ear(r, m):\n        return math.exp(r) - 1 if m == 0 else (1 + r / m) ** m - 1\n    def nominal(e, m):\n        return math.log(1 + e) if m == 0 else m * ((1 + e) ** (1 / m) - 1)\n    scaled = rate * 365 / 360 if from_basis == 360 else rate\n    return round(nominal(ear(scaled, from_comp), to_comp), 10)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression basis ratio direction 1', [0.0475, 365, 360, 4, 12], 0.0466675911], ['regression basis ratio direction 2', [0.0475, 365, 360, 12, 1], 0.047868499], ['partial repair probe 1', [0.0125, 360, 360, 0, 0], 0.0125], ['partial repair probe 2', [0.0125, 360, 360, 2, 1], 0.0125390625], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.0125, 365, 365, 12, 12], 0.0125], ['normal control 2', [0.08, 365, 365, 0, 4], 0.0808053601], ['normal control 3', [0.03, 365, 365, 12, 4], 0.0300750625]], [['regression basis ratio direction 1', [0.03, 360, 365, 12, 12], 0.0304166667], ['regression basis ratio direction 2', [0.001, 365, 360, 1, 12], 0.0009858558], ['partial repair probe 1', [0.08, 360, 360, 1, 4], 0.0777061876], ['partial repair probe 2', [0.15, 360, 360, 4, 2], 0.1528125], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.08, 365, 365, 1, 4], 0.0777061876], ['normal control 2', [0.0125, 365, 365, 4, 0], 0.0124805093], ['normal control 3', [0.15, 365, 365, 2, 12], 0.1455165491]], [['regression basis ratio direction 1', [0.001, 365, 360, 12, 12], 0.0009863014], ['regression basis ratio direction 2', [0.03, 365, 360, 4, 1], 0.0299189799], ['partial repair probe 1', [0.0125, 360, 360, 4, 0], 0.0124805093], ['partial repair probe 2', [0.0125, 360, 360, 4, 2], 0.0125195313], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.0475, 365, 365, 2, 0], 0.0469447124], ['normal control 2', [0.03, 365, 365, 2, 4], 0.0298883359], ['normal control 3', [0.001, 365, 365, 2, 12], 0.0009997917]], [['regression basis ratio direction 1', [0.0475, 365, 360, 1, 12], 0.0458724565], ['regression basis ratio direction 2', [0.03, 365, 360, 4, 4], 0.0295890411], ['partial repair probe 1', [0.0475, 360, 360, 2, 2], 0.0475], ['partial repair probe 2', [0.001, 360, 360, 0, 1], 0.0010005002], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.03, 365, 365, 4, 12], 0.0299253109], ['normal control 2', [0.0125, 365, 365, 12, 1], 0.0125718638], ['normal control 3', [0.15, 365, 365, 1, 1], 0.15]], [['regression basis ratio direction 1', [0.0475, 360, 365, 2, 2], 0.0481597222], ['regression basis ratio direction 2', [0.001, 365, 360, 1, 0], 0.0009858153], ['partial repair probe 1', [0.03, 360, 360, 12, 4], 0.0300750625], ['partial repair probe 2', [0.0125, 360, 360, 4, 2], 0.0125195313], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.15, 365, 365, 0, 4], 0.1528479883], ['normal control 2', [0.001, 365, 365, 1, 4], 0.0009996252], ['normal control 3', [0.15, 365, 365, 4, 4], 0.15]]]\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":"714f5842fd932730e35cbc8d831e28eac24d446d124be612358fd1380a9835b4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(rate, from_basis, to_basis, from_comp, to_comp):\n    def ear(r, m):\n        return math.exp(r) - 1 if m == 0 else (1 + r / m) ** m - 1\n    def nominal(e, m):\n        return math.log(1 + e) if m == 0 else m * ((1 + e) ** (1 / m) - 1)\n    scaled = rate * from_basis / to_basis\n    return round(nominal(ear(scaled, from_comp), to_comp), 10)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression basis ratio direction 1', [0.0475, 365, 360, 4, 12], 0.0466675911], ['regression basis ratio direction 2', [0.0475, 365, 360, 12, 1], 0.047868499], ['partial repair probe 1', [0.0125, 360, 360, 0, 0], 0.0125], ['partial repair probe 2', [0.0125, 360, 360, 2, 1], 0.0125390625], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.0125, 365, 365, 12, 12], 0.0125], ['normal control 2', [0.08, 365, 365, 0, 4], 0.0808053601], ['normal control 3', [0.03, 365, 365, 12, 4], 0.0300750625]], [['regression basis ratio direction 1', [0.03, 360, 365, 12, 12], 0.0304166667], ['regression basis ratio direction 2', [0.001, 365, 360, 1, 12], 0.0009858558], ['partial repair probe 1', [0.08, 360, 360, 1, 4], 0.0777061876], ['partial repair probe 2', [0.15, 360, 360, 4, 2], 0.1528125], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.08, 365, 365, 1, 4], 0.0777061876], ['normal control 2', [0.0125, 365, 365, 4, 0], 0.0124805093], ['normal control 3', [0.15, 365, 365, 2, 12], 0.1455165491]], [['regression basis ratio direction 1', [0.001, 365, 360, 12, 12], 0.0009863014], ['regression basis ratio direction 2', [0.03, 365, 360, 4, 1], 0.0299189799], ['partial repair probe 1', [0.0125, 360, 360, 4, 0], 0.0124805093], ['partial repair probe 2', [0.0125, 360, 360, 4, 2], 0.0125195313], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.0475, 365, 365, 2, 0], 0.0469447124], ['normal control 2', [0.03, 365, 365, 2, 4], 0.0298883359], ['normal control 3', [0.001, 365, 365, 2, 12], 0.0009997917]], [['regression basis ratio direction 1', [0.0475, 365, 360, 1, 12], 0.0458724565], ['regression basis ratio direction 2', [0.03, 365, 360, 4, 4], 0.0295890411], ['partial repair probe 1', [0.0475, 360, 360, 2, 2], 0.0475], ['partial repair probe 2', [0.001, 360, 360, 0, 1], 0.0010005002], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.03, 365, 365, 4, 12], 0.0299253109], ['normal control 2', [0.0125, 365, 365, 12, 1], 0.0125718638], ['normal control 3', [0.15, 365, 365, 1, 1], 0.15]], [['regression basis ratio direction 1', [0.0475, 360, 365, 2, 2], 0.0481597222], ['regression basis ratio direction 2', [0.001, 365, 360, 1, 0], 0.0009858153], ['partial repair probe 1', [0.03, 360, 360, 12, 4], 0.0300750625], ['partial repair probe 2', [0.0125, 360, 360, 4, 2], 0.0125195313], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.15, 365, 365, 0, 4], 0.1528479883], ['normal control 2', [0.001, 365, 365, 1, 4], 0.0009996252], ['normal control 3', [0.15, 365, 365, 4, 4], 0.15]]]\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":"d8f8cbfa3a80ca6c220632f418014db47b7791804bcea4281202d332776021d7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(rate, from_basis, to_basis, from_comp, to_comp):\n    def ear(r, m):\n        return math.exp(r) - 1 if m == 0 else (1 + r / m) ** m - 1\n    def nominal(e, m):\n        return math.log(1 + e) if m == 0 else m * ((1 + e) ** (1 / m) - 1)\n    scaled = rate * to_basis / from_basis\n    return round(nominal(ear(scaled, from_comp), to_comp), 10)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression basis ratio direction 1', [0.0475, 365, 360, 4, 12], 0.0466675911], ['regression basis ratio direction 2', [0.0475, 365, 360, 12, 1], 0.047868499], ['partial repair probe 1', [0.0125, 360, 360, 0, 0], 0.0125], ['partial repair probe 2', [0.0125, 360, 360, 2, 1], 0.0125390625], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.0125, 365, 365, 12, 12], 0.0125], ['normal control 2', [0.08, 365, 365, 0, 4], 0.0808053601], ['normal control 3', [0.03, 365, 365, 12, 4], 0.0300750625]], [['regression basis ratio direction 1', [0.03, 360, 365, 12, 12], 0.0304166667], ['regression basis ratio direction 2', [0.001, 365, 360, 1, 12], 0.0009858558], ['partial repair probe 1', [0.08, 360, 360, 1, 4], 0.0777061876], ['partial repair probe 2', [0.15, 360, 360, 4, 2], 0.1528125], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.08, 365, 365, 1, 4], 0.0777061876], ['normal control 2', [0.0125, 365, 365, 4, 0], 0.0124805093], ['normal control 3', [0.15, 365, 365, 2, 12], 0.1455165491]], [['regression basis ratio direction 1', [0.001, 365, 360, 12, 12], 0.0009863014], ['regression basis ratio direction 2', [0.03, 365, 360, 4, 1], 0.0299189799], ['partial repair probe 1', [0.0125, 360, 360, 4, 0], 0.0124805093], ['partial repair probe 2', [0.0125, 360, 360, 4, 2], 0.0125195313], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.0475, 365, 365, 2, 0], 0.0469447124], ['normal control 2', [0.03, 365, 365, 2, 4], 0.0298883359], ['normal control 3', [0.001, 365, 365, 2, 12], 0.0009997917]], [['regression basis ratio direction 1', [0.0475, 365, 360, 1, 12], 0.0458724565], ['regression basis ratio direction 2', [0.03, 365, 360, 4, 4], 0.0295890411], ['partial repair probe 1', [0.0475, 360, 360, 2, 2], 0.0475], ['partial repair probe 2', [0.001, 360, 360, 0, 1], 0.0010005002], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.03, 365, 365, 4, 12], 0.0299253109], ['normal control 2', [0.0125, 365, 365, 12, 1], 0.0125718638], ['normal control 3', [0.15, 365, 365, 1, 1], 0.15]], [['regression basis ratio direction 1', [0.0475, 360, 365, 2, 2], 0.0481597222], ['regression basis ratio direction 2', [0.001, 365, 360, 1, 0], 0.0009858153], ['partial repair probe 1', [0.03, 360, 360, 12, 4], 0.0300750625], ['partial repair probe 2', [0.0125, 360, 360, 4, 2], 0.0125195313], ['boundary control 1', [0.05, 365, 365, 0, 0], 0.05], ['normal control 1', [0.15, 365, 365, 0, 4], 0.1528479883], ['normal control 2', [0.001, 365, 365, 1, 4], 0.0009996252], ['normal control 3', [0.15, 365, 365, 4, 4], 0.15]]]\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-rate-basis-conversion-basis-ratio-direction","generated_at":"2026-09-29T14:46:53.780912+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":"Multiply by to_basis/from_basis so interest per day is preserved.","root_cause":"The rescaling multiplies by from_basis/to_basis.","sha256":"31d8364521c6598e01dfa5926935050dc259e806854d9fcfc4019e3ad25db862","title":"Rate conversion across day-count basis and compounding: the basis ratio is inverted · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.271,"exit_code":1,"observations":[{"actual":0.0473132098,"check":"regression basis ratio direction 1","expected":0.0466675911,"passed":false},{"actual":0.0485478814,"check":"regression basis ratio direction 2","expected":0.047868499,"passed":false},{"actual":0.0126736111,"check":"partial repair probe 1","expected":0.0125,"passed":false},{"actual":0.0127137662,"check":"partial repair probe 2","expected":0.0125390625,"passed":false},{"actual":0.05,"check":"boundary control 1","expected":0.05,"passed":true},{"actual":0.0125,"check":"normal control 1","expected":0.0125,"passed":true},{"actual":0.0808053601,"check":"normal control 2","expected":0.0808053601,"passed":true},{"actual":0.0300750625,"check":"normal control 3","expected":0.0300750625,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression basis ratio direction 1\", \"actual\": 0.0473132098, \"expected\": 0.0466675911, \"passed\": false}, {\"check\": \"regression basis ratio direction 2\", \"actual\": 0.0485478814, \"expected\": 0.047868499, \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": 0.0126736111, \"expected\": 0.0125, \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": 0.0127137662, \"expected\": 0.0125390625, \"passed\": false}, {\"check\": \"boundary control 1\", \"actual\": 0.05, \"expected\": 0.05, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 0.0125, \"expected\": 0.0125, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 0.0808053601, \"expected\": 0.0808053601, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 0.0300750625, \"expected\": 0.0300750625, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.845,"exit_code":1,"observations":[{"actual":0.0479677249,"check":"regression basis ratio direction 1","expected":0.0466675911,"passed":false},{"actual":0.049237112,"check":"regression basis ratio direction 2","expected":0.047868499,"passed":false},{"actual":0.0125,"check":"partial repair probe 1","expected":0.0125,"passed":true},{"actual":0.0125390625,"check":"partial repair probe 2","expected":0.0125390625,"passed":true},{"actual":0.05,"check":"boundary control 1","expected":0.05,"passed":true},{"actual":0.0125,"check":"normal control 1","expected":0.0125,"passed":true},{"actual":0.0808053601,"check":"normal control 2","expected":0.0808053601,"passed":true},{"actual":0.0300750625,"check":"normal control 3","expected":0.0300750625,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression basis ratio direction 1\", \"actual\": 0.0479677249, \"expected\": 0.0466675911, \"passed\": false}, {\"check\": \"regression basis ratio direction 2\", \"actual\": 0.049237112, \"expected\": 0.047868499, \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": 0.0125, \"expected\": 0.0125, \"passed\": true}, {\"check\": \"partial repair probe 2\", \"actual\": 0.0125390625, \"expected\": 0.0125390625, \"passed\": true}, {\"check\": \"boundary control 1\", \"actual\": 0.05, \"expected\": 0.05, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 0.0125, \"expected\": 0.0125, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 0.0808053601, \"expected\": 0.0808053601, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 0.0300750625, \"expected\": 0.0300750625, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.594,"exit_code":0,"observations":[{"actual":0.0466675911,"check":"regression basis ratio direction 1","expected":0.0466675911,"passed":true},{"actual":0.047868499,"check":"regression basis ratio direction 2","expected":0.047868499,"passed":true},{"actual":0.0125,"check":"partial repair probe 1","expected":0.0125,"passed":true},{"actual":0.0125390625,"check":"partial repair probe 2","expected":0.0125390625,"passed":true},{"actual":0.05,"check":"boundary control 1","expected":0.05,"passed":true},{"actual":0.0125,"check":"normal control 1","expected":0.0125,"passed":true},{"actual":0.0808053601,"check":"normal control 2","expected":0.0808053601,"passed":true},{"actual":0.0300750625,"check":"normal control 3","expected":0.0300750625,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression basis ratio direction 1\", \"actual\": 0.0466675911, \"expected\": 0.0466675911, \"passed\": true}, {\"check\": \"regression basis ratio direction 2\", \"actual\": 0.047868499, \"expected\": 0.047868499, \"passed\": true}, {\"check\": \"partial repair probe 1\", \"actual\": 0.0125, \"expected\": 0.0125, \"passed\": true}, {\"check\": \"partial repair probe 2\", \"actual\": 0.0125390625, \"expected\": 0.0125390625, \"passed\": true}, {\"check\": \"boundary control 1\", \"actual\": 0.05, \"expected\": 0.05, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 0.0125, \"expected\": 0.0125, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 0.0808053601, \"expected\": 0.0808053601, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 0.0300750625, \"expected\": 0.0300750625, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}