{"abstract":"Sterling and Canadian-dollar forwards are mispriced by the basis difference.","category":"Currency rounding and FX conversion","checks":6,"contract":"solve(pair, spot, base_pct, quote_pct, days): covered-interest-parity outright F = S*(1 + rq*days/Bq)/(1 + rb*days/Bb) with money-market bases GBP, AUD, CAD 365 and USD, EUR, JPY, CHF 360; rates are given in percent. The pip exponent is 2 for JPY-quoted pairs, else 4. Return [F rounded half-even to pip exponent + 1 decimals, forward points = (F - S)*10**pip_exp rounded half-even to 2 decimals] as strings, both computed from the exact F.","evaluation_group":"w2-currency_rounding_and_fx_conversion-interest-parity-forward","failed_approach":"Using the base currency's basis for both legs still misprices mixed-basis pairs.","family":"w2-currency_rounding_and_fx_conversion-interest-parity-forward-money-market-basis","id":"FA-62321","implementations":{"attempt":{"sha256":"ea5f92bbb0afa8a2f376056a9a22d375168a21546383dc29932e28ab514cba96","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom decimal import Decimal, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_FLOOR, ROUND_CEILING, ROUND_DOWN, ROUND_UP, ROUND_HALF_DOWN\nN = 1\nobservations = []\ndef solve(pair, spot, base_pct, quote_pct, days):\n    basis = {'USD': 360, 'EUR': 360, 'JPY': 360, 'CHF': 360, 'GBP': 365, 'AUD': 365, 'CAD': 365}\n    base, quote = pair[:3], pair[3:]\n    S = Decimal(spot)\n    rb, rq = Decimal(base_pct) / 100, Decimal(quote_pct) / 100\n    F = S * (1 + rq * days / basis[base]) / (1 + rb * days / basis[base])\n    pe = 2 if quote == 'JPY' else 4\n    pts = ((F - S) * Decimal(10) ** pe).quantize(Decimal('0.01'), rounding=ROUND_HALF_EVEN)\n    return [format(F.quantize(Decimal(1).scaleb(-(pe + 1)), rounding=ROUND_HALF_EVEN), 'f'), format(pts, 'f')]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression money-market-basis 1', ('GBPUSD', '1.2650', '5.25', '5.30', 91), ['1.26538', '3.85']),\n  ('regression money-market-basis 2', ('USDCAD', '1.3577', '5.30', '4.75', 182), ['1.35359', '-41.12']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37']),\n  ('control: euro franc', ('EURCHF', '0.9512', '3.75', '1.50', 7), ['0.95078', '-4.16'])],\n [('regression money-market-basis 1', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37']),\n  ('regression money-market-basis 2', ('USDCAD', '128.6366', '0.30', '6.36', 365), ['136.40300', '77663.95']),\n  ('control: dollar cad', ('USDCAD', '1.3577', '5.30', '4.75', 182), ['1.35359', '-41.12']),\n  ('control: euro franc', ('EURCHF', '0.9512', '3.75', '1.50', 7), ['0.95078', '-4.16']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85'])],\n [('regression money-market-basis 1', ('AUDJPY', '54.4548', '0.49', '4.06', 91), ['54.947', '49.17']),\n  ('regression money-market-basis 2', ('GBPUSD', '17.5535', '4.72', '0.07', 182), ['17.15594', '-3975.59']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85']),\n  ('control: sterling dollar', ('GBPUSD', '1.2650', '5.25', '5.30', 91), ['1.26538', '3.85']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37'])],\n [('regression money-market-basis 1', ('AUDJPY', '5.9212', '0.74', '1.63', 182), ['5.948', '2.68']),\n  ('regression money-market-basis 2', ('GBPJPY', '137.7426', '3.56', '5.48', 1), ['137.750', '0.75']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37']),\n  ('control: dollar cad', ('USDCAD', '1.3577', '5.30', '4.75', 182), ['1.35359', '-41.12']),\n  ('control: euro franc', ('EURCHF', '0.9512', '3.75', '1.50', 7), ['0.95078', '-4.16']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64'])],\n [('regression money-market-basis 1', ('GBPJPY', '5.4304', '2.54', '5.76', 365), ['5.605', '17.48']),\n  ('regression money-market-basis 2', ('USDCAD', '90.4307', '5.79', '0.97', 365), ['86.24494', '-41857.60']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85']),\n  ('control: sterling dollar', ('GBPUSD', '1.2650', '5.25', '5.30', 91), ['1.26538', '3.85']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37'])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"f68ad7f5b98f93a56b0d9027aed4a183838626129e57366adcd45546a80b0a28","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom decimal import Decimal, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_FLOOR, ROUND_CEILING, ROUND_DOWN, ROUND_UP, ROUND_HALF_DOWN\nN = 1\nobservations = []\ndef solve(pair, spot, base_pct, quote_pct, days):\n    basis = {'USD': 360, 'EUR': 360, 'JPY': 360, 'CHF': 360, 'GBP': 365, 'AUD': 365, 'CAD': 365}\n    base, quote = pair[:3], pair[3:]\n    S = Decimal(spot)\n    rb, rq = Decimal(base_pct) / 100, Decimal(quote_pct) / 100\n    F = S * (1 + rq * days / 360) / (1 + rb * days / 360)\n    pe = 2 if quote == 'JPY' else 4\n    pts = ((F - S) * Decimal(10) ** pe).quantize(Decimal('0.01'), rounding=ROUND_HALF_EVEN)\n    return [format(F.quantize(Decimal(1).scaleb(-(pe + 1)), rounding=ROUND_HALF_EVEN), 'f'), format(pts, 'f')]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression money-market-basis 1', ('GBPUSD', '1.2650', '5.25', '5.30', 91), ['1.26538', '3.85']),\n  ('regression money-market-basis 2', ('USDCAD', '1.3577', '5.30', '4.75', 182), ['1.35359', '-41.12']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37']),\n  ('control: euro franc', ('EURCHF', '0.9512', '3.75', '1.50', 7), ['0.95078', '-4.16'])],\n [('regression money-market-basis 1', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37']),\n  ('regression money-market-basis 2', ('USDCAD', '128.6366', '0.30', '6.36', 365), ['136.40300', '77663.95']),\n  ('control: dollar cad', ('USDCAD', '1.3577', '5.30', '4.75', 182), ['1.35359', '-41.12']),\n  ('control: euro franc', ('EURCHF', '0.9512', '3.75', '1.50', 7), ['0.95078', '-4.16']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85'])],\n [('regression money-market-basis 1', ('AUDJPY', '54.4548', '0.49', '4.06', 91), ['54.947', '49.17']),\n  ('regression money-market-basis 2', ('GBPUSD', '17.5535', '4.72', '0.07', 182), ['17.15594', '-3975.59']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85']),\n  ('control: sterling dollar', ('GBPUSD', '1.2650', '5.25', '5.30', 91), ['1.26538', '3.85']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37'])],\n [('regression money-market-basis 1', ('AUDJPY', '5.9212', '0.74', '1.63', 182), ['5.948', '2.68']),\n  ('regression money-market-basis 2', ('GBPJPY', '137.7426', '3.56', '5.48', 1), ['137.750', '0.75']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37']),\n  ('control: dollar cad', ('USDCAD', '1.3577', '5.30', '4.75', 182), ['1.35359', '-41.12']),\n  ('control: euro franc', ('EURCHF', '0.9512', '3.75', '1.50', 7), ['0.95078', '-4.16']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64'])],\n [('regression money-market-basis 1', ('GBPJPY', '5.4304', '2.54', '5.76', 365), ['5.605', '17.48']),\n  ('regression money-market-basis 2', ('USDCAD', '90.4307', '5.79', '0.97', 365), ['86.24494', '-41857.60']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85']),\n  ('control: sterling dollar', ('GBPUSD', '1.2650', '5.25', '5.30', 91), ['1.26538', '3.85']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37'])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"0f70fc98fccbcce3df19a27e5be21c66a85eca33c3942fad457c7dbad1b165b7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom decimal import Decimal, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_FLOOR, ROUND_CEILING, ROUND_DOWN, ROUND_UP, ROUND_HALF_DOWN\nN = 1\nobservations = []\ndef solve(pair, spot, base_pct, quote_pct, days):\n    basis = {'USD': 360, 'EUR': 360, 'JPY': 360, 'CHF': 360, 'GBP': 365, 'AUD': 365, 'CAD': 365}\n    base, quote = pair[:3], pair[3:]\n    S = Decimal(spot)\n    rb, rq = Decimal(base_pct) / 100, Decimal(quote_pct) / 100\n    F = S * (1 + rq * days / basis[quote]) / (1 + rb * days / basis[base])\n    pe = 2 if quote == 'JPY' else 4\n    pts = ((F - S) * Decimal(10) ** pe).quantize(Decimal('0.01'), rounding=ROUND_HALF_EVEN)\n    return [format(F.quantize(Decimal(1).scaleb(-(pe + 1)), rounding=ROUND_HALF_EVEN), 'f'), format(pts, 'f')]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression money-market-basis 1', ('GBPUSD', '1.2650', '5.25', '5.30', 91), ['1.26538', '3.85']),\n  ('regression money-market-basis 2', ('USDCAD', '1.3577', '5.30', '4.75', 182), ['1.35359', '-41.12']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37']),\n  ('control: euro franc', ('EURCHF', '0.9512', '3.75', '1.50', 7), ['0.95078', '-4.16'])],\n [('regression money-market-basis 1', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37']),\n  ('regression money-market-basis 2', ('USDCAD', '128.6366', '0.30', '6.36', 365), ['136.40300', '77663.95']),\n  ('control: dollar cad', ('USDCAD', '1.3577', '5.30', '4.75', 182), ['1.35359', '-41.12']),\n  ('control: euro franc', ('EURCHF', '0.9512', '3.75', '1.50', 7), ['0.95078', '-4.16']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85'])],\n [('regression money-market-basis 1', ('AUDJPY', '54.4548', '0.49', '4.06', 91), ['54.947', '49.17']),\n  ('regression money-market-basis 2', ('GBPUSD', '17.5535', '4.72', '0.07', 182), ['17.15594', '-3975.59']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85']),\n  ('control: sterling dollar', ('GBPUSD', '1.2650', '5.25', '5.30', 91), ['1.26538', '3.85']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37'])],\n [('regression money-market-basis 1', ('AUDJPY', '5.9212', '0.74', '1.63', 182), ['5.948', '2.68']),\n  ('regression money-market-basis 2', ('GBPJPY', '137.7426', '3.56', '5.48', 1), ['137.750', '0.75']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37']),\n  ('control: dollar cad', ('USDCAD', '1.3577', '5.30', '4.75', 182), ['1.35359', '-41.12']),\n  ('control: euro franc', ('EURCHF', '0.9512', '3.75', '1.50', 7), ['0.95078', '-4.16']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64'])],\n [('regression money-market-basis 1', ('GBPJPY', '5.4304', '2.54', '5.76', 365), ['5.605', '17.48']),\n  ('regression money-market-basis 2', ('USDCAD', '90.4307', '5.79', '0.97', 365), ['86.24494', '-41857.60']),\n  ('control: euro dollar year', ('EURUSD', '1.0800', '3.60', '5.40', 360), ['1.09876', '187.64']),\n  ('control: dollar yen half year', ('USDJPY', '150.00', '5.00', '0.00', 180), ['146.341', '-365.85']),\n  ('control: sterling dollar', ('GBPUSD', '1.2650', '5.25', '5.30', 91), ['1.26538', '3.85']),\n  ('control: aussie yen', ('AUDJPY', '98.765', '4.35', '0.10', 30), ['98.421', '-34.37'])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic, bounded teaching model with a stipulated toy contract; it makes no claim of conformance to any real regulation, standard, or institution's rules. 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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-currency_rounding_and_fx_conversion-interest-parity-forward-money-market-basis","generated_at":"2026-09-29T14:47:03.491395+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Currency amounts must be rounded at the right stage and in the right unit, or ledgers, quotes and settlements drift by minor units.","repair":"Use each currency's own money-market day basis.","root_cause":"A single 360-day denominator is used for both legs.","sha256":"0c0e027d1fe219a51f3b7645b3fb2905d7ce8be00adf147259ea74ddafd76b2c","title":"Every currency's deposit rate is scaled on a 360-day basis · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.445,"exit_code":1,"observations":[{"actual":["1.26516","1.56"],"check":"regression money-market-basis 1","expected":["1.26538","3.85"],"passed":false},{"actual":["1.35402","-36.77"],"check":"regression money-market-basis 2","expected":["1.35359","-41.12"],"passed":false},{"actual":["1.09876","187.64"],"check":"control: euro dollar year","expected":["1.09876","187.64"],"passed":true},{"actual":["146.341","-365.85"],"check":"control: dollar yen half year","expected":["146.341","-365.85"],"passed":true},{"actual":["98.421","-34.38"],"check":"control: aussie yen","expected":["98.421","-34.37"],"passed":false},{"actual":["0.95078","-4.16"],"check":"control: euro franc","expected":["0.95078","-4.16"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression money-market-basis 1\", \"actual\": [\"1.26516\", \"1.56\"], \"expected\": [\"1.26538\", \"3.85\"], \"passed\": false}, {\"check\": \"regression money-market-basis 2\", \"actual\": [\"1.35402\", \"-36.77\"], \"expected\": [\"1.35359\", \"-41.12\"], \"passed\": false}, {\"check\": \"control: euro dollar year\", \"actual\": [\"1.09876\", \"187.64\"], \"expected\": [\"1.09876\", \"187.64\"], \"passed\": true}, {\"check\": \"control: dollar yen half year\", \"actual\": [\"146.341\", \"-365.85\"], \"expected\": [\"146.341\", \"-365.85\"], \"passed\": true}, {\"check\": \"control: aussie yen\", \"actual\": [\"98.421\", \"-34.38\"], \"expected\": [\"98.421\", \"-34.37\"], \"passed\": false}, {\"check\": \"control: euro franc\", \"actual\": [\"0.95078\", \"-4.16\"], \"expected\": [\"0.95078\", \"-4.16\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.453,"exit_code":1,"observations":[{"actual":["1.26516","1.58"],"check":"regression money-market-basis 1","expected":["1.26538","3.85"],"passed":false},{"actual":["1.35402","-36.77"],"check":"regression money-market-basis 2","expected":["1.35359","-41.12"],"passed":false},{"actual":["1.09876","187.64"],"check":"control: euro dollar year","expected":["1.09876","187.64"],"passed":true},{"actual":["146.341","-365.85"],"check":"control: dollar yen half year","expected":["146.341","-365.85"],"passed":true},{"actual":["98.416","-34.85"],"check":"control: aussie yen","expected":["98.421","-34.37"],"passed":false},{"actual":["0.95078","-4.16"],"check":"control: euro franc","expected":["0.95078","-4.16"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression money-market-basis 1\", \"actual\": [\"1.26516\", \"1.58\"], \"expected\": [\"1.26538\", \"3.85\"], \"passed\": false}, {\"check\": \"regression money-market-basis 2\", \"actual\": [\"1.35402\", \"-36.77\"], \"expected\": [\"1.35359\", \"-41.12\"], \"passed\": false}, {\"check\": \"control: euro dollar year\", \"actual\": [\"1.09876\", \"187.64\"], \"expected\": [\"1.09876\", \"187.64\"], \"passed\": true}, {\"check\": \"control: dollar yen half year\", \"actual\": [\"146.341\", \"-365.85\"], \"expected\": [\"146.341\", \"-365.85\"], \"passed\": true}, {\"check\": \"control: aussie yen\", \"actual\": [\"98.416\", \"-34.85\"], \"expected\": [\"98.421\", \"-34.37\"], \"passed\": false}, {\"check\": \"control: euro franc\", \"actual\": [\"0.95078\", \"-4.16\"], \"expected\": [\"0.95078\", \"-4.16\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.338,"exit_code":0,"observations":[{"actual":["1.26538","3.85"],"check":"regression money-market-basis 1","expected":["1.26538","3.85"],"passed":true},{"actual":["1.35359","-41.12"],"check":"regression money-market-basis 2","expected":["1.35359","-41.12"],"passed":true},{"actual":["1.09876","187.64"],"check":"control: euro dollar year","expected":["1.09876","187.64"],"passed":true},{"actual":["146.341","-365.85"],"check":"control: dollar yen half year","expected":["146.341","-365.85"],"passed":true},{"actual":["98.421","-34.37"],"check":"control: aussie yen","expected":["98.421","-34.37"],"passed":true},{"actual":["0.95078","-4.16"],"check":"control: euro franc","expected":["0.95078","-4.16"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression money-market-basis 1\", \"actual\": [\"1.26538\", \"3.85\"], \"expected\": [\"1.26538\", \"3.85\"], \"passed\": true}, {\"check\": \"regression money-market-basis 2\", \"actual\": [\"1.35359\", \"-41.12\"], \"expected\": [\"1.35359\", \"-41.12\"], \"passed\": true}, {\"check\": \"control: euro dollar year\", \"actual\": [\"1.09876\", \"187.64\"], \"expected\": [\"1.09876\", \"187.64\"], \"passed\": true}, {\"check\": \"control: dollar yen half year\", \"actual\": [\"146.341\", \"-365.85\"], \"expected\": [\"146.341\", \"-365.85\"], \"passed\": true}, {\"check\": \"control: aussie yen\", \"actual\": [\"98.421\", \"-34.37\"], \"expected\": [\"98.421\", \"-34.37\"], \"passed\": true}, {\"check\": \"control: euro franc\", \"actual\": [\"0.95078\", \"-4.16\"], \"expected\": [\"0.95078\", \"-4.16\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}