FAILURE MAP
← Case archive

FA-60046 / Inventory cost layering / Open access

Dollar-value LIFO layering: exact layer exhaustion · case 01

A layer stripped to exactly zero stays in the layer list as an empty year.

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

ROOT CAUSE

The full-removal branch requires the layer to be strictly smaller than the remaining cut.

VERIFIED REPAIR

Remove the layer when its base dollars are less than or equal to the remaining cut.

Unsuccessful approach: Also removing layers that were already zero does not help because the equal case still leaves a zero layer.

Case contract

Input {layers:[[year, base_dollars, index_bp]] oldest first, year, ending_current_cost, index (bp, 10000 = base year)}. Ending base dollars = round-half-up(current cost*10000/index). An increase over the prior base total adds one layer at the current index; a decrease strips base dollars from the newest layers first, removing layers that reach zero. LIFO value = sum of round-half-up(base*index/10000) per layer. Return {end_base, layers, lifo_value}.

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']]
    idx = x['index']
    end_base = (2 * x['ending_current_cost'] * 10000 + idx) // (2 * idx)
    prev = sum(l[1] for l in layers)
    if end_base > prev:
        layers.append([x['year'], end_base - prev, idx])
    else:
        cut = prev - end_base
        while cut > 0 and layers:
            k = -1
            top = layers[k]
            if top[1] < cut:
                cut -= top[1]
                layers.pop(k)
            else:
                top[1] -= cut
                cut = 0
    value = sum((b * i + 5000) // 10000 for _, b, i in layers)
    return {'end_base': end_base, 'layers': layers, 'lifo_value': value}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15100, 'index': 11500}, {'end_base': 13130, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1130, 11500]], 'lifo_value': 13460}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12651, 'index': 11500}, {'end_base': 11001, 'layers': [[2020, 10000, 10000], [2021, 1001, 10800]], 'lifo_value': 11081}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1001, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5201, 'index': 10400}, {'end_base': 5001, 'layers': [[2020, 5000, 10000], [2021, 1, 10500]], 'lifo_value': 5001}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1051, 'index': 10300}, {'end_base': 1020, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 10, 10300]], 'lifo_value': 1022}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3001, 'index': 9500}, {'end_base': 3159, 'layers': [[2020, 3000, 10000], [2021, 159, 9500]], 'lifo_value': 3151}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15200, 'index': 11500}, {'end_base': 13217, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1217, 11500]], 'lifo_value': 13560}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12652, 'index': 11500}, {'end_base': 11002, 'layers': [[2020, 10000, 10000], [2021, 1002, 10800]], 'lifo_value': 11082}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1002, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5202, 'index': 10400}, {'end_base': 5002, 'layers': [[2020, 5000, 10000], [2021, 2, 10500]], 'lifo_value': 5002}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1062, 'index': 10300}, {'end_base': 1031, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 21, 10300]], 'lifo_value': 1034}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3002, 'index': 9500}, {'end_base': 3160, 'layers': [[2020, 3000, 10000], [2021, 160, 9500]], 'lifo_value': 3152}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15300, 'index': 11500}, {'end_base': 13304, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1304, 11500]], 'lifo_value': 13660}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12653, 'index': 11500}, {'end_base': 11003, 'layers': [[2020, 10000, 10000], [2021, 1003, 10800]], 'lifo_value': 11083}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1003, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5203, 'index': 10400}, {'end_base': 5003, 'layers': [[2020, 5000, 10000], [2021, 3, 10500]], 'lifo_value': 5003}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1073, 'index': 10300}, {'end_base': 1042, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 32, 10300]], 'lifo_value': 1045}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3003, 'index': 9500}, {'end_base': 3161, 'layers': [[2020, 3000, 10000], [2021, 161, 9500]], 'lifo_value': 3153}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15400, 'index': 11500}, {'end_base': 13391, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1391, 11500]], 'lifo_value': 13760}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12654, 'index': 11500}, {'end_base': 11003, 'layers': [[2020, 10000, 10000], [2021, 1003, 10800]], 'lifo_value': 11083}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1004, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5204, 'index': 10400}, {'end_base': 5004, 'layers': [[2020, 5000, 10000], [2021, 4, 10500]], 'lifo_value': 5004}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1084, 'index': 10300}, {'end_base': 1052, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 42, 10300]], 'lifo_value': 1055}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3004, 'index': 9500}, {'end_base': 3162, 'layers': [[2020, 3000, 10000], [2021, 162, 9500]], 'lifo_value': 3154}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15500, 'index': 11500}, {'end_base': 13478, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1478, 11500]], 'lifo_value': 13860}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12655, 'index': 11500}, {'end_base': 11004, 'layers': [[2020, 10000, 10000], [2021, 1004, 10800]], 'lifo_value': 11084}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1005, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5205, 'index': 10400}, {'end_base': 5005, 'layers': [[2020, 5000, 10000], [2021, 5, 10500]], 'lifo_value': 5005}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1095, 'index': 10300}, {'end_base': 1063, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 53, 10300]], 'lifo_value': 1067}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3005, 'index': 9500}, {'end_base': 3163, 'layers': [[2020, 3000, 10000], [2021, 163, 9500]], 'lifo_value': 3155}]]]
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
new layer{'end_base': 13130, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1130, 11500]], 'lifo_value': 13460}{'end_base': 13130, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1130, 11500]], 'lifo_value': 13460}Passed
partial strip{'end_base': 11001, 'layers': [[2020, 10000, 10000], [2021, 1001, 10800]], 'lifo_value': 11081}{'end_base': 11001, 'layers': [[2020, 10000, 10000], [2021, 1001, 10800]], 'lifo_value': 11081}Passed
strip exact layer{'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 0, 11000]], 'lifo_value': 12160}{'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}Failed
strip two layers{'end_base': 5001, 'layers': [[2020, 5000, 10000], [2021, 1, 10500]], 'lifo_value': 5001}{'end_base': 5001, 'layers': [[2020, 5000, 10000], [2021, 1, 10500]], 'lifo_value': 5001}Passed
unchanged base{'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}{'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}Passed
rounding layers{'end_base': 1020, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 10, 10300]], 'lifo_value': 1022}{'end_base': 1020, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 10, 10300]], 'lifo_value': 1022}Passed
deflation{'end_base': 3159, 'layers': [[2020, 3000, 10000], [2021, 159, 9500]], 'lifo_value': 3151}{'end_base': 3159, 'layers': [[2020, 3000, 10000], [2021, 159, 9500]], 'lifo_value': 3151}Passed

