term_deposit_subscribedOpenML #1461 ↗Bank Marketing
Benchmark dataset of 45,211 direct telemarketing contacts from a Portuguese retail bank to predict long-term deposit subscriptions.
Business Objective: Bank Marketing
01Business Context
Retail banks conduct outbound telemarketing campaigns to drive deposit acquisition and expand balance sheet liquidity. Inbound lead generation and manual outbound dialing are resource-intensive, requiring financial institutions to prioritize prospective customers based on demographic, financial, and previous campaign engagement profiles.
02Analytical Objective
Predict customer propensity to subscribe to a fixed-term deposit ('yes' vs. 'no') prior to initiating outbound contact.
03Economic & Decision Impact
Optimizing contact propensity significantly reduces sales center operating costs, increases marketing conversion rates, and minimizes customer outreach fatigue. False positives lead to wasted outbound agent talk-time and call center overhead, while false negatives represent lost deposit acquisition and customer lifetime value.
Target & Feature Column Definitions
Exhaustive business definitions, measurement units, roles, and target variables across all 17 columns.
| Col | Variable / Feature Name | Role | Type | Unit / Scale | Description & Business Meaning |
|---|---|---|---|---|---|
| A | term_deposit_subscribedTerm Deposit Subscribed | TARGET | NUM | — | Target outcome indicating whether the client subscribed to a term deposit (encoded as 1 for 'no' and 2 for 'yes'). |
| B | client_age_yearsClient Age | Feature | NUM | years | Age of the bank client in years. |
| C | client_job_typeJob Type | Feature | CAT | — | Profession or employment category of the client (e.g., admin., management, technician, blue-collar, retired, entrepreneur, student). |
| D | marital_statusMarital Status | Feature | CAT | — | Marital status of the client ('married', 'single', 'divorced' including widowed). |
| E | education_levelEducation Level | Feature | CAT | — | Highest completed educational attainment of the client ('primary', 'secondary', 'tertiary', 'unknown'). |
| F | has_credit_defaultCredit in Default | Feature | CAT | — | Indicates whether the client has existing credit default history ('yes', 'no'). |
| G | average_yearly_balance_eurAverage Yearly Balance | Feature | NUM | EUR | Average yearly account balance of the customer in euros. |
| H | has_housing_loanHousing Loan Status | Feature | CAT | — | Indicates whether the client holds an active residential mortgage/housing loan ('yes', 'no'). |
| I | has_personal_loanPersonal Loan Status | Feature | CAT | — | Indicates whether the client holds an active personal consumer loan ('yes', 'no'). |
| J | contact_communication_typeContact Method | Feature | CAT | — | Communication channel used for the last marketing contact ('cellular', 'telephone', 'unknown'). |
| K | last_contact_day_of_monthLast Contact Day | Feature | NUM | days | Day of the month when the client was last contacted. |
| L | last_contact_monthLast Contact Month | Feature | CAT | — | Calendar month of the last contact ('jan' through 'dec'). |
| M | last_contact_duration_secCall Duration | LEAKAGE | NUM | seconds | Duration of the last phone interaction in seconds. Note: Highly correlated with final outcome, typically known only after a call completes. TARGET LEAKAGE RISK(post event) Call duration is only measured and recorded after the phone interaction concludes, at which point the client's decision to subscribe is already known. Because this feature cannot be known prior to placing the call when selecting prospects, including it introduces classic post-event target leakage. • Excluded during model training & zero-shot inference to avoid artificially inflated metric scores. |
| M | campaign_contacts_countCurrent Campaign Contacts | Feature | NUM | contacts | Total number of contacts performed during this specific marketing campaign for this client. |
| N | days_since_previous_campaignDays Since Last Campaign | Feature | NUM | days | Number of days elapsed after the client was last contacted from a previous marketing campaign (-1 indicates no previous contact). |
| O | previous_contacts_countPrevious Campaign Contacts | Feature | NUM | contacts | Number of contacts performed before this campaign for this client across historical initiatives. |
| P | previous_campaign_outcomePrevious Campaign Outcome | Feature | CAT | — | Result of the previous marketing campaign for this client ('success', 'failure', 'other', 'unknown'). |
Interactive Data Table
Explore rows, feature values, and target labels for Bank Marketing.
TabICLv2 WebGPU Benchmark Results
Complete performance metrics on persisted IID or non-IID evaluation splits, executed 100% locally in the browser sandbox.
| Evaluation Split | Train Rows | Test Rows | Split Duration?Wall-clock inference time taken for this evaluation split running 100% locally via WebGPU.Learn more → | Accuracy?Proportion of correct test predictions across all classes.Google ML Guide & Details → | ROC-AUC?Area under the ROC curve evaluating ranking capability across all thresholds.Google ML Guide & Details → | F1 Score?Harmonic mean of Precision and Recall, robust against class imbalance.Learn more → | Precision?Proportion of predicted positives that were actually positive.Google ML Guide & Details → | Recall?Proportion of actual positive cases successfully captured.Google ML Guide & Details → |
|---|---|---|---|---|---|---|---|---|
| R1 / F1 | 30,140 | 15,071 | 228.99s | 89.59% | 0.8025 | 0.3609 | 0.6402 | 0.2513 |
| R1 / F2 | 30,141 | 15,070 | 238.62s | 89.47% | 0.7934 | 0.3675 | 0.6180 | 0.2615 |
| R1 / F3 | 30,141 | 15,070 | 238.72s | 89.08% | 0.7959 | 0.3541 | 0.5753 | 0.2558 |
| R2 / F1 | 30,140 | 15,071 | 228.74s | 89.71% | 0.8066 | 0.3572 | 0.6631 | 0.2445 |
| R2 / F2 | 30,141 | 15,070 | 238.61s | 89.38% | 0.8075 | 0.3735 | 0.6030 | 0.2706 |
| R2 / F3 | 30,141 | 15,070 | 238.69s | 89.59% | 0.7964 | 0.4041 | 0.6115 | 0.3018 |
| R3 / F1 | 30,140 | 15,071 | 228.77s | 88.95% | 0.7337 | 0.3327 | 0.5669 | 0.2354 |
| R3 / F2 | 30,141 | 15,070 | 238.66s | 89.50% | 0.8066 | 0.3645 | 0.6236 | 0.2575 |
| R3 / F3 | 30,141 | 15,070 | 238.63s | 89.74% | 0.8039 | 0.3622 | 0.6641 | 0.2490 |
| Mean ± Std | — | — | 235.38s | 89.45% ± 0.25% | 0.794 ± 0.022 | 0.364 ± 0.018 | 0.618 | 0.259 |
Foundation Models vs Traditional ML Baselines
Side-by-side evaluation of our in-browser Carla engine (WebGPU), open-source tabular foundation models, and OpenML baselines.
| Rank | Algorithm / Model | Model Family | Runtime | Predictive Accuracy?Proportion of correct test predictions across cross-validation splits.Google ML Guide & Details → | ROC-AUC?Area under the ROC curve evaluating ranking capability.Learn more → | F-Measure?Harmonic mean of precision and recall.Learn more → | Reference / Repo |
|---|---|---|---|---|---|---|---|
| #1 | FilteredClassifier MultiSearch LogitBoost REPTree | Logistic / Linear Model | Python | 90.96% | 0.9358 | 0.9018 | OpenML #1840655 ↗ |
| #2 | J48 | Decision Tree | Python | 90.60% | 0.8959 | 0.9015 | OpenML #1681435 ↗ |
| #3 | FilteredClassifier MultiSearch J48 | Decision Tree | Python | 90.59% | 0.8838 | 0.9004 | OpenML #593717 ↗ |
| #4 | ClassificationViaRegression M5P | Decision Tree | Python | 90.56% | 0.9179 | 0.8989 | OpenML #1742063 ↗ |
| #5 | FilteredClassifier MultiSearch RandomForest | Random Forest | Python | 90.50% | 0.9301 | 0.8954 | OpenML #1830744 ↗ |
| #6 | RandomForest | Random Forest | Python | 90.50% | 0.9278 | 0.8968 | OpenML #568816 ↗ |
| #7 | Bagging RandomForest | Random Forest | Python | 90.50% | 0.9316 | 0.8950 | OpenML #1673003 ↗ |
| #8 | SimpleCart | Machine Learning Model | Python | 90.50% | 0.8632 | 0.8989 | OpenML #1666051 ↗ |
| #9 | Bagging REPTree | Decision Tree | Python | 90.48% | 0.9263 | 0.8989 | OpenML #1666321 ↗ |
| #10 | END ND J48 | Decision Tree | Python | 90.46% | 0.8485 | 0.8994 | OpenML #1815794 ↗ |
| #11 | Google TabFM v1.0 | Tabular Foundation Model | PyTorch/Python | 89.63% | 0.8160 | 0.3763 | google-research/tabfm ↗ |
| #12 | TabPFN v3 | Tabular Foundation Model | PyTorch/Python | 89.61% | 0.8117 | 0.3554 | PriorLabs/tabpfn ↗ |
| #13 | EXAONE Tabular | Tabular Foundation Model | PyTorch/Python | 89.60% | 0.8124 | 0.3590 | LGAI-Research/EXAONE-Tabular ↗ |
| #14 | nanotabicl Vanilla | Tabular Foundation Model | PyTorch/Python | 89.55% | 0.8054 | 0.3566 | soda-inria/nanotabicl ↗ |
| #15 | Full TabICLv2 (PyTorch Reference) | Tabular Foundation Model | PyTorch/Python | 89.53% | 0.8030 | 0.3676 | soda-inria/tabicl ↗ |
| #16 | Streaming nanotabicl | Tabular Foundation Model | PyTorch/Python | 89.47% | 0.8016 | 0.3333 | soda-inria/nanotabicl ↗ |
| #17 | Carla Engine (TabICLv2 WebGPU) | Tabular Foundation Model | Browser | 89.45% | 0.7940 | 0.3641 | 100% In-Browser |
Variable Schema & Summary Distributions
Observed numerical ranges, category cardinalities, missing rates, and sample values across 45,211 rows.
| Col | Variable Name | Type | Missing | Distinct | Summary Stats / Distribution | Sample Values |
|---|---|---|---|---|---|---|
| A | term_deposit_subscribedTARGET | NUM | 0 | 2 | [1, 2] μ=1.1 σ=0.3 | 111 |
| B | client_age_years | NUM | 0 | 77 | [18, 95] μ=40.9 σ=10.6 | 584433 |
| C | client_job_type | CAT | 0 | 12 | 10 cats: blue-collar, management, technician +7 more | managementtechnicianentrepreneur |
| D | marital_status | CAT | 0 | 3 | 3 cats: married, single, divorced | marriedsinglemarried |
| E | education_level | CAT | 0 | 4 | 4 cats: secondary, tertiary, primary +1 more | tertiarysecondarysecondary |
| F | has_credit_default | CAT | 0 | 2 | 2 cats: no, yes | nonono |
| G | average_yearly_balance_eur | NUM | 0 | 7,168 | [-8019, 102127] μ=1362.3 σ=3044.7 | 2143292 |
| H | has_housing_loan | CAT | 0 | 2 | 2 cats: yes, no | yesyesyes |
| I | has_personal_loan | CAT | 0 | 2 | 2 cats: no, yes | nonoyes |
| J | contact_communication_type | CAT | 0 | 3 | 3 cats: cellular, unknown, telephone | unknownunknownunknown |
| K | last_contact_day_of_month | NUM | 0 | 31 | [1, 31] μ=15.8 σ=8.3 | 555 |
| L | last_contact_month | CAT | 0 | 12 | 10 cats: may, jul, aug +7 more | maymaymay |
| M | last_contact_duration_secLEAKAGE | NUM | 0 | 1,573 | [0, 4918] μ=258.2 σ=257.5 | 26115176 |
| M | campaign_contacts_count | NUM | 0 | 48 | [1, 63] μ=2.8 σ=3.1 | 111 |
| N | days_since_previous_campaign | NUM | 0 | 559 | [-1, 871] μ=40.2 σ=100.1 | -1-1-1 |
| O | previous_contacts_count | NUM | 0 | 41 | [0, 275] μ=0.6 σ=2.3 | 000 |
| P | previous_campaign_outcome | CAT | 0 | 4 | 4 cats: unknown, failure, other +1 more | unknownunknownunknown |
Test TabICLv2 on Bank Marketing Yourself
Open the pre-loaded Google Sheet and let Carla configure the target and task for local, zero-cloud tabular machine learning.
Launch Carla
Click once to open the spreadsheet and Carla side panel together.
Review the Setup
Carla selects the dataset target and task from this page automatically.
Evaluate & Predict
Run predictions and compute metrics with zero server uploads.
Provenance & Attribution
OpenML Dataset 1461