FA-12736 / Auction allocation rules / Open access
A minimum-fill order is rejected despite sufficient aggregate counterparties · case 01
A minimum-fill order is rejected despite sufficient aggregate counterparties.
ROOT CAUSE
Minimum execution size is applied to each opposing order separately.
VERIFIED REPAIR
Implement the stated toy allocation contract directly: For a buy size, minimum fill and already-price-compatible opposing sizes, aggregate available size; execute min(size,total) only if it is at least minimum, otherwise zero. Size >= minimum >=1; opposing sizes positive.
Unsuccessful approach: Ignoring the minimum entirely permits a forbidden small execution.
Case contract
For a buy size, minimum fill and already-price-compatible opposing sizes, aggregate available size; execute min(size,total) only if it is at least minimum, otherwise zero. Size >= minimum >=1; opposing sizes positive.
Why this case matters
Deterministic teaching model for reviewing auction allocation software; not a representation of any venue or financial advice.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(size, minimum, opposing):
return min(size,sum(q for q in opposing if q>=minimum))
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('aggregate meets minimum', solve(10+N, 5, [2,3]), 5)
check('below minimum', solve(10, 5, [2,2]), 0)
check('one adequate opponent', solve(10, 5, [7]), 7)
check('empty book', solve(10, 5, []), 0)
check('cap requested size', solve(6, 5, [4,4]), 6)
check('exact requested minimum', solve(5, 5, [2,3,9]), 5)
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 |
|---|---|---|---|
| aggregate meets minimum | 0 | 5 | Failed |
| below minimum | 0 | 0 | Passed |
| one adequate opponent | 7 | 7 | Passed |
| empty book | 0 | 0 | Passed |
| cap requested size | 0 | 6 | Failed |
| exact requested minimum | 5 | 5 | Passed |
SHA-256 / a0dfe254d49cc7c951f286521cc6550847a59e9c1f3f92cdb6c907402573c71c
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(size, minimum, opposing):
return min(size,sum(opposing))
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('aggregate meets minimum', solve(10+N, 5, [2,3]), 5)
check('below minimum', solve(10, 5, [2,2]), 0)
check('one adequate opponent', solve(10, 5, [7]), 7)
check('empty book', solve(10, 5, []), 0)
check('cap requested size', solve(6, 5, [4,4]), 6)
check('exact requested minimum', solve(5, 5, [2,3,9]), 5)
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 |
|---|---|---|---|
| aggregate meets minimum | 5 | 5 | Passed |
| below minimum | 4 | 0 | Failed |
| one adequate opponent | 7 | 7 | Passed |
| empty book | 0 | 0 | Passed |
| cap requested size | 6 | 6 | Passed |
| exact requested minimum | 5 | 5 | Passed |
SHA-256 / 10c2925f48f7bc10cf94776a9fb724e87e2fedf00b40041cb6f20ad256706b8b
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(size, minimum, opposing):
amount=min(size,sum(opposing))
return amount if amount>=minimum else 0
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('aggregate meets minimum', solve(10+N, 5, [2,3]), 5)
check('below minimum', solve(10, 5, [2,2]), 0)
check('one adequate opponent', solve(10, 5, [7]), 7)
check('empty book', solve(10, 5, []), 0)
check('cap requested size', solve(6, 5, [4,4]), 6)
check('exact requested minimum', solve(5, 5, [2,3,9]), 5)
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 |
|---|---|---|---|
| aggregate meets minimum | 5 | 5 | Passed |
| below minimum | 0 | 0 | Passed |
| one adequate opponent | 7 | 7 | Passed |
| empty book | 0 | 0 | Passed |
| cap requested size | 6 | 6 | Passed |
| exact requested minimum | 5 | 5 | Passed |
SHA-256 / 798c90a077687b497ef96c65653ab5c95911462ffd8a11c7c581f9f3fa6740f2
Verification & scope
Offline toy model with explicit integer inputs; no strategic behavior or real market execution. 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:38:59.606433+00:00.
Case digest / df10215c740dadd244b80aaca73c561dd8d6d7e813de7545d4228ad9cb5268ee