Skip to main content
CARLA HQ
Finance & Banking Finance & Banking use casesBinary ClassificationTarget: 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.

✨ Try in CarlaInstall Chrome Extension ↗100% In-Browser WebGPU • Zero Cloud Upload
45,211Records (Rows)
15Predictive Features
8 / 9Numeric / Categorical
0.0%Missing Value Ratio
0.19701 - AUC Error
235.38sWebGPU Mean Split
BUSINESS CONTEXT & OBJECTIVE

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.

Source Origin:UCI Machine Learning Repository / OpenML (Dataset 1461)
Creator:Sérgio Moro, Raul Laureano, and Paulo Cortez (2011)
License:Creative Commons Attribution 4.0 International (CC BY 4.0)
FEATURE SPECIFICATION & DATA DICTIONARY

Target & Feature Column Definitions

Exhaustive business definitions, measurement units, roles, and target variables across all 17 columns.

ColVariable / Feature NameRoleTypeUnit / ScaleDescription & Business Meaning
Aterm_deposit_subscribedTerm Deposit SubscribedTARGETNUM
Target outcome indicating whether the client subscribed to a term deposit (encoded as 1 for 'no' and 2 for 'yes').
Bclient_age_yearsClient AgeFeatureNUMyears
Age of the bank client in years.
Cclient_job_typeJob TypeFeatureCAT
Profession or employment category of the client (e.g., admin., management, technician, blue-collar, retired, entrepreneur, student).
Dmarital_statusMarital StatusFeatureCAT
Marital status of the client ('married', 'single', 'divorced' including widowed).
Eeducation_levelEducation LevelFeatureCAT
Highest completed educational attainment of the client ('primary', 'secondary', 'tertiary', 'unknown').
Fhas_credit_defaultCredit in DefaultFeatureCAT
Indicates whether the client has existing credit default history ('yes', 'no').
Gaverage_yearly_balance_eurAverage Yearly BalanceFeatureNUMEUR
Average yearly account balance of the customer in euros.
Hhas_housing_loanHousing Loan StatusFeatureCAT
Indicates whether the client holds an active residential mortgage/housing loan ('yes', 'no').
Ihas_personal_loanPersonal Loan StatusFeatureCAT
Indicates whether the client holds an active personal consumer loan ('yes', 'no').
Jcontact_communication_typeContact MethodFeatureCAT
Communication channel used for the last marketing contact ('cellular', 'telephone', 'unknown').
Klast_contact_day_of_monthLast Contact DayFeatureNUMdays
Day of the month when the client was last contacted.
Llast_contact_monthLast Contact MonthFeatureCAT
Calendar month of the last contact ('jan' through 'dec').
Mlast_contact_duration_secCall DurationLEAKAGENUMseconds
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.
Mcampaign_contacts_countCurrent Campaign ContactsFeatureNUMcontacts
Total number of contacts performed during this specific marketing campaign for this client.
Ndays_since_previous_campaignDays Since Last CampaignFeatureNUMdays
Number of days elapsed after the client was last contacted from a previous marketing campaign (-1 indicates no previous contact).
Oprevious_contacts_countPrevious Campaign ContactsFeatureNUMcontacts
Number of contacts performed before this campaign for this client across historical initiatives.
Pprevious_campaign_outcomePrevious Campaign OutcomeFeatureCAT
Result of the previous marketing campaign for this client ('success', 'failure', 'other', 'unknown').
DATASET PREVIEW

Interactive Data Table

Explore rows, feature values, and target labels for Bank Marketing.

Loading dataset...
LOCAL EXECUTION TELEMETRY

TabICLv2 WebGPU Benchmark Results

Complete performance metrics on persisted IID or non-IID evaluation splits, executed 100% locally in the browser sandbox.

Mean Split Latency?Mean wall-clock execution time per persisted evaluation split running 100% locally via WebGPU inside Chrome.Explore Latency Guide →
235.38s9 splits • 8 ensembles/split
Total Evaluation Runtime?Total wall-clock duration across all selected splits, including in-context encoding, WebGPU shader execution, and result aggregation.Explore Split Protocol →
2118.43sIncludes warmup & sync
Evaluation Protocol?Precomputed row indices ensure the browser and Python runners evaluate identical out-of-sample observations without leakage.Explore Split Protocol →
3×3 SplitsRepeated IID • 9 total
TabICLv2 Score?Primary task performance score (1 - AUC Error) achieved by TabICLv2 across out-of-sample evaluation splits.Explore Metric Formula →
0.19701 - AUC Error
Evaluation SplitTrain RowsTest 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 / F130,14015,071228.99s89.59%0.80250.36090.64020.2513
R1 / F230,14115,070238.62s89.47%0.79340.36750.61800.2615
R1 / F330,14115,070238.72s89.08%0.79590.35410.57530.2558
R2 / F130,14015,071228.74s89.71%0.80660.35720.66310.2445
R2 / F230,14115,070238.61s89.38%0.80750.37350.60300.2706
R2 / F330,14115,070238.69s89.59%0.79640.40410.61150.3018
R3 / F130,14015,071228.77s88.95%0.73370.33270.56690.2354
R3 / F230,14115,070238.66s89.50%0.80660.36450.62360.2575
R3 / F330,14115,070238.63s89.74%0.80390.36220.66410.2490
Mean ± Std235.38s89.45% ± 0.25%0.794 ± 0.0220.364 ± 0.0180.6180.259
UNIFIED BENCHMARK LEADERBOARD

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.

