The Silent Failures in Agentic Data Science
Organizations: Centrum Wiskunde & Informatica, Amsterdam, Netherlands
Abstract
Large language models have significantly lowered the barrier to writing code. Naturally, this has also led to the development of data science agents that promise automating the design and execution of data science from task formulation to model development. Existing evaluations of agentic data science (agentic DS) assess downstream predictive performance and code correctness, providing preliminary insight in agentic DS capabilities. We argue that these evaluations overlook the fundamental principles of data science: methodological data science- and domain knowledge. As such, only assessing downstream performance masks methodological failures such as data leakage and inappropriate validation, limiting the development of robust agentic DS systems. In this paper, we evaluate agentic DS beyond accuracy from three different angles: 1) a large-scale analysis of failure modes in common agentic DS frameworks and models across 220 data science tasks, 2) a reusable and extensible test suite with curated data science tasks that test for six specific failures in a controlled manner, and 3) a qualitative assessment of agentic DS pipelines against expert solutions on Kaggle competitions. We find that the majority of agentic solutions contain at least one failure mode despite the complexity of agentic harness or model capacity. Moreover, we identify a positive correlation between the occurrence of data leakage failures and predictive performance, confirming the necessity to evaluate agents beyond accuracy. Our qualitative analysis shows that DS agents generally lack problem solving creativity and domain knowledge, compared to competition-winning data scientists. We believe that principled failure mode analysis, as presented here, should be integral part of agentic DS evaluations, and that the insights we surface will be key in developing trustworthy agentic DS pipelines.
Figures & tables
| ID | Failure | Pipeline Stage | ID | Failure | Pipeline Stage |
|---|---|---|---|---|---|
| \otherbadge FM01 | Wrong task formulation | Problem Formulation | \leakbadge FM09 | Feature selection before splitting | Feature Selection |
| \leakbadge FM02 | Peeking at test data during EDA | Exploratory Data Analysis | \otherbadge FM10 | Wrong model type for task | Model Selection |
| \otherbadge FM03 | Not cleaning data | Preprocessing | \otherbadge FM11 | No regularisation in DL † | Model Training |
| \leakbadge FM04 | Imputation before splitting | Preprocessing | \otherbadge FM12 | Naive ensembling † | Model Optimization |
| \leakbadge FM05 | Ignoring temporal order † | Data Splitting | \leakbadge FM13 | Reusing test set across variants † | Model Evaluation |
| \otherbadge FM06 | No train/val split | Data Splitting | \otherbadge FM14 | Single eval of stochastic model † | Model Evaluation |
| Failure Mode | Test Case | Assessment |
|---|---|---|
| \tfbadge TF01 Ignoring Class Imbalance | Dataset with high class-imbalance | Assess if the agent is alerting to the skew; classifier performing poorly on minority class |
| \tfbadge TF02 Not Normalizing Formatting | Inconsistent formatting of equivalent values (for example, string-encoded missing values) | Assess if an agent is aware of and reacts appropriately to the inconsistency during data preprocessing |
| \tfbadge TF03 Not Separating Correlation from Causation | Dataset includes a feature that strongly correlates with the target, without meaningful relationship | Assess if an agent is able to distinguish spurious relations by excluding spurious features |
| \tfbadge TF04 No Domain Feature Engineering | Prediction task requires a domain-specific feature transformation that is not apparent in the data | Assess if an agent is able to apply feature transformation utilizing its pre-trained domain knowledge. |
| \tfbadge TF05 Data Leakage in Feature Selection | Dataset includes features that are not expected to be used at training time. | Assess if an agent is deliberately excluding the features. |
| \tfbadge TF06 Wrong Metric Selection | Task with imbalanced classes yielding high accuracy if not evaluated with a proper class-balancing metric | Assess if an agent chooses the appropriate metric accounting for imbalance |
| Agent | Model | Wrong task formulation | Peeking at test data during EDA | Not cleaning data | Imputation before splitting | Ignoring temporal order | No train/val split | No feature engineering | Scaling before splitting | Feature selection before splitting | Wrong model type for task | No regularisation in DL | Naive ensembling | Reusing test set across variants | Single eval of stochastic model | Using only one eval metric |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ReAct | Qwen-4B | 0.02 | 0.01 | 0.28 | 0.00 | 0.00 | 1.00 | 0.98 | 0.00 | 0.00 | 0.01 | N/A | N/A | N/A | 0.48 | 0.15 |
| Qwen-27B | 0.01 | 0.12 | 0.04 | 0.13 | 0.36 | 0.05 | 0.50 | 0.00 | 0.03 | 0.00 | N/A | 0.49 | 0.00 | 0.95 | 0.89 | |
| Gemini-3.7 | 0.02 | 0.07 | 0.30 | 0.06 | 0.48 | 0.40 | 0.38 | 0.00 | 0.08 | 0.00 | N/A | 0.90 | N/A | 0.04 | 0.14 | |
| AIDE | Qwen-4B | 0.01 | 0.02 | 0.72 | 0.08 | 0.13 | 0.07 | 0.93 | 0.02 | 0.00 | 0.03 | N/A | N/A | N/A | 0.19 | 0.87 |
| Qwen-27B | 0.03 | 0.08 | 0.21 | 0.03 | 0.15 | 0.01 | 0.71 | 0.00 | 0.02 | 0.00 | N/A | 0.81 | N/A | 0.08 | 0.85 | |
| Gemini-3.7 | 0.01 | 0.15 | 0.45 | 0.13 | 0.47 | 0.00 | 0.12 | 0.03 | 0.14 | 0.00 | N/A | 0.46 | 0.00 | 0.03 | 0.88 |
| Data Science Agents | AutoML | Baseline | ||||
|---|---|---|---|---|---|---|
| Challenge | Metric | ReAct | AIDE | MLEvolve | AutoGluon | 1st Place (Human) |
| Single-Cell Perturbations | MRRMSE | 1.1020 / 0.7690 | 0.8970 / 0.6600 | 0.8310 / 0.6170 | – / – | 0.7290 / 0.5230 |
| Heart Disease Prediction | AUC-ROC | 0.9547 / 0.9531 | 0.9549 / 0.9533 | 0.9546 / 0.9531 | 0.9551 / 0.9536 | 0.9554 / 0.9542 |
| Obesity Risk | Accuracy | 0.9065 / 0.9090 | 0.9059 / 0.9025 | 0.9071 / 0.9035 | 0.9074 / 0.9075 | 0.9116 / 0.9234 |
| Problematic Internet Use | QWK | 0.4440 / 0.4680 | 0.4280 / 0.4640 | 0.4170 / 0.4480 | – / – | 0.4820 / 0.5010 |
| Survival Predictions | C-index | 0.6502 / 0.6465 | 0.6536 / 0.6488 | 0.3155 / 0.3233 | – / – | 0.7013 / 0.6981 |
Appendix figures & tables11 assets
Supplementary material from the paper’s appendix.
Appendix
| Agent | (high) | Wilcoxon (high) | (low) | Wilcoxon (low) |
|---|---|---|---|---|
| ReAct | 17 | 0.890 | 18 | 0.212 |
| AIDE | 16 | 0.231 | 16 | 0.782 |
| MLEvolve | 16 | 0.597 | 17 | 0.890 |
| ID | Failure Mode | Definition |
|---|---|---|
| FM01 | Wrong task formulation | The agent frames the modelling problem in a way that discards the signal the task actually provides. |
| FM02 | Peeking at test data during EDA | Exploring test data during initial analysis creates untestable assumptions baked into model design. |
| FM03 | Not cleaning data | Ignoring data duplication, missing values, and outliers/inconsistencies before model building. |
| FM04 | Imputation before splitting | Performing mean/median imputation before splitting – leaks test statistics into training. |
| FM05 | Ignoring temporal order | Randomly splitting time-series data without respecting temporal order – introduces look-ahead bias. |
| FM06 | No train/val split | Model trained and evaluated on the same data – performance is a misleading overestimate. |
| Source | N | Regr. | Bin.-cls. | Multi-cls. | Med. rows | Med. feat. |
|---|---|---|---|---|---|---|
| Kaggle | 44 | 18 | 17 | 8 | 100,820 | 24 |
| MLE-bench | 8 | 6 | 2 | 0 | 6,976 | 13 |
| OpenML | 36 | 10 | 15 | 11 | 3,104 | 18 |
| STRABLE | 108 | 76 | 13 | 19 | 7,710 | 17 |
| UCI | 24 | 12 | 7 | 5 | 11,805 | 13 |
| Total | 220 | 122 | 54 | 43 | 8,693 | 18 |
| Domain | Tasks |
|---|---|
| Healthcare | 50 |
| Finance | 47 |
| Science | 25 |
| Retail | 23 |
| Social | 21 |
| Energy | 17 |
| FM | Failure Mode | Agreement | Precision | Recall | Human Present | |
|---|---|---|---|---|---|---|
| FM01 | Wrong task formulation † | 19 | 0.95 | 0.00 | – | 0 |
| FM02 | Peeking at test data during EDA † | 19 | 0.95 | 0.00 | – | 0 |
| FM03 | Not cleaning data | 19 | 0.95 | 0.80 | 1.00 | 4 |
| FM04 | Imputation before splitting | 19 | 0.79 | 0.50 | 0.25 | 4 |
| FM05 | Ignoring temporal order † | 19 | 0.95 | 0.50 | 1.00 | 1 |
| FM06 | No train/val split | 19 | 0.89 | 0.67 | 1.00 | 4 |
| Agent | Model | judged | Ignoring temporal order | No regularisation in DL | Reusing test set across variants | Single eval of stochastic model | Naive ensembling |
|---|---|---|---|---|---|---|---|
| ReAct | Gemini-3.7 | 219 | 137 | 0 | 0 | 211 | 198 |
| Qwen-4B | 220 | 138 | 0 | 0 | 219 | 1 | |
| Qwen-27B | 220 | 138 | 0 | 124 | 217 | 118 | |
| AIDE | Gemini-3.7 | 219 | 137 | 3 | 41 | 215 | 215 |
| Qwen-4B | 211 | 133 | 0 | 0 | 190 | 3 | |
| Qwen-27B | 185 | 112 | 0 | 4 | 176 | 27 |
| Agent | Model | Validation train leakage | Test train leakage | Flawed training protocol |
|---|---|---|---|---|
| ReAct | Qwen-4B | 0.00 | 0.00 | 0.03 |
| Qwen-27B | 0.08 | 0.02 | 0.07 | |
| Gemini-3.7 | 0.15 | 0.15 | 0.12 | |
| AIDE | Qwen-4B | 0.16 | 0.01 | 0.29 |
| Qwen-27B | 0.07 | 0.02 | 0.03 | |
| Gemini-3.7 | 0.13 | 0.35 | 0.01 |