{"abstract":"Odd-cent monthly payments produce a biweekly payment a half cent short.","category":"Loan amortization schedules","checks":7,"contract":"x = {'principal', 'rate_bp', 'months'}. The monthly payment is the exact annuity rounded half-up; the biweekly payment is round_half_up(monthly/2), paid 26 times a year. Periodic interest is round_half_up(balance*bp/260000). When balance + interest <= payment the loan pays off with that amount. Return {'payment', 'periods', 'final_payment', 'total_interest'}.","contract_signature":"x","evaluation_group":"w2-loan-amortization-schedules-accelerated-biweekly","failed_approach":"Spreading twelve monthly payments over 26 periods removes the acceleration entirely.","family":"w2-loan-amortization-schedules-accelerated-biweekly-biweekly-payment-derivation","id":"FA-58701","implementations":{"attempt":{"sha256":"a6203994faedd6155decda091472dcb9710c8c8465b372a16cf068e3908d95ad","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    def rnd(n, d):\n        q, r = divmod(n, d)\n        return q + (1 if 2 * r >= d else 0)\n    def level(P, n):\n        if n <= 0 or P <= 0:\n            return 0\n        if bp == 0:\n            exact = Fraction(P, n)\n        else:\n            r = Fraction(bp, 120000)\n            exact = P * r / (1 - (1 + r) ** -n)\n        return math.floor(exact + Fraction(1, 2))\n    bp = x['rate_bp']\n    P = x['principal']\n    monthly = level(P, x['months'])\n    pay = rnd(monthly * 12, 26)\n    bal = P\n    k = 0\n    total = 0\n    final = 0\n    while bal > 0 and k < 26 * x['months']:\n        k += 1\n        interest = rnd(bal * bp, 260000)\n        total += interest\n        if bal + interest <= pay:\n            final = bal + interest\n            bal = 0\n        else:\n            bal -= pay - interest\n    return {'payment': pay, 'periods': k, 'final_payment': final, 'total_interest': total}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: biweekly payment derivation', {'principal': 5000, 'rate_bp': 725, 'months': 36}, {'payment': 78, 'periods': 71, 'final_payment': 58, 'total_interest': 518}], ['control 1', {'principal': 5000, 'rate_bp': 1200, 'months': 12}, {'payment': 222, 'periods': 24, 'final_payment': 187, 'total_interest': 293}], ['control 2', {'principal': 250000, 'rate_bp': 0, 'months': 7}, {'payment': 17857, 'periods': 15, 'final_payment': 2, 'total_interest': 0}], ['control 3', {'principal': 1000000, 'rate_bp': 725, 'months': 7}, {'payment': 73165, 'periods': 14, 'final_payment': 69832, 'total_interest': 20977}], ['control 4', {'principal': 250000, 'rate_bp': 0, 'months': 36}, {'payment': 3472, 'periods': 73, 'final_payment': 16, 'total_interest': 0}], ['control 5', {'principal': 1000000, 'rate_bp': 0, 'months': 36}, {'payment': 13889, 'periods': 72, 'final_payment': 13881, 'total_interest': 0}], ['control 6', {'principal': 5000, 'rate_bp': 0, 'months': 7}, {'payment': 357, 'periods': 15, 'final_payment': 2, 'total_interest': 0}]], [['regression: biweekly payment derivation', {'principal': 100000, 'rate_bp': 1200, 'months': 36}, {'payment': 1661, 'periods': 71, 'final_payment': 1165, 'total_interest': 17435}], ['control 1', {'principal': 250000, 'rate_bp': 725, 'months': 36}, {'payment': 3874, 'periods': 72, 'final_payment': 951, 'total_interest': 26005}], ['control 2', {'principal': 100000, 'rate_bp': 725, 'months': 12}, {'payment': 4332, 'periods': 24, 'final_payment': 3874, 'total_interest': 3510}], ['control 3', {'principal': 100000, 'rate_bp': 0, 'months': 7}, {'payment': 7143, 'periods': 14, 'final_payment': 7141, 'total_interest': 0}], ['control 4', {'principal': 100000, 'rate_bp': 0, 'months': 36}, {'payment': 1389, 'periods': 72, 'final_payment': 1381, 'total_interest': 0}], ['control 5', {'principal': 100000, 'rate_bp': 600, 'months': 36}, {'payment': 1521, 'periods': 72, 'final_payment': 590, 'total_interest': 8581}], ['control 6', {'principal': 1000000, 'rate_bp': 725, 'months': 7}, {'payment': 73165, 'periods': 14, 'final_payment': 69832, 'total_interest': 20977}]], [['regression: biweekly payment derivation', {'principal': 250000, 'rate_bp': 1200, 'months': 7}, {'payment': 18579, 'periods': 14, 'final_payment': 17172, 'total_interest': 8699}], ['control 1', {'principal': 100000, 'rate_bp': 600, 'months': 36}, {'payment': 1521, 'periods': 72, 'final_payment': 590, 'total_interest': 8581}], ['control 2', {'principal': 1000000, 'rate_bp': 725, 'months': 12}, {'payment': 43321, 'periods': 24, 'final_payment': 38698, 'total_interest': 35081}], ['control 3', {'principal': 100000, 'rate_bp': 0, 'months': 36}, {'payment': 1389, 'periods': 72, 'final_payment': 1381, 'total_interest': 0}], ['control 4', {'principal': 5000, 'rate_bp': 600, 'months': 12}, {'payment': 215, 'periods': 24, 'final_payment': 199, 'total_interest': 144}], ['control 5', {'principal': 5000, 'rate_bp': 725, 'months': 60}, {'payment': 50, 'periods': 118, 'final_payment': 21, 'total_interest': 871}], ['control 6', {'principal': 250000, 'rate_bp': 600, 'months': 7}, {'payment': 18216, 'periods': 14, 'final_payment': 17530, 'total_interest': 4338}]], [['regression: biweekly payment derivation', {'principal': 250000, 'rate_bp': 600, 'months': 60}, {'payment': 2417, 'periods': 119, 'final_payment': 764, 'total_interest': 35970}], ['control 1', {'principal': 5000, 'rate_bp': 1200, 'months': 36}, {'payment': 83, 'periods': 71, 'final_payment': 64, 'total_interest': 874}], ['control 2', {'principal': 250000, 'rate_bp': 725, 'months': 60}, {'payment': 2490, 'periods': 118, 'final_payment': 2377, 'total_interest': 43707}], ['control 3', {'principal': 100000, 'rate_bp': 0, 'months': 7}, {'payment': 7143, 'periods': 14, 'final_payment': 7141, 'total_interest': 0}], ['control 4', {'principal': 1000000, 'rate_bp': 1200, 'months': 60}, {'payment': 11122, 'periods': 117, 'final_payment': 4717, 'total_interest': 294869}], ['control 5', {'principal': 5000, 'rate_bp': 1200, 'months': 12}, {'payment': 222, 'periods': 24, 'final_payment': 187, 'total_interest': 293}], ['control 6', {'principal': 1000000, 'rate_bp': 0, 'months': 36}, {'payment': 13889, 'periods': 72, 'final_payment': 13881, 'total_interest': 0}]], [['regression: biweekly payment derivation', {'principal': 5000, 'rate_bp': 0, 'months': 36}, {'payment': 70, 'periods': 72, 'final_payment': 30, 'total_interest': 0}], ['control 1', {'principal': 5000, 'rate_bp': 725, 'months': 60}, {'payment': 50, 'periods': 118, 'final_payment': 21, 'total_interest': 871}], ['control 2', {'principal': 100000, 'rate_bp': 0, 'months': 7}, {'payment': 7143, 'periods': 14, 'final_payment': 7141, 'total_interest': 0}], ['control 3', {'principal': 100000, 'rate_bp': 0, 'months': 36}, {'payment': 1389, 'periods': 72, 'final_payment': 1381, 'total_interest': 0}], ['control 4', {'principal': 100000, 'rate_bp': 1200, 'months': 60}, {'payment': 1112, 'periods': 117, 'final_payment': 503, 'total_interest': 29495}], ['control 5', {'principal': 250000, 'rate_bp': 1200, 'months': 36}, {'payment': 4152, 'periods': 71, 'final_payment': 2947, 'total_interest': 43587}], ['control 6', {'principal': 1000000, 'rate_bp': 725, 'months': 36}, {'payment': 15496, 'periods': 72, 'final_payment': 3794, 'total_interest': 104010}]]]\nfor label, args, expected in fixtures[N-1]:\n    try:\n        actual = solve(args)\n    except Exception as exc:\n        actual = 'raised ' + type(exc).__name__\n    check(label, actual, 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":"26c74fec1e09aa42f48a348d4ffb8e09c2f7f894fca5914020887f326b03a40c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    def rnd(n, d):\n        q, r = divmod(n, d)\n        return q + (1 if 2 * r >= d else 0)\n    def level(P, n):\n        if n <= 0 or P <= 0:\n            return 0\n        if bp == 0:\n            exact = Fraction(P, n)\n        else:\n            r = Fraction(bp, 120000)\n            exact = P * r / (1 - (1 + r) ** -n)\n        return math.floor(exact + Fraction(1, 2))\n    bp = x['rate_bp']\n    P = x['principal']\n    monthly = level(P, x['months'])\n    pay = monthly // 2\n    bal = P\n    k = 0\n    total = 0\n    final = 0\n    while bal > 0 and k < 26 * x['months']:\n        k += 1\n        interest = rnd(bal * bp, 260000)\n        total += interest\n        if bal + interest <= pay:\n            final = bal + interest\n            bal = 0\n        else:\n            bal -= pay - interest\n    return {'payment': pay, 'periods': k, 'final_payment': final, 'total_interest': total}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: biweekly payment derivation', {'principal': 5000, 'rate_bp': 725, 'months': 36}, {'payment': 78, 'periods': 71, 'final_payment': 58, 'total_interest': 518}], ['control 1', {'principal': 5000, 'rate_bp': 1200, 'months': 12}, {'payment': 222, 'periods': 24, 'final_payment': 187, 'total_interest': 293}], ['control 2', {'principal': 250000, 'rate_bp': 0, 'months': 7}, {'payment': 17857, 'periods': 15, 'final_payment': 2, 'total_interest': 0}], ['control 3', {'principal': 1000000, 'rate_bp': 725, 'months': 7}, {'payment': 73165, 'periods': 14, 'final_payment': 69832, 'total_interest': 20977}], ['control 4', {'principal': 250000, 'rate_bp': 0, 'months': 36}, {'payment': 3472, 'periods': 73, 'final_payment': 16, 'total_interest': 0}], ['control 5', {'principal': 1000000, 'rate_bp': 0, 'months': 36}, {'payment': 13889, 'periods': 72, 'final_payment': 13881, 'total_interest': 0}], ['control 6', {'principal': 5000, 'rate_bp': 0, 'months': 7}, {'payment': 357, 'periods': 15, 'final_payment': 2, 'total_interest': 0}]], [['regression: biweekly payment derivation', {'principal': 100000, 'rate_bp': 1200, 'months': 36}, {'payment': 1661, 'periods': 71, 'final_payment': 1165, 'total_interest': 17435}], ['control 1', {'principal': 250000, 'rate_bp': 725, 'months': 36}, {'payment': 3874, 'periods': 72, 'final_payment': 951, 'total_interest': 26005}], ['control 2', {'principal': 100000, 'rate_bp': 725, 'months': 12}, {'payment': 4332, 'periods': 24, 'final_payment': 3874, 'total_interest': 3510}], ['control 3', {'principal': 100000, 'rate_bp': 0, 'months': 7}, {'payment': 7143, 'periods': 14, 'final_payment': 7141, 'total_interest': 0}], ['control 4', {'principal': 100000, 'rate_bp': 0, 'months': 36}, {'payment': 1389, 'periods': 72, 'final_payment': 1381, 'total_interest': 0}], ['control 5', {'principal': 100000, 'rate_bp': 600, 'months': 36}, {'payment': 1521, 'periods': 72, 'final_payment': 590, 'total_interest': 8581}], ['control 6', {'principal': 1000000, 'rate_bp': 725, 'months': 7}, {'payment': 73165, 'periods': 14, 'final_payment': 69832, 'total_interest': 20977}]], [['regression: biweekly payment derivation', {'principal': 250000, 'rate_bp': 1200, 'months': 7}, {'payment': 18579, 'periods': 14, 'final_payment': 17172, 'total_interest': 8699}], ['control 1', {'principal': 100000, 'rate_bp': 600, 'months': 36}, {'payment': 1521, 'periods': 72, 'final_payment': 590, 'total_interest': 8581}], ['control 2', {'principal': 1000000, 'rate_bp': 725, 'months': 12}, {'payment': 43321, 'periods': 24, 'final_payment': 38698, 'total_interest': 35081}], ['control 3', {'principal': 100000, 'rate_bp': 0, 'months': 36}, {'payment': 1389, 'periods': 72, 'final_payment': 1381, 'total_interest': 0}], ['control 4', {'principal': 5000, 'rate_bp': 600, 'months': 12}, {'payment': 215, 'periods': 24, 'final_payment': 199, 'total_interest': 144}], ['control 5', {'principal': 5000, 'rate_bp': 725, 'months': 60}, {'payment': 50, 'periods': 118, 'final_payment': 21, 'total_interest': 871}], ['control 6', {'principal': 250000, 'rate_bp': 600, 'months': 7}, {'payment': 18216, 'periods': 14, 'final_payment': 17530, 'total_interest': 4338}]], [['regression: biweekly payment derivation', {'principal': 250000, 'rate_bp': 600, 'months': 60}, {'payment': 2417, 'periods': 119, 'final_payment': 764, 'total_interest': 35970}], ['control 1', {'principal': 5000, 'rate_bp': 1200, 'months': 36}, {'payment': 83, 'periods': 71, 'final_payment': 64, 'total_interest': 874}], ['control 2', {'principal': 250000, 'rate_bp': 725, 'months': 60}, {'payment': 2490, 'periods': 118, 'final_payment': 2377, 'total_interest': 43707}], ['control 3', {'principal': 100000, 'rate_bp': 0, 'months': 7}, {'payment': 7143, 'periods': 14, 'final_payment': 7141, 'total_interest': 0}], ['control 4', {'principal': 1000000, 'rate_bp': 1200, 'months': 60}, {'payment': 11122, 'periods': 117, 'final_payment': 4717, 'total_interest': 294869}], ['control 5', {'principal': 5000, 'rate_bp': 1200, 'months': 12}, {'payment': 222, 'periods': 24, 'final_payment': 187, 'total_interest': 293}], ['control 6', {'principal': 1000000, 'rate_bp': 0, 'months': 36}, {'payment': 13889, 'periods': 72, 'final_payment': 13881, 'total_interest': 0}]], [['regression: biweekly payment derivation', {'principal': 5000, 'rate_bp': 0, 'months': 36}, {'payment': 70, 'periods': 72, 'final_payment': 30, 'total_interest': 0}], ['control 1', {'principal': 5000, 'rate_bp': 725, 'months': 60}, {'payment': 50, 'periods': 118, 'final_payment': 21, 'total_interest': 871}], ['control 2', {'principal': 100000, 'rate_bp': 0, 'months': 7}, {'payment': 7143, 'periods': 14, 'final_payment': 7141, 'total_interest': 0}], ['control 3', {'principal': 100000, 'rate_bp': 0, 'months': 36}, {'payment': 1389, 'periods': 72, 'final_payment': 1381, 'total_interest': 0}], ['control 4', {'principal': 100000, 'rate_bp': 1200, 'months': 60}, {'payment': 1112, 'periods': 117, 'final_payment': 503, 'total_interest': 29495}], ['control 5', {'principal': 250000, 'rate_bp': 1200, 'months': 36}, {'payment': 4152, 'periods': 71, 'final_payment': 2947, 'total_interest': 43587}], ['control 6', {'principal': 1000000, 'rate_bp': 725, 'months': 36}, {'payment': 15496, 'periods': 72, 'final_payment': 3794, 'total_interest': 104010}]]]\nfor label, args, expected in fixtures[N-1]:\n    try:\n        actual = solve(args)\n    except Exception as exc:\n        actual = 'raised ' + type(exc).__name__\n    check(label, actual, 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 bounded teaching model with stipulated toy lending rules stated in the contract; money is integer cents and rates are basis points; it makes no claim of conformance to any regulation, servicing standard or product. 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-loan-amortization-schedules-accelerated-biweekly-biweekly-payment-derivation","generated_at":"2026-09-29T14:46:29.151501+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Amortization engines drive borrower statements, payoff quotes and investor remittances; a misplaced rounding step, boundary or ordering rule compounds across hundreds of periods.","root_cause":"Half the monthly payment is truncated.","sha256":"d4e666035c0dc1d1563efba7120bab8efed5370b36460573d80aa9659412a468","title":"Accelerated biweekly schedule: biweekly payment derivation · 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.249,"exit_code":1,"observations":[{"actual":{"final_payment":20,"payment":72,"periods":78,"total_interest":564},"check":"regression: biweekly payment derivation","expected":{"final_payment":58,"payment":78,"periods":71,"total_interest":518},"passed":false},{"actual":{"final_payment":193,"payment":205,"periods":26,"total_interest":318},"check":"control 1","expected":{"final_payment":187,"payment":222,"periods":24,"total_interest":293},"passed":false},{"actual":{"final_payment":2755,"payment":16483,"periods":16,"total_interest":0},"check":"control 2","expected":{"final_payment":2,"payment":17857,"periods":15,"total_interest":0},"passed":false},{"actual":{"final_payment":9610,"payment":67537,"periods":16,"total_interest":22665},"check":"control 3","expected":{"final_payment":69832,"payment":73165,"periods":14,"total_interest":20977},"passed":false},{"actual":{"final_payment":10,"payment":3205,"periods":79,"total_interest":0},"check":"control 4","expected":{"final_payment":16,"payment":3472,"periods":73,"total_interest":0},"passed":false},{"actual":{"final_payment":12783,"payment":12821,"periods":78,"total_interest":0},"check":"control 5","expected":{"final_payment":13881,"payment":13889,"periods":72,"total_interest":0},"passed":false},{"actual":{"final_payment":50,"payment":330,"periods":16,"total_interest":0},"check":"control 6","expected":{"final_payment":2,"payment":357,"periods":15,"total_interest":0},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: biweekly payment derivation\", \"actual\": {\"payment\": 72, \"periods\": 78, \"final_payment\": 20, \"total_interest\": 564}, \"expected\": {\"payment\": 78, \"periods\": 71, \"final_payment\": 58, \"total_interest\": 518}, \"passed\": false}, {\"check\": \"control 1\", \"actual\": {\"payment\": 205, \"periods\": 26, \"final_payment\": 193, \"total_interest\": 318}, \"expected\": {\"payment\": 222, \"periods\": 24, \"final_payment\": 187, \"total_interest\": 293}, \"passed\": false}, {\"check\": \"control 2\", \"actual\": {\"payment\": 16483, \"periods\": 16, \"final_payment\": 2755, \"total_interest\": 0}, \"expected\": {\"payment\": 17857, \"periods\": 15, \"final_payment\": 2, \"total_interest\": 0}, \"passed\": false}, {\"check\": \"control 3\", \"actual\": {\"payment\": 67537, \"periods\": 16, \"final_payment\": 9610, \"total_interest\": 22665}, \"expected\": {\"payment\": 73165, \"periods\": 14, \"final_payment\": 69832, \"total_interest\": 20977}, \"passed\": false}, {\"check\": \"control 4\", \"actual\": {\"payment\": 3205, \"periods\": 79, \"final_payment\": 10, \"total_interest\": 0}, \"expected\": {\"payment\": 3472, \"periods\": 73, \"final_payment\": 16, \"total_interest\": 0}, \"passed\": false}, {\"check\": \"control 5\", \"actual\": {\"payment\": 12821, \"periods\": 78, \"final_payment\": 12783, \"total_interest\": 0}, \"expected\": {\"payment\": 13889, \"periods\": 72, \"final_payment\": 13881, \"total_interest\": 0}, \"passed\": false}, {\"check\": \"control 6\", \"actual\": {\"payment\": 330, \"periods\": 16, \"final_payment\": 50, \"total_interest\": 0}, \"expected\": {\"payment\": 357, \"periods\": 15, \"final_payment\": 2, \"total_interest\": 0}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.903,"exit_code":1,"observations":[{"actual":{"final_payment":58,"payment":77,"periods":72,"total_interest":525},"check":"regression: biweekly payment derivation","expected":{"final_payment":58,"payment":78,"periods":71,"total_interest":518},"passed":false},{"actual":{"final_payment":187,"payment":222,"periods":24,"total_interest":293},"check":"control 1","expected":{"final_payment":187,"payment":222,"periods":24,"total_interest":293},"passed":true},{"actual":{"final_payment":2,"payment":17857,"periods":15,"total_interest":0},"check":"control 2","expected":{"final_payment":2,"payment":17857,"periods":15,"total_interest":0},"passed":true},{"actual":{"final_payment":69832,"payment":73165,"periods":14,"total_interest":20977},"check":"control 3","expected":{"final_payment":69832,"payment":73165,"periods":14,"total_interest":20977},"passed":true},{"actual":{"final_payment":16,"payment":3472,"periods":73,"total_interest":0},"check":"control 4","expected":{"final_payment":16,"payment":3472,"periods":73,"total_interest":0},"passed":true},{"actual":{"final_payment":13881,"payment":13889,"periods":72,"total_interest":0},"check":"control 5","expected":{"final_payment":13881,"payment":13889,"periods":72,"total_interest":0},"passed":true},{"actual":{"final_payment":2,"payment":357,"periods":15,"total_interest":0},"check":"control 6","expected":{"final_payment":2,"payment":357,"periods":15,"total_interest":0},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: biweekly payment derivation\", \"actual\": {\"payment\": 77, \"periods\": 72, \"final_payment\": 58, \"total_interest\": 525}, \"expected\": {\"payment\": 78, \"periods\": 71, \"final_payment\": 58, \"total_interest\": 518}, \"passed\": false}, {\"check\": \"control 1\", \"actual\": {\"payment\": 222, \"periods\": 24, \"final_payment\": 187, \"total_interest\": 293}, \"expected\": {\"payment\": 222, \"periods\": 24, \"final_payment\": 187, \"total_interest\": 293}, \"passed\": true}, {\"check\": \"control 2\", \"actual\": {\"payment\": 17857, \"periods\": 15, \"final_payment\": 2, \"total_interest\": 0}, \"expected\": {\"payment\": 17857, \"periods\": 15, \"final_payment\": 2, \"total_interest\": 0}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"payment\": 73165, \"periods\": 14, \"final_payment\": 69832, \"total_interest\": 20977}, \"expected\": {\"payment\": 73165, \"periods\": 14, \"final_payment\": 69832, \"total_interest\": 20977}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"payment\": 3472, \"periods\": 73, \"final_payment\": 16, \"total_interest\": 0}, \"expected\": {\"payment\": 3472, \"periods\": 73, \"final_payment\": 16, \"total_interest\": 0}, \"passed\": true}, {\"check\": \"control 5\", \"actual\": {\"payment\": 13889, \"periods\": 72, \"final_payment\": 13881, \"total_interest\": 0}, \"expected\": {\"payment\": 13889, \"periods\": 72, \"final_payment\": 13881, \"total_interest\": 0}, \"passed\": true}, {\"check\": \"control 6\", \"actual\": {\"payment\": 357, \"periods\": 15, \"final_payment\": 2, \"total_interest\": 0}, \"expected\": {\"payment\": 357, \"periods\": 15, \"final_payment\": 2, \"total_interest\": 0}, \"passed\": true}], \"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."}}