{"abstract":"The balloon payment is inflated by a full regular payment.","category":"Loan amortization schedules","checks":7,"contract":"x = {'principal', 'rate_bp', 'amort_months', 'term_months'}. The level payment amortizes over amort_months (exact annuity, half-up). Payments run to the earlier of term and amortization end; the last one pays balance + interest (the balloon). Monthly interest is round_half_up(balance*bp/120000). Return {'payment', 'final_payment', 'balloon_excess': final - payment, 'total_interest'}.","contract_signature":"x","evaluation_group":"w2-loan-amortization-schedules-balloon-maturity","failed_approach":"Taking the larger of balance and payment omits interest.","family":"w2-loan-amortization-schedules-balloon-maturity-balloon-payment-composition","id":"FA-58581","implementations":{"attempt":{"sha256":"75b61a74f8953ff4fc4928d9ada18594fa54ea2239ae3fe0df91b3cb4aac35f5","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    pay = level(P, x['amort_months'])\n    last_k = min(x['term_months'], x['amort_months'])\n    bal = P\n    total = 0\n    final = 0\n    for k in range(1, last_k + 1):\n        interest = rnd(bal * bp, 120000)\n        total += interest\n        if k == last_k:\n            final = max(bal, pay)\n        else:\n            bal -= pay - interest\n    return {'payment': pay, 'final_payment': final, 'balloon_excess': final - pay, 'total_interest': total}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: balloon payment composition', {'principal': 100000, 'rate_bp': 0, 'amort_months': 5, 'term_months': 3}, {'payment': 20000, 'final_payment': 60000, 'balloon_excess': 40000, 'total_interest': 0}], ['regression: balloon payment composition, partial-repair probe', {'principal': 55555, 'rate_bp': 600, 'amort_months': 12, 'term_months': 84}, {'payment': 4781, 'final_payment': 4786, 'balloon_excess': 5, 'total_interest': 1822}], ['sample 1', {'principal': 1000000, 'rate_bp': 600, 'amort_months': 360, 'term_months': 60}, {'payment': 5996, 'final_payment': 936506, 'balloon_excess': 930510, 'total_interest': 290270}], ['sample 2', {'principal': 1000000, 'rate_bp': 600, 'amort_months': 12, 'term_months': 84}, {'payment': 86066, 'final_payment': 86070, 'balloon_excess': 4, 'total_interest': 32796}], ['sample 3', {'principal': 3000000, 'rate_bp': 600, 'amort_months': 5, 'term_months': 84}, {'payment': 609030, 'final_payment': 609030, 'balloon_excess': 0, 'total_interest': 45150}], ['sample 4', {'principal': 55555, 'rate_bp': 725, 'amort_months': 60, 'term_months': 84}, {'payment': 1107, 'final_payment': 1081, 'balloon_excess': -26, 'total_interest': 10839}], ['sample 5', {'principal': 55555, 'rate_bp': 0, 'amort_months': 360, 'term_months': 5}, {'payment': 154, 'final_payment': 54939, 'balloon_excess': 54785, 'total_interest': 0}]], [['regression: balloon payment composition', {'principal': 100000, 'rate_bp': 0, 'amort_months': 12, 'term_months': 5}, {'payment': 8333, 'final_payment': 66668, 'balloon_excess': 58335, 'total_interest': 0}], ['regression: balloon payment composition, partial-repair probe', {'principal': 100000, 'rate_bp': 725, 'amort_months': 360, 'term_months': 5}, {'payment': 682, 'final_payment': 100288, 'balloon_excess': 99606, 'total_interest': 3016}], ['sample 1', {'principal': 100000, 'rate_bp': 600, 'amort_months': 5, 'term_months': 5}, {'payment': 20301, 'final_payment': 20300, 'balloon_excess': -1, 'total_interest': 1504}], ['sample 2', {'principal': 100000, 'rate_bp': 1200, 'amort_months': 60, 'term_months': 60}, {'payment': 2224, 'final_payment': 2262, 'balloon_excess': 38, 'total_interest': 33478}], ['sample 3', {'principal': 3000000, 'rate_bp': 1200, 'amort_months': 360, 'term_months': 84}, {'payment': 30858, 'final_payment': 2918745, 'balloon_excess': 2887887, 'total_interest': 2479959}], ['sample 4', {'principal': 3000000, 'rate_bp': 0, 'amort_months': 60, 'term_months': 12}, {'payment': 50000, 'final_payment': 2450000, 'balloon_excess': 2400000, 'total_interest': 0}], ['sample 5', {'principal': 100000, 'rate_bp': 1200, 'amort_months': 60, 'term_months': 5}, {'payment': 2224, 'final_payment': 95980, 'balloon_excess': 93756, 'total_interest': 4876}]], [['regression: balloon payment composition', {'principal': 100000, 'rate_bp': 0, 'amort_months': 5, 'term_months': 3}, {'payment': 20000, 'final_payment': 60000, 'balloon_excess': 40000, 'total_interest': 0}], ['regression: balloon payment composition, partial-repair probe', {'principal': 55555, 'rate_bp': 600, 'amort_months': 5, 'term_months': 3}, {'payment': 11278, 'final_payment': 33668, 'balloon_excess': 22390, 'total_interest': 669}], ['sample 1', {'principal': 1000000, 'rate_bp': 1200, 'amort_months': 5, 'term_months': 60}, {'payment': 206040, 'final_payment': 206040, 'balloon_excess': 0, 'total_interest': 30200}], ['sample 2', {'principal': 100000, 'rate_bp': 0, 'amort_months': 60, 'term_months': 5}, {'payment': 1667, 'final_payment': 93332, 'balloon_excess': 91665, 'total_interest': 0}], ['sample 3', {'principal': 55555, 'rate_bp': 600, 'amort_months': 60, 'term_months': 84}, {'payment': 1074, 'final_payment': 1074, 'balloon_excess': 0, 'total_interest': 8885}], ['sample 4', {'principal': 100000, 'rate_bp': 600, 'amort_months': 12, 'term_months': 3}, {'payment': 8607, 'final_payment': 84164, 'balloon_excess': 75557, 'total_interest': 1378}], ['sample 5', {'principal': 100000, 'rate_bp': 1200, 'amort_months': 12, 'term_months': 12}, {'payment': 8885, 'final_payment': 8884, 'balloon_excess': -1, 'total_interest': 6619}]], [['regression: balloon payment composition', {'principal': 1000000, 'rate_bp': 725, 'amort_months': 360, 'term_months': 12}, {'payment': 6822, 'final_payment': 997140, 'balloon_excess': 990318, 'total_interest': 72182}], ['sample 1', {'principal': 1000000, 'rate_bp': 1200, 'amort_months': 360, 'term_months': 12}, {'payment': 10286, 'final_payment': 1006656, 'balloon_excess': 996370, 'total_interest': 119802}], ['sample 2', {'principal': 55555, 'rate_bp': 0, 'amort_months': 5, 'term_months': 84}, {'payment': 11111, 'final_payment': 11111, 'balloon_excess': 0, 'total_interest': 0}], ['sample 3', {'principal': 55555, 'rate_bp': 725, 'amort_months': 360, 'term_months': 5}, {'payment': 379, 'final_payment': 55715, 'balloon_excess': 55336, 'total_interest': 1676}], ['sample 4', {'principal': 1000000, 'rate_bp': 0, 'amort_months': 60, 'term_months': 3}, {'payment': 16667, 'final_payment': 966666, 'balloon_excess': 949999, 'total_interest': 0}], ['sample 5', {'principal': 3000000, 'rate_bp': 0, 'amort_months': 60, 'term_months': 84}, {'payment': 50000, 'final_payment': 50000, 'balloon_excess': 0, 'total_interest': 0}], ['sample 6', {'principal': 1000000, 'rate_bp': 600, 'amort_months': 5, 'term_months': 5}, {'payment': 203010, 'final_payment': 203010, 'balloon_excess': 0, 'total_interest': 15050}]], [['regression: balloon payment composition', {'principal': 3000000, 'rate_bp': 1200, 'amort_months': 60, 'term_months': 12}, {'payment': 66733, 'final_payment': 2600867, 'balloon_excess': 2534134, 'total_interest': 334930}], ['sample 1', {'principal': 55555, 'rate_bp': 725, 'amort_months': 12, 'term_months': 3}, {'payment': 4813, 'final_payment': 46855, 'balloon_excess': 42042, 'total_interest': 926}], ['sample 2', {'principal': 100000, 'rate_bp': 600, 'amort_months': 60, 'term_months': 60}, {'payment': 1933, 'final_payment': 1952, 'balloon_excess': 19, 'total_interest': 15999}], ['sample 3', {'principal': 55555, 'rate_bp': 1200, 'amort_months': 12, 'term_months': 60}, {'payment': 4936, 'final_payment': 4938, 'balloon_excess': 2, 'total_interest': 3679}], ['sample 4', {'principal': 55555, 'rate_bp': 0, 'amort_months': 60, 'term_months': 60}, {'payment': 926, 'final_payment': 921, 'balloon_excess': -5, 'total_interest': 0}], ['sample 5', {'principal': 1000000, 'rate_bp': 725, 'amort_months': 360, 'term_months': 60}, {'payment': 6822, 'final_payment': 950593, 'balloon_excess': 943771, 'total_interest': 353091}], ['sample 6', {'principal': 100000, 'rate_bp': 1200, 'amort_months': 12, 'term_months': 12}, {'payment': 8885, 'final_payment': 8884, 'balloon_excess': -1, 'total_interest': 6619}]]]\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":"1d1df2b619da1f5d848bbec3344a60c70e09b6673945f8fb5cd5041e055ad7bf","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    pay = level(P, x['amort_months'])\n    last_k = min(x['term_months'], x['amort_months'])\n    bal = P\n    total = 0\n    final = 0\n    for k in range(1, last_k + 1):\n        interest = rnd(bal * bp, 120000)\n        total += interest\n        if k == last_k:\n            final = bal + pay\n        else:\n            bal -= pay - interest\n    return {'payment': pay, 'final_payment': final, 'balloon_excess': final - pay, 'total_interest': total}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: balloon payment composition', {'principal': 100000, 'rate_bp': 0, 'amort_months': 5, 'term_months': 3}, {'payment': 20000, 'final_payment': 60000, 'balloon_excess': 40000, 'total_interest': 0}], ['regression: balloon payment composition, partial-repair probe', {'principal': 55555, 'rate_bp': 600, 'amort_months': 12, 'term_months': 84}, {'payment': 4781, 'final_payment': 4786, 'balloon_excess': 5, 'total_interest': 1822}], ['sample 1', {'principal': 1000000, 'rate_bp': 600, 'amort_months': 360, 'term_months': 60}, {'payment': 5996, 'final_payment': 936506, 'balloon_excess': 930510, 'total_interest': 290270}], ['sample 2', {'principal': 1000000, 'rate_bp': 600, 'amort_months': 12, 'term_months': 84}, {'payment': 86066, 'final_payment': 86070, 'balloon_excess': 4, 'total_interest': 32796}], ['sample 3', {'principal': 3000000, 'rate_bp': 600, 'amort_months': 5, 'term_months': 84}, {'payment': 609030, 'final_payment': 609030, 'balloon_excess': 0, 'total_interest': 45150}], ['sample 4', {'principal': 55555, 'rate_bp': 725, 'amort_months': 60, 'term_months': 84}, {'payment': 1107, 'final_payment': 1081, 'balloon_excess': -26, 'total_interest': 10839}], ['sample 5', {'principal': 55555, 'rate_bp': 0, 'amort_months': 360, 'term_months': 5}, {'payment': 154, 'final_payment': 54939, 'balloon_excess': 54785, 'total_interest': 0}]], [['regression: balloon payment composition', {'principal': 100000, 'rate_bp': 0, 'amort_months': 12, 'term_months': 5}, {'payment': 8333, 'final_payment': 66668, 'balloon_excess': 58335, 'total_interest': 0}], ['regression: balloon payment composition, partial-repair probe', {'principal': 100000, 'rate_bp': 725, 'amort_months': 360, 'term_months': 5}, {'payment': 682, 'final_payment': 100288, 'balloon_excess': 99606, 'total_interest': 3016}], ['sample 1', {'principal': 100000, 'rate_bp': 600, 'amort_months': 5, 'term_months': 5}, {'payment': 20301, 'final_payment': 20300, 'balloon_excess': -1, 'total_interest': 1504}], ['sample 2', {'principal': 100000, 'rate_bp': 1200, 'amort_months': 60, 'term_months': 60}, {'payment': 2224, 'final_payment': 2262, 'balloon_excess': 38, 'total_interest': 33478}], ['sample 3', {'principal': 3000000, 'rate_bp': 1200, 'amort_months': 360, 'term_months': 84}, {'payment': 30858, 'final_payment': 2918745, 'balloon_excess': 2887887, 'total_interest': 2479959}], ['sample 4', {'principal': 3000000, 'rate_bp': 0, 'amort_months': 60, 'term_months': 12}, {'payment': 50000, 'final_payment': 2450000, 'balloon_excess': 2400000, 'total_interest': 0}], ['sample 5', {'principal': 100000, 'rate_bp': 1200, 'amort_months': 60, 'term_months': 5}, {'payment': 2224, 'final_payment': 95980, 'balloon_excess': 93756, 'total_interest': 4876}]], [['regression: balloon payment composition', {'principal': 100000, 'rate_bp': 0, 'amort_months': 5, 'term_months': 3}, {'payment': 20000, 'final_payment': 60000, 'balloon_excess': 40000, 'total_interest': 0}], ['regression: balloon payment composition, partial-repair probe', {'principal': 55555, 'rate_bp': 600, 'amort_months': 5, 'term_months': 3}, {'payment': 11278, 'final_payment': 33668, 'balloon_excess': 22390, 'total_interest': 669}], ['sample 1', {'principal': 1000000, 'rate_bp': 1200, 'amort_months': 5, 'term_months': 60}, {'payment': 206040, 'final_payment': 206040, 'balloon_excess': 0, 'total_interest': 30200}], ['sample 2', {'principal': 100000, 'rate_bp': 0, 'amort_months': 60, 'term_months': 5}, {'payment': 1667, 'final_payment': 93332, 'balloon_excess': 91665, 'total_interest': 0}], ['sample 3', {'principal': 55555, 'rate_bp': 600, 'amort_months': 60, 'term_months': 84}, {'payment': 1074, 'final_payment': 1074, 'balloon_excess': 0, 'total_interest': 8885}], ['sample 4', {'principal': 100000, 'rate_bp': 600, 'amort_months': 12, 'term_months': 3}, {'payment': 8607, 'final_payment': 84164, 'balloon_excess': 75557, 'total_interest': 1378}], ['sample 5', {'principal': 100000, 'rate_bp': 1200, 'amort_months': 12, 'term_months': 12}, {'payment': 8885, 'final_payment': 8884, 'balloon_excess': -1, 'total_interest': 6619}]], [['regression: balloon payment composition', {'principal': 1000000, 'rate_bp': 725, 'amort_months': 360, 'term_months': 12}, {'payment': 6822, 'final_payment': 997140, 'balloon_excess': 990318, 'total_interest': 72182}], ['sample 1', {'principal': 1000000, 'rate_bp': 1200, 'amort_months': 360, 'term_months': 12}, {'payment': 10286, 'final_payment': 1006656, 'balloon_excess': 996370, 'total_interest': 119802}], ['sample 2', {'principal': 55555, 'rate_bp': 0, 'amort_months': 5, 'term_months': 84}, {'payment': 11111, 'final_payment': 11111, 'balloon_excess': 0, 'total_interest': 0}], ['sample 3', {'principal': 55555, 'rate_bp': 725, 'amort_months': 360, 'term_months': 5}, {'payment': 379, 'final_payment': 55715, 'balloon_excess': 55336, 'total_interest': 1676}], ['sample 4', {'principal': 1000000, 'rate_bp': 0, 'amort_months': 60, 'term_months': 3}, {'payment': 16667, 'final_payment': 966666, 'balloon_excess': 949999, 'total_interest': 0}], ['sample 5', {'principal': 3000000, 'rate_bp': 0, 'amort_months': 60, 'term_months': 84}, {'payment': 50000, 'final_payment': 50000, 'balloon_excess': 0, 'total_interest': 0}], ['sample 6', {'principal': 1000000, 'rate_bp': 600, 'amort_months': 5, 'term_months': 5}, {'payment': 203010, 'final_payment': 203010, 'balloon_excess': 0, 'total_interest': 15050}]], [['regression: balloon payment composition', {'principal': 3000000, 'rate_bp': 1200, 'amort_months': 60, 'term_months': 12}, {'payment': 66733, 'final_payment': 2600867, 'balloon_excess': 2534134, 'total_interest': 334930}], ['sample 1', {'principal': 55555, 'rate_bp': 725, 'amort_months': 12, 'term_months': 3}, {'payment': 4813, 'final_payment': 46855, 'balloon_excess': 42042, 'total_interest': 926}], ['sample 2', {'principal': 100000, 'rate_bp': 600, 'amort_months': 60, 'term_months': 60}, {'payment': 1933, 'final_payment': 1952, 'balloon_excess': 19, 'total_interest': 15999}], ['sample 3', {'principal': 55555, 'rate_bp': 1200, 'amort_months': 12, 'term_months': 60}, {'payment': 4936, 'final_payment': 4938, 'balloon_excess': 2, 'total_interest': 3679}], ['sample 4', {'principal': 55555, 'rate_bp': 0, 'amort_months': 60, 'term_months': 60}, {'payment': 926, 'final_payment': 921, 'balloon_excess': -5, 'total_interest': 0}], ['sample 5', {'principal': 1000000, 'rate_bp': 725, 'amort_months': 360, 'term_months': 60}, {'payment': 6822, 'final_payment': 950593, 'balloon_excess': 943771, 'total_interest': 353091}], ['sample 6', {'principal': 100000, 'rate_bp': 1200, 'amort_months': 12, 'term_months': 12}, {'payment': 8885, 'final_payment': 8884, 'balloon_excess': -1, 'total_interest': 6619}]]]\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-balloon-maturity-balloon-payment-composition","generated_at":"2026-09-29T14:46:28.067429+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":"The balloon adds the regular payment to the remaining balance.","sha256":"2b5baa7f6c3706c4173dc854bd9547eff4a9c8da3bcc8dababfc2d74880c5933","title":"Balloon maturity payment: balloon payment composition · 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":42.999,"exit_code":1,"observations":[{"actual":{"balloon_excess":40000,"final_payment":60000,"payment":20000,"total_interest":0},"check":"regression: balloon payment composition","expected":{"balloon_excess":40000,"final_payment":60000,"payment":20000,"total_interest":0},"passed":true},{"actual":{"balloon_excess":0,"final_payment":4781,"payment":4781,"total_interest":1822},"check":"regression: balloon payment composition, partial-repair probe","expected":{"balloon_excess":5,"final_payment":4786,"payment":4781,"total_interest":1822},"passed":false},{"actual":{"balloon_excess":925851,"final_payment":931847,"payment":5996,"total_interest":290270},"check":"sample 1","expected":{"balloon_excess":930510,"final_payment":936506,"payment":5996,"total_interest":290270},"passed":false},{"actual":{"balloon_excess":0,"final_payment":86066,"payment":86066,"total_interest":32796},"check":"sample 2","expected":{"balloon_excess":4,"final_payment":86070,"payment":86066,"total_interest":32796},"passed":false},{"actual":{"balloon_excess":0,"final_payment":609030,"payment":609030,"total_interest":45150},"check":"sample 3","expected":{"balloon_excess":0,"final_payment":609030,"payment":609030,"total_interest":45150},"passed":true},{"actual":{"balloon_excess":0,"final_payment":1107,"payment":1107,"total_interest":10839},"check":"sample 4","expected":{"balloon_excess":-26,"final_payment":1081,"payment":1107,"total_interest":10839},"passed":false},{"actual":{"balloon_excess":54785,"final_payment":54939,"payment":154,"total_interest":0},"check":"sample 5","expected":{"balloon_excess":54785,"final_payment":54939,"payment":154,"total_interest":0},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: balloon payment composition\", \"actual\": {\"payment\": 20000, \"final_payment\": 60000, \"balloon_excess\": 40000, \"total_interest\": 0}, \"expected\": {\"payment\": 20000, \"final_payment\": 60000, \"balloon_excess\": 40000, \"total_interest\": 0}, \"passed\": true}, {\"check\": \"regression: balloon payment composition, partial-repair probe\", \"actual\": {\"payment\": 4781, \"final_payment\": 4781, \"balloon_excess\": 0, \"total_interest\": 1822}, \"expected\": {\"payment\": 4781, \"final_payment\": 4786, \"balloon_excess\": 5, \"total_interest\": 1822}, \"passed\": false}, {\"check\": \"sample 1\", \"actual\": {\"payment\": 5996, \"final_payment\": 931847, \"balloon_excess\": 925851, \"total_interest\": 290270}, \"expected\": {\"payment\": 5996, \"final_payment\": 936506, \"balloon_excess\": 930510, \"total_interest\": 290270}, \"passed\": false}, {\"check\": \"sample 2\", \"actual\": {\"payment\": 86066, \"final_payment\": 86066, \"balloon_excess\": 0, \"total_interest\": 32796}, \"expected\": {\"payment\": 86066, \"final_payment\": 86070, \"balloon_excess\": 4, \"total_interest\": 32796}, \"passed\": false}, {\"check\": \"sample 3\", \"actual\": {\"payment\": 609030, \"final_payment\": 609030, \"balloon_excess\": 0, \"total_interest\": 45150}, \"expected\": {\"payment\": 609030, \"final_payment\": 609030, \"balloon_excess\": 0, \"total_interest\": 45150}, \"passed\": true}, {\"check\": \"sample 4\", \"actual\": {\"payment\": 1107, \"final_payment\": 1107, \"balloon_excess\": 0, \"total_interest\": 10839}, \"expected\": {\"payment\": 1107, \"final_payment\": 1081, \"balloon_excess\": -26, \"total_interest\": 10839}, \"passed\": false}, {\"check\": \"sample 5\", \"actual\": {\"payment\": 154, \"final_payment\": 54939, \"balloon_excess\": 54785, \"total_interest\": 0}, \"expected\": {\"payment\": 154, \"final_payment\": 54939, \"balloon_excess\": 54785, \"total_interest\": 0}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.829,"exit_code":1,"observations":[{"actual":{"balloon_excess":60000,"final_payment":80000,"payment":20000,"total_interest":0},"check":"regression: balloon payment composition","expected":{"balloon_excess":40000,"final_payment":60000,"payment":20000,"total_interest":0},"passed":false},{"actual":{"balloon_excess":4762,"final_payment":9543,"payment":4781,"total_interest":1822},"check":"regression: balloon payment composition, partial-repair probe","expected":{"balloon_excess":5,"final_payment":4786,"payment":4781,"total_interest":1822},"passed":false},{"actual":{"balloon_excess":931847,"final_payment":937843,"payment":5996,"total_interest":290270},"check":"sample 1","expected":{"balloon_excess":930510,"final_payment":936506,"payment":5996,"total_interest":290270},"passed":false},{"actual":{"balloon_excess":85642,"final_payment":171708,"payment":86066,"total_interest":32796},"check":"sample 2","expected":{"balloon_excess":4,"final_payment":86070,"payment":86066,"total_interest":32796},"passed":false},{"actual":{"balloon_excess":606000,"final_payment":1215030,"payment":609030,"total_interest":45150},"check":"sample 3","expected":{"balloon_excess":0,"final_payment":609030,"payment":609030,"total_interest":45150},"passed":false},{"actual":{"balloon_excess":1075,"final_payment":2182,"payment":1107,"total_interest":10839},"check":"sample 4","expected":{"balloon_excess":-26,"final_payment":1081,"payment":1107,"total_interest":10839},"passed":false},{"actual":{"balloon_excess":54939,"final_payment":55093,"payment":154,"total_interest":0},"check":"sample 5","expected":{"balloon_excess":54785,"final_payment":54939,"payment":154,"total_interest":0},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: balloon payment composition\", \"actual\": {\"payment\": 20000, \"final_payment\": 80000, \"balloon_excess\": 60000, \"total_interest\": 0}, \"expected\": {\"payment\": 20000, \"final_payment\": 60000, \"balloon_excess\": 40000, \"total_interest\": 0}, \"passed\": false}, {\"check\": \"regression: balloon payment composition, partial-repair probe\", \"actual\": {\"payment\": 4781, \"final_payment\": 9543, \"balloon_excess\": 4762, \"total_interest\": 1822}, \"expected\": {\"payment\": 4781, \"final_payment\": 4786, \"balloon_excess\": 5, \"total_interest\": 1822}, \"passed\": false}, {\"check\": \"sample 1\", \"actual\": {\"payment\": 5996, \"final_payment\": 937843, \"balloon_excess\": 931847, \"total_interest\": 290270}, \"expected\": {\"payment\": 5996, \"final_payment\": 936506, \"balloon_excess\": 930510, \"total_interest\": 290270}, \"passed\": false}, {\"check\": \"sample 2\", \"actual\": {\"payment\": 86066, \"final_payment\": 171708, \"balloon_excess\": 85642, \"total_interest\": 32796}, \"expected\": {\"payment\": 86066, \"final_payment\": 86070, \"balloon_excess\": 4, \"total_interest\": 32796}, \"passed\": false}, {\"check\": \"sample 3\", \"actual\": {\"payment\": 609030, \"final_payment\": 1215030, \"balloon_excess\": 606000, \"total_interest\": 45150}, \"expected\": {\"payment\": 609030, \"final_payment\": 609030, \"balloon_excess\": 0, \"total_interest\": 45150}, \"passed\": false}, {\"check\": \"sample 4\", \"actual\": {\"payment\": 1107, \"final_payment\": 2182, \"balloon_excess\": 1075, \"total_interest\": 10839}, \"expected\": {\"payment\": 1107, \"final_payment\": 1081, \"balloon_excess\": -26, \"total_interest\": 10839}, \"passed\": false}, {\"check\": \"sample 5\", \"actual\": {\"payment\": 154, \"final_payment\": 55093, \"balloon_excess\": 54939, \"total_interest\": 0}, \"expected\": {\"payment\": 154, \"final_payment\": 54939, \"balloon_excess\": 54785, \"total_interest\": 0}, \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}