FAILURE MAP
← Case archive

FA-66581 / Airline fare rule evaluation / Open access

Percentage fare tax charged on every departure · case 01

A US-originating round trip with a Mexican stop pays both US and Mexican percentage taxes.

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

ROOT CAUSE

The percentage tax is evaluated per segment departure country instead of once for the origin.

VERIFIED REPAIR

Apply the origin percentage tax once to the base fare.

Unsuccessful approach: Limiting it to departures from the origin still charges it twice when the journey reoriginates there.

Case contract

Input {'base','yq','segments':[[from country, to country]],'pct_tax':{country: %},'dep_tax':{country: flat}}. The percentage tax of the journey origin (first segment departure country) applies once to the base fare only; each segment pays the flat departure tax of its departure country plus YQ. Return total r2.

Why this case matters

Ticket taxes differ in base and trigger: some are percentage of fare at origin, others are per departure, and carrier surcharges are per segment.

1 / The failure

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

N = 1
observations = []
def solve(x):
    segs = x['segments']
    origin = segs[0][0]
    tax = 0.0
    for dep, arr in segs:
        tax += x['dep_tax'].get(dep, 0)
        tax += x['yq']
        tax += x['base'] * x['pct_tax'].get(dep, 0) / 100
    return round(tax, 2)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['US round trip to GB', {'base': 801.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.68], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 41.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 67.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 177.31, 'yq': 60.0, 'segments': [['MX', 'GB'], ['GB', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 263.87], ['sampled case 2', {'base': 1137.48, 'yq': 0.0, 'segments': [['FR', 'MX'], ['MX', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 29.5], ['sampled case 3', {'base': 1561.86, 'yq': 0.0, 'segments': [['GB', 'DE'], ['DE', 'US'], ['US', 'FR'], ['FR', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 43.6]], [['US round trip to GB', {'base': 802.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.75], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 42.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 68.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 1003.59, 'yq': 60.0, 'segments': [['US', 'FR'], ['FR', 'MX'], ['MX', 'FR']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 290.37], ['sampled case 2', {'base': 1624.6, 'yq': 25.0, 'segments': [['FR', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 25.0], ['sampled case 3', {'base': 1470.94, 'yq': 60.0, 'segments': [['CA', 'GB']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 133.55]], [['US round trip to GB', {'base': 803.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.82], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 43.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 69.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 366.2, 'yq': 25.0, 'segments': [['GB', 'FR'], ['FR', 'DE'], ['DE', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 113.0], ['sampled case 2', {'base': 986.16, 'yq': 0.0, 'segments': [['MX', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 213.29], ['sampled case 3', {'base': 766.09, 'yq': 0.0, 'segments': [['DE', 'CA'], ['CA', 'DE'], ['DE', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 50.0]], [['US round trip to GB', {'base': 804.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.9], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 44.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 70.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 274.57, 'yq': 0.0, 'segments': [['MX', 'FR']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 73.43], ['sampled case 2', {'base': 205.88, 'yq': 110.0, 'segments': [['US', 'DE'], ['DE', 'FR'], ['FR', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 363.04], ['sampled case 3', {'base': 755.2, 'yq': 0.0, 'segments': [['CA', 'MX'], ['MX', 'GB']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 67.26]], [['US round trip to GB', {'base': 805.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.97], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 45.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 71.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 870.75, 'yq': 0.0, 'segments': [['DE', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 12.0], ['sampled case 2', {'base': 1981.28, 'yq': 110.0, 'segments': [['FR', 'GB']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 110.0], ['sampled case 3', {'base': 1796.93, 'yq': 60.0, 'segments': [['CA', 'FR']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 149.85]]]
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
US round trip to GB211.68211.68Passed
Mexico origin multi-stop238.35182.1Failed
GB origin no pct tax67.067.0Passed
reorigin at origin226.785.7Failed
ends elsewhere201.6126.6Failed
sampled case 1272.74263.87Failed
sampled case 2211.529.5Failed
sampled case 3160.7443.6Failed

SHA-256 / a9cee9e49b0e3a68fb7463bf0e7ee45052c68b938cad9e0c99104cc45b3de182

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(x):
    segs = x['segments']
    origin = segs[0][0]
    tax = 0.0
    for dep, arr in segs:
        tax += x['dep_tax'].get(dep, 0)
        tax += x['yq']
        tax += x['base'] * x['pct_tax'].get(dep, 0) / 100 if dep == origin else 0
    return round(tax, 2)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['US round trip to GB', {'base': 801.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.68], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 41.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 67.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 177.31, 'yq': 60.0, 'segments': [['MX', 'GB'], ['GB', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 263.87], ['sampled case 2', {'base': 1137.48, 'yq': 0.0, 'segments': [['FR', 'MX'], ['MX', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 29.5], ['sampled case 3', {'base': 1561.86, 'yq': 0.0, 'segments': [['GB', 'DE'], ['DE', 'US'], ['US', 'FR'], ['FR', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 43.6]], [['US round trip to GB', {'base': 802.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.75], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 42.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 68.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 1003.59, 'yq': 60.0, 'segments': [['US', 'FR'], ['FR', 'MX'], ['MX', 'FR']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 290.37], ['sampled case 2', {'base': 1624.6, 'yq': 25.0, 'segments': [['FR', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 25.0], ['sampled case 3', {'base': 1470.94, 'yq': 60.0, 'segments': [['CA', 'GB']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 133.55]], [['US round trip to GB', {'base': 803.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.82], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 43.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 69.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 366.2, 'yq': 25.0, 'segments': [['GB', 'FR'], ['FR', 'DE'], ['DE', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 113.0], ['sampled case 2', {'base': 986.16, 'yq': 0.0, 'segments': [['MX', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 213.29], ['sampled case 3', {'base': 766.09, 'yq': 0.0, 'segments': [['DE', 'CA'], ['CA', 'DE'], ['DE', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 50.0]], [['US round trip to GB', {'base': 804.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.9], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 44.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 70.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 274.57, 'yq': 0.0, 'segments': [['MX', 'FR']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 73.43], ['sampled case 2', {'base': 205.88, 'yq': 110.0, 'segments': [['US', 'DE'], ['DE', 'FR'], ['FR', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 363.04], ['sampled case 3', {'base': 755.2, 'yq': 0.0, 'segments': [['CA', 'MX'], ['MX', 'GB']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 67.26]], [['US round trip to GB', {'base': 805.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.97], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 45.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 71.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 870.75, 'yq': 0.0, 'segments': [['DE', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 12.0], ['sampled case 2', {'base': 1981.28, 'yq': 110.0, 'segments': [['FR', 'GB']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 110.0], ['sampled case 3', {'base': 1796.93, 'yq': 60.0, 'segments': [['CA', 'FR']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 149.85]]]
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
US round trip to GB211.68211.68Passed
Mexico origin multi-stop182.1182.1Passed
GB origin no pct tax67.067.0Passed
reorigin at origin130.785.7Failed
ends elsewhere126.6126.6Passed
sampled case 1263.87263.87Passed
sampled case 229.529.5Passed
sampled case 343.643.6Passed

SHA-256 / f52e9cd8e6a79a714d94efdcf6ed6910e55f174c5aa0bd074489f91dfa9dd587

3 / The verified repair

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

N = 1
observations = []
def solve(x):
    segs = x['segments']
    origin = segs[0][0]
    tax = x['base'] * x['pct_tax'].get(origin, 0) / 100
    for dep, arr in segs:
        tax += x['dep_tax'].get(dep, 0)
        tax += x['yq']
    return round(tax, 2)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['US round trip to GB', {'base': 801.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.68], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 41.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 67.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 177.31, 'yq': 60.0, 'segments': [['MX', 'GB'], ['GB', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 263.87], ['sampled case 2', {'base': 1137.48, 'yq': 0.0, 'segments': [['FR', 'MX'], ['MX', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 29.5], ['sampled case 3', {'base': 1561.86, 'yq': 0.0, 'segments': [['GB', 'DE'], ['DE', 'US'], ['US', 'FR'], ['FR', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 43.6]], [['US round trip to GB', {'base': 802.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.75], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 42.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 68.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 1003.59, 'yq': 60.0, 'segments': [['US', 'FR'], ['FR', 'MX'], ['MX', 'FR']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 290.37], ['sampled case 2', {'base': 1624.6, 'yq': 25.0, 'segments': [['FR', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 25.0], ['sampled case 3', {'base': 1470.94, 'yq': 60.0, 'segments': [['CA', 'GB']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 133.55]], [['US round trip to GB', {'base': 803.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.82], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 43.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 69.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 366.2, 'yq': 25.0, 'segments': [['GB', 'FR'], ['FR', 'DE'], ['DE', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 113.0], ['sampled case 2', {'base': 986.16, 'yq': 0.0, 'segments': [['MX', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 213.29], ['sampled case 3', {'base': 766.09, 'yq': 0.0, 'segments': [['DE', 'CA'], ['CA', 'DE'], ['DE', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 50.0]], [['US round trip to GB', {'base': 804.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.9], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 44.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 70.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 274.57, 'yq': 0.0, 'segments': [['MX', 'FR']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 73.43], ['sampled case 2', {'base': 205.88, 'yq': 110.0, 'segments': [['US', 'DE'], ['DE', 'FR'], ['FR', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 363.04], ['sampled case 3', {'base': 755.2, 'yq': 0.0, 'segments': [['CA', 'MX'], ['MX', 'GB']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 67.26]], [['US round trip to GB', {'base': 805.0, 'yq': 60.0, 'segments': [['US', 'GB'], ['GB', 'US']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 211.97], ['Mexico origin multi-stop', {'base': 450.0, 'yq': 25.0, 'segments': [['MX', 'US'], ['US', 'CA'], ['CA', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 182.1], ['GB origin no pct tax', {'base': 300.0, 'yq': 45.0, 'segments': [['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 71.0], ['reorigin at origin', {'base': 600.0, 'yq': 0.0, 'segments': [['US', 'MX'], ['MX', 'US'], ['US', 'CA']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 85.7], ['ends elsewhere', {'base': 1000.0, 'yq': 15.0, 'segments': [['CA', 'US'], ['US', 'GB'], ['GB', 'DE']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 126.6], ['sampled case 1', {'base': 870.75, 'yq': 0.0, 'segments': [['DE', 'MX']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 12.0], ['sampled case 2', {'base': 1981.28, 'yq': 110.0, 'segments': [['FR', 'GB']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 110.0], ['sampled case 3', {'base': 1796.93, 'yq': 60.0, 'segments': [['CA', 'FR']], 'pct_tax': {'US': 7.5, 'MX': 16.0, 'CA': 5.0}, 'dep_tax': {'US': 5.6, 'GB': 26.0, 'MX': 29.5, 'DE': 12.0}}, 149.85]]]
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
US round trip to GB211.68211.68Passed
Mexico origin multi-stop182.1182.1Passed
GB origin no pct tax67.067.0Passed
reorigin at origin85.785.7Passed
ends elsewhere126.6126.6Passed
sampled case 1263.87263.87Passed
sampled case 229.529.5Passed
sampled case 343.643.6Passed

SHA-256 / 490834125cae64f14b3b1c21e05e4f4519ca40d26221a50f1eb9b3eee9f8651d

Verification & scope

A stipulated toy fare-rule contract with invented constants; it is not an ATPCO or carrier tariff implementation and makes no claim of industry-standard conformance. 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:47:44.966936+00:00.

Case digest / f85860c230f56a173893358b98f5850268eddd675bb3e32e1d5373335cee424b