{"abstract":"The minimum payment due exceeds the total owed on small balances.","category":"Loan amortization schedules","checks":7,"contract":"x = {'rate_bp', 'basis', 'start_balance', 'cycle_days', 'events': [[day 1..cycle_days, signed amount]], 'min_bp', 'min_floor'}. Events take effect at the start of their day. Each day adds max(balance, 0) to the accumulator; interest = round_half_up(acc*bp/(10000*basis)) once per cycle. owed = end balance + interest. Minimum = 0 if owed <= 0 else min(owed, max(min_floor, interest + round_half_up(max(end balance, 0)*min_bp/10000))). Return {'interest', 'balance': owed, 'minimum', 'adb': acc // cycle_days}.","evaluation_group":"w2-loan-amortization-schedules-credit-line-daily-balance","failed_approach":"Capping at the balance without interest leaves the cycle interest unpaid.","family":"w2-loan-amortization-schedules-credit-line-daily-balance-minimum-payment-cap","id":"FA-58801","implementations":{"attempt":{"sha256":"c288c1264b84cc0704a97535dbfbf84d9233a22416343b874563a58ce3ddc53a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\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    bal = x['start_balance']\n    ev = sorted(x['events'])\n    i = 0\n    acc = 0\n    for day in range(1, x['cycle_days'] + 1):\n        while i < len(ev) and ev[i][0] == day:\n            bal += ev[i][1]\n            i += 1\n        acc += max(bal, 0)\n    interest = rnd(acc * x['rate_bp'], 10000 * x['basis'])\n    owed = bal + interest\n    if owed <= 0:\n        minimum = 0\n    else:\n        minimum = min(bal, max(x['min_floor'], interest + rnd(max(bal, 0) * x['min_bp'], 10000)))\n    return {'interest': interest, 'balance': owed, 'minimum': minimum, 'adb': acc // x['cycle_days']}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: minimum payment cap', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 30, 'events': [[12, 5000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 22, 'balance': 5022, 'minimum': 5022, 'adb': 3166}], ['control 1', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 31, 'events': [[4, 5000], [24, -20000], [10, 10000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 5129, 'balance': 1000129, 'minimum': 15079, 'adb': 1006451}], ['control 2', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[3, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 1447, 'balance': 151447, 'minimum': 10000, 'adb': 146666}], ['control 3', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 30, 'events': [[6, -80000], [30, -80000], [3, 10000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 10, 'balance': -149990, 'minimum': 0, 'adb': 1000}], ['control 4', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [], 'min_bp': 150, 'min_floor': 2500}, {'interest': 0, 'balance': 0, 'minimum': 0, 'adb': 0}], ['control 5', {'rate_bp': 850, 'basis': 365, 'start_balance': 30000, 'cycle_days': 28, 'events': [[27, 10000], [8, 50000], [10, -80000], [12, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 289, 'balance': 60289, 'minimum': 10000, 'adb': 44285}], ['control 6', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[9, 10000], [16, 10000], [22, -80000], [9, 10000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 105, 'balance': -49895, 'minimum': 0, 'adb': 11428}]], [['regression: minimum payment cap', {'rate_bp': 1200, 'basis': 365, 'start_balance': 30000, 'cycle_days': 31, 'events': [[30, -80000], [4, 50000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 713, 'balance': 713, 'minimum': 713, 'adb': 70000}], ['control 1', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 28, 'events': [[1, 50000], [6, 5000], [24, 10000], [18, -80000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 1146, 'balance': 86146, 'minimum': 2500, 'adb': 124464}], ['control 2', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 31, 'events': [[25, 10000], [7, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 5313, 'balance': 1065313, 'minimum': 15913, 'adb': 1042580}], ['control 3', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 30, 'events': [[25, 10000], [30, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 12, 'balance': -9988, 'minimum': 0, 'adb': 1666}], ['control 4', {'rate_bp': 1200, 'basis': 365, 'start_balance': 30000, 'cycle_days': 28, 'events': [[18, 10000], [3, -80000], [4, 5000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 20, 'balance': -34980, 'minimum': 0, 'adb': 2142}], ['control 5', {'rate_bp': 850, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[6, 50000], [1, -80000], [24, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 540, 'balance': 120540, 'minimum': 10000, 'adb': 74838}], ['control 6', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 28, 'events': [[24, 50000], [22, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 957, 'balance': 130957, 'minimum': 10000, 'adb': 103928}]], [['regression: minimum payment cap', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[3, 10000], [9, -80000], [6, 50000], [1, -80000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 61, 'balance': 61, 'minimum': 61, 'adb': 12333}], ['control 1', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[8, 5000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 4620, 'balance': 1009620, 'minimum': 14670, 'adb': 1003750}], ['control 2', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[3, 5000], [20, 5000], [25, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 44, 'balance': -9956, 'minimum': 0, 'adb': 4821}], ['control 3', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[20, 5000], [17, 10000], [26, -20000], [10, -20000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 440, 'balance': 75440, 'minimum': 2500, 'adb': 89166}], ['control 4', {'rate_bp': 850, 'basis': 365, 'start_balance': 30000, 'cycle_days': 30, 'events': [[22, -80000], [1, -80000], [8, -20000], [6, -80000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 0, 'balance': -230000, 'minimum': 0, 'adb': 0}], ['control 5', {'rate_bp': 1200, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 30, 'events': [[29, 5000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 9866, 'balance': 1014866, 'minimum': 24941, 'adb': 1000333}], ['control 6', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[5, -80000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 0, 'balance': -80000, 'minimum': 0, 'adb': 0}]], [['regression: minimum payment cap', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[22, -80000], [2, -20000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 279, 'balance': 279, 'minimum': 279, 'adb': 56666}], ['control 1', {'rate_bp': 850, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[20, 50000], [29, -80000], [30, -80000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 773, 'balance': -9227, 'minimum': 0, 'adb': 110666}], ['control 2', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[23, 50000], [7, 10000], [8, 10000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 4723, 'balance': 1074723, 'minimum': 20773, 'adb': 1026071}], ['control 3', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[22, 5000], [2, 50000], [3, -80000], [3, 10000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 431, 'balance': 85431, 'minimum': 2500, 'adb': 84516}], ['control 4', {'rate_bp': 600, 'basis': 365, 'start_balance': 30000, 'cycle_days': 28, 'events': [], 'min_bp': 150, 'min_floor': 2500}, {'interest': 138, 'balance': 30138, 'minimum': 2500, 'adb': 30000}], ['control 5', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[6, -20000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 4527, 'balance': 984527, 'minimum': 19227, 'adb': 983571}], ['control 6', {'rate_bp': 1200, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 31, 'events': [], 'min_bp': 100, 'min_floor': 10000}, {'interest': 10192, 'balance': 1010192, 'minimum': 20192, 'adb': 1000000}]], [['regression: minimum payment cap', {'rate_bp': 1200, 'basis': 365, 'start_balance': 30000, 'cycle_days': 31, 'events': [[26, -20000], [20, -20000], [31, 10000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 207, 'balance': 207, 'minimum': 207, 'adb': 20322}], ['control 1', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[21, 10000], [25, -80000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 4563, 'balance': 934563, 'minimum': 13863, 'adb': 991428}], ['control 2', {'rate_bp': 600, 'basis': 365, 'start_balance': 0, 'cycle_days': 31, 'events': [[15, 50000], [8, -80000], [21, 5000], [31, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 0, 'balance': -45000, 'minimum': 0, 'adb': 0}], ['control 3', {'rate_bp': 1200, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 30, 'events': [[28, 50000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 9912, 'balance': 1059912, 'minimum': 25662, 'adb': 1005000}], ['control 4', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[5, -80000], [22, 5000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 0, 'balance': -75000, 'minimum': 0, 'adb': 0}], ['control 5', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[31, -20000], [27, -20000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 980, 'balance': 60980, 'minimum': 2500, 'adb': 96129}], ['control 6', {'rate_bp': 850, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[15, 10000], [15, -80000], [4, 10000], [10, -20000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 408, 'balance': 20408, 'minimum': 2500, 'adb': 56451}]]]\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":"2e44e5d6097ff3b1f236a40cd95bf81b48cb00e82c76fc795b7e41fe79b2c1af","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\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    bal = x['start_balance']\n    ev = sorted(x['events'])\n    i = 0\n    acc = 0\n    for day in range(1, x['cycle_days'] + 1):\n        while i < len(ev) and ev[i][0] == day:\n            bal += ev[i][1]\n            i += 1\n        acc += max(bal, 0)\n    interest = rnd(acc * x['rate_bp'], 10000 * x['basis'])\n    owed = bal + interest\n    if owed <= 0:\n        minimum = 0\n    else:\n        minimum = (max(x['min_floor'], interest + rnd(max(bal, 0) * x['min_bp'], 10000)))\n    return {'interest': interest, 'balance': owed, 'minimum': minimum, 'adb': acc // x['cycle_days']}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: minimum payment cap', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 30, 'events': [[12, 5000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 22, 'balance': 5022, 'minimum': 5022, 'adb': 3166}], ['control 1', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 31, 'events': [[4, 5000], [24, -20000], [10, 10000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 5129, 'balance': 1000129, 'minimum': 15079, 'adb': 1006451}], ['control 2', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[3, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 1447, 'balance': 151447, 'minimum': 10000, 'adb': 146666}], ['control 3', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 30, 'events': [[6, -80000], [30, -80000], [3, 10000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 10, 'balance': -149990, 'minimum': 0, 'adb': 1000}], ['control 4', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [], 'min_bp': 150, 'min_floor': 2500}, {'interest': 0, 'balance': 0, 'minimum': 0, 'adb': 0}], ['control 5', {'rate_bp': 850, 'basis': 365, 'start_balance': 30000, 'cycle_days': 28, 'events': [[27, 10000], [8, 50000], [10, -80000], [12, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 289, 'balance': 60289, 'minimum': 10000, 'adb': 44285}], ['control 6', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[9, 10000], [16, 10000], [22, -80000], [9, 10000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 105, 'balance': -49895, 'minimum': 0, 'adb': 11428}]], [['regression: minimum payment cap', {'rate_bp': 1200, 'basis': 365, 'start_balance': 30000, 'cycle_days': 31, 'events': [[30, -80000], [4, 50000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 713, 'balance': 713, 'minimum': 713, 'adb': 70000}], ['control 1', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 28, 'events': [[1, 50000], [6, 5000], [24, 10000], [18, -80000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 1146, 'balance': 86146, 'minimum': 2500, 'adb': 124464}], ['control 2', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 31, 'events': [[25, 10000], [7, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 5313, 'balance': 1065313, 'minimum': 15913, 'adb': 1042580}], ['control 3', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 30, 'events': [[25, 10000], [30, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 12, 'balance': -9988, 'minimum': 0, 'adb': 1666}], ['control 4', {'rate_bp': 1200, 'basis': 365, 'start_balance': 30000, 'cycle_days': 28, 'events': [[18, 10000], [3, -80000], [4, 5000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 20, 'balance': -34980, 'minimum': 0, 'adb': 2142}], ['control 5', {'rate_bp': 850, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[6, 50000], [1, -80000], [24, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 540, 'balance': 120540, 'minimum': 10000, 'adb': 74838}], ['control 6', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 28, 'events': [[24, 50000], [22, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 957, 'balance': 130957, 'minimum': 10000, 'adb': 103928}]], [['regression: minimum payment cap', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[3, 10000], [9, -80000], [6, 50000], [1, -80000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 61, 'balance': 61, 'minimum': 61, 'adb': 12333}], ['control 1', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[8, 5000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 4620, 'balance': 1009620, 'minimum': 14670, 'adb': 1003750}], ['control 2', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[3, 5000], [20, 5000], [25, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 44, 'balance': -9956, 'minimum': 0, 'adb': 4821}], ['control 3', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[20, 5000], [17, 10000], [26, -20000], [10, -20000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 440, 'balance': 75440, 'minimum': 2500, 'adb': 89166}], ['control 4', {'rate_bp': 850, 'basis': 365, 'start_balance': 30000, 'cycle_days': 30, 'events': [[22, -80000], [1, -80000], [8, -20000], [6, -80000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 0, 'balance': -230000, 'minimum': 0, 'adb': 0}], ['control 5', {'rate_bp': 1200, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 30, 'events': [[29, 5000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 9866, 'balance': 1014866, 'minimum': 24941, 'adb': 1000333}], ['control 6', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[5, -80000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 0, 'balance': -80000, 'minimum': 0, 'adb': 0}]], [['regression: minimum payment cap', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[22, -80000], [2, -20000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 279, 'balance': 279, 'minimum': 279, 'adb': 56666}], ['control 1', {'rate_bp': 850, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[20, 50000], [29, -80000], [30, -80000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 773, 'balance': -9227, 'minimum': 0, 'adb': 110666}], ['control 2', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[23, 50000], [7, 10000], [8, 10000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 4723, 'balance': 1074723, 'minimum': 20773, 'adb': 1026071}], ['control 3', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[22, 5000], [2, 50000], [3, -80000], [3, 10000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 431, 'balance': 85431, 'minimum': 2500, 'adb': 84516}], ['control 4', {'rate_bp': 600, 'basis': 365, 'start_balance': 30000, 'cycle_days': 28, 'events': [], 'min_bp': 150, 'min_floor': 2500}, {'interest': 138, 'balance': 30138, 'minimum': 2500, 'adb': 30000}], ['control 5', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[6, -20000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 4527, 'balance': 984527, 'minimum': 19227, 'adb': 983571}], ['control 6', {'rate_bp': 1200, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 31, 'events': [], 'min_bp': 100, 'min_floor': 10000}, {'interest': 10192, 'balance': 1010192, 'minimum': 20192, 'adb': 1000000}]], [['regression: minimum payment cap', {'rate_bp': 1200, 'basis': 365, 'start_balance': 30000, 'cycle_days': 31, 'events': [[26, -20000], [20, -20000], [31, 10000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 207, 'balance': 207, 'minimum': 207, 'adb': 20322}], ['control 1', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[21, 10000], [25, -80000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 4563, 'balance': 934563, 'minimum': 13863, 'adb': 991428}], ['control 2', {'rate_bp': 600, 'basis': 365, 'start_balance': 0, 'cycle_days': 31, 'events': [[15, 50000], [8, -80000], [21, 5000], [31, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 0, 'balance': -45000, 'minimum': 0, 'adb': 0}], ['control 3', {'rate_bp': 1200, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 30, 'events': [[28, 50000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 9912, 'balance': 1059912, 'minimum': 25662, 'adb': 1005000}], ['control 4', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[5, -80000], [22, 5000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 0, 'balance': -75000, 'minimum': 0, 'adb': 0}], ['control 5', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[31, -20000], [27, -20000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 980, 'balance': 60980, 'minimum': 2500, 'adb': 96129}], ['control 6', {'rate_bp': 850, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[15, 10000], [15, -80000], [4, 10000], [10, -20000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 408, 'balance': 20408, 'minimum': 2500, 'adb': 56451}]]]\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"},"fixed":{"sha256":"3961b05e27a6102c69d09f24cd92b8a4a07b27490169dc2189d26ad7d07b4c73","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\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    bal = x['start_balance']\n    ev = sorted(x['events'])\n    i = 0\n    acc = 0\n    for day in range(1, x['cycle_days'] + 1):\n        while i < len(ev) and ev[i][0] == day:\n            bal += ev[i][1]\n            i += 1\n        acc += max(bal, 0)\n    interest = rnd(acc * x['rate_bp'], 10000 * x['basis'])\n    owed = bal + interest\n    if owed <= 0:\n        minimum = 0\n    else:\n        minimum = min(owed, max(x['min_floor'], interest + rnd(max(bal, 0) * x['min_bp'], 10000)))\n    return {'interest': interest, 'balance': owed, 'minimum': minimum, 'adb': acc // x['cycle_days']}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: minimum payment cap', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 30, 'events': [[12, 5000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 22, 'balance': 5022, 'minimum': 5022, 'adb': 3166}], ['control 1', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 31, 'events': [[4, 5000], [24, -20000], [10, 10000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 5129, 'balance': 1000129, 'minimum': 15079, 'adb': 1006451}], ['control 2', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[3, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 1447, 'balance': 151447, 'minimum': 10000, 'adb': 146666}], ['control 3', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 30, 'events': [[6, -80000], [30, -80000], [3, 10000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 10, 'balance': -149990, 'minimum': 0, 'adb': 1000}], ['control 4', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [], 'min_bp': 150, 'min_floor': 2500}, {'interest': 0, 'balance': 0, 'minimum': 0, 'adb': 0}], ['control 5', {'rate_bp': 850, 'basis': 365, 'start_balance': 30000, 'cycle_days': 28, 'events': [[27, 10000], [8, 50000], [10, -80000], [12, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 289, 'balance': 60289, 'minimum': 10000, 'adb': 44285}], ['control 6', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[9, 10000], [16, 10000], [22, -80000], [9, 10000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 105, 'balance': -49895, 'minimum': 0, 'adb': 11428}]], [['regression: minimum payment cap', {'rate_bp': 1200, 'basis': 365, 'start_balance': 30000, 'cycle_days': 31, 'events': [[30, -80000], [4, 50000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 713, 'balance': 713, 'minimum': 713, 'adb': 70000}], ['control 1', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 28, 'events': [[1, 50000], [6, 5000], [24, 10000], [18, -80000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 1146, 'balance': 86146, 'minimum': 2500, 'adb': 124464}], ['control 2', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 31, 'events': [[25, 10000], [7, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 5313, 'balance': 1065313, 'minimum': 15913, 'adb': 1042580}], ['control 3', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 30, 'events': [[25, 10000], [30, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 12, 'balance': -9988, 'minimum': 0, 'adb': 1666}], ['control 4', {'rate_bp': 1200, 'basis': 365, 'start_balance': 30000, 'cycle_days': 28, 'events': [[18, 10000], [3, -80000], [4, 5000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 20, 'balance': -34980, 'minimum': 0, 'adb': 2142}], ['control 5', {'rate_bp': 850, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[6, 50000], [1, -80000], [24, 50000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 540, 'balance': 120540, 'minimum': 10000, 'adb': 74838}], ['control 6', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 28, 'events': [[24, 50000], [22, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 957, 'balance': 130957, 'minimum': 10000, 'adb': 103928}]], [['regression: minimum payment cap', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[3, 10000], [9, -80000], [6, 50000], [1, -80000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 61, 'balance': 61, 'minimum': 61, 'adb': 12333}], ['control 1', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[8, 5000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 4620, 'balance': 1009620, 'minimum': 14670, 'adb': 1003750}], ['control 2', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[3, 5000], [20, 5000], [25, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 44, 'balance': -9956, 'minimum': 0, 'adb': 4821}], ['control 3', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[20, 5000], [17, 10000], [26, -20000], [10, -20000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 440, 'balance': 75440, 'minimum': 2500, 'adb': 89166}], ['control 4', {'rate_bp': 850, 'basis': 365, 'start_balance': 30000, 'cycle_days': 30, 'events': [[22, -80000], [1, -80000], [8, -20000], [6, -80000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 0, 'balance': -230000, 'minimum': 0, 'adb': 0}], ['control 5', {'rate_bp': 1200, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 30, 'events': [[29, 5000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 9866, 'balance': 1014866, 'minimum': 24941, 'adb': 1000333}], ['control 6', {'rate_bp': 850, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[5, -80000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 0, 'balance': -80000, 'minimum': 0, 'adb': 0}]], [['regression: minimum payment cap', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[22, -80000], [2, -20000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 279, 'balance': 279, 'minimum': 279, 'adb': 56666}], ['control 1', {'rate_bp': 850, 'basis': 365, 'start_balance': 100000, 'cycle_days': 30, 'events': [[20, 50000], [29, -80000], [30, -80000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 773, 'balance': -9227, 'minimum': 0, 'adb': 110666}], ['control 2', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[23, 50000], [7, 10000], [8, 10000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 4723, 'balance': 1074723, 'minimum': 20773, 'adb': 1026071}], ['control 3', {'rate_bp': 600, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[22, 5000], [2, 50000], [3, -80000], [3, 10000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 431, 'balance': 85431, 'minimum': 2500, 'adb': 84516}], ['control 4', {'rate_bp': 600, 'basis': 365, 'start_balance': 30000, 'cycle_days': 28, 'events': [], 'min_bp': 150, 'min_floor': 2500}, {'interest': 138, 'balance': 30138, 'minimum': 2500, 'adb': 30000}], ['control 5', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[6, -20000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 4527, 'balance': 984527, 'minimum': 19227, 'adb': 983571}], ['control 6', {'rate_bp': 1200, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 31, 'events': [], 'min_bp': 100, 'min_floor': 10000}, {'interest': 10192, 'balance': 1010192, 'minimum': 20192, 'adb': 1000000}]], [['regression: minimum payment cap', {'rate_bp': 1200, 'basis': 365, 'start_balance': 30000, 'cycle_days': 31, 'events': [[26, -20000], [20, -20000], [31, 10000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 207, 'balance': 207, 'minimum': 207, 'adb': 20322}], ['control 1', {'rate_bp': 600, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 28, 'events': [[21, 10000], [25, -80000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 4563, 'balance': 934563, 'minimum': 13863, 'adb': 991428}], ['control 2', {'rate_bp': 600, 'basis': 365, 'start_balance': 0, 'cycle_days': 31, 'events': [[15, 50000], [8, -80000], [21, 5000], [31, -20000]], 'min_bp': 150, 'min_floor': 10000}, {'interest': 0, 'balance': -45000, 'minimum': 0, 'adb': 0}], ['control 3', {'rate_bp': 1200, 'basis': 365, 'start_balance': 1000000, 'cycle_days': 30, 'events': [[28, 50000]], 'min_bp': 150, 'min_floor': 2500}, {'interest': 9912, 'balance': 1059912, 'minimum': 25662, 'adb': 1005000}], ['control 4', {'rate_bp': 1200, 'basis': 365, 'start_balance': 0, 'cycle_days': 28, 'events': [[5, -80000], [22, 5000]], 'min_bp': 100, 'min_floor': 10000}, {'interest': 0, 'balance': -75000, 'minimum': 0, 'adb': 0}], ['control 5', {'rate_bp': 1200, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[31, -20000], [27, -20000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 980, 'balance': 60980, 'minimum': 2500, 'adb': 96129}], ['control 6', {'rate_bp': 850, 'basis': 365, 'start_balance': 100000, 'cycle_days': 31, 'events': [[15, 10000], [15, -80000], [4, 10000], [10, -20000]], 'min_bp': 100, 'min_floor': 2500}, {'interest': 408, 'balance': 20408, 'minimum': 2500, 'adb': 56451}]]]\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-credit-line-daily-balance-minimum-payment-cap","generated_at":"2026-09-29T14:46:30.177926+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.","repair":"Cap the minimum at the balance plus interest.","root_cause":"The minimum is not capped at the amount owed.","sha256":"e9262916afc9021f1fdd569d1ddec6b63b9e0c571022b260231ba48d90d71fad","title":"Credit line average daily balance: minimum payment cap · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.259,"exit_code":1,"observations":[{"actual":{"adb":3166,"balance":5022,"interest":22,"minimum":5000},"check":"regression: minimum payment cap","expected":{"adb":3166,"balance":5022,"interest":22,"minimum":5022},"passed":false},{"actual":{"adb":1006451,"balance":1000129,"interest":5129,"minimum":15079},"check":"control 1","expected":{"adb":1006451,"balance":1000129,"interest":5129,"minimum":15079},"passed":true},{"actual":{"adb":146666,"balance":151447,"interest":1447,"minimum":10000},"check":"control 2","expected":{"adb":146666,"balance":151447,"interest":1447,"minimum":10000},"passed":true},{"actual":{"adb":1000,"balance":-149990,"interest":10,"minimum":0},"check":"control 3","expected":{"adb":1000,"balance":-149990,"interest":10,"minimum":0},"passed":true},{"actual":{"adb":0,"balance":0,"interest":0,"minimum":0},"check":"control 4","expected":{"adb":0,"balance":0,"interest":0,"minimum":0},"passed":true},{"actual":{"adb":44285,"balance":60289,"interest":289,"minimum":10000},"check":"control 5","expected":{"adb":44285,"balance":60289,"interest":289,"minimum":10000},"passed":true},{"actual":{"adb":11428,"balance":-49895,"interest":105,"minimum":0},"check":"control 6","expected":{"adb":11428,"balance":-49895,"interest":105,"minimum":0},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: minimum payment cap\", \"actual\": {\"interest\": 22, \"balance\": 5022, \"minimum\": 5000, \"adb\": 3166}, \"expected\": {\"interest\": 22, \"balance\": 5022, \"minimum\": 5022, \"adb\": 3166}, \"passed\": false}, {\"check\": \"control 1\", \"actual\": {\"interest\": 5129, \"balance\": 1000129, \"minimum\": 15079, \"adb\": 1006451}, \"expected\": {\"interest\": 5129, \"balance\": 1000129, \"minimum\": 15079, \"adb\": 1006451}, \"passed\": true}, {\"check\": \"control 2\", \"actual\": {\"interest\": 1447, \"balance\": 151447, \"minimum\": 10000, \"adb\": 146666}, \"expected\": {\"interest\": 1447, \"balance\": 151447, \"minimum\": 10000, \"adb\": 146666}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"interest\": 10, \"balance\": -149990, \"minimum\": 0, \"adb\": 1000}, \"expected\": {\"interest\": 10, \"balance\": -149990, \"minimum\": 0, \"adb\": 1000}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"interest\": 0, \"balance\": 0, \"minimum\": 0, \"adb\": 0}, \"expected\": {\"interest\": 0, \"balance\": 0, \"minimum\": 0, \"adb\": 0}, \"passed\": true}, {\"check\": \"control 5\", \"actual\": {\"interest\": 289, \"balance\": 60289, \"minimum\": 10000, \"adb\": 44285}, \"expected\": {\"interest\": 289, \"balance\": 60289, \"minimum\": 10000, \"adb\": 44285}, \"passed\": true}, {\"check\": \"control 6\", \"actual\": {\"interest\": 105, \"balance\": -49895, \"minimum\": 0, \"adb\": 11428}, \"expected\": {\"interest\": 105, \"balance\": -49895, \"minimum\": 0, \"adb\": 11428}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.994,"exit_code":1,"observations":[{"actual":{"adb":3166,"balance":5022,"interest":22,"minimum":10000},"check":"regression: minimum payment cap","expected":{"adb":3166,"balance":5022,"interest":22,"minimum":5022},"passed":false},{"actual":{"adb":1006451,"balance":1000129,"interest":5129,"minimum":15079},"check":"control 1","expected":{"adb":1006451,"balance":1000129,"interest":5129,"minimum":15079},"passed":true},{"actual":{"adb":146666,"balance":151447,"interest":1447,"minimum":10000},"check":"control 2","expected":{"adb":146666,"balance":151447,"interest":1447,"minimum":10000},"passed":true},{"actual":{"adb":1000,"balance":-149990,"interest":10,"minimum":0},"check":"control 3","expected":{"adb":1000,"balance":-149990,"interest":10,"minimum":0},"passed":true},{"actual":{"adb":0,"balance":0,"interest":0,"minimum":0},"check":"control 4","expected":{"adb":0,"balance":0,"interest":0,"minimum":0},"passed":true},{"actual":{"adb":44285,"balance":60289,"interest":289,"minimum":10000},"check":"control 5","expected":{"adb":44285,"balance":60289,"interest":289,"minimum":10000},"passed":true},{"actual":{"adb":11428,"balance":-49895,"interest":105,"minimum":0},"check":"control 6","expected":{"adb":11428,"balance":-49895,"interest":105,"minimum":0},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: minimum payment cap\", \"actual\": {\"interest\": 22, \"balance\": 5022, \"minimum\": 10000, \"adb\": 3166}, \"expected\": {\"interest\": 22, \"balance\": 5022, \"minimum\": 5022, \"adb\": 3166}, \"passed\": false}, {\"check\": \"control 1\", \"actual\": {\"interest\": 5129, \"balance\": 1000129, \"minimum\": 15079, \"adb\": 1006451}, \"expected\": {\"interest\": 5129, \"balance\": 1000129, \"minimum\": 15079, \"adb\": 1006451}, \"passed\": true}, {\"check\": \"control 2\", \"actual\": {\"interest\": 1447, \"balance\": 151447, \"minimum\": 10000, \"adb\": 146666}, \"expected\": {\"interest\": 1447, \"balance\": 151447, \"minimum\": 10000, \"adb\": 146666}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"interest\": 10, \"balance\": -149990, \"minimum\": 0, \"adb\": 1000}, \"expected\": {\"interest\": 10, \"balance\": -149990, \"minimum\": 0, \"adb\": 1000}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"interest\": 0, \"balance\": 0, \"minimum\": 0, \"adb\": 0}, \"expected\": {\"interest\": 0, \"balance\": 0, \"minimum\": 0, \"adb\": 0}, \"passed\": true}, {\"check\": \"control 5\", \"actual\": {\"interest\": 289, \"balance\": 60289, \"minimum\": 10000, \"adb\": 44285}, \"expected\": {\"interest\": 289, \"balance\": 60289, \"minimum\": 10000, \"adb\": 44285}, \"passed\": true}, {\"check\": \"control 6\", \"actual\": {\"interest\": 105, \"balance\": -49895, \"minimum\": 0, \"adb\": 11428}, \"expected\": {\"interest\": 105, \"balance\": -49895, \"minimum\": 0, \"adb\": 11428}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.534,"exit_code":0,"observations":[{"actual":{"adb":3166,"balance":5022,"interest":22,"minimum":5022},"check":"regression: minimum payment cap","expected":{"adb":3166,"balance":5022,"interest":22,"minimum":5022},"passed":true},{"actual":{"adb":1006451,"balance":1000129,"interest":5129,"minimum":15079},"check":"control 1","expected":{"adb":1006451,"balance":1000129,"interest":5129,"minimum":15079},"passed":true},{"actual":{"adb":146666,"balance":151447,"interest":1447,"minimum":10000},"check":"control 2","expected":{"adb":146666,"balance":151447,"interest":1447,"minimum":10000},"passed":true},{"actual":{"adb":1000,"balance":-149990,"interest":10,"minimum":0},"check":"control 3","expected":{"adb":1000,"balance":-149990,"interest":10,"minimum":0},"passed":true},{"actual":{"adb":0,"balance":0,"interest":0,"minimum":0},"check":"control 4","expected":{"adb":0,"balance":0,"interest":0,"minimum":0},"passed":true},{"actual":{"adb":44285,"balance":60289,"interest":289,"minimum":10000},"check":"control 5","expected":{"adb":44285,"balance":60289,"interest":289,"minimum":10000},"passed":true},{"actual":{"adb":11428,"balance":-49895,"interest":105,"minimum":0},"check":"control 6","expected":{"adb":11428,"balance":-49895,"interest":105,"minimum":0},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: minimum payment cap\", \"actual\": {\"interest\": 22, \"balance\": 5022, \"minimum\": 5022, \"adb\": 3166}, \"expected\": {\"interest\": 22, \"balance\": 5022, \"minimum\": 5022, \"adb\": 3166}, \"passed\": true}, {\"check\": \"control 1\", \"actual\": {\"interest\": 5129, \"balance\": 1000129, \"minimum\": 15079, \"adb\": 1006451}, \"expected\": {\"interest\": 5129, \"balance\": 1000129, \"minimum\": 15079, \"adb\": 1006451}, \"passed\": true}, {\"check\": \"control 2\", \"actual\": {\"interest\": 1447, \"balance\": 151447, \"minimum\": 10000, \"adb\": 146666}, \"expected\": {\"interest\": 1447, \"balance\": 151447, \"minimum\": 10000, \"adb\": 146666}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"interest\": 10, \"balance\": -149990, \"minimum\": 0, \"adb\": 1000}, \"expected\": {\"interest\": 10, \"balance\": -149990, \"minimum\": 0, \"adb\": 1000}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"interest\": 0, \"balance\": 0, \"minimum\": 0, \"adb\": 0}, \"expected\": {\"interest\": 0, \"balance\": 0, \"minimum\": 0, \"adb\": 0}, \"passed\": true}, {\"check\": \"control 5\", \"actual\": {\"interest\": 289, \"balance\": 60289, \"minimum\": 10000, \"adb\": 44285}, \"expected\": {\"interest\": 289, \"balance\": 60289, \"minimum\": 10000, \"adb\": 44285}, \"passed\": true}, {\"check\": \"control 6\", \"actual\": {\"interest\": 105, \"balance\": -49895, \"minimum\": 0, \"adb\": 11428}, \"expected\": {\"interest\": 105, \"balance\": -49895, \"minimum\": 0, \"adb\": 11428}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}