FAILURE MAP
← Case archive

FA-95676 / Shipping rate zone lookup / Open access

Contract discount: largest accounts get the smallest discount · case 01

Top-tier accounts are discounted at the entry tier rate.

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

ROOT CAUSE

The tier scan does not stop at the first (highest) matching tier, so lower tiers overwrite it.

VERIFIED REPAIR

Scan tiers from highest threshold down and stop at the first match.

Unsuccessful approach: Sorting tiers ascending and stopping early picks the lowest matching tier.

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
    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 = [[['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['no discount', [1000, 100, 500], [0, 1000]], ['half cent discount', [1025, 2000, 500], [18, 840]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['generated mix 8', [1025, 4999.5, 900], [18, 900]]], [['generated mix 8', [1025, 4999.5, 900], [18, 900]], ['generated mix 6', [2000, 4999.5, 500], [18, 1640]], ['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 11', [1000, 5000, 900], [25, 900]], ['generated mix 19', [1000, 2000, 900], [18, 900]]], [['generated mix 22', [700, 5000, 500], [25, 525]], ['generated mix 18', [700, 8000, 0], [25, 525]], ['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 21', [1000, 500, 900], [12, 900]], ['generated mix 30', [1250, 8000, 500], [25, 937]]], [['generated mix 31', [700, 4999.5, 900], [18, 700]], ['generated mix 25', [700, 4999.5, 1200], [18, 700]], ['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 33', [1025, 1999.6, 500], [12, 902]], ['generated mix 41', [1025, 499.99, 0], [0, 1025]]], [['generated mix 49', [1000, 5000, 0], [25, 750]], ['generated mix 31', [700, 4999.5, 900], [18, 700]], ['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
tier edge[12, 880][18, 820]Failed
top tier[12, 880][25, 750]Failed
just under tier[12, 880][12, 880]Passed
minimum applies[12, 900][25, 900]Failed
no discount[0, 1000][0, 1000]Passed
half cent discount[12, 902][18, 840]Failed
minimum capped by list[12, 700][25, 700]Failed
generated mix 8[12, 902][18, 900]Failed

SHA-256 / 0ba916b1379186581d4f3affb9b44f9927ce83088ecc6c57993b64497098ea49

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 sorted(((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 = [[['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['no discount', [1000, 100, 500], [0, 1000]], ['half cent discount', [1025, 2000, 500], [18, 840]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['generated mix 8', [1025, 4999.5, 900], [18, 900]]], [['generated mix 8', [1025, 4999.5, 900], [18, 900]], ['generated mix 6', [2000, 4999.5, 500], [18, 1640]], ['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 11', [1000, 5000, 900], [25, 900]], ['generated mix 19', [1000, 2000, 900], [18, 900]]], [['generated mix 22', [700, 5000, 500], [25, 525]], ['generated mix 18', [700, 8000, 0], [25, 525]], ['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 21', [1000, 500, 900], [12, 900]], ['generated mix 30', [1250, 8000, 500], [25, 937]]], [['generated mix 31', [700, 4999.5, 900], [18, 700]], ['generated mix 25', [700, 4999.5, 1200], [18, 700]], ['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 33', [1025, 1999.6, 500], [12, 902]], ['generated mix 41', [1025, 499.99, 0], [0, 1025]]], [['generated mix 49', [1000, 5000, 0], [25, 750]], ['generated mix 31', [700, 4999.5, 900], [18, 700]], ['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
tier edge[12, 880][18, 820]Failed
top tier[12, 880][25, 750]Failed
just under tier[12, 880][12, 880]Passed
minimum applies[12, 900][25, 900]Failed
no discount[0, 1000][0, 1000]Passed
half cent discount[12, 902][18, 840]Failed
minimum capped by list[12, 700][25, 700]Failed
generated mix 8[12, 902][18, 900]Failed

SHA-256 / 1e15e9f4d614c5b09e4a2a63f297d2712462bf3a5d1ac3df6e3b01aac8059b13

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 = [[['tier edge', [1000, 2000, 500], [18, 820]], ['top tier', [1000, 6000, 500], [25, 750]], ['just under tier', [1000, 1999.6, 500], [12, 880]], ['minimum applies', [1000, 6000, 900], [25, 900]], ['no discount', [1000, 100, 500], [0, 1000]], ['half cent discount', [1025, 2000, 500], [18, 840]], ['minimum capped by list', [700, 6000, 900], [25, 700]], ['generated mix 8', [1025, 4999.5, 900], [18, 900]]], [['generated mix 8', [1025, 4999.5, 900], [18, 900]], ['generated mix 6', [2000, 4999.5, 500], [18, 1640]], ['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 11', [1000, 5000, 900], [25, 900]], ['generated mix 19', [1000, 2000, 900], [18, 900]]], [['generated mix 22', [700, 5000, 500], [25, 525]], ['generated mix 18', [700, 8000, 0], [25, 525]], ['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 21', [1000, 500, 900], [12, 900]], ['generated mix 30', [1250, 8000, 500], [25, 937]]], [['generated mix 31', [700, 4999.5, 900], [18, 700]], ['generated mix 25', [700, 4999.5, 1200], [18, 700]], ['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 33', [1025, 1999.6, 500], [12, 902]], ['generated mix 41', [1025, 499.99, 0], [0, 1025]]], [['generated mix 49', [1000, 5000, 0], [25, 750]], ['generated mix 31', [700, 4999.5, 900], [18, 700]], ['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
tier edge[18, 820][18, 820]Passed
top tier[25, 750][25, 750]Passed
just under tier[12, 880][12, 880]Passed
minimum applies[25, 900][25, 900]Passed
no discount[0, 1000][0, 1000]Passed
half cent discount[18, 840][18, 840]Passed
minimum capped by list[25, 700][25, 700]Passed
generated mix 8[18, 900][18, 900]Passed

SHA-256 / 40de88cc789c873fb1a1cb1b8be0386a11d9c2cb9dd5fc961c83817947fd1097

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.844270+00:00.

Case digest / 478330c5349913f9a887343b4837e13fb597ce8e9309f6b4003f4422398f9238