FAILURE MAP
← Case archive

FA-60181 / Inventory cost layering / Open access

Negative inventory provisional costing: backorder queue order · case 01

The newest backorder is settled first, attaching the wrong provisional cost to the true-up.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Settlement starts from the tail of the backorder queue.

VERIFIED REPAIR

Settle the oldest backorder first.

Unsuccessful approach: Settling the highest provisional cost first only coincides when prices rose monotonically.

Case contract

Events: receipts ["recv",qty,cost] and issues ["issue",qty]. Issues draw FIFO layers; any shortfall is issued provisionally at the last receipt cost (default_cost before any receipt) and queued as a backorder. A receipt first settles backorders oldest first, returning the true-up qty*(receipt cost - provisional cost); only the remainder becomes a layer. Return {results, layers, backorder}.

Why this case matters

Inventory valuation and cost-of-goods decisions depend on this rule.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    layers = []
    neg = []
    last = x['default_cost']
    out = []
    for ev in x['events']:
        if ev[0] == 'recv':
            q, c = ev[1], ev[2]
            adj = 0
            while q > 0 and neg:
                k = -1
                t = min(q, neg[k][0])
                adj += t * (c - neg[k][1])
                neg[k][0] -= t
                q -= t
                if neg[k][0] == 0:
                    neg.pop(k)
            if q > 0:
                layers.append([q, c])
            last = c
            out.append(adj)
        else:
            q = ev[1]
            cost = 0
            while q > 0 and layers:
                t = min(q, layers[0][0])
                cost += t * layers[0][1]
                layers[0][0] -= t
                q -= t
                if layers[0][0] == 0:
                    layers.pop(0)
            if q > 0:
                neg.append([q, last])
                cost += q * last
            out.append(cost)
    return {'results': out, 'layers': layers, 'backorder': neg}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 46]]}, {'results': [0, 200, 18], 'layers': [[3, 46]], 'backorder': []}], ['never received', {'default_cost': 31, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [62, 8], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 26]]}, {'results': [0, 40, 10, 90, -12], 'layers': [[1, 26]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 2], ['recv', 3, 50]]}, {'results': [0, 120, -10], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 1], ['issue', 1]]}, {'results': [7, 7], 'layers': [], 'backorder': [[1, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 41], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 21, 82, -1], 'layers': [], 'backorder': [[1, 41]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 47]]}, {'results': [0, 200, 21], 'layers': [[3, 47]], 'backorder': []}], ['never received', {'default_cost': 32, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [64, 6], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 27]]}, {'results': [0, 40, 10, 90, -9], 'layers': [[1, 27]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 3], ['recv', 4, 50]]}, {'results': [0, 180, -20], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 2], ['issue', 1]]}, {'results': [14, 7], 'layers': [], 'backorder': [[2, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 42], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 22, 84, -2], 'layers': [], 'backorder': [[1, 42]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 48]]}, {'results': [0, 200, 24], 'layers': [[3, 48]], 'backorder': []}], ['never received', {'default_cost': 33, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [66, 4], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 28]]}, {'results': [0, 40, 10, 90, -6], 'layers': [[1, 28]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 4], ['recv', 5, 50]]}, {'results': [0, 240, -30], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 3], ['issue', 1]]}, {'results': [21, 7], 'layers': [], 'backorder': [[3, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 43], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 23, 86, -3], 'layers': [], 'backorder': [[1, 43]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 49]]}, {'results': [0, 200, 27], 'layers': [[3, 49]], 'backorder': []}], ['never received', {'default_cost': 34, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [68, 2], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 29]]}, {'results': [0, 40, 10, 90, -3], 'layers': [[1, 29]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 5], ['recv', 6, 50]]}, {'results': [0, 300, -40], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 4], ['issue', 1]]}, {'results': [28, 7], 'layers': [], 'backorder': [[4, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 44], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 24, 88, -4], 'layers': [], 'backorder': [[1, 44]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 50]]}, {'results': [0, 200, 30], 'layers': [[3, 50]], 'backorder': []}], ['never received', {'default_cost': 35, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [70, 0], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 30]]}, {'results': [0, 40, 10, 90, 0], 'layers': [[1, 30]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 6], ['recv', 7, 50]]}, {'results': [0, 360, -50], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 5], ['issue', 1]]}, {'results': [35, 7], 'layers': [], 'backorder': [[5, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 45], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 25, 90, -5], 'layers': [], 'backorder': [[1, 45]]}]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
