FAILURE MAP
← Case archive

FA-66591 / Airline fare rule evaluation / Open access

Departure tax keyed on the arrival country · case 01

A flight into London is charged the UK departure tax, and the flight out is not.

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

ROOT CAUSE

The flat tax lookup uses the arrival country.

VERIFIED REPAIR

Charge the departure tax of the segment departure country.

Unsuccessful approach: Charging departure tax only at the journey origin skips taxable intermediate departures.

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 = x['base'] * x['pct_tax'].get(origin, 0) / 100
    for dep, arr in segs:
        tax += x['dep_tax'].get(arr, 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.67211.68Failed
Mexico origin multi-stop182.1182.1Passed
GB origin no pct tax53.067.0Failed
reorigin at origin80.185.7Failed
ends elsewhere138.6126.6Failed
sampled case 1263.87263.87Passed
sampled case 235.129.5Failed
sampled case 323.243.6Failed

SHA-256 / 5a2cf7d2a5c40f58b3e024603cd07601765a0edbfd920a622233f97526c897fb

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 = x['base'] * x['pct_tax'].get(origin, 0) / 100
    for dep, arr in segs:
        tax += x['dep_tax'].get(dep, 0) if dep == origin else 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 GB185.68211.68Failed
Mexico origin multi-stop176.5182.1Failed
GB origin no pct tax67.067.0Passed
reorigin at origin56.285.7Failed
ends elsewhere95.0126.6Failed
sampled case 1237.87263.87Failed
sampled case 20.029.5Failed
sampled case 326.043.6Failed

SHA-256 / d1ab2d7e2b938ad2f87cb54269d4137f5e9d6197ecbf9a19f23ce41015fc272a

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

Case digest / bec8189a02abb018721f6307e774831b01861f531b31db44df2aebd86959da93