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.

Quellinformationen

Repository
zjunlp/DataMind
Letzte Quellaktivität
5. Juli 2026 um 09:13
Erkannte Sprache von SKILL.md
Englisch
Sterne
149
Forks
13

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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.
Auf GitHub ansehen