FAILURE MAP
← Case archive

FA-59861 / Inventory cost layering / Open access

FIFO perpetual issue: non-positive receipt filter · case 01

A zero-quantity receipt line creates an empty cost layer that shows up in the valuation report.

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

ROOT CAUSE

The receipt guard only skips negative quantities, letting zero-quantity receipts create layers.

VERIFIED REPAIR

Ignore receipts whose quantity is zero or negative.

Unsuccessful approach: Skipping only zero-quantity receipts with a zero price still admits zero-quantity layers at real prices.

Case contract

Input {layers:[[qty,unit_cost]] oldest first, events:[["recv",qty,unit_cost]|["issue",qty]]}. Issues consume the oldest layer first; an issue larger than on-hand is rejected whole and reported as "short"; a receipt at exactly the newest layer cost merges into it; receipts of zero or negative quantity are ignored. Return {cogs:[per-issue cost or "short"], layers}.

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 = [list(l) for l in x['layers']]
    out = []
    for ev in x['events']:
        if ev[0] == 'recv':
            q, c = ev[1], ev[2]
            if q < 0:
                continue
            if layers and layers[-1][1] == c:
                layers[-1][0] += q
            else:
                layers.append([q, c])
            continue
        need = ev[1]
        onhand = sum(l[0] for l in layers)
        if need > onhand:
            out.append('short')
            continue
        cost = 0
        while need > 0:
            idx = 0
            take = min(need, layers[idx][0])
            cost += take * layers[idx][1]
            layers[idx][0] -= take
            need -= take
            if layers[idx][0] == 0:
                layers.pop(idx)
        out.append(cost)
    return {'cogs': out, 'layers': layers}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [1, 70]], 'events': [['issue', 5]]}, {'cogs': [270], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 4], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 13], ['issue', 4], ['recv', 1, 13]]}, {'cogs': [46], 'layers': [[4, 13]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 1, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[2, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 31], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [2, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': []}], ['price decline', {'layers': [[2, 61], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [122], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [2, 70]], 'events': [['issue', 6]]}, {'cogs': [340], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 5], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 14], ['issue', 4], ['recv', 1, 14]]}, {'cogs': [48], 'layers': [[4, 14]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 2, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[3, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 32], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [3, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[1, 9]]}], ['price decline', {'layers': [[2, 62], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [124], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 7]]}, {'cogs': [740], 'layers': [[8, 120]]}], ['exact depletion', {'layers': [[4, 50], [3, 70]], 'events': [['issue', 7]]}, {'cogs': [410], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 6], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 15], ['issue', 4], ['recv', 1, 15]]}, {'cogs': [50], 'layers': [[4, 15]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 3, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[4, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 33], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [4, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[2, 9]]}], ['price decline', {'layers': [[2, 63], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [126], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [4, 70]], 'events': [['issue', 8]]}, {'cogs': [480], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 7], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 16], ['issue', 4], ['recv', 1, 16]]}, {'cogs': [52], 'layers': [[4, 16]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 4, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[5, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 34], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [5, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[3, 9]]}], ['price decline', {'layers': [[2, 64], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [128], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [5, 70]], 'events': [['issue', 9]]}, {'cogs': [550], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 8], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 17], ['issue', 4], ['recv', 1, 17]]}, {'cogs': [54], 'layers': [[4, 17]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 5, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[6, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 35], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [6, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[4, 9]]}], ['price decline', {'layers': [[2, 65], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [130], 'layers': [[3, 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
span two layers{'cogs': [860], 'layers': [[7, 120]]}{'cogs': [860], 'layers': [[7, 120]]}Passed
exact depletion{'cogs': [270], 'layers': []}{'cogs': [270], 'layers': []}Passed
short rejected{'cogs': ['short', 180], 'layers': [[1, 90]]}{'cogs': ['short', 180], 'layers': [[1, 90]]}Passed
receipt then issue{'cogs': [46], 'layers': [[4, 13]]}{'cogs': [46], 'layers': [[4, 13]]}Passed
same cost merge{'cogs': [40], 'layers': [[2, 40], [3, 41]]}{'cogs': [40], 'layers': [[2, 40], [3, 41]]}Passed
zero receipt{'cogs': [50], 'layers': [[4, 25], [0, 31]]}{'cogs': [50], 'layers': [[4, 25]]}Failed
multi issue{'cogs': [5, 16, 9], 'layers': []}{'cogs': [5, 16, 9], 'layers': []}Passed
price decline{'cogs': [122], 'layers': [[3, 45]]}{'cogs': [122], 'layers': [[3, 45]]}Passed

SHA-256 / dc063048c2799416614c2f10c2a2d09cc2da465399e8aba76872559ef34ce491

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(x):
    layers = [list(l) for l in x['layers']]
    out = []
    for ev in x['events']:
        if ev[0] == 'recv':
            q, c = ev[1], ev[2]
            if q < 0 or (q == 0 and c == 0):
                continue
            if layers and layers[-1][1] == c:
                layers[-1][0] += q
            else:
                layers.append([q, c])
            continue
        need = ev[1]
        onhand = sum(l[0] for l in layers)
        if need > onhand:
            out.append('short')
            continue
        cost = 0
        while need > 0:
            idx = 0
            take = min(need, layers[idx][0])
            cost += take * layers[idx][1]
            layers[idx][0] -= take
            need -= take
            if layers[idx][0] == 0:
                layers.pop(idx)
        out.append(cost)
    return {'cogs': out, 'layers': layers}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [1, 70]], 'events': [['issue', 5]]}, {'cogs': [270], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 4], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 13], ['issue', 4], ['recv', 1, 13]]}, {'cogs': [46], 'layers': [[4, 13]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 1, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[2, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 31], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [2, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': []}], ['price decline', {'layers': [[2, 61], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [122], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [2, 70]], 'events': [['issue', 6]]}, {'cogs': [340], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 5], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 14], ['issue', 4], ['recv', 1, 14]]}, {'cogs': [48], 'layers': [[4, 14]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 2, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[3, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 32], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [3, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[1, 9]]}], ['price decline', {'layers': [[2, 62], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [124], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 7]]}, {'cogs': [740], 'layers': [[8, 120]]}], ['exact depletion', {'layers': [[4, 50], [3, 70]], 'events': [['issue', 7]]}, {'cogs': [410], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 6], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 15], ['issue', 4], ['recv', 1, 15]]}, {'cogs': [50], 'layers': [[4, 15]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 3, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[4, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 33], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [4, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[2, 9]]}], ['price decline', {'layers': [[2, 63], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [126], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [4, 70]], 'events': [['issue', 8]]}, {'cogs': [480], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 7], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 16], ['issue', 4], ['recv', 1, 16]]}, {'cogs': [52], 'layers': [[4, 16]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 4, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[5, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 34], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [5, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[3, 9]]}], ['price decline', {'layers': [[2, 64], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [128], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [5, 70]], 'events': [['issue', 9]]}, {'cogs': [550], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 8], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 17], ['issue', 4], ['recv', 1, 17]]}, {'cogs': [54], 'layers': [[4, 17]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 5, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[6, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 35], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [6, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[4, 9]]}], ['price decline', {'layers': [[2, 65], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [130], 'layers': [[3, 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
span two layers{'cogs': [860], 'layers': [[7, 120]]}{'cogs': [860], 'layers': [[7, 120]]}Passed
exact depletion{'cogs': [270], 'layers': []}{'cogs': [270], 'layers': []}Passed
short rejected{'cogs': ['short', 180], 'layers': [[1, 90]]}{'cogs': ['short', 180], 'layers': [[1, 90]]}Passed
receipt then issue{'cogs': [46], 'layers': [[4, 13]]}{'cogs': [46], 'layers': [[4, 13]]}Passed
same cost merge{'cogs': [40], 'layers': [[2, 40], [3, 41]]}{'cogs': [40], 'layers': [[2, 40], [3, 41]]}Passed
zero receipt{'cogs': [50], 'layers': [[4, 25], [0, 31]]}{'cogs': [50], 'layers': [[4, 25]]}Failed
multi issue{'cogs': [5, 16, 9], 'layers': []}{'cogs': [5, 16, 9], 'layers': []}Passed
price decline{'cogs': [122], 'layers': [[3, 45]]}{'cogs': [122], 'layers': [[3, 45]]}Passed

SHA-256 / cef3adbd9f7302c5bcb8d31c7eb2732ecdc09d5d628a5ce48f1e8ba25b792a2f

3 / The verified repair

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

N = 1
observations = []
def solve(x):
    layers = [list(l) for l in x['layers']]
    out = []
    for ev in x['events']:
        if ev[0] == 'recv':
            q, c = ev[1], ev[2]
            if q <= 0:
                continue
            if layers and layers[-1][1] == c:
                layers[-1][0] += q
            else:
                layers.append([q, c])
            continue
        need = ev[1]
        onhand = sum(l[0] for l in layers)
        if need > onhand:
            out.append('short')
            continue
        cost = 0
        while need > 0:
            idx = 0
            take = min(need, layers[idx][0])
            cost += take * layers[idx][1]
            layers[idx][0] -= take
            need -= take
            if layers[idx][0] == 0:
                layers.pop(idx)
        out.append(cost)
    return {'cogs': out, 'layers': layers}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [1, 70]], 'events': [['issue', 5]]}, {'cogs': [270], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 4], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 13], ['issue', 4], ['recv', 1, 13]]}, {'cogs': [46], 'layers': [[4, 13]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 1, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[2, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 31], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [2, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': []}], ['price decline', {'layers': [[2, 61], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [122], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [2, 70]], 'events': [['issue', 6]]}, {'cogs': [340], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 5], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 14], ['issue', 4], ['recv', 1, 14]]}, {'cogs': [48], 'layers': [[4, 14]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 2, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[3, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 32], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [3, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[1, 9]]}], ['price decline', {'layers': [[2, 62], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [124], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 7]]}, {'cogs': [740], 'layers': [[8, 120]]}], ['exact depletion', {'layers': [[4, 50], [3, 70]], 'events': [['issue', 7]]}, {'cogs': [410], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 6], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 15], ['issue', 4], ['recv', 1, 15]]}, {'cogs': [50], 'layers': [[4, 15]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 3, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[4, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 33], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [4, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[2, 9]]}], ['price decline', {'layers': [[2, 63], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [126], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [4, 70]], 'events': [['issue', 8]]}, {'cogs': [480], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 7], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 16], ['issue', 4], ['recv', 1, 16]]}, {'cogs': [52], 'layers': [[4, 16]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 4, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[5, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 34], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [5, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[3, 9]]}], ['price decline', {'layers': [[2, 64], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [128], 'layers': [[3, 45]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [5, 70]], 'events': [['issue', 9]]}, {'cogs': [550], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 8], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 17], ['issue', 4], ['recv', 1, 17]]}, {'cogs': [54], 'layers': [[4, 17]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 5, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[6, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 35], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [6, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[4, 9]]}], ['price decline', {'layers': [[2, 65], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [130], 'layers': [[3, 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
span two layers{'cogs': [860], 'layers': [[7, 120]]}{'cogs': [860], 'layers': [[7, 120]]}Passed
exact depletion{'cogs': [270], 'layers': []}{'cogs': [270], 'layers': []}Passed
short rejected{'cogs': ['short', 180], 'layers': [[1, 90]]}{'cogs': ['short', 180], 'layers': [[1, 90]]}Passed
receipt then issue{'cogs': [46], 'layers': [[4, 13]]}{'cogs': [46], 'layers': [[4, 13]]}Passed
same cost merge{'cogs': [40], 'layers': [[2, 40], [3, 41]]}{'cogs': [40], 'layers': [[2, 40], [3, 41]]}Passed
zero receipt{'cogs': [50], 'layers': [[4, 25]]}{'cogs': [50], 'layers': [[4, 25]]}Passed
multi issue{'cogs': [5, 16, 9], 'layers': []}{'cogs': [5, 16, 9], 'layers': []}Passed
price decline{'cogs': [122], 'layers': [[3, 45]]}{'cogs': [122], 'layers': [[3, 45]]}Passed

SHA-256 / 4ac95cc4e78cf6202d12431b92177ea0b537e1b3ba1193bed2855f0433bc5a21

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:40.179149+00:00.

Case digest / 762ab19767aefbb4d5d8a3acf6148deb1f92ba5852e45e650458c86c7b22552e