0 cumulative citations
View corpus contextA new benchmark for Microsoft’s Business Central DSL finds large disparities in coding-agent performance and shows that gains on general-purpose code tests often fail to translate to ERP-specific engineering tasks; model choice matters more than the agent harness for bug fixes in the evaluated settings.
Citation observations
Cumulative provider counts captured on specific dates; providers are never combined.
Agentic engineering systems have shown strong performance on general-purpose benchmarks, yet their effectiveness in enterprise resource planning (ERP) domain-specific languages (DSLs) remains underexplored. We introduce BC-Bench, a benchmark designed to evaluate agentic engineering on real-world tasks in AL, the DSL for Microsoft Dynamics 365 Business Central. BC-Bench comprises 101 manually curated tasks extracted from two Microsoft-owned production repositories, reflecting authentic ERP development workflows. Adapting the SWE-Bench methodology, we address the unique constraints of the AL ecosystem---including limited public resources and complex environment provisioning. Beyond generating functional code, BC-Bench evaluates test generation and supports multimodal problem statements where visual context is commonly present. We evaluate multiple frontier models across two agent harnesses, utilizing multi-run metrics to account for nondeterminism. In the Bug Fixing category, under our evaluated settings, between-model differences in resolution rate are larger than differences between the two evaluated agent harnesses, and improvements reported on general-purpose benchmarks do not consistently transfer to AL. These results highlight the need for domain-specific evaluation.
Summary
Main Finding
Agentic coding systems perform substantially worse on a domain-specific ERP language (AL for Microsoft Dynamics 365 Business Central) than general-purpose benchmarks imply. In BC-Bench (101 real-world AL tasks), differences across underlying LMs explain more variation in bug-fixing success than differences across two widely used agent harnesses (GitHub Copilot and Claude Code). Improvements reported on general-purpose code benchmarks do not reliably transfer to AL; task complexity (multi-file or larger patches) and domain constraints substantially reduce agent accuracy.
Key Points
- Benchmark introduced: BC-Bench — 101 manually curated, real-world tasks drawn from two Microsoft repositories (NAV, private; BCApps, public). Open source: https://github.com/microsoft/BC-Bench
- Two evaluation categories:
- Bug Fixing: generate a patch that builds and makes tests pass.
- Test Generation: generate a test that fails on the base commit and passes after the gold patch.
- Agent harnesses evaluated: GitHub Copilot and Claude Code. Multiple frontier models evaluated (e.g., claude-opus-4.6, claude-opus-4.5, GPT-5.x-codex variants, GPT-4.1).
- Metrics and evaluation protocol:
- Five independent runs per task to capture stochasticity.
- Mean resolution rate (with bootstrapped 95% CI across runs).
- passˆ5 (fraction of tasks solved in all five runs) to quantify reliability.
- Wall-clock duration per trial reported.
- Representative results (Bug Fixing, matched settings):
- claude-opus-4.6 (Claude Code): mean resolution 68.5% (95% CI 65.7–71.3%), passˆ5 = 49.5%, duration 284s.
- claude-opus-4.6 (GitHub Copilot): mean 65.1%, passˆ5 = 50.5%, duration 314s.
- GPT-5.2-codex (GitHub Copilot): mean 60.8%, passˆ5 = 49.5%, duration 196s.
- GPT-4.1 (GitHub Copilot): mean 16.6%, passˆ5 = 5.0%.
- Model vs harness effects:
- Matched comparisons indicate model choice drives statistically significant differences (examples: claude-opus-4.6 vs 4.5, p = 0.026; gpt-5.2-codex vs gpt-5.1-codex-max, p = 0.019).
- Harness comparisons (Claude Code vs GitHub Copilot with same model) did not reach statistical significance in tested pairs (p > 0.05), suggesting smaller harness effect in the evaluated Bug Fixing setting.
- Task complexity strongly impacts performance:
- Multi-file patches: mean resolution drops >20 percentage points compared to single-file fixes (e.g., ~65–70% → ~42–43%).
- LoC changed: 1–10 LoC tasks ~75–78% success; 11–25 LoC drops to ~38–50%.
- Domain heterogeneity: performance varies by functional area (e.g., Inventory and Sales higher; Finance lower for some models).
- Multimodal support: 67 of 101 tasks include images/screenshots in problem statements; BC-Bench supports multimodal problem statements.
- Environment and reproducibility:
- Tests executed in GitHub Actions on standardized containers (BcContainer-Helper).
- Agents by default see code as text only; an optional tooling interface (AL MCP) can expose compilation to agents.
- Versioning strategy and weekly revalidation to ensure reproducibility; timeouts (30 → 60 minutes) and workflow-failure handling described.
Data & Methods
- Dataset construction pipeline (five stages):
- Manual repository selection (two Microsoft-managed repos).
- Attribute filtering: single-bug-fix PRs that introduce at least one test.
- Manual filtering to ensure sufficient context and remove brittle tests.
- Bug-PR pair extraction with AL-specific adaptations: multi-project mapping, release-based anchoring, base-commit alignment; gold patches are the human PR fixes.
- Execution filtering: automated test runs to ensure failing-before/ passing-after properties; re-run weekly to detect regressions.
- Dataset characteristics:
- Total tasks: 101 (85 BaseApp, 16 other apps).
- Avg files modified (gold patch): 1.3; median 1.0.
- Avg gold patch LOC: 18.9; median 9.0.
- Tasks with images: 67.
- Functional area distribution: Inventory (21), Finance (19), Sales (12), etc.
- Evaluation environment and protocol:
- Five independent runs per task; mean resolution and bootstrapped 95% CI (BCa with 10,000 resamples).
- passˆ5 reported to measure reproducibility across runs.
- Wall-clock duration measured (model calls and tool uses).
- Statistical testing: two-sided exact sign-flip permutation test on paired per-task success-count differences.
- Execution via GitHub Actions using standardized self-hosted runners and Docker containers mapped to release versions.
- Limitations in data:
- Small DSL-specific corpus relative to general languages (101 tasks), largely from Microsoft-owned repos; public AL code is scarce.
- BC-Bench focuses on tasks that have machine-executable tests and meet filtering criteria; not a full coverage of all AL engineering work.
Implications for AI Economics
- Need for domain-specific evaluation before adoption:
- Firms should not rely solely on general-purpose benchmark gains to justify investment in agentic engineering for DSL-heavy domains. BC-Bench shows transfer is imperfect; empirical validation in the target domain is necessary.
- Productivity and ROI are task-dependent:
- High automation potential for small, single-file changes (1–10 LoC) where models reach ~75–78% mean resolution. These are low-hanging fruit for cost-saving and developer speedups.
- Complex, multi-file, or larger patches remain hard for current models (large drops in success), implying limited ROI for fully automating complex ERP maintenance without further tooling or human-in-the-loop workflows.
- Model selection matters more than harness choice (in evaluated settings):
- Organizations should prioritize model evaluation and selection for domain-specific tasks; switching harnesses (Copilot vs Claude Code) had smaller impact than upgrading underlying models in the BC-Bench Bug Fixing experiments.
- Latency vs accuracy trade-offs affect economic value:
- More accurate models (e.g., claude-opus-4.6) can be substantially slower. Cost-benefit analyses must incorporate runtime latency and associated operational costs (compute, developer waiting time).
- Investment priorities to improve agent performance in DSL contexts:
- Tooling integration (e.g., exposing compilation/runtime via AL MCP) could materially improve results — investing in agent-accessible development infrastructure can raise automation rates.
- Curating domain-specific datasets and benchmarks (though costly) is necessary for realistic evaluation and targeted model improvement.
- Multimodal and environment-aware agents: ERP bug reports often include screenshots and require environment coupling; enabling agents to use those signals can increase effectiveness.
- Market and policy considerations:
- Limited public DSL corpora (proprietary industrial code) mean vendors or platform owners may hold asymmetric advantages; collaborations or sanctioned dataset releases could accelerate progress but raise IP and privacy questions.
- Reproducibility/versioning requirements imply ongoing evaluation costs — firms should budget continuous benchmarking and re-validation as models and harnesses evolve rapidly.
- Strategy recommendations for firms:
- Pilot automation on well-scoped, high-frequency, small-patch tasks to realize early gains.
- Evaluate multiple models on a representative domain-specific benchmark (like BC-Bench) rather than relying on public general benchmarks.
- Invest in tooling that exposes compilation/tests to agents to bridge the gap between text-only prompts and executable domain workflows.
- Track latency, passˆk-like reliability metrics, and operational workflow failure modes (timeouts, non-submissions) when estimating realized productivity improvements.
If you want, I can extract a compact table of the main numeric results (mean resolution, passˆ5, durations) for the top models/harness combinations, or draft a short checklist for a firm considering deploying agentic engineering in an ERP/DSL setting.
Assessment
Claims (11)
| Claim | Direction | Outcome | Confidence & Evidence | Details |
|---|---|---|---|---|
| BC-Bench contains 101 manually curated ERP engineering tasks drawn from two Microsoft-maintained production repositories, with 85 tasks from BaseApp and 16 from other applications. Developer Productivity | positive | Benchmark coverage of real-world AL engineering tasks |
Reading fidelity
high
Study strength
high
|
n=101
101 total tasks; 85 BaseApp tasks and 16 other-application tasks
|
| Under matched GitHub Copilot version 0.2.0 Bug Fixing conditions, claude-opus-4.6 achieved a higher mean resolution rate than claude-opus-4.5. Developer Productivity | positive | Bug-fixing mean resolution rate |
Reading fidelity
high
Study strength
high
|
n=101
5.3 percentage points
|
| Under the same matched conditions, claude-opus-4.6 achieved a higher passˆ5 rate than claude-opus-4.5. Developer Productivity | positive | Fraction of tasks solved successfully in all five runs |
Reading fidelity
high
Study strength
high
|
n=101
11.9 percentage points
|
| In the reported Bug Fixing configurations, claude-opus-4.6 had the highest passˆ5 and mean resolution rate, but it was slower than competing systems. Developer Productivity | mixed | Bug-fixing resolution reliability and agent execution duration |
Reading fidelity
high
Study strength
medium
|
n=101
68.5% mean resolution rate; 49.5% passˆ5; 284S duration
|
| GPT-4.1 performed substantially worse than recent state-of-the-art models on Bug Fixing, with approximately four times lower mean resolution rate and ten times lower passˆ5. Developer Productivity | negative | Bug-fixing mean resolution rate and repeated-run reliability |
Reading fidelity
high
Study strength
medium
|
n=101
approximately 4 times lower mean resolution rate and 10 times lower passˆ5
|
| For the evaluated Bug Fixing settings, model choice appears to matter more than the choice between GitHub Copilot and Claude Code. Developer Productivity | positive | Bug-fixing mean resolution rate |
Reading fidelity
high
Study strength
medium
|
n=101
Harness comparison p-values: 0.728 and 0.075; model comparison p-values: 0.026 and 0.019
|
| In Test Generation, GPT-5.3-codex did not have a statistically significant resolution-rate advantage over GPT-5.2-codex when GitHub Copilot and benchmark version were fixed. Developer Productivity | null_result | Test-generation resolution rate |
Reading fidelity
high
Study strength
high
|
n=101
45.3% versus 44.0%; p = 0.672
|
| Agent resolution accuracy declined substantially when the gold patch modified more than one file rather than only one file. Developer Productivity | negative | Bug-fixing mean resolution rate by patch file count |
Reading fidelity
high
Study strength
medium
|
n=101
20.9 percentage-point drop for GPT-5.2; 27.0 percentage-point drop for Opus-4.6
|
| Resolution accuracy was lower for tasks whose gold patches exceeded 10 lines of code than for tasks whose patches changed 1–10 lines. Developer Productivity | negative | Bug-fixing mean resolution rate by patch size |
Reading fidelity
high
Study strength
medium
|
n=101
27.3 percentage-point drop for GPT-5.2 in the 11–25 LOC group; 28.9 percentage-point drop for Opus-4.6
|
| Bug-fixing performance varied across functional areas, with the reported model rates differing substantially between areas such as Manufacturing and Warehouse. Developer Productivity | mixed | Bug-fixing mean resolution rate by functional area |
Reading fidelity
high
Study strength
low
|
n=101
GPT-5.2: 88.0% in Manufacturing versus 40.0% in Warehouse; Opus-4.6: 64.0% versus 56.0%
|
| Improvements observed on general-purpose programming benchmarks do not necessarily transfer to AL domain-specific tasks. Developer Productivity | null_result | Transfer of coding-agent benchmark performance from general-purpose programming to AL |
Reading fidelity
high
Study strength
medium
|
n=101
GPT-5.3-codex 45.3% versus GPT-5.2-codex 44.0%; p = 0.672
|