FA-60186 / Inventory cost layering / Open access
Negative inventory provisional costing: provisional issue cost · case 01
Issues that run stock negative report only the cost of units actually on hand.
ROOT CAUSE
The provisional shortfall is queued but not added to the issue cost.
VERIFIED REPAIR
Add shortfall qty * provisional cost to the issue cost.
Unsuccessful approach: Adding the shortfall at default cost uses the wrong provisional price after receipts.
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 = 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])
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]]}]], [['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]]}]], [['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]]}]], [['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]]}]], [['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]]}]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| backorder settled | {'backorder': [], 'layers': [[3, 46]], 'results': [0, 80, 18]} | {'backorder': [], 'layers': [[3, 46]], 'results': [0, 200, 18]} | Failed |
| never received | {'backorder': [], 'layers': [[1, 35]], 'results': [0, 8]} | {'backorder': [], 'layers': [[1, 35]], 'results': [62, 8]} | Failed |
| partial settle | {'backorder': [], 'layers': [[3, 11]], 'results': [0, 12, 6, 0, -5]} | {'backorder': [], 'layers': [[3, 11]], 'results': [0, 48, 6, 15, -5]} | Failed |
| two backorders | {'backorder': [], 'layers': [[1, 26]], 'results': [0, 20, 10, 0, -12]} | {'backorder': [], 'layers': [[1, 26]], 'results': [0, 40, 10, 90, -12]} | Failed |
| 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, 60, -10]} | {'backorder': [], 'layers': [[2, 50]], 'results': [0, 120, -10]} | Failed |
| left negative | {'backorder': [[1, 7], [1, 7]], 'layers': [], 'results': [0, 0]} | {'backorder': [[1, 7], [1, 7]], 'layers': [], 'results': [7, 7]} | Failed |
SHA-256 / f3cd2d0a5173c071656eacf9aef81cd0853c617f2cdd4dab2f8cbb4e4f25ec02
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 = 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 * x['default_cost']
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]]}]], [['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]]}]], [['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]]}]], [['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]]}]], [['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]]}]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| backorder settled | {'backorder': [], 'layers': [[3, 46]], 'results': [0, 230, 18]} | {'backorder': [], 'layers': [[3, 46]], 'results': [0, 200, 18]} | Failed |
| 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, 42, 6, 10, -5]} | {'backorder': [], 'layers': [[3, 11]], 'results': [0, 48, 6, 15, -5]} | Failed |
| two backorders | {'backorder': [], 'layers': [[1, 26]], 'results': [0, 30, 10, 30, -12]} | {'backorder': [], 'layers': [[1, 26]], 'results': [0, 40, 10, 90, -12]} | Failed |
| 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, 159, -10]} | {'backorder': [], 'layers': [[2, 50]], 'results': [0, 120, -10]} | Failed |
| left negative | {'backorder': [[1, 7], [1, 7]], 'layers': [], 'results': [7, 7]} | {'backorder': [[1, 7], [1, 7]], 'layers': [], 'results': [7, 7]} | Passed |
SHA-256 / ddf924923f26f16ec407be9dbacff1e09800c96ed93009097bc306e9ff1dde5b
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]]}]], [['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]]}]], [['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]]}]], [['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]]}]], [['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]]}]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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 |
SHA-256 / d0f56bfacd28d4624fed66fb3c042c4bebcac64dca6a2b5ae9446d26d6163893
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.332828+00:00.
Case digest / f60b9dd21160124547f1ef27568c788d9b0d8d2eec320b5f708ae6dff0785c95