{"abstract":"Newly counted items show a huge positive adjustment as if they were previously carried at zero.","category":"Inventory cost layering","checks":8,"contract":"Input {items:[{sku,qty,cost,price,complete,sell_bp,group}], prior:{sku:carrying unit}}. NRV = price - complete - round-half-up(price*sell_bp/10000), floored at 0. Carrying unit = min(original cost, NRV). Adjustment = qty*(carrying - prior carrying), prior defaulting to original cost (reversals are thereby capped at cost). Group check: write-down per group = max(0, sum qty*cost - sum qty*NRV). Return {items:[[sku,carry,adj]], group_writedown}.","evaluation_group":"w2-inventory-cost-layering-lcnrv-writedown","failed_approach":"Defaulting to the current NRV makes every first-time write-down disappear.","family":"w2-inventory-cost-layering-lcnrv-writedown-prior-carrying-default","id":"FA-59986","implementations":{"attempt":{"sha256":"7abed80038c5ab570cdd1cd1ce0a163896ec419edb7ca6b92611d39cc643918d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    res = []\n    groups = {}\n    for it in x['items']:\n        sell = (it['price'] * it['sell_bp'] + 5000) // 10000\n        nrv = it['price'] - it['complete'] - sell\n        if nrv < 0:\n            nrv = 0\n        carry = min(it['cost'], nrv)\n        prior = x['prior'].get(it['sku'], carry)\n        res.append([it['sku'], carry, it['qty'] * (carry - prior)])\n        g = groups.setdefault(it['group'], [0, 0])\n        g[0] += it['qty'] * it['cost']\n        g[1] += it['qty'] * nrv\n    gw = {k: max(0, v[0] - v[1]) for k, v in sorted(groups.items())}\n    return {'items': res, 'group_writedown': gw}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1001, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 251, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 601}}, {'items': [['D', 800, 796]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 601, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1002, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 252, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 602}}, {'items': [['D', 800, 792]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 602, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1003, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 253, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 603}}, {'items': [['D', 800, 788]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 603, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1004, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 254, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 604}}, {'items': [['D', 800, 784]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 604, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1005, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 889, -555]], 'group_writedown': {'g1': 555}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 255, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 605}}, {'items': [['D', 800, 780]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 605, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"310a06fa458cb5276d8097f759cfcd19c21f89e1d2cabe352187db7b1158bc48","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    res = []\n    groups = {}\n    for it in x['items']:\n        sell = (it['price'] * it['sell_bp'] + 5000) // 10000\n        nrv = it['price'] - it['complete'] - sell\n        if nrv < 0:\n            nrv = 0\n        carry = min(it['cost'], nrv)\n        prior = x['prior'].get(it['sku'], 0)\n        res.append([it['sku'], carry, it['qty'] * (carry - prior)])\n        g = groups.setdefault(it['group'], [0, 0])\n        g[0] += it['qty'] * it['cost']\n        g[1] += it['qty'] * nrv\n    gw = {k: max(0, v[0] - v[1]) for k, v in sorted(groups.items())}\n    return {'items': res, 'group_writedown': gw}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1001, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 251, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 601}}, {'items': [['D', 800, 796]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 601, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1002, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 252, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 602}}, {'items': [['D', 800, 792]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 602, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1003, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 253, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 603}}, {'items': [['D', 800, 788]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 603, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1004, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 254, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 604}}, {'items': [['D', 800, 784]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 604, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1005, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 889, -555]], 'group_writedown': {'g1': 555}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 255, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 605}}, {'items': [['D', 800, 780]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 605, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"cab7615eb088898bedc5511cbbba4cef678413df4b02fa2c7e837fdbbd4b6245","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    res = []\n    groups = {}\n    for it in x['items']:\n        sell = (it['price'] * it['sell_bp'] + 5000) // 10000\n        nrv = it['price'] - it['complete'] - sell\n        if nrv < 0:\n            nrv = 0\n        carry = min(it['cost'], nrv)\n        prior = x['prior'].get(it['sku'], it['cost'])\n        res.append([it['sku'], carry, it['qty'] * (carry - prior)])\n        g = groups.setdefault(it['group'], [0, 0])\n        g[0] += it['qty'] * it['cost']\n        g[1] += it['qty'] * nrv\n    gw = {k: max(0, v[0] - v[1]) for k, v in sorted(groups.items())}\n    return {'items': res, 'group_writedown': gw}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1001, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 251, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 601}}, {'items': [['D', 800, 796]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 601, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1002, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 252, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 602}}, {'items': [['D', 800, 792]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 602, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1003, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 253, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 603}}, {'items': [['D', 800, 788]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 603, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1004, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 890, -550]], 'group_writedown': {'g1': 550}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 254, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 604}}, {'items': [['D', 800, 784]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 604, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]], [['write down', {'items': [{'sku': 'A', 'qty': 5, 'cost': 1000, 'price': 1100, 'complete': 100, 'sell_bp': 1005, 'group': 'g1'}], 'prior': {}}, {'items': [['A', 889, -555]], 'group_writedown': {'g1': 555}}], ['no write down', {'items': [{'sku': 'B', 'qty': 2, 'cost': 500, 'price': 900, 'complete': 50, 'sell_bp': 500, 'group': 'g1'}], 'prior': {}}, {'items': [['B', 500, 0]], 'group_writedown': {'g1': 0}}], ['negative nrv', {'items': [{'sku': 'C', 'qty': 3, 'cost': 400, 'price': 300, 'complete': 255, 'sell_bp': 2000, 'group': 'g2'}], 'prior': {}}, {'items': [['C', 0, -1200]], 'group_writedown': {'g2': 1200}}], ['reversal capped', {'items': [{'sku': 'D', 'qty': 4, 'cost': 800, 'price': 1500, 'complete': 0, 'sell_bp': 0, 'group': 'g2'}], 'prior': {'D': 605}}, {'items': [['D', 800, 780]], 'group_writedown': {'g2': 0}}], ['partial reversal', {'items': [{'sku': 'E', 'qty': 1, 'cost': 800, 'price': 850, 'complete': 0, 'sell_bp': 1000, 'group': 'g1'}], 'prior': {'E': 700}}, {'items': [['E', 765, 65]], 'group_writedown': {'g1': 35}}], ['group offset', {'items': [{'sku': 'F', 'qty': 1, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}, {'sku': 'G', 'qty': 1, 'cost': 200, 'price': 605, 'complete': 0, 'sell_bp': 0, 'group': 'g3'}], 'prior': {}}, {'items': [['F', 700, -300], ['G', 200, 0]], 'group_writedown': {'g3': 0}}], ['group loss', {'items': [{'sku': 'H', 'qty': 2, 'cost': 1000, 'price': 700, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}, {'sku': 'J', 'qty': 1, 'cost': 200, 'price': 250, 'complete': 0, 'sell_bp': 0, 'group': 'g4'}], 'prior': {'H': 900}}, {'items': [['H', 700, -400], ['J', 200, 0]], 'group_writedown': {'g4': 550}}], ['costly completion', {'items': [{'sku': 'K', 'qty': 1, 'cost': 300, 'price': 1000, 'complete': 900, 'sell_bp': 500, 'group': 'g5'}], 'prior': {}}, {'items': [['K', 50, -250]], 'group_writedown': {'g5': 250}}]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Stipulated bounded teaching model with explicit toy rules; not an accounting-standard implementation. 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-inventory-cost-layering-lcnrv-writedown-prior-carrying-default","generated_at":"2026-09-29T14:46:41.453714+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Inventory valuation and cost-of-goods decisions depend on this rule.","repair":"Default the prior carrying value to original cost.","root_cause":"A missing prior carrying value defaults to zero instead of original cost.","sha256":"846d31bda1ea3b6435ced3acffc442c95458b0782d7b75440ab393f609749c7b","title":"Lower of cost and net realizable value: prior carrying default · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.117,"exit_code":1,"observations":[{"actual":{"group_writedown":{"g1":550},"items":[["A",890,0]]},"check":"write down","expected":{"group_writedown":{"g1":550},"items":[["A",890,-550]]},"passed":false},{"actual":{"group_writedown":{"g1":0},"items":[["B",500,0]]},"check":"no write down","expected":{"group_writedown":{"g1":0},"items":[["B",500,0]]},"passed":true},{"actual":{"group_writedown":{"g2":1200},"items":[["C",0,0]]},"check":"negative nrv","expected":{"group_writedown":{"g2":1200},"items":[["C",0,-1200]]},"passed":false},{"actual":{"group_writedown":{"g2":0},"items":[["D",800,796]]},"check":"reversal capped","expected":{"group_writedown":{"g2":0},"items":[["D",800,796]]},"passed":true},{"actual":{"group_writedown":{"g1":35},"items":[["E",765,65]]},"check":"partial reversal","expected":{"group_writedown":{"g1":35},"items":[["E",765,65]]},"passed":true},{"actual":{"group_writedown":{"g3":0},"items":[["F",700,0],["G",200,0]]},"check":"group offset","expected":{"group_writedown":{"g3":0},"items":[["F",700,-300],["G",200,0]]},"passed":false},{"actual":{"group_writedown":{"g4":550},"items":[["H",700,-400],["J",200,0]]},"check":"group loss","expected":{"group_writedown":{"g4":550},"items":[["H",700,-400],["J",200,0]]},"passed":true},{"actual":{"group_writedown":{"g5":250},"items":[["K",50,0]]},"check":"costly completion","expected":{"group_writedown":{"g5":250},"items":[["K",50,-250]]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"write down\", \"actual\": {\"items\": [[\"A\", 890, 0]], \"group_writedown\": {\"g1\": 550}}, \"expected\": {\"items\": [[\"A\", 890, -550]], \"group_writedown\": {\"g1\": 550}}, \"passed\": false}, {\"check\": \"no write down\", \"actual\": {\"items\": [[\"B\", 500, 0]], \"group_writedown\": {\"g1\": 0}}, \"expected\": {\"items\": [[\"B\", 500, 0]], \"group_writedown\": {\"g1\": 0}}, \"passed\": true}, {\"check\": \"negative nrv\", \"actual\": {\"items\": [[\"C\", 0, 0]], \"group_writedown\": {\"g2\": 1200}}, \"expected\": {\"items\": [[\"C\", 0, -1200]], \"group_writedown\": {\"g2\": 1200}}, \"passed\": false}, {\"check\": \"reversal capped\", \"actual\": {\"items\": [[\"D\", 800, 796]], \"group_writedown\": {\"g2\": 0}}, \"expected\": {\"items\": [[\"D\", 800, 796]], \"group_writedown\": {\"g2\": 0}}, \"passed\": true}, {\"check\": \"partial reversal\", \"actual\": {\"items\": [[\"E\", 765, 65]], \"group_writedown\": {\"g1\": 35}}, \"expected\": {\"items\": [[\"E\", 765, 65]], \"group_writedown\": {\"g1\": 35}}, \"passed\": true}, {\"check\": \"group offset\", \"actual\": {\"items\": [[\"F\", 700, 0], [\"G\", 200, 0]], \"group_writedown\": {\"g3\": 0}}, \"expected\": {\"items\": [[\"F\", 700, -300], [\"G\", 200, 0]], \"group_writedown\": {\"g3\": 0}}, \"passed\": false}, {\"check\": \"group loss\", \"actual\": {\"items\": [[\"H\", 700, -400], [\"J\", 200, 0]], \"group_writedown\": {\"g4\": 550}}, \"expected\": {\"items\": [[\"H\", 700, -400], [\"J\", 200, 0]], \"group_writedown\": {\"g4\": 550}}, \"passed\": true}, {\"check\": \"costly completion\", \"actual\": {\"items\": [[\"K\", 50, 0]], \"group_writedown\": {\"g5\": 250}}, \"expected\": {\"items\": [[\"K\", 50, -250]], \"group_writedown\": {\"g5\": 250}}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.544,"exit_code":1,"observations":[{"actual":{"group_writedown":{"g1":550},"items":[["A",890,4450]]},"check":"write down","expected":{"group_writedown":{"g1":550},"items":[["A",890,-550]]},"passed":false},{"actual":{"group_writedown":{"g1":0},"items":[["B",500,1000]]},"check":"no write down","expected":{"group_writedown":{"g1":0},"items":[["B",500,0]]},"passed":false},{"actual":{"group_writedown":{"g2":1200},"items":[["C",0,0]]},"check":"negative nrv","expected":{"group_writedown":{"g2":1200},"items":[["C",0,-1200]]},"passed":false},{"actual":{"group_writedown":{"g2":0},"items":[["D",800,796]]},"check":"reversal capped","expected":{"group_writedown":{"g2":0},"items":[["D",800,796]]},"passed":true},{"actual":{"group_writedown":{"g1":35},"items":[["E",765,65]]},"check":"partial reversal","expected":{"group_writedown":{"g1":35},"items":[["E",765,65]]},"passed":true},{"actual":{"group_writedown":{"g3":0},"items":[["F",700,700],["G",200,200]]},"check":"group offset","expected":{"group_writedown":{"g3":0},"items":[["F",700,-300],["G",200,0]]},"passed":false},{"actual":{"group_writedown":{"g4":550},"items":[["H",700,-400],["J",200,200]]},"check":"group loss","expected":{"group_writedown":{"g4":550},"items":[["H",700,-400],["J",200,0]]},"passed":false},{"actual":{"group_writedown":{"g5":250},"items":[["K",50,50]]},"check":"costly completion","expected":{"group_writedown":{"g5":250},"items":[["K",50,-250]]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"write down\", \"actual\": {\"items\": [[\"A\", 890, 4450]], \"group_writedown\": {\"g1\": 550}}, \"expected\": {\"items\": [[\"A\", 890, -550]], \"group_writedown\": {\"g1\": 550}}, \"passed\": false}, {\"check\": \"no write down\", \"actual\": {\"items\": [[\"B\", 500, 1000]], \"group_writedown\": {\"g1\": 0}}, \"expected\": {\"items\": [[\"B\", 500, 0]], \"group_writedown\": {\"g1\": 0}}, \"passed\": false}, {\"check\": \"negative nrv\", \"actual\": {\"items\": [[\"C\", 0, 0]], \"group_writedown\": {\"g2\": 1200}}, \"expected\": {\"items\": [[\"C\", 0, -1200]], \"group_writedown\": {\"g2\": 1200}}, \"passed\": false}, {\"check\": \"reversal capped\", \"actual\": {\"items\": [[\"D\", 800, 796]], \"group_writedown\": {\"g2\": 0}}, \"expected\": {\"items\": [[\"D\", 800, 796]], \"group_writedown\": {\"g2\": 0}}, \"passed\": true}, {\"check\": \"partial reversal\", \"actual\": {\"items\": [[\"E\", 765, 65]], \"group_writedown\": {\"g1\": 35}}, \"expected\": {\"items\": [[\"E\", 765, 65]], \"group_writedown\": {\"g1\": 35}}, \"passed\": true}, {\"check\": \"group offset\", \"actual\": {\"items\": [[\"F\", 700, 700], [\"G\", 200, 200]], \"group_writedown\": {\"g3\": 0}}, \"expected\": {\"items\": [[\"F\", 700, -300], [\"G\", 200, 0]], \"group_writedown\": {\"g3\": 0}}, \"passed\": false}, {\"check\": \"group loss\", \"actual\": {\"items\": [[\"H\", 700, -400], [\"J\", 200, 200]], \"group_writedown\": {\"g4\": 550}}, \"expected\": {\"items\": [[\"H\", 700, -400], [\"J\", 200, 0]], \"group_writedown\": {\"g4\": 550}}, \"passed\": false}, {\"check\": \"costly completion\", \"actual\": {\"items\": [[\"K\", 50, 50]], \"group_writedown\": {\"g5\": 250}}, \"expected\": {\"items\": [[\"K\", 50, -250]], \"group_writedown\": {\"g5\": 250}}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.368,"exit_code":0,"observations":[{"actual":{"group_writedown":{"g1":550},"items":[["A",890,-550]]},"check":"write down","expected":{"group_writedown":{"g1":550},"items":[["A",890,-550]]},"passed":true},{"actual":{"group_writedown":{"g1":0},"items":[["B",500,0]]},"check":"no write down","expected":{"group_writedown":{"g1":0},"items":[["B",500,0]]},"passed":true},{"actual":{"group_writedown":{"g2":1200},"items":[["C",0,-1200]]},"check":"negative nrv","expected":{"group_writedown":{"g2":1200},"items":[["C",0,-1200]]},"passed":true},{"actual":{"group_writedown":{"g2":0},"items":[["D",800,796]]},"check":"reversal capped","expected":{"group_writedown":{"g2":0},"items":[["D",800,796]]},"passed":true},{"actual":{"group_writedown":{"g1":35},"items":[["E",765,65]]},"check":"partial reversal","expected":{"group_writedown":{"g1":35},"items":[["E",765,65]]},"passed":true},{"actual":{"group_writedown":{"g3":0},"items":[["F",700,-300],["G",200,0]]},"check":"group offset","expected":{"group_writedown":{"g3":0},"items":[["F",700,-300],["G",200,0]]},"passed":true},{"actual":{"group_writedown":{"g4":550},"items":[["H",700,-400],["J",200,0]]},"check":"group loss","expected":{"group_writedown":{"g4":550},"items":[["H",700,-400],["J",200,0]]},"passed":true},{"actual":{"group_writedown":{"g5":250},"items":[["K",50,-250]]},"check":"costly completion","expected":{"group_writedown":{"g5":250},"items":[["K",50,-250]]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"write down\", \"actual\": {\"items\": [[\"A\", 890, -550]], \"group_writedown\": {\"g1\": 550}}, \"expected\": {\"items\": [[\"A\", 890, -550]], \"group_writedown\": {\"g1\": 550}}, \"passed\": true}, {\"check\": \"no write down\", \"actual\": {\"items\": [[\"B\", 500, 0]], \"group_writedown\": {\"g1\": 0}}, \"expected\": {\"items\": [[\"B\", 500, 0]], \"group_writedown\": {\"g1\": 0}}, \"passed\": true}, {\"check\": \"negative nrv\", \"actual\": {\"items\": [[\"C\", 0, -1200]], \"group_writedown\": {\"g2\": 1200}}, \"expected\": {\"items\": [[\"C\", 0, -1200]], \"group_writedown\": {\"g2\": 1200}}, \"passed\": true}, {\"check\": \"reversal capped\", \"actual\": {\"items\": [[\"D\", 800, 796]], \"group_writedown\": {\"g2\": 0}}, \"expected\": {\"items\": [[\"D\", 800, 796]], \"group_writedown\": {\"g2\": 0}}, \"passed\": true}, {\"check\": \"partial reversal\", \"actual\": {\"items\": [[\"E\", 765, 65]], \"group_writedown\": {\"g1\": 35}}, \"expected\": {\"items\": [[\"E\", 765, 65]], \"group_writedown\": {\"g1\": 35}}, \"passed\": true}, {\"check\": \"group offset\", \"actual\": {\"items\": [[\"F\", 700, -300], [\"G\", 200, 0]], \"group_writedown\": {\"g3\": 0}}, \"expected\": {\"items\": [[\"F\", 700, -300], [\"G\", 200, 0]], \"group_writedown\": {\"g3\": 0}}, \"passed\": true}, {\"check\": \"group loss\", \"actual\": {\"items\": [[\"H\", 700, -400], [\"J\", 200, 0]], \"group_writedown\": {\"g4\": 550}}, \"expected\": {\"items\": [[\"H\", 700, -400], [\"J\", 200, 0]], \"group_writedown\": {\"g4\": 550}}, \"passed\": true}, {\"check\": \"costly completion\", \"actual\": {\"items\": [[\"K\", 50, -250]], \"group_writedown\": {\"g5\": 250}}, \"expected\": {\"items\": [[\"K\", 50, -250]], \"group_writedown\": {\"g5\": 250}}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}