backorder settled{'backorder': [], 'layers': [[3, 46]], 'results': [0, 200, 18]}{'backorder': [], 'layers': [[3, 46]], 'results': [0, 200, 18]}Passed
never received{'backorder': [], 'layers': [[1, 35]], 'results': [62, 8]}{'backorder': [], 'layers': [[1, 35]], 'results': [62, 8]}Passed
partial settle{'backorder': [], 'layers': [[3, 11]], 'results': [0, 48, 6, 15, -5]}{'backorder': [], 'layers': [[3, 11]], 'results': [0, 48, 6, 15, -5]}Passed
two backorders{'backorder': [], 'layers': [[1, 26]], 'results': [0, 40, 10, 90, -12]}{'backorder': [], 'layers': [[1, 26]], 'results': [0, 40, 10, 90, -12]}Passed
no negative{'backorder': [], 'layers': [[2, 8], [1, 9]], 'results': [0, 24, 0]}{'backorder': [], 'layers': [[2, 8], [1, 9]], 'results': [0, 24, 0]}Passed
cheaper receipt{'backorder': [], 'layers': [[2, 50]], 'results': [0, 120, -10]}{'backorder': [], 'layers': [[2, 50]], 'results': [0, 120, -10]}Passed
left negative{'backorder': [[1, 7], [1, 7]], 'layers': [], 'results': [7, 7]}{'backorder': [[1, 7], [1, 7]], 'layers': [], 'results': [7, 7]}Passed
cheap backorder first{'backorder': [[1, 20]], 'layers': [], 'results': [0, 60, 21, 82, -22]}{'backorder': [[1, 41]], 'layers': [], 'results': [0, 60, 21, 82, -1]}Failed

SHA-256 / 47a38a0b95a6c9fb0a2ca65c61bb2a80144b67a78ca32fe26c7ffa293b486ac0

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    layers = []
    neg = []
    last = x['default_cost']
    out = []
    for ev in x['events']:
        if ev[0] == 'recv':
            q, c = ev[1], ev[2]
            adj = 0
            while q > 0 and neg:
                k = max(range(len(neg)), key=lambda i: neg[i][1])
                t = min(q, neg[k][0])
                adj += t * (c - neg[k][1])
                neg[k][0] -= t
                q -= t
                if neg[k][0] == 0:
                    neg.pop(k)
            if q > 0:
                layers.append([q, c])
            last = c
            out.append(adj)
        else:
            q = ev[1]
            cost = 0
            while q > 0 and layers:
                t = min(q, layers[0][0])
                cost += t * layers[0][1]
                layers[0][0] -= t
                q -= t
                if layers[0][0] == 0:
                    layers.pop(0)
            if q > 0:
                neg.append([q, last])
                cost += q * last
            out.append(cost)
    return {'results': out, 'layers': layers, 'backorder': neg}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 46]]}, {'results': [0, 200, 18], 'layers': [[3, 46]], 'backorder': []}], ['never received', {'default_cost': 31, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [62, 8], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 26]]}, {'results': [0, 40, 10, 90, -12], 'layers': [[1, 26]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 2], ['recv', 3, 50]]}, {'results': [0, 120, -10], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 1], ['issue', 1]]}, {'results': [7, 7], 'layers': [], 'backorder': [[1, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 41], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 21, 82, -1], 'layers': [], 'backorder': [[1, 41]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 47]]}, {'results': [0, 200, 21], 'layers': [[3, 47]], 'backorder': []}], ['never received', {'default_cost': 32, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [64, 6], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 27]]}, {'results': [0, 40, 10, 90, -9], 'layers': [[1, 27]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 3], ['recv', 4, 50]]}, {'results': [0, 180, -20], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 2], ['issue', 1]]}, {'results': [14, 7], 'layers': [], 'backorder': [[2, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 42], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 22, 84, -2], 'layers': [], 'backorder': [[1, 42]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 48]]}, {'results': [0, 200, 24], 'layers': [[3, 48]], 'backorder': []}], ['never received', {'default_cost': 33, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [66, 4], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 28]]}, {'results': [0, 40, 10, 90, -6], 'layers': [[1, 28]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 4], ['recv', 5, 50]]}, {'results': [0, 240, -30], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 3], ['issue', 1]]}, {'results': [21, 7], 'layers': [], 'backorder': [[3, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 43], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 23, 86, -3], 'layers': [], 'backorder': [[1, 43]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 49]]}, {'results': [0, 200, 27], 'layers': [[3, 49]], 'backorder': []}], ['never received', {'default_cost': 34, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [68, 2], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 29]]}, {'results': [0, 40, 10, 90, -3], 'layers': [[1, 29]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 5], ['recv', 6, 50]]}, {'results': [0, 300, -40], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 4], ['issue', 1]]}, {'results': [28, 7], 'layers': [], 'backorder': [[4, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 44], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 24, 88, -4], 'layers': [], 'backorder': [[1, 44]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 50]]}, {'results': [0, 200, 30], 'layers': [[3, 50]], 'backorder': []}], ['never received', {'default_cost': 35, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [70, 0], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 30]]}, {'results': [0, 40, 10, 90, 0], 'layers': [[1, 30]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 6], ['recv', 7, 50]]}, {'results': [0, 360, -50], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 5], ['issue', 1]]}, {'results': [35, 7], 'layers': [], 'backorder': [[5, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 45], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 25, 90, -5], 'layers': [], 'backorder': [[1, 45]]}]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
