FAILURE MAP
← Case archive

FA-85996 / Game economy crafting balance / Open access

Auction house fees: Cancelling over a bid is free · case 01

Sellers cancel listings with bids without the bid penalty.

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

ROOT CAUSE

The cancellation branch omits the 5% bid penalty.

VERIFIED REPAIR

Restore `net = -deposit - outcome.get('bid', 0) * 5 // 100` at the cancellation penalty step.

Unsuccessful approach: Charging only the bid penalty refunds a forfeited deposit.

Case contract

Deposit = per_block * (hours//12) where per_block = max(1, floor(stack_value*15/100)). Sold: net = price - cut with cut = 5% of price rounded half up (deposit refunded). Expired: net = -deposit. Cancelled: net = -deposit - floor(bid*5/100) (bid defaults to 0). Returns {deposit, net} in copper.

Why this case matters

Game economies leak or destroy currency when one crafting or pricing rule is off by one boundary, rounding stage or state update; the defect is observable in exact integer outcomes.

1 / The failure

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

N = 1
observations = []
def solve(listing, outcome):
    blocks = listing['hours'] // 12
    per_block = max(1, listing['stack_value'] * 15 // 100)
    deposit = per_block * blocks
    status = outcome['status']
    if status == 'sold':
        cut = (listing['price'] * 5 + 50) // 100
        net = listing['price'] - cut
    elif status == 'cancelled':
        net = -deposit
    else:
        net = -deposit
    return {'deposit': deposit, 'net': net}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('fault site cancellation penalty #1',
   [{'price': 10, 'hours': 12, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 48, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 4, 'net': -8}),
  ('partial repair boundary #1',
   [{'price': 11, 'hours': 24, 'stack_value': 13}, {'status': 'cancelled', 'bid': 0}],
   {'deposit': 2, 'net': -2}),
  ('partial repair boundary #2',
   [{'price': 1, 'hours': 12, 'stack_value': 4743}, {'status': 'cancelled', 'bid': 0}],
   {'deposit': 711, 'net': -711}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 10, 'hours': 48, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 48, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 4, 'net': -8}),
  ('fault site cancellation penalty #1',
   [{'price': 10, 'hours': 12, 'stack_value': 13}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('partial repair boundary #1',
   [{'price': 1, 'hours': 12, 'stack_value': 4743}, {'status': 'cancelled', 'bid': 0}],
   {'deposit': 711, 'net': -711}),
  ('partial repair boundary #2',
   [{'price': 190, 'hours': 12, 'stack_value': 13}, {'status': 'cancelled'}],
   {'deposit': 1, 'net': -1}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 10, 'hours': 48, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('regression cancellation penalty #1',
   [{'price': 50, 'hours': 24, 'stack_value': 6}, {'status': 'cancelled', 'bid': 323}],
   {'deposit': 2, 'net': -18}),
  ('regression cancellation penalty #2',
   [{'price': 11, 'hours': 12, 'stack_value': 6}, {'status': 'cancelled', 'bid': 20}],
   {'deposit': 1, 'net': -2}),
  ('partial repair boundary #1',
   [{'price': 912, 'hours': 24, 'stack_value': 0}, {'status': 'cancelled'}],
   {'deposit': 2, 'net': -2}),
  ('regression cancellation penalty #3',
   [{'price': 190, 'hours': 48, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 4, 'net': -8}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 10, 'hours': 48, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 24, 'stack_value': 1}, {'status': 'cancelled', 'bid': 2339}],
   {'deposit': 2, 'net': -118}),
  ('regression cancellation penalty #2',
   [{'price': 1, 'hours': 24, 'stack_value': 6}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 2, 'net': -6}),
  ('regression cancellation penalty #3',
   [{'price': 50, 'hours': 24, 'stack_value': 6}, {'status': 'cancelled', 'bid': 323}],
   {'deposit': 2, 'net': -18}),
  ('regression cancellation penalty #4',
   [{'price': 11, 'hours': 12, 'stack_value': 6}, {'status': 'cancelled', 'bid': 20}],
   {'deposit': 1, 'net': -2}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 50, 'hours': 24, 'stack_value': 6}, {'status': 'expired'}],
   {'deposit': 2, 'net': -2})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('fault site cancellation penalty #1',
   [{'price': 1, 'hours': 12, 'stack_value': 1}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('fault site cancellation penalty #2',
   [{'price': 50, 'hours': 12, 'stack_value': 1}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('partial repair boundary #1',
   [{'price': 30, 'hours': 48, 'stack_value': 2507}, {'status': 'cancelled', 'bid': 19}],
   {'deposit': 1504, 'net': -1504}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 24, 'stack_value': 1}, {'status': 'cancelled', 'bid': 2339}],
   {'deposit': 2, 'net': -118}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 11, 'hours': 12, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 1, 'net': -1})]]
for label, args, expected in cases[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
cancel with bid #1{'deposit': 12, 'net': -12}{'deposit': 12, 'net': -31}Failed
fault site cancellation penalty #1{'deposit': 1, 'net': -1}{'deposit': 1, 'net': -5}Failed
regression cancellation penalty #1{'deposit': 4, 'net': -4}{'deposit': 4, 'net': -8}Failed
partial repair boundary #1{'deposit': 2, 'net': -2}{'deposit': 2, 'net': -2}Passed
partial repair boundary #2{'deposit': 711, 'net': -711}{'deposit': 711, 'net': -711}Passed
long cheap listing #1{'deposit': 4, 'net': -4}{'deposit': 4, 'net': -4}Passed
half-up cut boundary #1{'deposit': 15, 'net': 9}{'deposit': 15, 'net': 9}Passed
control #1{'deposit': 4, 'net': -4}{'deposit': 4, 'net': -4}Passed

SHA-256 / 8e537c6d5a76c15c32c4453a21ffde2c1674ad2d7e8f2f19ec42530a76d4bcf8

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(listing, outcome):
    blocks = listing['hours'] // 12
    per_block = max(1, listing['stack_value'] * 15 // 100)
    deposit = per_block * blocks
    status = outcome['status']
    if status == 'sold':
        cut = (listing['price'] * 5 + 50) // 100
        net = listing['price'] - cut
    elif status == 'cancelled':
        net = -outcome.get('bid', 0) * 5 // 100
    else:
        net = -deposit
    return {'deposit': deposit, 'net': net}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('fault site cancellation penalty #1',
   [{'price': 10, 'hours': 12, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 48, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 4, 'net': -8}),
  ('partial repair boundary #1',
   [{'price': 11, 'hours': 24, 'stack_value': 13}, {'status': 'cancelled', 'bid': 0}],
   {'deposit': 2, 'net': -2}),
  ('partial repair boundary #2',
   [{'price': 1, 'hours': 12, 'stack_value': 4743}, {'status': 'cancelled', 'bid': 0}],
   {'deposit': 711, 'net': -711}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 10, 'hours': 48, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 48, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 4, 'net': -8}),
  ('fault site cancellation penalty #1',
   [{'price': 10, 'hours': 12, 'stack_value': 13}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('partial repair boundary #1',
   [{'price': 1, 'hours': 12, 'stack_value': 4743}, {'status': 'cancelled', 'bid': 0}],
   {'deposit': 711, 'net': -711}),
  ('partial repair boundary #2',
   [{'price': 190, 'hours': 12, 'stack_value': 13}, {'status': 'cancelled'}],
   {'deposit': 1, 'net': -1}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 10, 'hours': 48, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('regression cancellation penalty #1',
   [{'price': 50, 'hours': 24, 'stack_value': 6}, {'status': 'cancelled', 'bid': 323}],
   {'deposit': 2, 'net': -18}),
  ('regression cancellation penalty #2',
   [{'price': 11, 'hours': 12, 'stack_value': 6}, {'status': 'cancelled', 'bid': 20}],
   {'deposit': 1, 'net': -2}),
  ('partial repair boundary #1',
   [{'price': 912, 'hours': 24, 'stack_value': 0}, {'status': 'cancelled'}],
   {'deposit': 2, 'net': -2}),
  ('regression cancellation penalty #3',
   [{'price': 190, 'hours': 48, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 4, 'net': -8}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 10, 'hours': 48, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 24, 'stack_value': 1}, {'status': 'cancelled', 'bid': 2339}],
   {'deposit': 2, 'net': -118}),
  ('regression cancellation penalty #2',
   [{'price': 1, 'hours': 24, 'stack_value': 6}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 2, 'net': -6}),
  ('regression cancellation penalty #3',
   [{'price': 50, 'hours': 24, 'stack_value': 6}, {'status': 'cancelled', 'bid': 323}],
   {'deposit': 2, 'net': -18}),
  ('regression cancellation penalty #4',
   [{'price': 11, 'hours': 12, 'stack_value': 6}, {'status': 'cancelled', 'bid': 20}],
   {'deposit': 1, 'net': -2}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 50, 'hours': 24, 'stack_value': 6}, {'status': 'expired'}],
   {'deposit': 2, 'net': -2})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('fault site cancellation penalty #1',
   [{'price': 1, 'hours': 12, 'stack_value': 1}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('fault site cancellation penalty #2',
   [{'price': 50, 'hours': 12, 'stack_value': 1}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('partial repair boundary #1',
   [{'price': 30, 'hours': 48, 'stack_value': 2507}, {'status': 'cancelled', 'bid': 19}],
   {'deposit': 1504, 'net': -1504}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 24, 'stack_value': 1}, {'status': 'cancelled', 'bid': 2339}],
   {'deposit': 2, 'net': -118}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 11, 'hours': 12, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 1, 'net': -1})]]
for label, args, expected in cases[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
cancel with bid #1{'deposit': 12, 'net': -20}{'deposit': 12, 'net': -31}Failed
fault site cancellation penalty #1{'deposit': 1, 'net': -5}{'deposit': 1, 'net': -5}Passed
regression cancellation penalty #1{'deposit': 4, 'net': -5}{'deposit': 4, 'net': -8}Failed
partial repair boundary #1{'deposit': 2, 'net': 0}{'deposit': 2, 'net': -2}Failed
partial repair boundary #2{'deposit': 711, 'net': 0}{'deposit': 711, 'net': -711}Failed
long cheap listing #1{'deposit': 4, 'net': -4}{'deposit': 4, 'net': -4}Passed
half-up cut boundary #1{'deposit': 15, 'net': 9}{'deposit': 15, 'net': 9}Passed
control #1{'deposit': 4, 'net': -4}{'deposit': 4, 'net': -4}Passed

SHA-256 / a9fde151d10c3350fc278b65c0f8e15cd3aecc83cc6ab29ee7fe98c0468dd628

3 / The verified repair

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

N = 1
observations = []
def solve(listing, outcome):
    blocks = listing['hours'] // 12
    per_block = max(1, listing['stack_value'] * 15 // 100)
    deposit = per_block * blocks
    status = outcome['status']
    if status == 'sold':
        cut = (listing['price'] * 5 + 50) // 100
        net = listing['price'] - cut
    elif status == 'cancelled':
        net = -deposit - outcome.get('bid', 0) * 5 // 100
    else:
        net = -deposit
    return {'deposit': deposit, 'net': net}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('fault site cancellation penalty #1',
   [{'price': 10, 'hours': 12, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 48, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 4, 'net': -8}),
  ('partial repair boundary #1',
   [{'price': 11, 'hours': 24, 'stack_value': 13}, {'status': 'cancelled', 'bid': 0}],
   {'deposit': 2, 'net': -2}),
  ('partial repair boundary #2',
   [{'price': 1, 'hours': 12, 'stack_value': 4743}, {'status': 'cancelled', 'bid': 0}],
   {'deposit': 711, 'net': -711}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 10, 'hours': 48, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 48, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 4, 'net': -8}),
  ('fault site cancellation penalty #1',
   [{'price': 10, 'hours': 12, 'stack_value': 13}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('partial repair boundary #1',
   [{'price': 1, 'hours': 12, 'stack_value': 4743}, {'status': 'cancelled', 'bid': 0}],
   {'deposit': 711, 'net': -711}),
  ('partial repair boundary #2',
   [{'price': 190, 'hours': 12, 'stack_value': 13}, {'status': 'cancelled'}],
   {'deposit': 1, 'net': -1}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 10, 'hours': 48, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('regression cancellation penalty #1',
   [{'price': 50, 'hours': 24, 'stack_value': 6}, {'status': 'cancelled', 'bid': 323}],
   {'deposit': 2, 'net': -18}),
  ('regression cancellation penalty #2',
   [{'price': 11, 'hours': 12, 'stack_value': 6}, {'status': 'cancelled', 'bid': 20}],
   {'deposit': 1, 'net': -2}),
  ('partial repair boundary #1',
   [{'price': 912, 'hours': 24, 'stack_value': 0}, {'status': 'cancelled'}],
   {'deposit': 2, 'net': -2}),
  ('regression cancellation penalty #3',
   [{'price': 190, 'hours': 48, 'stack_value': 0}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 4, 'net': -8}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 10, 'hours': 48, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 24, 'stack_value': 1}, {'status': 'cancelled', 'bid': 2339}],
   {'deposit': 2, 'net': -118}),
  ('regression cancellation penalty #2',
   [{'price': 1, 'hours': 24, 'stack_value': 6}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 2, 'net': -6}),
  ('regression cancellation penalty #3',
   [{'price': 50, 'hours': 24, 'stack_value': 6}, {'status': 'cancelled', 'bid': 323}],
   {'deposit': 2, 'net': -18}),
  ('regression cancellation penalty #4',
   [{'price': 11, 'hours': 12, 'stack_value': 6}, {'status': 'cancelled', 'bid': 20}],
   {'deposit': 1, 'net': -2}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 50, 'hours': 24, 'stack_value': 6}, {'status': 'expired'}],
   {'deposit': 2, 'net': -2})],
 [('cancel with bid #1',
   [{'price': 500, 'hours': 24, 'stack_value': 40}, {'status': 'cancelled', 'bid': 390}],
   {'deposit': 12, 'net': -31}),
  ('fault site cancellation penalty #1',
   [{'price': 1, 'hours': 12, 'stack_value': 1}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('fault site cancellation penalty #2',
   [{'price': 50, 'hours': 12, 'stack_value': 1}, {'status': 'cancelled', 'bid': 99}],
   {'deposit': 1, 'net': -5}),
  ('partial repair boundary #1',
   [{'price': 30, 'hours': 48, 'stack_value': 2507}, {'status': 'cancelled', 'bid': 19}],
   {'deposit': 1504, 'net': -1504}),
  ('regression cancellation penalty #1',
   [{'price': 190, 'hours': 24, 'stack_value': 1}, {'status': 'cancelled', 'bid': 2339}],
   {'deposit': 2, 'net': -118}),
  ('long cheap listing #1',
   [{'price': 10, 'hours': 48, 'stack_value': 3}, {'status': 'expired'}],
   {'deposit': 4, 'net': -4}),
  ('half-up cut boundary #1',
   [{'price': 10, 'hours': 12, 'stack_value': 100}, {'status': 'sold'}],
   {'deposit': 15, 'net': 9}),
  ('control #1',
   [{'price': 11, 'hours': 12, 'stack_value': 0}, {'status': 'expired'}],
   {'deposit': 1, 'net': -1})]]
for label, args, expected in cases[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
cancel with bid #1{'deposit': 12, 'net': -31}{'deposit': 12, 'net': -31}Passed
fault site cancellation penalty #1{'deposit': 1, 'net': -5}{'deposit': 1, 'net': -5}Passed
regression cancellation penalty #1{'deposit': 4, 'net': -8}{'deposit': 4, 'net': -8}Passed
partial repair boundary #1{'deposit': 2, 'net': -2}{'deposit': 2, 'net': -2}Passed
partial repair boundary #2{'deposit': 711, 'net': -711}{'deposit': 711, 'net': -711}Passed
long cheap listing #1{'deposit': 4, 'net': -4}{'deposit': 4, 'net': -4}Passed
half-up cut boundary #1{'deposit': 15, 'net': 9}{'deposit': 15, 'net': 9}Passed
control #1{'deposit': 4, 'net': -4}{'deposit': 4, 'net': -4}Passed

SHA-256 / 1ac3b0019f345265a3da22c88e72bfaf310ded296308bd5e24c8f7a309f83a4c

Verification & scope

Deterministic toy contract stipulated for this model; integer or exact arithmetic only, not a reproduction of any specific game engine. 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:50:45.491480+00:00.

Case digest / 9e04c25f86168b1b781ce9472b23c1faef9313367b03b509577403ff7ef04381