FAILURE MAP
← Case archive

FA-57696 / Auction allocation rules / Open access

Reserve schedule: approved reserve step · case 01

Unapproved scheduled reserve reductions become effective.

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

ROOT CAUSE

Unapproved scheduled reserve reductions become effective.

VERIFIED REPAIR

For approved reserve step, apply the stipulated decision max(((t,v) for t,v,a in zip(x["starts"],x["values"],x["approved"]) if t<=x["round"] and a),default=(0,None))[1].

Unsuccessful approach: The attempted repair uses x["current_reserve"]; the explicit regression cases demonstrate that this still violates the stipulated auction rule.

Case contract

A seller precommits a reserve schedule before an auction. Reserve changes have effective rounds, approval and disclosure states. A hidden reserve can block sale but must not be represented as a competing bidder. The model certifies schedules rather than selecting a second-price payment. Named decision approved-reserve-step: For approved reserve step, apply the stipulated decision max(((t,v) for t,v,a in zip(x["starts"],x["values"],x["approved"]) if t<=x["round"] and a),default=(0,None))[1].

Why this case matters

Offline administrative auction model for software failure analysis.

1 / The failure

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

N = 1
observations = []
def solve(x):
    v0 = max(((t,v) for t,v in zip(x["starts"],x["values"]) if t<=x["round"]),default=(0,None))[1]
    v1 = max(((t,v) for t,v in zip(x["starts"],x["values"]) if t<=x["round"]),default=(0,None))[1]
    v2 = x["current_reserve"] if x["disclosed"] else None
    v3 = x["current_reserve"] if x["frozen"] else x["submitted_reserve"]
    v4 = max(x["submitted_reserve"],x["floor"],x["seller_minimum"])
    v5 = x["floor"]<=x["submitted_reserve"]<=x["ceiling"]
    v6 = max(x["lot_minimum"],x["current_reserve"]*x["quantity"])
    v7 = len(x["real_bids"])
    v8 = x["current_reserve"] if x["withdrawn"] else x["submitted_reserve"]
    v9 = x["submitted_reserve"] if x["round"]>=x["grant_round"] else x["current_reserve"]
    return {'effective-reserve-step':v0,'approved-reserve-step':v1,'hidden-reserve-redaction':v2,'reserve-freeze':v3,'reserve-lower-bound':v4,'reserve-range-admission':v5,'whole-lot-reserve':v6,'reserve-not-a-bidder':v7,'withdrawn-reserve-amendment':v8,'grant-round-activation':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('seller floor binds', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 15, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('amendment starts this round', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 3}, [12, 24, 36, 48, 60]), ('first round', {'round': 1, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('last round', {'round': 6, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [6, 12, 18, 24, 30]), ('all approved', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, True, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [9, 18, 27, 36, 45]), ('public reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': True, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('frozen reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': True, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('reserve below floor', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 4, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'quantity', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['approved-reserve-step'], expected[N-1])
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
normal contract912Failed
seller floor binds912Failed
amendment starts this round912Failed
first round1212Passed
last round66Passed
all approved99Passed
public reserve912Failed
frozen reserve912Failed
reserve below floor912Failed

SHA-256 / 8b4c1ad1ce97557b66e82e4d3dc2d2baa57e4616e85d03efb36c465b94194ab7

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(x):
    v0 = max(((t,v) for t,v in zip(x["starts"],x["values"]) if t<=x["round"]),default=(0,None))[1]
    v1 = x["current_reserve"]
    v2 = x["current_reserve"] if x["disclosed"] else None
    v3 = x["current_reserve"] if x["frozen"] else x["submitted_reserve"]
    v4 = max(x["submitted_reserve"],x["floor"],x["seller_minimum"])
    v5 = x["floor"]<=x["submitted_reserve"]<=x["ceiling"]
    v6 = max(x["lot_minimum"],x["current_reserve"]*x["quantity"])
    v7 = len(x["real_bids"])
    v8 = x["current_reserve"] if x["withdrawn"] else x["submitted_reserve"]
    v9 = x["submitted_reserve"] if x["round"]>=x["grant_round"] else x["current_reserve"]
    return {'effective-reserve-step':v0,'approved-reserve-step':v1,'hidden-reserve-redaction':v2,'reserve-freeze':v3,'reserve-lower-bound':v4,'reserve-range-admission':v5,'whole-lot-reserve':v6,'reserve-not-a-bidder':v7,'withdrawn-reserve-amendment':v8,'grant-round-activation':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('seller floor binds', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 15, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('amendment starts this round', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 3}, [12, 24, 36, 48, 60]), ('first round', {'round': 1, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('last round', {'round': 6, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [6, 12, 18, 24, 30]), ('all approved', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, True, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [9, 18, 27, 36, 45]), ('public reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': True, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('frozen reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': True, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('reserve below floor', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 4, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'quantity', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['approved-reserve-step'], expected[N-1])
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
normal contract1012Failed
seller floor binds1012Failed
amendment starts this round1012Failed
first round1012Failed
last round106Failed
all approved109Failed
public reserve1012Failed
frozen reserve1012Failed
reserve below floor1012Failed

SHA-256 / 0af07fe3a8b7a66f2dd9210d2458416c7368ddd7d300cc6cf07038587ecceddd

3 / The verified repair

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

N = 1
observations = []
def solve(x):
    v0 = max(((t,v) for t,v in zip(x["starts"],x["values"]) if t<=x["round"]),default=(0,None))[1]
    v1 = max(((t,v) for t,v,a in zip(x["starts"],x["values"],x["approved"]) if t<=x["round"] and a),default=(0,None))[1]
    v2 = x["current_reserve"] if x["disclosed"] else None
    v3 = x["current_reserve"] if x["frozen"] else x["submitted_reserve"]
    v4 = max(x["submitted_reserve"],x["floor"],x["seller_minimum"])
    v5 = x["floor"]<=x["submitted_reserve"]<=x["ceiling"]
    v6 = max(x["lot_minimum"],x["current_reserve"]*x["quantity"])
    v7 = len(x["real_bids"])
    v8 = x["current_reserve"] if x["withdrawn"] else x["submitted_reserve"]
    v9 = x["submitted_reserve"] if x["round"]>=x["grant_round"] else x["current_reserve"]
    return {'effective-reserve-step':v0,'approved-reserve-step':v1,'hidden-reserve-redaction':v2,'reserve-freeze':v3,'reserve-lower-bound':v4,'reserve-range-admission':v5,'whole-lot-reserve':v6,'reserve-not-a-bidder':v7,'withdrawn-reserve-amendment':v8,'grant-round-activation':v9}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('seller floor binds', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 15, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('amendment starts this round', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 3}, [12, 24, 36, 48, 60]), ('first round', {'round': 1, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('last round', {'round': 6, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [6, 12, 18, 24, 30]), ('all approved', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, True, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [9, 18, 27, 36, 45]), ('public reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': True, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('frozen reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': True, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60]), ('reserve below floor', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 4, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [12, 24, 36, 48, 60])]
def vary(value):
 if type(value) is int: return value*N
 if isinstance(value,list): return [vary(v) for v in value]
 if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'quantity', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
 return value
for label, request, expected in fixtures:
 check(label, solve(vary(request))['approved-reserve-step'], expected[N-1])
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
normal contract1212Passed
seller floor binds1212Passed
amendment starts this round1212Passed
first round1212Passed
last round66Passed
all approved99Passed
public reserve1212Passed
frozen reserve1212Passed
reserve below floor1212Passed

SHA-256 / a0920564860a4d6442c7db502fa8526393df08dee7fee48aeaaba3925fde144f

Verification & scope

Stipulated toy auction rules, not a venue specification, financial advice, optimization claim, or live trading implementation. Nonnegative integer inputs and internally aligned list fields only. 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:19.378586+00:00.

Case digest / 8a0412e6fd8eb76fd3e58fa84bf5763b524f461ac1dc3d4e28f6920c1b965663