backorder settled{'backorder': [], 'layers': [[3, 46]], 'results': [0, 200, 18]}{'backorder': [], 'layers': [[3, 46]], 'results': [0, 200, 18]}Passed
never received{'backorder': [], 'layers': [[1, 35]], 'results': [62, 8]}{'backorder': [], 'layers': [[1, 35]], 'results': [62, 8]}Passed
partial settle{'backorder': [], 'layers': [[3, 11]], 'results': [0, 48, 6, 15, -5]}{'backorder': [], 'layers': [[3, 11]], 'results': [0, 48, 6, 15, -5]}Passed
two backorders{'backorder': [], 'layers': [[1, 26]], 'results': [0, 40, 10, 90, -12]}{'backorder': [], 'layers': [[1, 26]], 'results': [0, 40, 10, 90, -12]}Passed
no negative{'backorder': [], 'layers': [[2, 8], [1, 9]], 'results': [0, 24, 0]}{'backorder': [], 'layers': [[2, 8], [1, 9]], 'results': [0, 24, 0]}Passed
cheaper receipt{'backorder': [], 'layers': [[2, 50]], 'results': [0, 120, -10]}{'backorder': [], 'layers': [[2, 50]], 'results': [0, 120, -10]}Passed
left negative{'backorder': [[1, 7], [1, 7]], 'layers': [], 'results': [7, 7]}{'backorder': [[1, 7], [1, 7]], 'layers': [], 'results': [7, 7]}Passed
cheap backorder first{'backorder': [[1, 20]], 'layers': [], 'results': [0, 60, 21, 82, -22]}{'backorder': [[1, 41]], 'layers': [], 'results': [0, 60, 21, 82, -1]}Failed