RankAlgorithm / ModelModel FamilyRuntime
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
#1FilteredClassifier MultiSearch LogitBoost REPTreeLogistic / Linear ModelPython90.96%0.93580.9018OpenML #1840655 ↗
#2J48Decision TreePython90.60%0.89590.9015OpenML #1681435 ↗
#3FilteredClassifier MultiSearch J48Decision TreePython90.59%0.88380.9004OpenML #593717 ↗
#4ClassificationViaRegression M5PDecision TreePython90.56%0.91790.8989OpenML #1742063 ↗
#5FilteredClassifier MultiSearch RandomForestRandom ForestPython90.50%0.93010.8954OpenML #1830744 ↗
#6RandomForestRandom ForestPython90.50%0.92780.8968OpenML #568816 ↗
#7Bagging RandomForestRandom ForestPython90.50%0.93160.8950OpenML #1673003 ↗
#8SimpleCartMachine Learning ModelPython90.50%0.86320.8989OpenML #1666051 ↗
#9Bagging REPTreeDecision TreePython90.48%0.92630.8989OpenML #1666321 ↗
#10END ND J48Decision TreePython90.46%0.84850.8994OpenML #1815794 ↗
#11Google TabFM v1.0Tabular Foundation ModelPyTorch/Python89.63%0.81600.3763google-research/tabfm ↗
#12TabPFN v3Tabular Foundation ModelPyTorch/Python89.61%0.81170.3554PriorLabs/tabpfn ↗
#13EXAONE TabularTabular Foundation ModelPyTorch/Python89.60%0.81240.3590LGAI-Research/EXAONE-Tabular ↗
#14nanotabicl VanillaTabular Foundation ModelPyTorch/Python89.55%0.80540.3566soda-inria/nanotabicl ↗
#15Full TabICLv2 (PyTorch Reference)Tabular Foundation ModelPyTorch/Python89.53%0.80300.3676soda-inria/tabicl ↗
#16Streaming nanotabiclTabular Foundation ModelPyTorch/Python89.47%0.80160.3333soda-inria/nanotabicl ↗
#17Carla Engine (TabICLv2 WebGPU)Tabular Foundation ModelBrowser89.45%0.79400.3641100% In-Browser
STATISTICAL DISTRIBUTIONS

Variable Schema & Summary Distributions

Observed numerical ranges, category cardinalities, missing rates, and sample values across 45,211 rows.

ColVariable NameTypeMissingDistinctSummary Stats / DistributionSample Values
Aterm_deposit_subscribedTARGETNUM02[1, 2] μ=1.1 σ=0.3111
Bclient_age_yearsNUM077[18, 95] μ=40.9 σ=10.6584433
Cclient_job_typeCAT01210 cats: blue-collar, management, technician +7 moremanagementtechnicianentrepreneur
Dmarital_statusCAT033 cats: married, single, divorcedmarriedsinglemarried
Eeducation_levelCAT044 cats: secondary, tertiary, primary +1 moretertiarysecondarysecondary
Fhas_credit_defaultCAT022 cats: no, yesnonono
Gaverage_yearly_balance_eurNUM07,168[-8019, 102127] μ=1362.3 σ=3044.72143292
Hhas_housing_loanCAT022 cats: yes, noyesyesyes
Ihas_personal_loanCAT022 cats: no, yesnonoyes
Jcontact_communication_typeCAT033 cats: cellular, unknown, telephoneunknownunknownunknown
Klast_contact_day_of_monthNUM031[1, 31] μ=15.8 σ=8.3555
Llast_contact_monthCAT01210 cats: may, jul, aug +7 moremaymaymay
Mlast_contact_duration_secLEAKAGENUM01,573[0, 4918] μ=258.2 σ=257.526115176
Mcampaign_contacts_countNUM048[1, 63] μ=2.8 σ=3.1111
Ndays_since_previous_campaignNUM0559[-1, 871] μ=40.2 σ=100.1-1-1-1
Oprevious_contacts_countNUM041[0, 275] μ=0.6 σ=2.3000
Pprevious_campaign_outcomeCAT044 cats: unknown, failure, other +1 moreunknownunknownunknown
LIVE EVALUATION IN GOOGLE SHEETS

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.

Step 1

Launch Carla

Click once to open the spreadsheet and Carla side panel together.

Step 2

Review the Setup

Carla selects the dataset target and task from this page automatically.

Step 3

Evaluate & Predict

Run predictions and compute metrics with zero server uploads.