FAILURE MAP
← Case archive

FA-95686 / Shipping rate zone lookup / Open access

Contract discount: minimum exceeds list price · case 01

Cheap lanes are billed above their published list rate because of the minimum.

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

ROOT CAUSE

The minimum floor is not capped at the list rate.

VERIFIED REPAIR

Floor net at min(minimum, list rate).

Unsuccessful approach: Reverting to list rate whenever net is below the minimum overcharges lanes whose list exceeds the minimum.

Case contract

Cents. Weekly spend (dollars, may have cents) selects the discount: >= 5000 -> 25%, >= 2000 -> 18%, >= 500 -> 12%, else 0. Discount = list * pct / 100 rounded half up. Net is floored at the minimum charge, but never above the list rate. Return [pct, net].

Why this case matters

Contract pricing discounts list rates by volume tier subject to a minimum.

1 / The failure

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

N = 1
observations = []
def solve(list_rate, spend, min_charge):
    pct = 0
    for limit, p in ((5000, 25), (2000, 18), (500, 12)):
        if spend >= limit:
            pct = p
            break
    disc = (list_rate * pct + 50) // 100
    net = list_rate - disc
    floor_amt = min_charge
    return [pct, max(net, floor_amt)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['minimum capped by list', [700, 6000, 900], [25, 700]], ['generated mix 8', [1025, 4999.5, 900], [18, 900]], ['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['generated mix 6', [2000, 4999.5, 500], [18, 1640]], ['generated mix 15', [1250, 8000, 900], [25, 937]]], [['generated mix 45', [700, 1999.6, 900], [12, 700]], ['generated mix 28', [1333, 2000, 1200], [18, 1200]], ['half cent discount', [1025, 2000, 500], [18, 840]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['generated mix 9', [1000, 500, 900], [12, 900]], ['generated mix 17', [1250, 8000, 900], [25, 937]]], [['generated mix 31', [700, 4999.5, 900], [18, 700]], ['generated mix 61', [1000, 1999.6, 900], [12, 900]], ['no discount', [1000, 100, 500], [0, 1000]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['half cent discount', [1025, 2000, 500], [18, 840]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['generated mix 20', [4999, 5000, 500], [25, 3749]], ['generated mix 28', [1333, 2000, 1200], [18, 1200]]], [['generated mix 67', [700, 500, 900], [12, 700]], ['generated mix 11', [1000, 5000, 900], [25, 900]], ['top tier', [1000, 6000, 500], [25, 750]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['no discount', [1000, 100, 500], [0, 1000]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['generated mix 32', [1333, 499.99, 500], [0, 1333]], ['generated mix 40', [700, 4999.5, 900], [18, 700]]], [['generated mix 40', [700, 4999.5, 900], [18, 700]], ['generated mix 46', [1250, 8000, 1200], [25, 1200]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['generated mix 43', [1333, 499.99, 500], [0, 1333]], ['generated mix 52', [1333, 1999.6, 500], [12, 1173]]]]
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
minimum capped by list[25, 900][25, 700]Failed
generated mix 8[18, 900][18, 900]Passed
tier edge[18, 820][18, 820]Passed
top tier[25, 750][25, 750]Passed
minimum applies[25, 900][25, 900]Passed
just under tier[12, 880][12, 880]Passed
generated mix 6[18, 1640][18, 1640]Passed
generated mix 15[25, 937][25, 937]Passed

SHA-256 / cd65e4e0b332a8511a0b8de47bce95efad716c413af4d350f6bb989488d03b47

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(list_rate, spend, min_charge):
    pct = 0
    for limit, p in ((5000, 25), (2000, 18), (500, 12)):
        if spend >= limit:
            pct = p
            break
    disc = (list_rate * pct + 50) // 100
    net = list_rate - disc
    floor_amt = min(min_charge, list_rate)
    return [pct, net if net >= min_charge else list_rate]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['minimum capped by list', [700, 6000, 900], [25, 700]], ['generated mix 8', [1025, 4999.5, 900], [18, 900]], ['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['generated mix 6', [2000, 4999.5, 500], [18, 1640]], ['generated mix 15', [1250, 8000, 900], [25, 937]]], [['generated mix 45', [700, 1999.6, 900], [12, 700]], ['generated mix 28', [1333, 2000, 1200], [18, 1200]], ['half cent discount', [1025, 2000, 500], [18, 840]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['generated mix 9', [1000, 500, 900], [12, 900]], ['generated mix 17', [1250, 8000, 900], [25, 937]]], [['generated mix 31', [700, 4999.5, 900], [18, 700]], ['generated mix 61', [1000, 1999.6, 900], [12, 900]], ['no discount', [1000, 100, 500], [0, 1000]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['half cent discount', [1025, 2000, 500], [18, 840]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['generated mix 20', [4999, 5000, 500], [25, 3749]], ['generated mix 28', [1333, 2000, 1200], [18, 1200]]], [['generated mix 67', [700, 500, 900], [12, 700]], ['generated mix 11', [1000, 5000, 900], [25, 900]], ['top tier', [1000, 6000, 500], [25, 750]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['no discount', [1000, 100, 500], [0, 1000]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['generated mix 32', [1333, 499.99, 500], [0, 1333]], ['generated mix 40', [700, 4999.5, 900], [18, 700]]], [['generated mix 40', [700, 4999.5, 900], [18, 700]], ['generated mix 46', [1250, 8000, 1200], [25, 1200]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['generated mix 43', [1333, 499.99, 500], [0, 1333]], ['generated mix 52', [1333, 1999.6, 500], [12, 1173]]]]
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
minimum capped by list[25, 700][25, 700]Passed
generated mix 8[18, 1025][18, 900]Failed
tier edge[18, 820][18, 820]Passed
top tier[25, 750][25, 750]Passed
minimum applies[25, 1000][25, 900]Failed
just under tier[12, 880][12, 880]Passed
generated mix 6[18, 1640][18, 1640]Passed
generated mix 15[25, 937][25, 937]Passed

SHA-256 / deceae6572063dd46cb514bea4cd8f9312f153211eaffd30d883078089e59eed

3 / The verified repair

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

N = 1
observations = []
def solve(list_rate, spend, min_charge):
    pct = 0
    for limit, p in ((5000, 25), (2000, 18), (500, 12)):
        if spend >= limit:
            pct = p
            break
    disc = (list_rate * pct + 50) // 100
    net = list_rate - disc
    floor_amt = min(min_charge, list_rate)
    return [pct, max(net, floor_amt)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['minimum capped by list', [700, 6000, 900], [25, 700]], ['generated mix 8', [1025, 4999.5, 900], [18, 900]], ['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['generated mix 6', [2000, 4999.5, 500], [18, 1640]], ['generated mix 15', [1250, 8000, 900], [25, 937]]], [['generated mix 45', [700, 1999.6, 900], [12, 700]], ['generated mix 28', [1333, 2000, 1200], [18, 1200]], ['half cent discount', [1025, 2000, 500], [18, 840]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['generated mix 9', [1000, 500, 900], [12, 900]], ['generated mix 17', [1250, 8000, 900], [25, 937]]], [['generated mix 31', [700, 4999.5, 900], [18, 700]], ['generated mix 61', [1000, 1999.6, 900], [12, 900]], ['no discount', [1000, 100, 500], [0, 1000]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['half cent discount', [1025, 2000, 500], [18, 840]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['generated mix 20', [4999, 5000, 500], [25, 3749]], ['generated mix 28', [1333, 2000, 1200], [18, 1200]]], [['generated mix 67', [700, 500, 900], [12, 700]], ['generated mix 11', [1000, 5000, 900], [25, 900]], ['top tier', [1000, 6000, 500], [25, 750]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['no discount', [1000, 100, 500], [0, 1000]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['generated mix 32', [1333, 499.99, 500], [0, 1333]], ['generated mix 40', [700, 4999.5, 900], [18, 700]]], [['generated mix 40', [700, 4999.5, 900], [18, 700]], ['generated mix 46', [1250, 8000, 1200], [25, 1200]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['generated mix 43', [1333, 499.99, 500], [0, 1333]], ['generated mix 52', [1333, 1999.6, 500], [12, 1173]]]]
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
minimum capped by list[25, 700][25, 700]Passed
generated mix 8[18, 900][18, 900]Passed
tier edge[18, 820][18, 820]Passed
top tier[25, 750][25, 750]Passed
minimum applies[25, 900][25, 900]Passed
just under tier[12, 880][12, 880]Passed
generated mix 6[18, 1640][18, 1640]Passed
generated mix 15[25, 937][25, 937]Passed

SHA-256 / 90f3749fa5ce8d0348e944bfc3266a0987140dc4f1a3bbfbd7798c778ddc824c

Verification & scope

Stipulated tiers; no earned incentive periods. 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:52:15.879597+00:00.

Case digest / 4a420d804cdb62e7bd275f9648aa655cc597e9db0c10b596c286cb99f4883c71