Advanced AL Patterns
RecordRef, FieldRef, Queries, SingleInstance, Fluent API, and modern collections
Report generated: February 14, 2026 at 8:13 PM
Benchmark data: Feb 8, 2026 – Feb 13, 2026
12
Models
10
Tasks
44.2%
Pass Rate
Model Rankings
Model Performance
anthropic/claude-opus-4-5-20251101@thinking=50000
Runs:3
pass@1:70.0%
pass@3:70.0%
Consistency:100.0%
1st: 182nd: 3Failed: 37/10 passed
Temperature:0.1
Thinking:50,000
Tokens/run:37,114
Cost/run:$0.58
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-opus-4-6
Runs:3
pass@1:70.0%
pass@3:70.0%
Consistency:100.0%
1st: 152nd: 6Failed: 37/10 passed
Temperature:0.1
Thinking:-
Tokens/run:49,075
Cost/run:$0.78
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:50.0%
pass@3:60.0%
Consistency:80.0%
1st: 32nd: 12Failed: 46/10 passed
Temperature:0.1
Thinking:high
Tokens/run:34,540
Cost/run:$0.28
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
gemini/gemini-3-pro-preview
Runs:3
pass@1:46.7%
pass@3:70.0%
Consistency:60.0%
1st: 132nd: 1Failed: 37/10 passed
Temperature:0.1
Thinking:-
Tokens/run:203,631
Cost/run:$0.24
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
openrouter/moonshotai/kimi-k2.5
Runs:3
pass@1:36.7%
pass@3:40.0%
Consistency:90.0%
1st: 92nd: 2Failed: 64/10 passed
Temperature:0.1
Thinking:-
Tokens/run:66,338
Cost/run:$0.63
Known Shortcomings (3)
- event-subscriber-parameter-syntax 1x
- page-extension-cardpageid-override 1x
- parse-failure 1x
anthropic/claude-sonnet-4-5-20250929
Runs:3
pass@1:33.3%
pass@3:40.0%
Consistency:90.0%
1st: 92nd: 1Failed: 64/10 passed
Temperature:0.1
Thinking:-
Tokens/run:40,976
Cost/run:$0.36
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/deepseek/deepseek-v3.2
Runs:3
pass@1:33.3%
pass@3:40.0%
Consistency:80.0%
1st: 82nd: 2Failed: 64/10 passed
Temperature:0.1
Thinking:-
Tokens/run:33,883
Cost/run:$0.24
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
openrouter/z-ai/glm-5
Runs:3
pass@1:30.0%
pass@3:30.0%
Consistency:100.0%
1st: 72nd: 2Failed: 73/10 passed
Temperature:0.1
Thinking:-
Tokens/run:61,105
Cost/run:$0.56
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-max-thinking
Runs:3
pass@1:26.7%
pass@3:30.0%
Consistency:90.0%
1st: 32nd: 5Failed: 73/10 passed
Temperature:0.1
Thinking:-
Tokens/run:31,936
Cost/run:$0.24
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/x-ai/grok-code-fast-1
Runs:3
pass@1:23.3%
pass@3:30.0%
Consistency:90.0%
1st: 62nd: 1Failed: 73/10 passed
Temperature:0.1
Thinking:-
Tokens/run:66,841
Cost/run:$0.58
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/qwen/qwen3-coder-next
Runs:3
pass@1:20.0%
pass@3:20.0%
Consistency:100.0%
1st: 6Failed: 82/10 passed
Temperature:0.1
Thinking:-
Tokens/run:32,089
Cost/run:$0.21
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/minimax/minimax-m2.5
Runs:3
pass@1:16.7%
pass@3:30.0%
Consistency:80.0%
1st: 32nd: 2Failed: 73/10 passed
Temperature:0.1
Thinking:-
Tokens/run:44,644
Cost/run:$0.37
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
Task Results Matrix
N/M = passed N of M runs (hover for details)
| Task | Description | Claude Opus 4.5 (50K) | Claude Opus 4.6 | GPT-5.2 | Gemini 3 Pro | Kimi K2.5 | Claude Sonnet 4.5 | Deepseek V3.2 | Glm 5 | Qwen3 Max Thinking | Grok Code Fast 1 | Qwen3 Coder Next | Minimax M2.5 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CG-AL-H003 | Create a codeunit called "CG Temp Table Processor" with ID 70202 that demonstrates correct temporary table handling. | 3/3 | 3/3 | 0/3 | 3/3 | 2/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 |
| CG-AL-H005 | Create a table and codeunit that test understanding of Rec vs xRec and Modify behavior. | 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-H006 | Create a SingleInstance codeunit that maintains state across calls within the same session. | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| CG-AL-H011 | Create an AL query object named "CG Sales Summary" with ID 70011 that: | 3/3 | 0/3 | 1/3 | 3/3 | 0/3 | 1/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 |
| CG-AL-H017 | Create an AL query object named "CG Dimension Matrix" with ID 70017 that: | 3/3 | 3/3 | 0/3 | 1/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 |
| CG-AL-H018 | Create an AL codeunit named "CG Request Builder" with ID 70018 implementing a fluent API pattern: | 3/3 | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 | 0/3 | 0/3 | 2/3 | 0/3 | 0/3 | 0/3 |
| CG-AL-H020 | Create an AL codeunit named "CG Collection Processor" with ID 70020 demonstrating List and Dictionary types: | 0/3 | 3/3 | 3/3 | 1/3 | 0/3 | 0/3 | 2/3 | 0/3 | 0/3 | 1/3 | 0/3 | 0/3 |
| CG-AL-H022 | Create a codeunit named "CG Dynamic Record Handler" with ID 70224 that demonstrates advanced RecordRef and FieldRef usage for dynamic record manipulation. | 3/3 | 3/3 | 2/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 1/3 |
| CG-AL-H023 | Create a codeunit named "CG Record Introspector" with ID 70226 for dynamic record manipulation and introspection using RecordRef and FieldRef. | 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-M023 | Create a codeunit named "CG Partial Record Loader" with ID 70123 that demonstrates the SetLoadFields method for optimized partial record loading. | 3/3 | 3/3 | 3/3 | 1/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 1/3 |