Business Logic
Codeunits, calculations, algorithms, and string manipulation
Report generated: February 14, 2026 at 8:13 PM
Benchmark data: Feb 8, 2026 – Feb 13, 2026
12
Models
11
Tasks
68.2%
Pass Rate
Model Rankings
Model Performance
anthropic/claude-opus-4-6
Runs:3
pass@1:81.8%
pass@3:81.8%
Consistency:100.0%
1st: 232nd: 4Failed: 29/11 passed
Temperature:0.1
Thinking:-
Tokens/run:52,951
Cost/run:$0.94
Known Shortcomings (6)
- reserved-keyword-as-parameter-name 1x
- cross-join-dataitem-link 1x
- incomplete-procedure-body 1x
- flowfield-calcfields-requirement 1x
- parse-failure 1x
+1 more View all 6
openai/gpt-5.2-2025-12-11@thinking=high
Runs:3
pass@1:78.8%
pass@3:81.8%
Consistency:90.9%
1st: 182nd: 8Failed: 29/11 passed
Temperature:0.1
Thinking:high
Tokens/run:27,045
Cost/run:$0.25
Known Shortcomings (10)
- interface-definition-syntax 2x
- table-field-caption-property 1x
- query-object-syntax 1x
- query-crossjoin-syntax 1x
- parse-failure 1x
+5 more View all 10
anthropic/claude-opus-4-5-20251101@thinking=50000
Runs:3
pass@1:75.8%
pass@3:81.8%
Consistency:90.9%
1st: 212nd: 4Failed: 29/11 passed
Temperature:0.1
Thinking:50,000
Tokens/run:38,498
Cost/run:$0.65
Known Shortcomings (8)
- page-extension-with-table-extension 1x
- reserved-keyword-as-parameter-name 1x
- dictionary-iteration-syntax 1x
- empty-or-malformed-code-generation 1x
- temporary-table-parameter-handling 1x
+3 more View all 8
anthropic/claude-sonnet-4-5-20250929
Runs:3
pass@1:72.7%
pass@3:81.8%
Consistency:81.8%
1st: 152nd: 9Failed: 29/11 passed
Temperature:0.1
Thinking:-
Tokens/run:34,603
Cost/run:$0.34
Known Shortcomings (8)
- multiline-string-literals 1x
- query-filter-element-syntax 1x
- jsonobject-get-method-signature 1x
- cross-join-dataitem-link-constraints 1x
- reserved-keyword-as-variable-name 1x
+3 more View all 8
openrouter/x-ai/grok-code-fast-1
Runs:3
pass@1:66.7%
pass@3:72.7%
Consistency:81.8%
1st: 182nd: 4Failed: 38/11 passed
Temperature:0.1
Thinking:-
Tokens/run:39,117
Cost/run:$0.38
Known Shortcomings (12)
- query-object-syntax 2x
- multiline-string-literals 1x
- page-extension-cardpageid-override 1x
- json-api-methods 1x
- recordref-fieldref-dynamic-manipulation 1x
+7 more View all 12
openrouter/moonshotai/kimi-k2.5
Runs:3
pass@1:54.5%
pass@3:54.5%
Consistency:100.0%
1st: 172nd: 1Failed: 56/11 passed
Temperature:0.1
Thinking:-
Tokens/run:56,434
Cost/run:$0.45
Known Shortcomings (3)
- event-subscriber-parameter-syntax 1x
- page-extension-cardpageid-override 1x
- parse-failure 1x
openrouter/minimax/minimax-m2.5
Runs:3
pass@1:51.5%
pass@3:54.5%
Consistency:90.9%
1st: 162nd: 1Failed: 56/11 passed
Temperature:0.1
Thinking:-
Tokens/run:37,145
Cost/run:$0.27
Known Shortcomings (18)
- interface-definition-syntax 2x
- text-char-conversion-copystr 1x
- page-object-definition 1x
- event-subscriber-attribute-syntax 1x
- page-extension-and-table-extension-generation 1x
+13 more View all 18
openrouter/z-ai/glm-5
Runs:3
pass@1:51.5%
pass@3:72.7%
Consistency:54.5%
1st: 122nd: 5Failed: 38/11 passed
Temperature:0.1
Thinking:-
Tokens/run:53,019
Cost/run:$0.45
Known Shortcomings (17)
- list-dictionary-of-interface-clear-method 1x
- event-subscriber-event-name 1x
- al-string-literal-escaping 1x
- query-object-syntax 1x
- fluent-api-return-self-codeunit 1x
+12 more View all 17
openrouter/qwen/qwen3-coder-next
Runs:3
pass@1:51.5%
pass@3:63.6%
Consistency:72.7%
1st: 142nd: 3Failed: 47/11 passed
Temperature:0.1
Thinking:-
Tokens/run:30,842
Cost/run:$0.29
Known Shortcomings (19)
- codeunit-generation-empty-output 5x
- interface-definition-syntax 3x
- query-object-syntax 2x
- initvalue-vs-defaultvalue 1x
- text-trim-method-unavailable 1x
+14 more View all 19
openrouter/qwen/qwen3-max-thinking
Runs:3
pass@1:48.5%
pass@3:54.5%
Consistency:90.9%
1st: 132nd: 3Failed: 56/11 passed
Temperature:0.1
Thinking:-
Tokens/run:29,331
Cost/run:$0.23
Known Shortcomings (12)
- option-field-optionmembers-required 2x
- enum-frominteger-syntax 1x
- list-iteration-pattern 1x
- variant-type-argument-and-interface-definition 1x
- json-object-api-methods 1x
+7 more View all 12
openrouter/deepseek/deepseek-v3.2
Runs:3
pass@1:48.5%
pass@3:54.5%
Consistency:90.9%
1st: 112nd: 5Failed: 56/11 passed
Temperature:0.1
Thinking:-
Tokens/run:32,682
Cost/run:$0.32
Known Shortcomings (18)
- dictionary-clear-method 1x
- application-area-in-page-extension-field 1x
- multiline-string-literals 1x
- page-extension-cardpageid-override 1x
- errorinfo-custom-dimensions-api 1x
+13 more View all 18
gemini/gemini-3-pro-preview
Runs:3
pass@1:45.5%
pass@3:63.6%
Consistency:63.6%
1st: 142nd: 1Failed: 47/11 passed
Temperature:0.1
Thinking:-
Tokens/run:182,421
Cost/run:$0.21
Known Shortcomings (9)
- multiline-string-literals 1x
- inherent-permissions-syntax 1x
- query-crossjoin-column-datasource 1x
- complete-codeunit-generation 1x
- yaml-parsing-string-manipulation 1x
+4 more View all 9
Task Results Matrix
N/M = passed N of M runs (hover for details)
| Task | Description | Claude Opus 4.6 | GPT-5.2 | Claude Opus 4.5 (50K) | Claude Sonnet 4.5 | Grok Code Fast 1 | Kimi K2.5 | Minimax M2.5 | Glm 5 | Qwen3 Coder Next | Qwen3 Max Thinking | Deepseek V3.2 | Gemini 3 Pro |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CG-AL-E005 | Create a simple AL codeunit called "Text Utilities" with ID 70000. The codeunit should have the following public procedures: - CapitalizeFirstLetter(InputText: Text): Text - capitalizes the first letter of input text - CountWords(InputText: Text): Integer - counts the number of words in the input text - IsValidEmail(EmailAddress: Text): Boolean - basic validation to check if text contains @ and . | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 2/3 | 1/3 | 3/3 | 1/3 |
| CG-AL-E050 | Create an AL codeunit named "CG Text Builder" with ID 70050 that uses multiline string literals. | 3/3 | 2/3 | 1/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 |
| CG-AL-E051 | Create an AL codeunit named "CG Number Sequence" with ID 70051 that increments string values with numeric portions. | 3/3 | 3/3 | 3/3 | 2/3 | 2/3 | 0/3 | 0/3 | 1/3 | 0/3 | 0/3 | 0/3 | 2/3 |
| CG-AL-E052 | Create an AL codeunit named "CG Type Converter" with ID 70052 for converting simple types to text. | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 2/3 | 1/3 | 3/3 | 3/3 | 1/3 | 0/3 |
| CG-AL-H001 | Create a codeunit called "Tax Calculator" with ID 70100. The codeunit should implement international tax calculation with the following procedure: | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 | 3/3 | 2/3 |
| CG-AL-H009 | Create a codeunit that implements proper BC currency rounding patterns. | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 | 3/3 | 1/3 |
| CG-AL-H013 | Create an AL codeunit named "CG Loop Utilities" with ID 70013 that demonstrates the continue keyword: | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| CG-AL-M002 | Create a comprehensive business logic codeunit called "Sales Order Calculator" with ID 70001. The codeunit should implement sales calculations including: - CalculateLineTotal(Quantity: Decimal; UnitPrice: Decimal): Decimal - basic calculation - CalculateLineTotal(Quantity: Decimal; UnitPrice: Decimal; DiscountPercent: Decimal): Decimal - with discount - CalculateOrderTotal(LineTotals: List of [Decimal]): Decimal - sum all line totals from list - ApplyVolumeDiscount(OrderTotal: Decimal): Decimal - apply tiered discounts: | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 0/3 | 0/3 | 3/3 |
| CG-AL-M008 | Create a workflow implementation codeunit called "Purchase Approval Workflow" with ID 70003. | 0/3 | 0/3 | 0/3 | 1/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 |
| CG-AL-M010 | Create a complete multi-object scenario for a "Project Management" system with related objects: | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 |
| CG-AL-M088 | 1. Create an Enum with ID 70188 named "Subscription Plan". | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 1/3 | 3/3 | 3/3 | 3/3 |