{"abstract":"Unbilled units on hand are revalued to the invoice price.","category":"Inventory cost layering","checks":7,"contract":"Input {received, po_price, consumed, invoice_qty, invoice_price, tolerance}. Billed units = min(invoice_qty, received); total variance = billed*(invoice-po). If |total| <= tolerance the variance is written off and the layer is unchanged. Otherwise billed units are matched to consumed units first: consumed billed units adjust COGS, the rest revalue the on-hand layer. Return {layer_value, cogs_adj, writeoff, mismatch}.","evaluation_group":"w2-inventory-cost-layering-invoice-price-revaluation","failed_approach":"Putting all billed variance into the layer double counts the consumed portion.","family":"w2-inventory-cost-layering-invoice-price-revaluation-layer-revaluation-scope","id":"FA-60161","implementations":{"attempt":{"sha256":"1ca2d5f995c5c1713b2cb765025923f9cb8f8c2128d9572590a08caaeaa779f9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    q = x['received']\n    p = x['po_price']\n    onhand = q - x['consumed']\n    billed = min(x['invoice_qty'], q)\n    d = x['invoice_price'] - p\n    total = billed * d\n    mismatch = x['invoice_qty'] != q\n    if abs(total) <= x['tolerance']:\n        return {'layer_value': onhand * p, 'cogs_adj': 0, 'writeoff': total, 'mismatch': mismatch}\n    consumed_billed = min(billed, x['consumed'])\n    onhand_billed = billed - consumed_billed\n    return {'layer_value': onhand * p + billed * d, 'cogs_adj': consumed_billed * d, 'writeoff': 0, 'mismatch': mismatch}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 111, 'tolerance': 20}, {'layer_value': 666, 'cogs_adj': 44, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 3, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 1200, 'cogs_adj': -30, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 6}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 51, 'tolerance': 4}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 4, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 10, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 399, 'tolerance': 100}, {'layer_value': 2793, 'cogs_adj': -505, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 112, 'tolerance': 20}, {'layer_value': 672, 'cogs_adj': 48, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 4, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 960, 'cogs_adj': -40, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 7}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 52, 'tolerance': 8}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 8, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 11, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 398, 'tolerance': 100}, {'layer_value': 2786, 'cogs_adj': -510, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 113, 'tolerance': 20}, {'layer_value': 678, 'cogs_adj': 52, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 2, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 1440, 'cogs_adj': -20, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 8}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 53, 'tolerance': 12}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 12, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 12, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 397, 'tolerance': 100}, {'layer_value': 2779, 'cogs_adj': -515, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 114, 'tolerance': 20}, {'layer_value': 684, 'cogs_adj': 56, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 3, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 1200, 'cogs_adj': -30, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 9}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 54, 'tolerance': 16}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 16, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 13, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 396, 'tolerance': 100}, {'layer_value': 2772, 'cogs_adj': -520, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 115, 'tolerance': 20}, {'layer_value': 690, 'cogs_adj': 60, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 4, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 960, 'cogs_adj': -40, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 10}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 55, 'tolerance': 20}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 20, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 14, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 395, 'tolerance': 100}, {'layer_value': 2765, 'cogs_adj': -525, 'writeoff': 0, 'mismatch': False}]]]\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":"798270dc8f925e22aeef3d2f2b0c70c9f63807d6489053dc4e96f85d878aff64","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    q = x['received']\n    p = x['po_price']\n    onhand = q - x['consumed']\n    billed = min(x['invoice_qty'], q)\n    d = x['invoice_price'] - p\n    total = billed * d\n    mismatch = x['invoice_qty'] != q\n    if abs(total) <= x['tolerance']:\n        return {'layer_value': onhand * p, 'cogs_adj': 0, 'writeoff': total, 'mismatch': mismatch}\n    consumed_billed = min(billed, x['consumed'])\n    onhand_billed = billed - consumed_billed\n    return {'layer_value': onhand * x['invoice_price'], 'cogs_adj': consumed_billed * d, 'writeoff': 0, 'mismatch': mismatch}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 111, 'tolerance': 20}, {'layer_value': 666, 'cogs_adj': 44, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 3, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 1200, 'cogs_adj': -30, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 6}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 51, 'tolerance': 4}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 4, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 10, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 399, 'tolerance': 100}, {'layer_value': 2793, 'cogs_adj': -505, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 112, 'tolerance': 20}, {'layer_value': 672, 'cogs_adj': 48, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 4, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 960, 'cogs_adj': -40, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 7}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 52, 'tolerance': 8}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 8, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 11, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 398, 'tolerance': 100}, {'layer_value': 2786, 'cogs_adj': -510, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 113, 'tolerance': 20}, {'layer_value': 678, 'cogs_adj': 52, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 2, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 1440, 'cogs_adj': -20, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 8}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 53, 'tolerance': 12}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 12, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 12, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 397, 'tolerance': 100}, {'layer_value': 2779, 'cogs_adj': -515, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 114, 'tolerance': 20}, {'layer_value': 684, 'cogs_adj': 56, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 3, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 1200, 'cogs_adj': -30, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 9}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 54, 'tolerance': 16}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 16, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 13, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 396, 'tolerance': 100}, {'layer_value': 2772, 'cogs_adj': -520, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 115, 'tolerance': 20}, {'layer_value': 690, 'cogs_adj': 60, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 4, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 960, 'cogs_adj': -40, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 10}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 55, 'tolerance': 20}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 20, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 14, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 395, 'tolerance': 100}, {'layer_value': 2765, 'cogs_adj': -525, 'writeoff': 0, 'mismatch': False}]]]\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":"e4093711de4e0f97108328fb7ba30d662e8bcd6e9dc7b19b04b972127e66e036","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    q = x['received']\n    p = x['po_price']\n    onhand = q - x['consumed']\n    billed = min(x['invoice_qty'], q)\n    d = x['invoice_price'] - p\n    total = billed * d\n    mismatch = x['invoice_qty'] != q\n    if abs(total) <= x['tolerance']:\n        return {'layer_value': onhand * p, 'cogs_adj': 0, 'writeoff': total, 'mismatch': mismatch}\n    consumed_billed = min(billed, x['consumed'])\n    onhand_billed = billed - consumed_billed\n    return {'layer_value': onhand * p + onhand_billed * d, 'cogs_adj': consumed_billed * d, 'writeoff': 0, 'mismatch': mismatch}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 111, 'tolerance': 20}, {'layer_value': 666, 'cogs_adj': 44, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 3, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 1200, 'cogs_adj': -30, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 6}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 51, 'tolerance': 4}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 4, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 10, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 399, 'tolerance': 100}, {'layer_value': 2793, 'cogs_adj': -505, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 112, 'tolerance': 20}, {'layer_value': 672, 'cogs_adj': 48, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 4, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 960, 'cogs_adj': -40, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 7}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 52, 'tolerance': 8}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 8, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 11, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 398, 'tolerance': 100}, {'layer_value': 2786, 'cogs_adj': -510, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 113, 'tolerance': 20}, {'layer_value': 678, 'cogs_adj': 52, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 2, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 1440, 'cogs_adj': -20, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 8}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 53, 'tolerance': 12}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 12, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 12, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 397, 'tolerance': 100}, {'layer_value': 2779, 'cogs_adj': -515, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 114, 'tolerance': 20}, {'layer_value': 684, 'cogs_adj': 56, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 3, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 1200, 'cogs_adj': -30, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 9}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 54, 'tolerance': 16}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 16, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 13, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 396, 'tolerance': 100}, {'layer_value': 2772, 'cogs_adj': -520, 'writeoff': 0, 'mismatch': False}]], [['price up partly consumed', {'received': 10, 'po_price': 100, 'consumed': 4, 'invoice_qty': 10, 'invoice_price': 115, 'tolerance': 20}, {'layer_value': 690, 'cogs_adj': 60, 'writeoff': 0, 'mismatch': False}], ['price down', {'received': 8, 'po_price': 250, 'consumed': 4, 'invoice_qty': 8, 'invoice_price': 240, 'tolerance': 5}, {'layer_value': 960, 'cogs_adj': -40, 'writeoff': 0, 'mismatch': False}], ['within tolerance', {'received': 5, 'po_price': 100, 'consumed': 1, 'invoice_qty': 5, 'invoice_price': 101, 'tolerance': 10}, {'layer_value': 400, 'cogs_adj': 0, 'writeoff': 5, 'mismatch': False}], ['tolerance edge', {'received': 4, 'po_price': 50, 'consumed': 0, 'invoice_qty': 4, 'invoice_price': 55, 'tolerance': 20}, {'layer_value': 200, 'cogs_adj': 0, 'writeoff': 20, 'mismatch': False}], ['under billed', {'received': 10, 'po_price': 30, 'consumed': 3, 'invoice_qty': 6, 'invoice_price': 40, 'tolerance': 0}, {'layer_value': 240, 'cogs_adj': 30, 'writeoff': 0, 'mismatch': True}], ['over billed', {'received': 6, 'po_price': 30, 'consumed': 2, 'invoice_qty': 14, 'invoice_price': 35, 'tolerance': 1}, {'layer_value': 140, 'cogs_adj': 10, 'writeoff': 0, 'mismatch': True}], ['large credit', {'received': 12, 'po_price': 500, 'consumed': 5, 'invoice_qty': 12, 'invoice_price': 395, 'tolerance': 100}, {'layer_value': 2765, 'cogs_adj': -525, 'writeoff': 0, 'mismatch': False}]]]\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-invoice-price-revaluation-layer-revaluation-scope","generated_at":"2026-09-29T14:46:43.063011+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":"Adjust the layer by onhand_billed * difference only.","root_cause":"The on-hand layer is revalued for all on-hand units at the invoice price rather than only for billed on-hand units.","sha256":"a454ab8492c3b420d52298a79b5191632cd3b076b862eee97bb4ce29cedb1fec","title":"Invoice price variance on receipt layers: layer revaluation scope · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.638,"exit_code":1,"observations":[{"actual":{"cogs_adj":44,"layer_value":710,"mismatch":false,"writeoff":0},"check":"price up partly consumed","expected":{"cogs_adj":44,"layer_value":666,"mismatch":false,"writeoff":0},"passed":false},{"actual":{"cogs_adj":-30,"layer_value":1170,"mismatch":false,"writeoff":0},"check":"price down","expected":{"cogs_adj":-30,"layer_value":1200,"mismatch":false,"writeoff":0},"passed":false},{"actual":{"cogs_adj":0,"layer_value":400,"mismatch":false,"writeoff":5},"check":"within tolerance","expected":{"cogs_adj":0,"layer_value":400,"mismatch":false,"writeoff":5},"passed":true},{"actual":{"cogs_adj":0,"layer_value":200,"mismatch":false,"writeoff":4},"check":"tolerance edge","expected":{"cogs_adj":0,"layer_value":200,"mismatch":false,"writeoff":4},"passed":true},{"actual":{"cogs_adj":30,"layer_value":270,"mismatch":true,"writeoff":0},"check":"under billed","expected":{"cogs_adj":30,"layer_value":240,"mismatch":true,"writeoff":0},"passed":false},{"actual":{"cogs_adj":10,"layer_value":150,"mismatch":true,"writeoff":0},"check":"over billed","expected":{"cogs_adj":10,"layer_value":140,"mismatch":true,"writeoff":0},"passed":false},{"actual":{"cogs_adj":-505,"layer_value":2288,"mismatch":false,"writeoff":0},"check":"large credit","expected":{"cogs_adj":-505,"layer_value":2793,"mismatch":false,"writeoff":0},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"price up partly consumed\", \"actual\": {\"layer_value\": 710, \"cogs_adj\": 44, \"writeoff\": 0, \"mismatch\": false}, \"expected\": {\"layer_value\": 666, \"cogs_adj\": 44, \"writeoff\": 0, \"mismatch\": false}, \"passed\": false}, {\"check\": \"price down\", \"actual\": {\"layer_value\": 1170, \"cogs_adj\": -30, \"writeoff\": 0, \"mismatch\": false}, \"expected\": {\"layer_value\": 1200, \"cogs_adj\": -30, \"writeoff\": 0, \"mismatch\": false}, \"passed\": false}, {\"check\": \"within tolerance\", \"actual\": {\"layer_value\": 400, \"cogs_adj\": 0, \"writeoff\": 5, \"mismatch\": false}, \"expected\": {\"layer_value\": 400, \"cogs_adj\": 0, \"writeoff\": 5, \"mismatch\": false}, \"passed\": true}, {\"check\": \"tolerance edge\", \"actual\": {\"layer_value\": 200, \"cogs_adj\": 0, \"writeoff\": 4, \"mismatch\": false}, \"expected\": {\"layer_value\": 200, \"cogs_adj\": 0, \"writeoff\": 4, \"mismatch\": false}, \"passed\": true}, {\"check\": \"under billed\", \"actual\": {\"layer_value\": 270, \"cogs_adj\": 30, \"writeoff\": 0, \"mismatch\": true}, \"expected\": {\"layer_value\": 240, \"cogs_adj\": 30, \"writeoff\": 0, \"mismatch\": true}, \"passed\": false}, {\"check\": \"over billed\", \"actual\": {\"layer_value\": 150, \"cogs_adj\": 10, \"writeoff\": 0, \"mismatch\": true}, \"expected\": {\"layer_value\": 140, \"cogs_adj\": 10, \"writeoff\": 0, \"mismatch\": true}, \"passed\": false}, {\"check\": \"large credit\", \"actual\": {\"layer_value\": 2288, \"cogs_adj\": -505, \"writeoff\": 0, \"mismatch\": false}, \"expected\": {\"layer_value\": 2793, \"cogs_adj\": -505, \"writeoff\": 0, \"mismatch\": false}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.579,"exit_code":1,"observations":[{"actual":{"cogs_adj":44,"layer_value":666,"mismatch":false,"writeoff":0},"check":"price up partly consumed","expected":{"cogs_adj":44,"layer_value":666,"mismatch":false,"writeoff":0},"passed":true},{"actual":{"cogs_adj":-30,"layer_value":1200,"mismatch":false,"writeoff":0},"check":"price down","expected":{"cogs_adj":-30,"layer_value":1200,"mismatch":false,"writeoff":0},"passed":true},{"actual":{"cogs_adj":0,"layer_value":400,"mismatch":false,"writeoff":5},"check":"within tolerance","expected":{"cogs_adj":0,"layer_value":400,"mismatch":false,"writeoff":5},"passed":true},{"actual":{"cogs_adj":0,"layer_value":200,"mismatch":false,"writeoff":4},"check":"tolerance edge","expected":{"cogs_adj":0,"layer_value":200,"mismatch":false,"writeoff":4},"passed":true},{"actual":{"cogs_adj":30,"layer_value":280,"mismatch":true,"writeoff":0},"check":"under billed","expected":{"cogs_adj":30,"layer_value":240,"mismatch":true,"writeoff":0},"passed":false},{"actual":{"cogs_adj":10,"layer_value":140,"mismatch":true,"writeoff":0},"check":"over billed","expected":{"cogs_adj":10,"layer_value":140,"mismatch":true,"writeoff":0},"passed":true},{"actual":{"cogs_adj":-505,"layer_value":2793,"mismatch":false,"writeoff":0},"check":"large credit","expected":{"cogs_adj":-505,"layer_value":2793,"mismatch":false,"writeoff":0},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"price up partly consumed\", \"actual\": {\"layer_value\": 666, \"cogs_adj\": 44, \"writeoff\": 0, \"mismatch\": false}, \"expected\": {\"layer_value\": 666, \"cogs_adj\": 44, \"writeoff\": 0, \"mismatch\": false}, \"passed\": true}, {\"check\": \"price down\", \"actual\": {\"layer_value\": 1200, \"cogs_adj\": -30, \"writeoff\": 0, \"mismatch\": false}, \"expected\": {\"layer_value\": 1200, \"cogs_adj\": -30, \"writeoff\": 0, \"mismatch\": false}, \"passed\": true}, {\"check\": \"within tolerance\", \"actual\": {\"layer_value\": 400, \"cogs_adj\": 0, \"writeoff\": 5, \"mismatch\": false}, \"expected\": {\"layer_value\": 400, \"cogs_adj\": 0, \"writeoff\": 5, \"mismatch\": false}, \"passed\": true}, {\"check\": \"tolerance edge\", \"actual\": {\"layer_value\": 200, \"cogs_adj\": 0, \"writeoff\": 4, \"mismatch\": false}, \"expected\": {\"layer_value\": 200, \"cogs_adj\": 0, \"writeoff\": 4, \"mismatch\": false}, \"passed\": true}, {\"check\": \"under billed\", \"actual\": {\"layer_value\": 280, \"cogs_adj\": 30, \"writeoff\": 0, \"mismatch\": true}, \"expected\": {\"layer_value\": 240, \"cogs_adj\": 30, \"writeoff\": 0, \"mismatch\": true}, \"passed\": false}, {\"check\": \"over billed\", \"actual\": {\"layer_value\": 140, \"cogs_adj\": 10, \"writeoff\": 0, \"mismatch\": true}, \"expected\": {\"layer_value\": 140, \"cogs_adj\": 10, \"writeoff\": 0, \"mismatch\": true}, \"passed\": true}, {\"check\": \"large credit\", \"actual\": {\"layer_value\": 2793, \"cogs_adj\": -505, \"writeoff\": 0, \"mismatch\": false}, \"expected\": {\"layer_value\": 2793, \"cogs_adj\": -505, \"writeoff\": 0, \"mismatch\": false}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.52,"exit_code":0,"observations":[{"actual":{"cogs_adj":44,"layer_value":666,"mismatch":false,"writeoff":0},"check":"price up partly consumed","expected":{"cogs_adj":44,"layer_value":666,"mismatch":false,"writeoff":0},"passed":true},{"actual":{"cogs_adj":-30,"layer_value":1200,"mismatch":false,"writeoff":0},"check":"price down","expected":{"cogs_adj":-30,"layer_value":1200,"mismatch":false,"writeoff":0},"passed":true},{"actual":{"cogs_adj":0,"layer_value":400,"mismatch":false,"writeoff":5},"check":"within tolerance","expected":{"cogs_adj":0,"layer_value":400,"mismatch":false,"writeoff":5},"passed":true},{"actual":{"cogs_adj":0,"layer_value":200,"mismatch":false,"writeoff":4},"check":"tolerance edge","expected":{"cogs_adj":0,"layer_value":200,"mismatch":false,"writeoff":4},"passed":true},{"actual":{"cogs_adj":30,"layer_value":240,"mismatch":true,"writeoff":0},"check":"under billed","expected":{"cogs_adj":30,"layer_value":240,"mismatch":true,"writeoff":0},"passed":true},{"actual":{"cogs_adj":10,"layer_value":140,"mismatch":true,"writeoff":0},"check":"over billed","expected":{"cogs_adj":10,"layer_value":140,"mismatch":true,"writeoff":0},"passed":true},{"actual":{"cogs_adj":-505,"layer_value":2793,"mismatch":false,"writeoff":0},"check":"large credit","expected":{"cogs_adj":-505,"layer_value":2793,"mismatch":false,"writeoff":0},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"price up partly consumed\", \"actual\": {\"layer_value\": 666, \"cogs_adj\": 44, \"writeoff\": 0, \"mismatch\": false}, \"expected\": {\"layer_value\": 666, \"cogs_adj\": 44, \"writeoff\": 0, \"mismatch\": false}, \"passed\": true}, {\"check\": \"price down\", \"actual\": {\"layer_value\": 1200, \"cogs_adj\": -30, \"writeoff\": 0, \"mismatch\": false}, \"expected\": {\"layer_value\": 1200, \"cogs_adj\": -30, \"writeoff\": 0, \"mismatch\": false}, \"passed\": true}, {\"check\": \"within tolerance\", \"actual\": {\"layer_value\": 400, \"cogs_adj\": 0, \"writeoff\": 5, \"mismatch\": false}, \"expected\": {\"layer_value\": 400, \"cogs_adj\": 0, \"writeoff\": 5, \"mismatch\": false}, \"passed\": true}, {\"check\": \"tolerance edge\", \"actual\": {\"layer_value\": 200, \"cogs_adj\": 0, \"writeoff\": 4, \"mismatch\": false}, \"expected\": {\"layer_value\": 200, \"cogs_adj\": 0, \"writeoff\": 4, \"mismatch\": false}, \"passed\": true}, {\"check\": \"under billed\", \"actual\": {\"layer_value\": 240, \"cogs_adj\": 30, \"writeoff\": 0, \"mismatch\": true}, \"expected\": {\"layer_value\": 240, \"cogs_adj\": 30, \"writeoff\": 0, \"mismatch\": true}, \"passed\": true}, {\"check\": \"over billed\", \"actual\": {\"layer_value\": 140, \"cogs_adj\": 10, \"writeoff\": 0, \"mismatch\": true}, \"expected\": {\"layer_value\": 140, \"cogs_adj\": 10, \"writeoff\": 0, \"mismatch\": true}, \"passed\": true}, {\"check\": \"large credit\", \"actual\": {\"layer_value\": 2793, \"cogs_adj\": -505, \"writeoff\": 0, \"mismatch\": false}, \"expected\": {\"layer_value\": 2793, \"cogs_adj\": -505, \"writeoff\": 0, \"mismatch\": false}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}