Knowledge or Calculator? Decomposing the Skill Premium in Verifiable Financial Agent Workflows
Organizations: Deep Insight Labs Singapore, Singapore · University of Kent Canterbury, United Kingdom · University of Cambridge Cambridge, United Kingdom
Abstract
Financial AI agents must do more than retrieve facts: investment workflows require correct quantitative execution, reliable use of procedural resources, and auditable structured outputs. We introduce FinSkillBench, an evaluation suite of 2,603 point in time episodes across 12 subtasks in portfolio construction, risk management, and fundamental analysis, with hidden regenerable ground truth and task specific deterministic verifiers. Executing 17,820 episodes across 9 models and 3 resource conditions, the paired analysis across 8 models shows that curated skill packages raise mean scores by +16.2 points (0.366 to 0.528), whereas skills generated within a single episode add only +0.5 points while consuming more tokens and turns. We then decompose the curated premium by granting human authored procedural documents and executable domain tools separately: documents alone add +5.6 points, tools alone add +19.5 points, and their combination is subadditive. The premium is strongly workflow dependent: executable tools dominate numerically intensive workflows, documentation matters more when procedural or output schema guidance is the bottleneck, and interpretive tasks benefit from both. The effects are sign stable across 10 scoring variants and cluster bootstrap analyses, and an independently implemented second harness reproduces the directional pattern while showing that effect magnitudes depend on how tools and data are exposed. Overall, a measured "skill premium" is a property of the full model, resource, and harness system rather than of the underlying model alone.
Figures & tables
| Subtask | Scorer | Object rewarded |
| Unconstrained optim. | l2_distance_and_objective | Proximity to MV optimum |
| Constrained optim. | constraint_satisfaction_and_ objective | Constraint flags gate weight L2 |
| Tool-use param. | parameter_match | Optimizer contract: nested constraint params |
| Rebalancing | turnover_compliance_and_objective | Post-trade weights, turnover, trade-list consistency |
| Black–Litterman | view_specification_and_weights | Posterior expected returns + posterior-optimal weights |
| Constraint monitoring | exact_match | Mandate status + per-constraint accuracy |
| Condition | Mean Score | vs. No-Skill | 95% CI |
| No-Skill | 0.366 | — | — |
| Curated | 0.528 | +0.162 | [+0.152, +0.171] |
| Self-Generated | 0.371 | +0.005 | [ 0.002, +0.011] |
| Domain | No-Skill | Curated | Self-Gen | Curated | Self-Gen |
| Portfolio construction | 0.307 | 0.585 | 0.301 | +0.278 [+0.258, +0.298] | 0.006 [ 0.015, +0.004] |
| Risk management | 0.269 | 0.486 | 0.303 | +0.218 [+0.195, +0.239] | +0.034 [+0.018, +0.049] |
| Fundamental analysis | 0.458 | 0.512 | 0.454 | +0.054 [+0.045, +0.064] | 0.004 [ 0.014, +0.006] |
| Subtask | Domain | No-Skill | Curated | Self-Gen | |
| Unconstrained optimization | PC | 0.247 | 0.719 | 0.236 | +0.472 |
| Constrained optimization | PC | 0.148 | 0.505 | 0.127 | +0.358 |
| Risk identification | RM | 0.023 | 0.332 | 0.055 | +0.309 |
| Rebalancing | PC | 0.183 | 0.451 | 0.164 | +0.268 |
| Stress testing | RM | 0.017 | 0.281 | 0.027 | +0.265 |
| Black–Litterman | PC | 0.153 | 0.375 | 0.147 | +0.222 |
| Model | Overall | No-Skill | Curated | Self-Gen | Curated |
| gpt-4.1 | 0.488 | 0.330 | 0.735 | 0.398 | +0.405 |
| gemini-2.5-pro | 0.490 | 0.380 | 0.678 | 0.412 | +0.298 |
| DeepSeek-V3.2 | 0.521 | 0.458 | 0.658 | 0.447 | +0.200 |
| gemini-3.1-flash-lite | 0.487 | 0.419 | 0.609 | 0.434 | +0.191 |
| claude-sonnet-4.6 | 0.560 | 0.534 | 0.659 | 0.488 | +0.125 |
| gpt-5.4 | 0.452 | 0.430 | 0.520 | 0.405 | +0.091 |
| No-skill | Docs-only | Tools-only | Curated | |
| Overall | 0.366 | 0.422 | 0.561 | 0.528 |
| Risk identification | 0.023 | 0.382 | 0.029 | 0.332 |
| Stress testing | 0.017 | 0.086 | 0.469 | 0.281 |
| Constrained optim. | 0.148 | 0.176 | 0.629 | 0.505 |
| Group | No Skill (95% CI) | Curated (95% CI) | Raw | ||
| Overall | |||||
| All | 1920 | 0.354 [0.338, 0.370] | 5280 | 0.679 [0.669, 0.688] | +0.325 |
| By domain | |||||
| Fundamental analysis | 480 | 0.439 [0.408, 0.470] | 2400 | 0.567 [0.553, 0.582] | +0.129 |
| Portfolio construction | 800 | 0.325 [0.301, 0.350] | 1600 | 0.760 [0.744, 0.776] | +0.435 |
| Risk management | 640 | 0.325 [0.297, 0.354] | 1280 | 0.785 [0.767, 0.802] | +0.459 |
| Terminal metric | Teacher-forced | Autonomous |
| Mandate adherence | 1.000 | 0.000 |
| Optimality | 1.000 | 0.934 |
| Stage | Teacher-forced | Autonomous | TF Auto |
| tool_use | 0.500 | 0.500 | 0.000 |
| fa_research | 1.000 | 1.000 | 0.000 |
| view | 1.000 | 1.000 | 0.000 |
| construct | 0.751 | 0.000 | 0.751 |
| monitor | 1.000 | 1.000 | 0.000 |
| stress | 1.000 | 1.000 | 0.000 |
LLM Agents
Large language model agents use language models to plan, use tools, and act across multi-step tasks and environments.
See all 705 papers