SHA-256 / cfc03ea8b9e42fd97ab9f87cc82d494721104a8fd3f303f7d76d97ff55250539

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    layers = []
    neg = []
    last = x['default_cost']
    out = []
    for ev in x['events']:
        if ev[0] == 'recv':
            q, c = ev[1], ev[2]
            adj = 0
            while q > 0 and neg:
                k = 0
                t = min(q, neg[k][0])
                adj += t * (c - neg[k][1])
                neg[k][0] -= t
                q -= t
                if neg[k][0] == 0:
                    neg.pop(k)
            if q > 0:
                layers.append([q, c])
            last = c
            out.append(adj)
        else:
            q = ev[1]
            cost = 0
            while q > 0 and layers:
                t = min(q, layers[0][0])
                cost += t * layers[0][1]
                layers[0][0] -= t
                q -= t
                if layers[0][0] == 0:
                    layers.pop(0)
            if q > 0:
                neg.append([q, last])
                cost += q * last
            out.append(cost)
    return {'results': out, 'layers': layers, 'backorder': neg}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 46]]}, {'results': [0, 200, 18], 'layers': [[3, 46]], 'backorder': []}], ['never received', {'default_cost': 31, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [62, 8], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 26]]}, {'results': [0, 40, 10, 90, -12], 'layers': [[1, 26]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 2], ['recv', 3, 50]]}, {'results': [0, 120, -10], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 1], ['issue', 1]]}, {'results': [7, 7], 'layers': [], 'backorder': [[1, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 41], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 21, 82, -1], 'layers': [], 'backorder': [[1, 41]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 47]]}, {'results': [0, 200, 21], 'layers': [[3, 47]], 'backorder': []}], ['never received', {'default_cost': 32, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [64, 6], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 27]]}, {'results': [0, 40, 10, 90, -9], 'layers': [[1, 27]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 3], ['recv', 4, 50]]}, {'results': [0, 180, -20], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 2], ['issue', 1]]}, {'results': [14, 7], 'layers': [], 'backorder': [[2, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 42], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 22, 84, -2], 'layers': [], 'backorder': [[1, 42]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 48]]}, {'results': [0, 200, 24], 'layers': [[3, 48]], 'backorder': []}], ['never received', {'default_cost': 33, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [66, 4], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 28]]}, {'results': [0, 40, 10, 90, -6], 'layers': [[1, 28]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 4], ['recv', 5, 50]]}, {'results': [0, 240, -30], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 3], ['issue', 1]]}, {'results': [21, 7], 'layers': [], 'backorder': [[3, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 43], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 23, 86, -3], 'layers': [], 'backorder': [[1, 43]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 49]]}, {'results': [0, 200, 27], 'layers': [[3, 49]], 'backorder': []}], ['never received', {'default_cost': 34, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [68, 2], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 29]]}, {'results': [0, 40, 10, 90, -3], 'layers': [[1, 29]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 5], ['recv', 6, 50]]}, {'results': [0, 300, -40], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 4], ['issue', 1]]}, {'results': [28, 7], 'layers': [], 'backorder': [[4, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 44], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 24, 88, -4], 'layers': [], 'backorder': [[1, 44]]}]], [['backorder settled', {'default_cost': 50, 'events': [['recv', 2, 40], ['issue', 5], ['recv', 6, 50]]}, {'results': [0, 200, 30], 'layers': [[3, 50]], 'backorder': []}], ['never received', {'default_cost': 35, 'events': [['issue', 2], ['recv', 3, 35]]}, {'results': [70, 0], 'layers': [[1, 35]], 'backorder': []}], ['partial settle', {'default_cost': 10, 'events': [['recv', 1, 12], ['issue', 4], ['recv', 2, 15], ['issue', 1], ['recv', 5, 11]]}, {'results': [0, 48, 6, 15, -5], 'layers': [[3, 11]], 'backorder': []}], ['two backorders', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 2], ['recv', 1, 30], ['issue', 3], ['recv', 4, 30]]}, {'results': [0, 40, 10, 90, 0], 'layers': [[1, 30]], 'backorder': []}], ['no negative', {'default_cost': 10, 'events': [['recv', 5, 8], ['issue', 3], ['recv', 1, 9]]}, {'results': [0, 24, 0], 'layers': [[2, 8], [1, 9]], 'backorder': []}], ['cheaper receipt', {'default_cost': 99, 'events': [['recv', 1, 60], ['issue', 6], ['recv', 7, 50]]}, {'results': [0, 360, -50], 'layers': [[2, 50]], 'backorder': []}], ['left negative', {'default_cost': 7, 'events': [['issue', 5], ['issue', 1]]}, {'results': [35, 7], 'layers': [], 'backorder': [[5, 7], [1, 7]]}], ['cheap backorder first', {'default_cost': 10, 'events': [['recv', 1, 20], ['issue', 3], ['recv', 1, 45], ['issue', 2], ['recv', 2, 30]]}, {'results': [0, 60, 25, 90, -5], 'layers': [], 'backorder': [[1, 45]]}]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
backorder settled{'backorder': [], 'layers': [[3, 46]], 'results': [0, 200, 18]}{'backorder': [], 'layers': [[3, 46]], 'results': [0, 200, 18]}Passed
never received{'backorder': [], 'layers': [[1, 35]], 'results': [62, 8]}{'backorder': [], 'layers': [[1, 35]], 'results': [62, 8]}Passed
partial settle{'backorder': [], 'layers': [[3, 11]], 'results': [0, 48, 6, 15, -5]}{'backorder': [], 'layers': [[3, 11]], 'results': [0, 48, 6, 15, -5]}Passed
two backorders{'backorder': [], 'layers': [[1, 26]], 'results': [0, 40, 10, 90, -12]}{'backorder': [], 'layers': [[1, 26]], 'results': [0, 40, 10, 90, -12]}Passed
no negative{'backorder': [], 'layers': [[2, 8], [1, 9]], 'results': [0, 24, 0]}{'backorder': [], 'layers': [[2, 8], [1, 9]], 'results': [0, 24, 0]}Passed
cheaper receipt{'backorder': [], 'layers': [[2, 50]], 'results': [0, 120, -10]}{'backorder': [], 'layers': [[2, 50]], 'results': [0, 120, -10]}Passed
left negative{'backorder': [[1, 7], [1, 7]], 'layers': [], 'results': [7, 7]}{'backorder': [[1, 7], [1, 7]], 'layers': [], 'results': [7, 7]}Passed
cheap backorder first{'backorder': [[1, 41]], 'layers': [], 'results': [0, 60, 21, 82, -1]}{'backorder': [[1, 41]], 'layers': [], 'results': [0, 60, 21, 82, -1]}Passed

SHA-256 / c4c729af5249beebee18e841dcf41848a385457c69a3b83b761f4d4c211b3c0e

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:46:43.274263+00:00.

Case digest / 14d6719cc7571b59b1cf4353332bdcb8524b072c9ffdc755c9508e2685f2ec36