FA-56886 / Auction allocation rules / Open access
Deposit admission: refund available ceiling · case 01
A deposit refund consumes award-locked collateral.
ROOT CAUSE
A deposit refund consumes award-locked collateral.
VERIFIED REPAIR
For refund available ceiling, apply the stipulated decision min(x["refunded"],max(0,x["cleared"]-x["locked"])).
Unsuccessful approach: The attempted repair uses x["refunded"]; the explicit regression cases demonstrate that this still violates the stipulated auction rule.
Case contract
Toy bidder deposits consist of cleared, pending and restricted tranches. Deposits are auction-scoped and denomination-specific. Admission capacity is per bidder; a waiver substitutes for a required deposit without turning a pending transfer into cash. Named decision refund-available-ceiling: For refund available ceiling, apply the stipulated decision min(x["refunded"],max(0,x["cleared"]-x["locked"])).
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 = x["cleared"]>=x["required"]
v1 = max(0,x["cleared"]-x["restricted"])
v2 = x["waiver"] or x["cleared"]>=x["required"]
v3 = x["auction"]==x["deposit_auction"]
v4 = x["currency"]==x["deposit_currency"]
v5 = max(0,x["cleared"]-x["chargeback"])
v6 = max(0,x["cleared"]-x["locked"])
v7 = x["owner"]==x["beneficiary"] and x["owner"] in x["owners"]
v8 = 0 if x["expired"] else x["cleared"]+(x["topup"] if x["confirmed"] else 0)
v9 = min(x["refunded"],x["cleared"])
return {'cleared-admission':v0,'restricted-tranche':v1,'deposit-waiver-admission':v2,'auction-scope':v3,'denomination-scope':v4,'chargeback-recovery':v5,'withdrawable-deposit':v6,'beneficial-owner':v7,'topup-posting':v8,'refund-available-ceiling':v9}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('all locked', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 30, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [0, 0, 0, 0, 0]), ('over refund', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 30}, [14, 28, 42, 56, 70]), ('normal contract', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('cleared sufficient', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 10, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('deposit waived', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': True, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('wrong auction', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'B', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('wrong denomination', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'ALT', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('expired deposit', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': True, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('topup confirmed', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': True, 'refunded': 4}, [4, 8, 12, 16, 20]), ('chargeback consumes balance', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 30, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20])]
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', '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))['refund-available-ceiling'], 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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| all locked | 4 | 0 | Failed |
| over refund | 20 | 14 | Failed |
| normal contract | 4 | 4 | Passed |
| cleared sufficient | 4 | 4 | Passed |
| deposit waived | 4 | 4 | Passed |
| wrong auction | 4 | 4 | Passed |
| wrong denomination | 4 | 4 | Passed |
| expired deposit | 4 | 4 | Passed |
| topup confirmed | 4 | 4 | Passed |
| chargeback consumes balance | 4 | 4 | Passed |
SHA-256 / ce0727da9cf94dea00f66a1b96e50b140c7a54cc7ac1e03c6dc2454b44d31a24
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
v0 = x["cleared"]>=x["required"]
v1 = max(0,x["cleared"]-x["restricted"])
v2 = x["waiver"] or x["cleared"]>=x["required"]
v3 = x["auction"]==x["deposit_auction"]
v4 = x["currency"]==x["deposit_currency"]
v5 = max(0,x["cleared"]-x["chargeback"])
v6 = max(0,x["cleared"]-x["locked"])
v7 = x["owner"]==x["beneficiary"] and x["owner"] in x["owners"]
v8 = 0 if x["expired"] else x["cleared"]+(x["topup"] if x["confirmed"] else 0)
v9 = x["refunded"]
return {'cleared-admission':v0,'restricted-tranche':v1,'deposit-waiver-admission':v2,'auction-scope':v3,'denomination-scope':v4,'chargeback-recovery':v5,'withdrawable-deposit':v6,'beneficial-owner':v7,'topup-posting':v8,'refund-available-ceiling':v9}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('all locked', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 30, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [0, 0, 0, 0, 0]), ('over refund', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 30}, [14, 28, 42, 56, 70]), ('normal contract', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('cleared sufficient', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 10, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('deposit waived', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': True, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('wrong auction', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'B', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('wrong denomination', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'ALT', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('expired deposit', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': True, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('topup confirmed', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': True, 'refunded': 4}, [4, 8, 12, 16, 20]), ('chargeback consumes balance', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 30, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20])]
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', '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))['refund-available-ceiling'], 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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| all locked | 4 | 0 | Failed |
| over refund | 30 | 14 | Failed |
| normal contract | 4 | 4 | Passed |
| cleared sufficient | 4 | 4 | Passed |
| deposit waived | 4 | 4 | Passed |
| wrong auction | 4 | 4 | Passed |
| wrong denomination | 4 | 4 | Passed |
| expired deposit | 4 | 4 | Passed |
| topup confirmed | 4 | 4 | Passed |
| chargeback consumes balance | 4 | 4 | Passed |
SHA-256 / fd71e88216d161325338b1a40c5cf2070f34b0020fee632f316d8e1c894aee6c
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
v0 = x["cleared"]>=x["required"]
v1 = max(0,x["cleared"]-x["restricted"])
v2 = x["waiver"] or x["cleared"]>=x["required"]
v3 = x["auction"]==x["deposit_auction"]
v4 = x["currency"]==x["deposit_currency"]
v5 = max(0,x["cleared"]-x["chargeback"])
v6 = max(0,x["cleared"]-x["locked"])
v7 = x["owner"]==x["beneficiary"] and x["owner"] in x["owners"]
v8 = 0 if x["expired"] else x["cleared"]+(x["topup"] if x["confirmed"] else 0)
v9 = min(x["refunded"],max(0,x["cleared"]-x["locked"]))
return {'cleared-admission':v0,'restricted-tranche':v1,'deposit-waiver-admission':v2,'auction-scope':v3,'denomination-scope':v4,'chargeback-recovery':v5,'withdrawable-deposit':v6,'beneficial-owner':v7,'topup-posting':v8,'refund-available-ceiling':v9}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('all locked', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 30, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [0, 0, 0, 0, 0]), ('over refund', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 30}, [14, 28, 42, 56, 70]), ('normal contract', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('cleared sufficient', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 10, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('deposit waived', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': True, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('wrong auction', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'B', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('wrong denomination', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'ALT', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('expired deposit', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': True, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20]), ('topup confirmed', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 3, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': True, 'refunded': 4}, [4, 8, 12, 16, 20]), ('chargeback consumes balance', {'cleared': 20, 'pending': 15, 'restricted': 7, 'required': 25, 'waiver': False, 'auction': 'A', 'deposit_auction': 'A', 'currency': 'TOK', 'deposit_currency': 'TOK', 'chargeback': 30, 'locked': 6, 'owners': ['a', 'b'], 'owner': 'a', 'beneficiary': 'a', 'expired': False, 'topup': 8, 'confirmed': False, 'refunded': 4}, [4, 8, 12, 16, 20])]
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', '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))['refund-available-ceiling'], 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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| all locked | 0 | 0 | Passed |
| over refund | 14 | 14 | Passed |
| normal contract | 4 | 4 | Passed |
| cleared sufficient | 4 | 4 | Passed |
| deposit waived | 4 | 4 | Passed |
| wrong auction | 4 | 4 | Passed |
| wrong denomination | 4 | 4 | Passed |
| expired deposit | 4 | 4 | Passed |
| topup confirmed | 4 | 4 | Passed |
| chargeback consumes balance | 4 | 4 | Passed |
SHA-256 / 23728217b994dfdbac1c1253227519bc62d2a30e9670455a7017bc6f3a0e392c
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:11.494573+00:00.
Case digest / bfeb78a5b8cd909807e857304ccf2da931c93f0f16a36ad70aa50a90aa679c5e