{"abstract":"An overdrawn cash account appears as a negative number in the debit column.","category":"Double-entry ledger accounting","checks":7,"contract":"x = [[account_code (digit string), type, total_debits, total_credits], ...]. Net = debits - credits. Zero-net accounts are omitted. A positive net goes in the debit column, a negative net (as a positive number) in the credit column. Rows are ordered by numeric account code. An account is abnormal when its column differs from its normal side (asset, expense, dividend debit-normal; others credit-normal). Return {'rows': [[code, debit, credit]], 'totals': [debits, credits], 'balanced': totals equal exactly, 'abnormal': codes in numeric order}.","contract_signature":"x","evaluation_group":"w2-double-entry-ledger-accounting-trial-balance","failed_approach":"Also sending every debit-normal account to the debit column still prints negative debit amounts.","family":"w2-double-entry-ledger-accounting-trial-balance-column-selection","id":"FA-57871","implementations":{"attempt":{"sha256":"f394e6c87aee44533714d2475bda68da852ff814a96b34581be8b9b74bd805b8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    debit_normal = ('asset', 'expense', 'dividend')\n    rows = []\n    td = tc = 0\n    abnormal = []\n    for acct, kind, dr, cr in x:\n        net = dr - cr\n        if net == 0:\n            continue\n        if net > 0 or kind in debit_normal:\n            rows.append([acct, net, 0])\n            td += net\n        else:\n            rows.append([acct, 0, -net])\n            tc += -net\n        if (net > 0) != (kind in debit_normal):\n            abnormal.append(acct)\n    rows.sort(key=lambda r: int(r[0]))\n    return {'rows': rows, 'totals': [td, tc], 'balanced': td == tc, 'abnormal': sorted(abnormal, key=int)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: column selection', [['101', 'expense', 900, 0], ['2100', 'revenue', 0, 1], ['510', 'liability', 0, 250], ['7200', 'expense', 1234, 5000], ['1500', 'expense', 1234, 1235], ['150', 'expense', 250, 249], ['4000', 'expense', 0, 0]], {'rows': [['101', 900, 0], ['150', 1, 0], ['510', 0, 250], ['1500', 0, 1], ['2100', 0, 1], ['7200', 0, 3766]], 'totals': [901, 4018], 'balanced': False, 'abnormal': ['1500', '7200']}], ['control 1', [['4000', 'dividend', 250, 0], ['7200', 'dividend', 5000, 0], ['1500', 'equity', 0, 1]], {'rows': [['1500', 0, 1], ['4000', 250, 0], ['7200', 5000, 0]], 'totals': [5250, 1], 'balanced': False, 'abnormal': []}], ['control 2', [['150', 'liability', 1234, 1234], ['101', 'asset', 0, -1], ['205', 'equity', 0, 0], ['7200', 'dividend', 900, 250]], {'rows': [['101', 1, 0], ['7200', 650, 0]], 'totals': [651, 0], 'balanced': False, 'abnormal': []}], ['control 3', [['2100', 'revenue', 0, 0], ['4000', 'revenue', 0, 0], ['99', 'equity', 5000, 5000], ['510', 'asset', 0, 0]], {'rows': [], 'totals': [0, 0], 'balanced': True, 'abnormal': []}], ['control 4', [['101', 'equity', 0, 5000], ['30', 'equity', 0, 0], ['205', 'liability', 0, 1], ['2100', 'liability', 250, 251], ['4000', 'asset', 1234, 900], ['1010', 'equity', 0, 1234]], {'rows': [['101', 0, 5000], ['205', 0, 1], ['1010', 0, 1234], ['2100', 0, 1], ['4000', 334, 0]], 'totals': [334, 6236], 'balanced': False, 'abnormal': []}], ['control 5', [['4000', 'dividend', 250, 249], ['150', 'equity', 900, 5000], ['1500', 'liability', 0, 0], ['2100', 'liability', 100, 100], ['6', 'asset', 5000, 0], ['99', 'expense', 100, 0], ['7200', 'equity', 5000, 5001]], {'rows': [['6', 5000, 0], ['99', 100, 0], ['150', 0, 4100], ['4000', 1, 0], ['7200', 0, 1]], 'totals': [5101, 4101], 'balanced': False, 'abnormal': []}], ['control 6', [['2100', 'liability', 0, 1], ['6', 'asset', 5000, 4999], ['7200', 'equity', 0, 0], ['1500', 'revenue', 0, 5000]], {'rows': [['6', 1, 0], ['1500', 0, 5000], ['2100', 0, 1]], 'totals': [1, 5001], 'balanced': False, 'abnormal': []}]], [['regression: column selection', [['6', 'expense', 0, 0], ['30', 'asset', 250, 249], ['7200', 'expense', 5000, 5000], ['150', 'expense', 100, 100], ['2100', 'dividend', 900, 901], ['205', 'equity', 100, 101]], {'rows': [['30', 1, 0], ['205', 0, 1], ['2100', 0, 1]], 'totals': [1, 2], 'balanced': False, 'abnormal': ['2100']}], ['control 1', [['205', 'revenue', 0, 5000], ['150', 'revenue', 250, 1234], ['510', 'asset', 1234, 1234], ['1500', 'asset', 0, 0], ['2100', 'expense', 100, 100], ['1010', 'expense', 1234, 0], ['7200', 'equity', 0, 5000]], {'rows': [['150', 0, 984], ['205', 0, 5000], ['1010', 1234, 0], ['7200', 0, 5000]], 'totals': [1234, 10984], 'balanced': False, 'abnormal': []}], ['control 2', [['1010', 'revenue', 0, 250], ['101', 'dividend', 250, 250], ['205', 'equity', 250, 5000], ['99', 'asset', 5000, 900]], {'rows': [['99', 4100, 0], ['205', 0, 4750], ['1010', 0, 250]], 'totals': [4100, 5000], 'balanced': False, 'abnormal': []}], ['control 3', [['1010', 'asset', 250, 0], ['510', 'expense', 5000, 1234], ['7200', 'dividend', 100, 100]], {'rows': [['510', 3766, 0], ['1010', 250, 0]], 'totals': [4016, 0], 'balanced': False, 'abnormal': []}], ['control 4', [['30', 'expense', 5000, 250], ['4000', 'liability', 0, 250], ['205', 'equity', 0, 100]], {'rows': [['30', 4750, 0], ['205', 0, 100], ['4000', 0, 250]], 'totals': [4750, 350], 'balanced': False, 'abnormal': []}], ['control 5', [['1500', 'liability', 250, 900], ['99', 'revenue', 0, 5000], ['1010', 'revenue', 1234, 5000]], {'rows': [['99', 0, 5000], ['1010', 0, 3766], ['1500', 0, 650]], 'totals': [0, 9416], 'balanced': False, 'abnormal': []}], ['control 6', [['6', 'dividend', 1234, 1233], ['2100', 'dividend', 900, 0], ['1010', 'equity', 900, 5000], ['30', 'asset', 0, 0], ['7200', 'equity', 0, 250]], {'rows': [['6', 1, 0], ['1010', 0, 4100], ['2100', 900, 0], ['7200', 0, 250]], 'totals': [901, 4350], 'balanced': False, 'abnormal': []}]], [['regression: column selection', [['2100', 'expense', 100, 5000], ['7200', 'liability', 5000, 100], ['6', 'dividend', 250, 1234], ['99', 'dividend', 0, 1234], ['205', 'expense', 5000, 5001], ['101', 'equity', 0, 1234], ['4000', 'revenue', 250, 5000]], {'rows': [['6', 0, 984], ['99', 0, 1234], ['101', 0, 1234], ['205', 0, 1], ['2100', 0, 4900], ['4000', 0, 4750], ['7200', 4900, 0]], 'totals': [4900, 13103], 'balanced': False, 'abnormal': ['6', '99', '205', '2100', '7200']}], ['control 1', [['99', 'liability', 0, 0], ['510', 'liability', 900, 900], ['205', 'equity', 250, 5000]], {'rows': [['205', 0, 4750]], 'totals': [0, 4750], 'balanced': False, 'abnormal': []}], ['control 2', [['7200', 'revenue', 250, 250], ['99', 'asset', 1234, 250], ['205', 'asset', 5000, 0]], {'rows': [['99', 984, 0], ['205', 5000, 0]], 'totals': [5984, 0], 'balanced': False, 'abnormal': []}], ['control 3', [['1010', 'asset', 1234, 0], ['205', 'expense', 1234, 900], ['150', 'equity', 0, 900], ['510', 'expense', 100, 100]], {'rows': [['150', 0, 900], ['205', 334, 0], ['1010', 1234, 0]], 'totals': [1568, 900], 'balanced': False, 'abnormal': []}], ['control 4', [['510', 'equity', 1234, 1234], ['150', 'liability', 0, 100], ['6', 'equity', 1234, 1234], ['205', 'revenue', 900, 1234], ['2100', 'dividend', 0, 0], ['101', 'liability', 0, 1]], {'rows': [['101', 0, 1], ['150', 0, 100], ['205', 0, 334]], 'totals': [0, 435], 'balanced': False, 'abnormal': []}], ['control 5', [['30', 'equity', 250, 251], ['4000', 'liability', 0, 0], ['150', 'dividend', 5000, 0]], {'rows': [['30', 0, 1], ['150', 5000, 0]], 'totals': [5000, 1], 'balanced': False, 'abnormal': []}], ['control 6', [['4000', 'equity', 250, 250], ['1010', 'expense', 1234, 1233], ['30', 'dividend', 100, 100], ['510', 'asset', 250, 0], ['7200', 'liability', 0, 0]], {'rows': [['510', 250, 0], ['1010', 1, 0]], 'totals': [251, 0], 'balanced': False, 'abnormal': []}]], [['regression: column selection', [['99', 'liability', 1234, 1233], ['30', 'dividend', 5000, 900], ['150', 'liability', 1234, 1234], ['1010', 'liability', 250, 1234], ['510', 'liability', 100, 0], ['4000', 'expense', 100, 100]], {'rows': [['30', 4100, 0], ['99', 1, 0], ['510', 100, 0], ['1010', 0, 984]], 'totals': [4201, 984], 'balanced': False, 'abnormal': ['99', '510']}], ['regression: column selection, partial-repair probe', [['30', 'dividend', 250, 100], ['4000', 'expense', 100, 5000], ['205', 'dividend', 100, 100], ['510', 'expense', 0, 1234], ['99', 'asset', 900, 901], ['101', 'revenue', 100, 99]], {'rows': [['30', 150, 0], ['99', 0, 1], ['101', 1, 0], ['510', 0, 1234], ['4000', 0, 4900]], 'totals': [151, 6135], 'balanced': False, 'abnormal': ['99', '101', '510', '4000']}], ['control 1', [['30', 'liability', 250, 1234], ['6', 'dividend', 250, 250], ['7200', 'revenue', 100, 101], ['510', 'revenue', 100, 100], ['1010', 'liability', 0, 0], ['2100', 'asset', 5000, 0], ['4000', 'expense', 1234, 100]], {'rows': [['30', 0, 984], ['2100', 5000, 0], ['4000', 1134, 0], ['7200', 0, 1]], 'totals': [6134, 985], 'balanced': False, 'abnormal': []}], ['control 2', [['6', 'asset', 5000, 900], ['30', 'asset', 100, 0], ['1500', 'liability', 100, 100]], {'rows': [['6', 4100, 0], ['30', 100, 0]], 'totals': [4200, 0], 'balanced': False, 'abnormal': []}], ['control 3', [['150', 'dividend', 100, 0], ['6', 'dividend', 900, 0], ['1500', 'revenue', 1234, 1234], ['30', 'equity', 100, 100]], {'rows': [['6', 900, 0], ['150', 100, 0]], 'totals': [1000, 0], 'balanced': False, 'abnormal': []}], ['control 4', [['101', 'dividend', 5000, 4999], ['99', 'asset', 100, 100], ['30', 'expense', 250, 249]], {'rows': [['30', 1, 0], ['101', 1, 0]], 'totals': [2, 0], 'balanced': False, 'abnormal': []}], ['control 5', [['1500', 'expense', 900, 900], ['1010', 'revenue', 0, 0], ['101', 'equity', 1234, 5000], ['7200', 'dividend', 250, 0], ['150', 'liability', 0, 0], ['4000', 'expense', 5000, 900]], {'rows': [['101', 0, 3766], ['4000', 4100, 0], ['7200', 250, 0]], 'totals': [4350, 3766], 'balanced': False, 'abnormal': []}]], [['regression: column selection', [['101', 'equity', 100, 900], ['4000', 'equity', 0, 1], ['7200', 'expense', 100, 0], ['2100', 'dividend', 0, 5000], ['6', 'liability', 250, 250], ['150', 'equity', 0, 250]], {'rows': [['101', 0, 800], ['150', 0, 250], ['2100', 0, 5000], ['4000', 0, 1], ['7200', 100, 0]], 'totals': [100, 6051], 'balanced': False, 'abnormal': ['2100']}], ['control 1', [['4000', 'revenue', 0, 1], ['30', 'expense', 250, 250], ['2100', 'asset', 900, 100]], {'rows': [['2100', 800, 0], ['4000', 0, 1]], 'totals': [800, 1], 'balanced': False, 'abnormal': []}], ['control 2', [['150', 'expense', 100, 0], ['101', 'liability', 250, 250], ['99', 'liability', 100, 100], ['205', 'equity', 100, 100], ['510', 'expense', 100, 0], ['7200', 'asset', 5000, 5000]], {'rows': [['150', 100, 0], ['510', 100, 0]], 'totals': [200, 0], 'balanced': False, 'abnormal': []}], ['control 3', [['1500', 'expense', 1234, 100], ['205', 'expense', 100, 100], ['510', 'equity', 250, 1234]], {'rows': [['510', 0, 984], ['1500', 1134, 0]], 'totals': [1134, 984], 'balanced': False, 'abnormal': []}], ['control 4', [['6', 'revenue', 1234, 5000], ['30', 'asset', 900, 900], ['1500', 'equity', 250, 250]], {'rows': [['6', 0, 3766]], 'totals': [0, 3766], 'balanced': False, 'abnormal': []}], ['control 5', [['4000', 'expense', 5000, 5000], ['510', 'liability', 250, 251], ['101', 'liability', 0, 250], ['1500', 'dividend', 5000, 900], ['6', 'asset', 1234, 0], ['150', 'equity', 0, 900], ['99', 'liability', 250, 251]], {'rows': [['6', 1234, 0], ['99', 0, 1], ['101', 0, 250], ['150', 0, 900], ['510', 0, 1], ['1500', 4100, 0]], 'totals': [5334, 1152], 'balanced': False, 'abnormal': []}], ['control 6', [['99', 'dividend', 0, 0], ['1010', 'liability', 0, 1234], ['30', 'equity', 100, 5000]], {'rows': [['30', 0, 4900], ['1010', 0, 1234]], 'totals': [0, 6134], 'balanced': False, 'abnormal': []}]]]\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":"d18a694cd3573e32b3d50f15fa6e09b7005db5b97e08f27c1a0af7dd557277e3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    debit_normal = ('asset', 'expense', 'dividend')\n    rows = []\n    td = tc = 0\n    abnormal = []\n    for acct, kind, dr, cr in x:\n        net = dr - cr\n        if net == 0:\n            continue\n        if kind in debit_normal:\n            rows.append([acct, net, 0])\n            td += net\n        else:\n            rows.append([acct, 0, -net])\n            tc += -net\n        if (net > 0) != (kind in debit_normal):\n            abnormal.append(acct)\n    rows.sort(key=lambda r: int(r[0]))\n    return {'rows': rows, 'totals': [td, tc], 'balanced': td == tc, 'abnormal': sorted(abnormal, key=int)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: column selection', [['101', 'expense', 900, 0], ['2100', 'revenue', 0, 1], ['510', 'liability', 0, 250], ['7200', 'expense', 1234, 5000], ['1500', 'expense', 1234, 1235], ['150', 'expense', 250, 249], ['4000', 'expense', 0, 0]], {'rows': [['101', 900, 0], ['150', 1, 0], ['510', 0, 250], ['1500', 0, 1], ['2100', 0, 1], ['7200', 0, 3766]], 'totals': [901, 4018], 'balanced': False, 'abnormal': ['1500', '7200']}], ['control 1', [['4000', 'dividend', 250, 0], ['7200', 'dividend', 5000, 0], ['1500', 'equity', 0, 1]], {'rows': [['1500', 0, 1], ['4000', 250, 0], ['7200', 5000, 0]], 'totals': [5250, 1], 'balanced': False, 'abnormal': []}], ['control 2', [['150', 'liability', 1234, 1234], ['101', 'asset', 0, -1], ['205', 'equity', 0, 0], ['7200', 'dividend', 900, 250]], {'rows': [['101', 1, 0], ['7200', 650, 0]], 'totals': [651, 0], 'balanced': False, 'abnormal': []}], ['control 3', [['2100', 'revenue', 0, 0], ['4000', 'revenue', 0, 0], ['99', 'equity', 5000, 5000], ['510', 'asset', 0, 0]], {'rows': [], 'totals': [0, 0], 'balanced': True, 'abnormal': []}], ['control 4', [['101', 'equity', 0, 5000], ['30', 'equity', 0, 0], ['205', 'liability', 0, 1], ['2100', 'liability', 250, 251], ['4000', 'asset', 1234, 900], ['1010', 'equity', 0, 1234]], {'rows': [['101', 0, 5000], ['205', 0, 1], ['1010', 0, 1234], ['2100', 0, 1], ['4000', 334, 0]], 'totals': [334, 6236], 'balanced': False, 'abnormal': []}], ['control 5', [['4000', 'dividend', 250, 249], ['150', 'equity', 900, 5000], ['1500', 'liability', 0, 0], ['2100', 'liability', 100, 100], ['6', 'asset', 5000, 0], ['99', 'expense', 100, 0], ['7200', 'equity', 5000, 5001]], {'rows': [['6', 5000, 0], ['99', 100, 0], ['150', 0, 4100], ['4000', 1, 0], ['7200', 0, 1]], 'totals': [5101, 4101], 'balanced': False, 'abnormal': []}], ['control 6', [['2100', 'liability', 0, 1], ['6', 'asset', 5000, 4999], ['7200', 'equity', 0, 0], ['1500', 'revenue', 0, 5000]], {'rows': [['6', 1, 0], ['1500', 0, 5000], ['2100', 0, 1]], 'totals': [1, 5001], 'balanced': False, 'abnormal': []}]], [['regression: column selection', [['6', 'expense', 0, 0], ['30', 'asset', 250, 249], ['7200', 'expense', 5000, 5000], ['150', 'expense', 100, 100], ['2100', 'dividend', 900, 901], ['205', 'equity', 100, 101]], {'rows': [['30', 1, 0], ['205', 0, 1], ['2100', 0, 1]], 'totals': [1, 2], 'balanced': False, 'abnormal': ['2100']}], ['control 1', [['205', 'revenue', 0, 5000], ['150', 'revenue', 250, 1234], ['510', 'asset', 1234, 1234], ['1500', 'asset', 0, 0], ['2100', 'expense', 100, 100], ['1010', 'expense', 1234, 0], ['7200', 'equity', 0, 5000]], {'rows': [['150', 0, 984], ['205', 0, 5000], ['1010', 1234, 0], ['7200', 0, 5000]], 'totals': [1234, 10984], 'balanced': False, 'abnormal': []}], ['control 2', [['1010', 'revenue', 0, 250], ['101', 'dividend', 250, 250], ['205', 'equity', 250, 5000], ['99', 'asset', 5000, 900]], {'rows': [['99', 4100, 0], ['205', 0, 4750], ['1010', 0, 250]], 'totals': [4100, 5000], 'balanced': False, 'abnormal': []}], ['control 3', [['1010', 'asset', 250, 0], ['510', 'expense', 5000, 1234], ['7200', 'dividend', 100, 100]], {'rows': [['510', 3766, 0], ['1010', 250, 0]], 'totals': [4016, 0], 'balanced': False, 'abnormal': []}], ['control 4', [['30', 'expense', 5000, 250], ['4000', 'liability', 0, 250], ['205', 'equity', 0, 100]], {'rows': [['30', 4750, 0], ['205', 0, 100], ['4000', 0, 250]], 'totals': [4750, 350], 'balanced': False, 'abnormal': []}], ['control 5', [['1500', 'liability', 250, 900], ['99', 'revenue', 0, 5000], ['1010', 'revenue', 1234, 5000]], {'rows': [['99', 0, 5000], ['1010', 0, 3766], ['1500', 0, 650]], 'totals': [0, 9416], 'balanced': False, 'abnormal': []}], ['control 6', [['6', 'dividend', 1234, 1233], ['2100', 'dividend', 900, 0], ['1010', 'equity', 900, 5000], ['30', 'asset', 0, 0], ['7200', 'equity', 0, 250]], {'rows': [['6', 1, 0], ['1010', 0, 4100], ['2100', 900, 0], ['7200', 0, 250]], 'totals': [901, 4350], 'balanced': False, 'abnormal': []}]], [['regression: column selection', [['2100', 'expense', 100, 5000], ['7200', 'liability', 5000, 100], ['6', 'dividend', 250, 1234], ['99', 'dividend', 0, 1234], ['205', 'expense', 5000, 5001], ['101', 'equity', 0, 1234], ['4000', 'revenue', 250, 5000]], {'rows': [['6', 0, 984], ['99', 0, 1234], ['101', 0, 1234], ['205', 0, 1], ['2100', 0, 4900], ['4000', 0, 4750], ['7200', 4900, 0]], 'totals': [4900, 13103], 'balanced': False, 'abnormal': ['6', '99', '205', '2100', '7200']}], ['control 1', [['99', 'liability', 0, 0], ['510', 'liability', 900, 900], ['205', 'equity', 250, 5000]], {'rows': [['205', 0, 4750]], 'totals': [0, 4750], 'balanced': False, 'abnormal': []}], ['control 2', [['7200', 'revenue', 250, 250], ['99', 'asset', 1234, 250], ['205', 'asset', 5000, 0]], {'rows': [['99', 984, 0], ['205', 5000, 0]], 'totals': [5984, 0], 'balanced': False, 'abnormal': []}], ['control 3', [['1010', 'asset', 1234, 0], ['205', 'expense', 1234, 900], ['150', 'equity', 0, 900], ['510', 'expense', 100, 100]], {'rows': [['150', 0, 900], ['205', 334, 0], ['1010', 1234, 0]], 'totals': [1568, 900], 'balanced': False, 'abnormal': []}], ['control 4', [['510', 'equity', 1234, 1234], ['150', 'liability', 0, 100], ['6', 'equity', 1234, 1234], ['205', 'revenue', 900, 1234], ['2100', 'dividend', 0, 0], ['101', 'liability', 0, 1]], {'rows': [['101', 0, 1], ['150', 0, 100], ['205', 0, 334]], 'totals': [0, 435], 'balanced': False, 'abnormal': []}], ['control 5', [['30', 'equity', 250, 251], ['4000', 'liability', 0, 0], ['150', 'dividend', 5000, 0]], {'rows': [['30', 0, 1], ['150', 5000, 0]], 'totals': [5000, 1], 'balanced': False, 'abnormal': []}], ['control 6', [['4000', 'equity', 250, 250], ['1010', 'expense', 1234, 1233], ['30', 'dividend', 100, 100], ['510', 'asset', 250, 0], ['7200', 'liability', 0, 0]], {'rows': [['510', 250, 0], ['1010', 1, 0]], 'totals': [251, 0], 'balanced': False, 'abnormal': []}]], [['regression: column selection', [['99', 'liability', 1234, 1233], ['30', 'dividend', 5000, 900], ['150', 'liability', 1234, 1234], ['1010', 'liability', 250, 1234], ['510', 'liability', 100, 0], ['4000', 'expense', 100, 100]], {'rows': [['30', 4100, 0], ['99', 1, 0], ['510', 100, 0], ['1010', 0, 984]], 'totals': [4201, 984], 'balanced': False, 'abnormal': ['99', '510']}], ['regression: column selection, partial-repair probe', [['30', 'dividend', 250, 100], ['4000', 'expense', 100, 5000], ['205', 'dividend', 100, 100], ['510', 'expense', 0, 1234], ['99', 'asset', 900, 901], ['101', 'revenue', 100, 99]], {'rows': [['30', 150, 0], ['99', 0, 1], ['101', 1, 0], ['510', 0, 1234], ['4000', 0, 4900]], 'totals': [151, 6135], 'balanced': False, 'abnormal': ['99', '101', '510', '4000']}], ['control 1', [['30', 'liability', 250, 1234], ['6', 'dividend', 250, 250], ['7200', 'revenue', 100, 101], ['510', 'revenue', 100, 100], ['1010', 'liability', 0, 0], ['2100', 'asset', 5000, 0], ['4000', 'expense', 1234, 100]], {'rows': [['30', 0, 984], ['2100', 5000, 0], ['4000', 1134, 0], ['7200', 0, 1]], 'totals': [6134, 985], 'balanced': False, 'abnormal': []}], ['control 2', [['6', 'asset', 5000, 900], ['30', 'asset', 100, 0], ['1500', 'liability', 100, 100]], {'rows': [['6', 4100, 0], ['30', 100, 0]], 'totals': [4200, 0], 'balanced': False, 'abnormal': []}], ['control 3', [['150', 'dividend', 100, 0], ['6', 'dividend', 900, 0], ['1500', 'revenue', 1234, 1234], ['30', 'equity', 100, 100]], {'rows': [['6', 900, 0], ['150', 100, 0]], 'totals': [1000, 0], 'balanced': False, 'abnormal': []}], ['control 4', [['101', 'dividend', 5000, 4999], ['99', 'asset', 100, 100], ['30', 'expense', 250, 249]], {'rows': [['30', 1, 0], ['101', 1, 0]], 'totals': [2, 0], 'balanced': False, 'abnormal': []}], ['control 5', [['1500', 'expense', 900, 900], ['1010', 'revenue', 0, 0], ['101', 'equity', 1234, 5000], ['7200', 'dividend', 250, 0], ['150', 'liability', 0, 0], ['4000', 'expense', 5000, 900]], {'rows': [['101', 0, 3766], ['4000', 4100, 0], ['7200', 250, 0]], 'totals': [4350, 3766], 'balanced': False, 'abnormal': []}]], [['regression: column selection', [['101', 'equity', 100, 900], ['4000', 'equity', 0, 1], ['7200', 'expense', 100, 0], ['2100', 'dividend', 0, 5000], ['6', 'liability', 250, 250], ['150', 'equity', 0, 250]], {'rows': [['101', 0, 800], ['150', 0, 250], ['2100', 0, 5000], ['4000', 0, 1], ['7200', 100, 0]], 'totals': [100, 6051], 'balanced': False, 'abnormal': ['2100']}], ['control 1', [['4000', 'revenue', 0, 1], ['30', 'expense', 250, 250], ['2100', 'asset', 900, 100]], {'rows': [['2100', 800, 0], ['4000', 0, 1]], 'totals': [800, 1], 'balanced': False, 'abnormal': []}], ['control 2', [['150', 'expense', 100, 0], ['101', 'liability', 250, 250], ['99', 'liability', 100, 100], ['205', 'equity', 100, 100], ['510', 'expense', 100, 0], ['7200', 'asset', 5000, 5000]], {'rows': [['150', 100, 0], ['510', 100, 0]], 'totals': [200, 0], 'balanced': False, 'abnormal': []}], ['control 3', [['1500', 'expense', 1234, 100], ['205', 'expense', 100, 100], ['510', 'equity', 250, 1234]], {'rows': [['510', 0, 984], ['1500', 1134, 0]], 'totals': [1134, 984], 'balanced': False, 'abnormal': []}], ['control 4', [['6', 'revenue', 1234, 5000], ['30', 'asset', 900, 900], ['1500', 'equity', 250, 250]], {'rows': [['6', 0, 3766]], 'totals': [0, 3766], 'balanced': False, 'abnormal': []}], ['control 5', [['4000', 'expense', 5000, 5000], ['510', 'liability', 250, 251], ['101', 'liability', 0, 250], ['1500', 'dividend', 5000, 900], ['6', 'asset', 1234, 0], ['150', 'equity', 0, 900], ['99', 'liability', 250, 251]], {'rows': [['6', 1234, 0], ['99', 0, 1], ['101', 0, 250], ['150', 0, 900], ['510', 0, 1], ['1500', 4100, 0]], 'totals': [5334, 1152], 'balanced': False, 'abnormal': []}], ['control 6', [['99', 'dividend', 0, 0], ['1010', 'liability', 0, 1234], ['30', 'equity', 100, 5000]], {'rows': [['30', 0, 4900], ['1010', 0, 1234]], 'totals': [0, 6134], 'balanced': False, 'abnormal': []}]]]\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 bookkeeping rules stated in the contract; amounts are integer cents; it makes no claim of conformance to any accounting 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-double-entry-ledger-accounting-trial-balance-column-selection","generated_at":"2026-09-29T14:46:21.305539+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Ledger software must keep debits equal to credits and apply normal-balance, period and cutoff rules exactly; small sign or boundary slips silently misstate financial statements.","root_cause":"The column is chosen from the account type instead of the sign of the net balance.","sha256":"9f1afd8824adc550abdcbaca7692e394a51a5acc5eb2902ea3454de056f63f3d","title":"Trial balance columns: column selection · 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":46.749,"exit_code":1,"observations":[{"actual":{"abnormal":["1500","7200"],"balanced":false,"rows":[["101",900,0],["150",1,0],["510",0,250],["1500",-1,0],["2100",0,1],["7200",-3766,0]],"totals":[-2866,251]},"check":"regression: column selection","expected":{"abnormal":["1500","7200"],"balanced":false,"rows":[["101",900,0],["150",1,0],["510",0,250],["1500",0,1],["2100",0,1],["7200",0,3766]],"totals":[901,4018]},"passed":false},{"actual":{"abnormal":[],"balanced":false,"rows":[["1500",0,1],["4000",250,0],["7200",5000,0]],"totals":[5250,1]},"check":"control 1","expected":{"abnormal":[],"balanced":false,"rows":[["1500",0,1],["4000",250,0],["7200",5000,0]],"totals":[5250,1]},"passed":true},{"actual":{"abnormal":[],"balanced":false,"rows":[["101",1,0],["7200",650,0]],"totals":[651,0]},"check":"control 2","expected":{"abnormal":[],"balanced":false,"rows":[["101",1,0],["7200",650,0]],"totals":[651,0]},"passed":true},{"actual":{"abnormal":[],"balanced":true,"rows":[],"totals":[0,0]},"check":"control 3","expected":{"abnormal":[],"balanced":true,"rows":[],"totals":[0,0]},"passed":true},{"actual":{"abnormal":[],"balanced":false,"rows":[["101",0,5000],["205",0,1],["1010",0,1234],["2100",0,1],["4000",334,0]],"totals":[334,6236]},"check":"control 4","expected":{"abnormal":[],"balanced":false,"rows":[["101",0,5000],["205",0,1],["1010",0,1234],["2100",0,1],["4000",334,0]],"totals":[334,6236]},"passed":true},{"actual":{"abnormal":[],"balanced":false,"rows":[["6",5000,0],["99",100,0],["150",0,4100],["4000",1,0],["7200",0,1]],"totals":[5101,4101]},"check":"control 5","expected":{"abnormal":[],"balanced":false,"rows":[["6",5000,0],["99",100,0],["150",0,4100],["4000",1,0],["7200",0,1]],"totals":[5101,4101]},"passed":true},{"actual":{"abnormal":[],"balanced":false,"rows":[["6",1,0],["1500",0,5000],["2100",0,1]],"totals":[1,5001]},"check":"control 6","expected":{"abnormal":[],"balanced":false,"rows":[["6",1,0],["1500",0,5000],["2100",0,1]],"totals":[1,5001]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: column selection\", \"actual\": {\"rows\": [[\"101\", 900, 0], [\"150\", 1, 0], [\"510\", 0, 250], [\"1500\", -1, 0], [\"2100\", 0, 1], [\"7200\", -3766, 0]], \"totals\": [-2866, 251], \"balanced\": false, \"abnormal\": [\"1500\", \"7200\"]}, \"expected\": {\"rows\": [[\"101\", 900, 0], [\"150\", 1, 0], [\"510\", 0, 250], [\"1500\", 0, 1], [\"2100\", 0, 1], [\"7200\", 0, 3766]], \"totals\": [901, 4018], \"balanced\": false, \"abnormal\": [\"1500\", \"7200\"]}, \"passed\": false}, {\"check\": \"control 1\", \"actual\": {\"rows\": [[\"1500\", 0, 1], [\"4000\", 250, 0], [\"7200\", 5000, 0]], \"totals\": [5250, 1], \"balanced\": false, \"abnormal\": []}, \"expected\": {\"rows\": [[\"1500\", 0, 1], [\"4000\", 250, 0], [\"7200\", 5000, 0]], \"totals\": [5250, 1], \"balanced\": false, \"abnormal\": []}, \"passed\": true}, {\"check\": \"control 2\", \"actual\": {\"rows\": [[\"101\", 1, 0], [\"7200\", 650, 0]], \"totals\": [651, 0], \"balanced\": false, \"abnormal\": []}, \"expected\": {\"rows\": [[\"101\", 1, 0], [\"7200\", 650, 0]], \"totals\": [651, 0], \"balanced\": false, \"abnormal\": []}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"rows\": [], \"totals\": [0, 0], \"balanced\": true, \"abnormal\": []}, \"expected\": {\"rows\": [], \"totals\": [0, 0], \"balanced\": true, \"abnormal\": []}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"rows\": [[\"101\", 0, 5000], [\"205\", 0, 1], [\"1010\", 0, 1234], [\"2100\", 0, 1], [\"4000\", 334, 0]], \"totals\": [334, 6236], \"balanced\": false, \"abnormal\": []}, \"expected\": {\"rows\": [[\"101\", 0, 5000], [\"205\", 0, 1], [\"1010\", 0, 1234], [\"2100\", 0, 1], [\"4000\", 334, 0]], \"totals\": [334, 6236], \"balanced\": false, \"abnormal\": []}, \"passed\": true}, {\"check\": \"control 5\", \"actual\": {\"rows\": [[\"6\", 5000, 0], [\"99\", 100, 0], [\"150\", 0, 4100], [\"4000\", 1, 0], [\"7200\", 0, 1]], \"totals\": [5101, 4101], \"balanced\": false, \"abnormal\": []}, \"expected\": {\"rows\": [[\"6\", 5000, 0], [\"99\", 100, 0], [\"150\", 0, 4100], [\"4000\", 1, 0], [\"7200\", 0, 1]], \"totals\": [5101, 4101], \"balanced\": false, \"abnormal\": []}, \"passed\": true}, {\"check\": \"control 6\", \"actual\": {\"rows\": [[\"6\", 1, 0], [\"1500\", 0, 5000], [\"2100\", 0, 1]], \"totals\": [1, 5001], \"balanced\": false, \"abnormal\": []}, \"expected\": {\"rows\": [[\"6\", 1, 0], [\"1500\", 0, 5000], [\"2100\", 0, 1]], \"totals\": [1, 5001], \"balanced\": false, \"abnormal\": []}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":50.762,"exit_code":1,"observations":[{"actual":{"abnormal":["1500","7200"],"balanced":false,"rows":[["101",900,0],["150",1,0],["510",0,250],["1500",-1,0],["2100",0,1],["7200",-3766,0]],"totals":[-2866,251]},"check":"regression: column selection","expected":{"abnormal":["1500","7200"],"balanced":false,"rows":[["101",900,0],["150",1,0],["510",0,250],["1500",0,1],["2100",0,1],["7200",0,3766]],"totals":[901,4018]},"passed":false},{"actual":{"abnormal":[],"balanced":false,"rows":[["1500",0,1],["4000",250,0],["7200",5000,0]],"totals":[5250,1]},"check":"control 1","expected":{"abnormal":[],"balanced":false,"rows":[["1500",0,1],["4000",250,0],["7200",5000,0]],"totals":[5250,1]},"passed":true},{"actual":{"abnormal":[],"balanced":false,"rows":[["101",1,0],["7200",650,0]],"totals":[651,0]},"check":"control 2","expected":{"abnormal":[],"balanced":false,"rows":[["101",1,0],["7200",650,0]],"totals":[651,0]},"passed":true},{"actual":{"abnormal":[],"balanced":true,"rows":[],"totals":[0,0]},"check":"control 3","expected":{"abnormal":[],"balanced":true,"rows":[],"totals":[0,0]},"passed":true},{"actual":{"abnormal":[],"balanced":false,"rows":[["101",0,5000],["205",0,1],["1010",0,1234],["2100",0,1],["4000",334,0]],"totals":[334,6236]},"check":"control 4","expected":{"abnormal":[],"balanced":false,"rows":[["101",0,5000],["205",0,1],["1010",0,1234],["2100",0,1],["4000",334,0]],"totals":[334,6236]},"passed":true},{"actual":{"abnormal":[],"balanced":false,"rows":[["6",5000,0],["99",100,0],["150",0,4100],["4000",1,0],["7200",0,1]],"totals":[5101,4101]},"check":"control 5","expected":{"abnormal":[],"balanced":false,"rows":[["6",5000,0],["99",100,0],["150",0,4100],["4000",1,0],["7200",0,1]],"totals":[5101,4101]},"passed":true},{"actual":{"abnormal":[],"balanced":false,"rows":[["6",1,0],["1500",0,5000],["2100",0,1]],"totals":[1,5001]},"check":"control 6","expected":{"abnormal":[],"balanced":false,"rows":[["6",1,0],["1500",0,5000],["2100",0,1]],"totals":[1,5001]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: column selection\", \"actual\": {\"rows\": [[\"101\", 900, 0], [\"150\", 1, 0], [\"510\", 0, 250], [\"1500\", -1, 0], [\"2100\", 0, 1], [\"7200\", -3766, 0]], \"totals\": [-2866, 251], \"balanced\": false, \"abnormal\": [\"1500\", \"7200\"]}, \"expected\": {\"rows\": [[\"101\", 900, 0], [\"150\", 1, 0], [\"510\", 0, 250], [\"1500\", 0, 1], [\"2100\", 0, 1], [\"7200\", 0, 3766]], \"totals\": [901, 4018], \"balanced\": false, \"abnormal\": [\"1500\", \"7200\"]}, \"passed\": false}, {\"check\": \"control 1\", \"actual\": {\"rows\": [[\"1500\", 0, 1], [\"4000\", 250, 0], [\"7200\", 5000, 0]], \"totals\": [5250, 1], \"balanced\": false, \"abnormal\": []}, \"expected\": {\"rows\": [[\"1500\", 0, 1], [\"4000\", 250, 0], [\"7200\", 5000, 0]], \"totals\": [5250, 1], \"balanced\": false, \"abnormal\": []}, \"passed\": true}, {\"check\": \"control 2\", \"actual\": {\"rows\": [[\"101\", 1, 0], [\"7200\", 650, 0]], \"totals\": [651, 0], \"balanced\": false, \"abnormal\": []}, \"expected\": {\"rows\": [[\"101\", 1, 0], [\"7200\", 650, 0]], \"totals\": [651, 0], \"balanced\": false, \"abnormal\": []}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"rows\": [], \"totals\": [0, 0], \"balanced\": true, \"abnormal\": []}, \"expected\": {\"rows\": [], \"totals\": [0, 0], \"balanced\": true, \"abnormal\": []}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"rows\": [[\"101\", 0, 5000], [\"205\", 0, 1], [\"1010\", 0, 1234], [\"2100\", 0, 1], [\"4000\", 334, 0]], \"totals\": [334, 6236], \"balanced\": false, \"abnormal\": []}, \"expected\": {\"rows\": [[\"101\", 0, 5000], [\"205\", 0, 1], [\"1010\", 0, 1234], [\"2100\", 0, 1], [\"4000\", 334, 0]], \"totals\": [334, 6236], \"balanced\": false, \"abnormal\": []}, \"passed\": true}, {\"check\": \"control 5\", \"actual\": {\"rows\": [[\"6\", 5000, 0], [\"99\", 100, 0], [\"150\", 0, 4100], [\"4000\", 1, 0], [\"7200\", 0, 1]], \"totals\": [5101, 4101], \"balanced\": false, \"abnormal\": []}, \"expected\": {\"rows\": [[\"6\", 5000, 0], [\"99\", 100, 0], [\"150\", 0, 4100], [\"4000\", 1, 0], [\"7200\", 0, 1]], \"totals\": [5101, 4101], \"balanced\": false, \"abnormal\": []}, \"passed\": true}, {\"check\": \"control 6\", \"actual\": {\"rows\": [[\"6\", 1, 0], [\"1500\", 0, 5000], [\"2100\", 0, 1]], \"totals\": [1, 5001], \"balanced\": false, \"abnormal\": []}, \"expected\": {\"rows\": [[\"6\", 1, 0], [\"1500\", 0, 5000], [\"2100\", 0, 1]], \"totals\": [1, 5001], \"balanced\": false, \"abnormal\": []}, \"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."}}