SHA-256 / cfe21f5a83818b43a08f6b9c93a3c2f152af44d34814e5361fbfc0d828c72b58

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']]
    idx = x['index']
    end_base = (2 * x['ending_current_cost'] * 10000 + idx) // (2 * idx)
    prev = sum(l[1] for l in layers)
    if end_base > prev:
        layers.append([x['year'], end_base - prev, idx])
    else:
        cut = prev - end_base
        while cut > 0 and layers:
            k = -1
            top = layers[k]
            if top[1] < cut or top[1] == 0:
                cut -= top[1]
                layers.pop(k)
            else:
                top[1] -= cut
                cut = 0
    value = sum((b * i + 5000) // 10000 for _, b, i in layers)
    return {'end_base': end_base, 'layers': layers, 'lifo_value': value}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15100, 'index': 11500}, {'end_base': 13130, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1130, 11500]], 'lifo_value': 13460}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12651, 'index': 11500}, {'end_base': 11001, 'layers': [[2020, 10000, 10000], [2021, 1001, 10800]], 'lifo_value': 11081}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1001, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5201, 'index': 10400}, {'end_base': 5001, 'layers': [[2020, 5000, 10000], [2021, 1, 10500]], 'lifo_value': 5001}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1051, 'index': 10300}, {'end_base': 1020, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 10, 10300]], 'lifo_value': 1022}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3001, 'index': 9500}, {'end_base': 3159, 'layers': [[2020, 3000, 10000], [2021, 159, 9500]], 'lifo_value': 3151}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15200, 'index': 11500}, {'end_base': 13217, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1217, 11500]], 'lifo_value': 13560}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12652, 'index': 11500}, {'end_base': 11002, 'layers': [[2020, 10000, 10000], [2021, 1002, 10800]], 'lifo_value': 11082}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1002, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5202, 'index': 10400}, {'end_base': 5002, 'layers': [[2020, 5000, 10000], [2021, 2, 10500]], 'lifo_value': 5002}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1062, 'index': 10300}, {'end_base': 1031, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 21, 10300]], 'lifo_value': 1034}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3002, 'index': 9500}, {'end_base': 3160, 'layers': [[2020, 3000, 10000], [2021, 160, 9500]], 'lifo_value': 3152}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15300, 'index': 11500}, {'end_base': 13304, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1304, 11500]], 'lifo_value': 13660}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12653, 'index': 11500}, {'end_base': 11003, 'layers': [[2020, 10000, 10000], [2021, 1003, 10800]], 'lifo_value': 11083}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1003, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5203, 'index': 10400}, {'end_base': 5003, 'layers': [[2020, 5000, 10000], [2021, 3, 10500]], 'lifo_value': 5003}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1073, 'index': 10300}, {'end_base': 1042, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 32, 10300]], 'lifo_value': 1045}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3003, 'index': 9500}, {'end_base': 3161, 'layers': [[2020, 3000, 10000], [2021, 161, 9500]], 'lifo_value': 3153}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15400, 'index': 11500}, {'end_base': 13391, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1391, 11500]], 'lifo_value': 13760}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12654, 'index': 11500}, {'end_base': 11003, 'layers': [[2020, 10000, 10000], [2021, 1003, 10800]], 'lifo_value': 11083}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1004, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5204, 'index': 10400}, {'end_base': 5004, 'layers': [[2020, 5000, 10000], [2021, 4, 10500]], 'lifo_value': 5004}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1084, 'index': 10300}, {'end_base': 1052, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 42, 10300]], 'lifo_value': 1055}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3004, 'index': 9500}, {'end_base': 3162, 'layers': [[2020, 3000, 10000], [2021, 162, 9500]], 'lifo_value': 3154}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15500, 'index': 11500}, {'end_base': 13478, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1478, 11500]], 'lifo_value': 13860}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12655, 'index': 11500}, {'end_base': 11004, 'layers': [[2020, 10000, 10000], [2021, 1004, 10800]], 'lifo_value': 11084}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1005, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5205, 'index': 10400}, {'end_base': 5005, 'layers': [[2020, 5000, 10000], [2021, 5, 10500]], 'lifo_value': 5005}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1095, 'index': 10300}, {'end_base': 1063, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 53, 10300]], 'lifo_value': 1067}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3005, 'index': 9500}, {'end_base': 3163, 'layers': [[2020, 3000, 10000], [2021, 163, 9500]], 'lifo_value': 3155}]]]
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
new layer{'end_base': 13130, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1130, 11500]], 'lifo_value': 13460}{'end_base': 13130, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1130, 11500]], 'lifo_value': 13460}Passed
partial strip{'end_base': 11001, 'layers': [[2020, 10000, 10000], [2021, 1001, 10800]], 'lifo_value': 11081}{'end_base': 11001, 'layers': [[2020, 10000, 10000], [2021, 1001, 10800]], 'lifo_value': 11081}Passed
strip exact layer{'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 0, 11000]], 'lifo_value': 12160}{'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}Failed
strip two layers{'end_base': 5001, 'layers': [[2020, 5000, 10000], [2021, 1, 10500]], 'lifo_value': 5001}{'end_base': 5001, 'layers': [[2020, 5000, 10000], [2021, 1, 10500]], 'lifo_value': 5001}Passed
unchanged base{'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}{'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}Passed
rounding layers{'end_base': 1020, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 10, 10300]], 'lifo_value': 1022}{'end_base': 1020, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 10, 10300]], 'lifo_value': 1022}Passed
deflation{'end_base': 3159, 'layers': [[2020, 3000, 10000], [2021, 159, 9500]], 'lifo_value': 3151}{'end_base': 3159, 'layers': [[2020, 3000, 10000], [2021, 159, 9500]], 'lifo_value': 3151}Passed

