{
  "experiment_id": "banking-routing-v1",
  "frozen_at": "2026-10-31T22:07:12.414702+00:00",
  "source": {
    "repository": "PolyAI-LDN/task-specific-datasets",
    "revision": "9d081458ff52e53cf7e848f414e6e9344e4e6696",
    "license": "CC-BY-4.0",
    "train_sha256": "b06e26ac675513959a63135f11b94ea7786ed02da65db93a5650d8838cbc664b",
    "test_sha256": "d12d6e3bc4c3103966ae786dc435913c0c563dfa328f5a3646d0e62cfeeb474d"
  },
  "seed": 20261101,
  "labels": {
    "card_arrival": "The physical bank card has not arrived or the user asks when it will be delivered.",
    "card_not_working": "The physical bank card does not work or is damaged.",
    "card_payment_fee_charged": "The user asks about a fee charged for paying with a bank card.",
    "cash_withdrawal_charge": "The user asks about a fee for withdrawing cash from an ATM.",
    "lost_or_stolen_card": "The physical bank card has been lost or stolen.",
    "pending_transfer": "A bank transfer is still pending or has not completed."
  },
  "instructions": "Which of the six banking support intents best matches this customer message? Select exactly one listed intent.",
  "development_per_class": 20,
  "test": "all official test rows in the six preselected classes; normalized text deduplication; train/test overlap excluded from training and development",
  "split": "Within each selected class, sort official training rows by SHA256(seed|normalized_text); first 20 development, remainder baseline training. Model sees no labels for development/test inputs.",
  "baseline": {
    "method": "word TF-IDF + LogisticRegression",
    "ngram_range": [
      1,
      2
    ],
    "max_features": 10000,
    "C": 1.0,
    "max_iter": 1000,
    "random_state": 20261101,
    "n_jobs": 1
  },
  "jevstyle": {
    "package": "jev-style==0.6.2",
    "release": "0.8b-v3",
    "backend": "mlx",
    "precision": "8bit",
    "repository": "chaoliangUNSW/Jev-Style-0.8B-Decision-v3-MLX",
    "revision": "7f14c9fa1491d168a7f70b16acf68baf9d4f7353",
    "fine_tuning": false
  },
  "threshold": {
    "grid": [
      0.0,
      0.01,
      0.02,
      0.03,
      0.04,
      0.05,
      0.06,
      0.07,
      0.08,
      0.09,
      0.1,
      0.11,
      0.12,
      0.13,
      0.14,
      0.15,
      0.16,
      0.17,
      0.18,
      0.19,
      0.2,
      0.21,
      0.22,
      0.23,
      0.24,
      0.25,
      0.26,
      0.27,
      0.28,
      0.29,
      0.3,
      0.31,
      0.32,
      0.33,
      0.34,
      0.35,
      0.36,
      0.37,
      0.38,
      0.39,
      0.4,
      0.41,
      0.42,
      0.43,
      0.44,
      0.45,
      0.46,
      0.47,
      0.48,
      0.49,
      0.5,
      0.51,
      0.52,
      0.53,
      0.54,
      0.55,
      0.56,
      0.57,
      0.58,
      0.59,
      0.6,
      0.61,
      0.62,
      0.63,
      0.64,
      0.65,
      0.66,
      0.67,
      0.68,
      0.69,
      0.7,
      0.71,
      0.72,
      0.73,
      0.74,
      0.75,
      0.76,
      0.77,
      0.78,
      0.79,
      0.8,
      0.81,
      0.82,
      0.83,
      0.84,
      0.85,
      0.86,
      0.87,
      0.88,
      0.89,
      0.9,
      0.91,
      0.92,
      0.93,
      0.94,
      0.95,
      0.96,
      0.97,
      0.98,
      0.99,
      1.0
    ],
    "rule": "Choose maximum development accepted count with observed accepted error <= 5% and at least 20 accepted rows; tie choose lowest threshold. If none qualifies, accept none. Freeze threshold before test summary.",
    "min_development_accepted": 20,
    "max_development_error": 0.05
  },
  "timing": "Single-process in-process warm calls on the same host; 3 development warmups excluded; one timed prediction per development/test row; model load and baseline fit separately measured. No HTTP, cloud LLM, human review latency or energy/cost measured.",
  "limitations": [
    "Project-run closed-set six-intent experiment, not the full BANKING77 task or an independent benchmark.",
    "Baseline uses labeled training data; JevStyle uses instructions and descriptions without task fine-tuning. Supervision differs.",
    "Public data may have appeared in model pretraining; absence of contamination is not established.",
    "No out-of-scope, multilingual, production traffic, image or downstream action evaluation.",
    "Development error target is empirical; it does not guarantee the held-out error rate.",
    "No test-driven prompt, class, hyperparameter or threshold tuning. All unfavorable outcomes retained."
  ],
  "preflight_note": "Before any dataset predictions, corrected the upstream category identifier pending_bank_transfer to pending_transfer; the intended pending-bank-transfer scenario is unchanged."
}