SHA-256 / 801ec31f7c0cd3cf46dd0871fb953d1a2378a9cd84792013effee3239215c11e

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']]
    idx = x['index']
    end_base = (2 * x['ending_current_cost'] * 10000 + idx) // (2 * idx)
    prev = sum(l[1] for l in layers)
    if end_base > prev:
        layers.append([x['year'], end_base - prev, idx])
    else:
        cut = prev - end_base
        while cut > 0 and layers:
            k = -1
            top = layers[k]
            if top[1] <= cut:
                cut -= top[1]
                layers.pop(k)
            else:
                top[1] -= cut
                cut = 0
    value = sum((b * i + 5000) // 10000 for _, b, i in layers)
    return {'end_base': end_base, 'layers': layers, 'lifo_value': value}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15100, 'index': 11500}, {'end_base': 13130, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1130, 11500]], 'lifo_value': 13460}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12651, 'index': 11500}, {'end_base': 11001, 'layers': [[2020, 10000, 10000], [2021, 1001, 10800]], 'lifo_value': 11081}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1001, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5201, 'index': 10400}, {'end_base': 5001, 'layers': [[2020, 5000, 10000], [2021, 1, 10500]], 'lifo_value': 5001}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1051, 'index': 10300}, {'end_base': 1020, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 10, 10300]], 'lifo_value': 1022}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3001, 'index': 9500}, {'end_base': 3159, 'layers': [[2020, 3000, 10000], [2021, 159, 9500]], 'lifo_value': 3151}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15200, 'index': 11500}, {'end_base': 13217, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1217, 11500]], 'lifo_value': 13560}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12652, 'index': 11500}, {'end_base': 11002, 'layers': [[2020, 10000, 10000], [2021, 1002, 10800]], 'lifo_value': 11082}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1002, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5202, 'index': 10400}, {'end_base': 5002, 'layers': [[2020, 5000, 10000], [2021, 2, 10500]], 'lifo_value': 5002}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1062, 'index': 10300}, {'end_base': 1031, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 21, 10300]], 'lifo_value': 1034}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3002, 'index': 9500}, {'end_base': 3160, 'layers': [[2020, 3000, 10000], [2021, 160, 9500]], 'lifo_value': 3152}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15300, 'index': 11500}, {'end_base': 13304, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1304, 11500]], 'lifo_value': 13660}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12653, 'index': 11500}, {'end_base': 11003, 'layers': [[2020, 10000, 10000], [2021, 1003, 10800]], 'lifo_value': 11083}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1003, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5203, 'index': 10400}, {'end_base': 5003, 'layers': [[2020, 5000, 10000], [2021, 3, 10500]], 'lifo_value': 5003}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1073, 'index': 10300}, {'end_base': 1042, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 32, 10300]], 'lifo_value': 1045}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3003, 'index': 9500}, {'end_base': 3161, 'layers': [[2020, 3000, 10000], [2021, 161, 9500]], 'lifo_value': 3153}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15400, 'index': 11500}, {'end_base': 13391, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1391, 11500]], 'lifo_value': 13760}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12654, 'index': 11500}, {'end_base': 11003, 'layers': [[2020, 10000, 10000], [2021, 1003, 10800]], 'lifo_value': 11083}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1004, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5204, 'index': 10400}, {'end_base': 5004, 'layers': [[2020, 5000, 10000], [2021, 4, 10500]], 'lifo_value': 5004}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1084, 'index': 10300}, {'end_base': 1052, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 42, 10300]], 'lifo_value': 1055}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3004, 'index': 9500}, {'end_base': 3162, 'layers': [[2020, 3000, 10000], [2021, 162, 9500]], 'lifo_value': 3154}]], [['new layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 15500, 'index': 11500}, {'end_base': 13478, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1478, 11500]], 'lifo_value': 13860}], ['partial strip', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'year': 2022, 'ending_current_cost': 12655, 'index': 11500}, {'end_base': 11004, 'layers': [[2020, 10000, 10000], [2021, 1004, 10800]], 'lifo_value': 11084}], ['strip exact layer', {'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1005, 11000]], 'year': 2023, 'ending_current_cost': 14400, 'index': 12000}, {'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}], ['strip two layers', {'layers': [[2020, 5000, 10000], [2021, 1000, 10500], [2022, 1000, 12500]], 'year': 2023, 'ending_current_cost': 5205, 'index': 10400}, {'end_base': 5005, 'layers': [[2020, 5000, 10000], [2021, 5, 10500]], 'lifo_value': 5005}], ['unchanged base', {'layers': [[2020, 8000, 10000]], 'year': 2021, 'ending_current_cost': 8800, 'index': 11000}, {'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}], ['rounding layers', {'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000]], 'year': 2023, 'ending_current_cost': 1095, 'index': 10300}, {'end_base': 1063, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 53, 10300]], 'lifo_value': 1067}], ['deflation', {'layers': [[2020, 3000, 10000]], 'year': 2021, 'ending_current_cost': 3005, 'index': 9500}, {'end_base': 3163, 'layers': [[2020, 3000, 10000], [2021, 163, 9500]], 'lifo_value': 3155}]]]
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
new layer{'end_base': 13130, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1130, 11500]], 'lifo_value': 13460}{'end_base': 13130, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800], [2022, 1130, 11500]], 'lifo_value': 13460}Passed
partial strip{'end_base': 11001, 'layers': [[2020, 10000, 10000], [2021, 1001, 10800]], 'lifo_value': 11081}{'end_base': 11001, 'layers': [[2020, 10000, 10000], [2021, 1001, 10800]], 'lifo_value': 11081}Passed
strip exact layer{'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}{'end_base': 12000, 'layers': [[2020, 10000, 10000], [2021, 2000, 10800]], 'lifo_value': 12160}Passed
strip two layers{'end_base': 5001, 'layers': [[2020, 5000, 10000], [2021, 1, 10500]], 'lifo_value': 5001}{'end_base': 5001, 'layers': [[2020, 5000, 10000], [2021, 1, 10500]], 'lifo_value': 5001}Passed
unchanged base{'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}{'end_base': 8000, 'layers': [[2020, 8000, 10000]], 'lifo_value': 8000}Passed
rounding layers{'end_base': 1020, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 10, 10300]], 'lifo_value': 1022}{'end_base': 1020, 'layers': [[2020, 1000, 10000], [2021, 5, 11000], [2022, 5, 11000], [2023, 10, 10300]], 'lifo_value': 1022}Passed
deflation{'end_base': 3159, 'layers': [[2020, 3000, 10000], [2021, 159, 9500]], 'lifo_value': 3151}{'end_base': 3159, 'layers': [[2020, 3000, 10000], [2021, 159, 9500]], 'lifo_value': 3151}Passed

SHA-256 / d1b7098c8346e67a33d28ffaa9889180accf692c94062af92e457ffab3f5105c

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

Case digest / 927316b5b6a428fd7b1b2648d545d8962c93cc2172c026c68b4820933a2ed3da