Cloud baseline

x-ai/grok-4.7 · Build 2

x-ai/grok-4.7 · scorer forge-2.0

x-ai/grok-4.7 · single agentOct 15, 2026
Overall
0.1815
Benchmark
Forge 2.0
Model build
97m 6s

Recorded inference cost

At least $36.15

From the saved OpenRouter generation billing summary (301 recorded requests). This is a lower bound; the billing record is incomplete. Includes auxiliary model calls made during the build. Scoring reuses the saved build; this amount describes the original inference spend.

  • Some telemetry calls had no recoverable generation record.
  • Saved usage reconciliation is incomplete.

Tier breakdown

Each bar is the tier's mean, from 0 to 1 (for E, its mean × the excellence gate). The percentage is the tier's share of the score. Mean × share, added over all tiers, is the tests earned figure below.

L · Lint and bundles0.95831.06%
K · Platform currency1.001.32%
T · Event pipeline0.84172.11%
R · Reconcile0.72511.85%
S · Storage0.99831.06%
B · Resolvers and permissions0.60181.58%
U · UI function0.42182.11%
V · Visual1.001.06%
A · Rovo0.501.06%
E · Excellence0.54691.8%
R1 · Migration0.994712%
R2 · Dosing0.67513%
R3 · Time limits0.9638%
R4 · Changing world0.695710%
R5 · Admin panel1.0010%
R6 · CI web trigger1.008%
R7 · Custom field0.74225%
R8 · Forge LLM1.004%
R9 · Boot budget0.77785%
R10 · Native JQL0.384310%

Scoring detail

How this score was built

Per-test scorer output, as posted by the app. Expand a section to inspect its tests.

Correctness combines the lowest score for each test across the scoring fixtures; economy measurements use their mean. The combined result can therefore be lower than every individual fixture’s final score. Critical defects reduce the weighted result, followed by the reliability multiplier, before any score cap applies.

The rules behind these numbers: Forge 2.0 requirements, weights and score caps.

The score, step by step

0.7973 tests earned × 0.6000 critical defects × 0.3795 reliability = 0.1815 final score

tests earned = 0.15 × 0.7278 v1 + 0.6882 v2 (out of 0.85)

v1 = 0.88 × 0.7524 tiers L–A + 0.12 × 0.8204 gate × 0.6667 excellence

Critical defects: each class observed multiplies the whole score by 0.60, at most once.

  • b_no_permission_leak × 0.60A hidden issue's data shown to a person who cannot browse it.

Reliability: every tier in the breakdown above, except Excellence, is a group of tests. Each group of tests multiplies the score by 1 − 0.10 × the shortfall of its worst test: by 0.90 when that test fails completely, by 0.95 when it scores 0.5.

  • L Lint and bundles: worst test l_scopes, score 0.75 × 0.9750
  • T Event pipeline: worst test t_reestimate_followed, score 0 × 0.9000

    Already counted in this group: t_out_of_order

  • R Reconcile: worst test r_removals_found, score 0 × 0.9000

    Already counted in this group: r_backfill_complete, r_heal_dropped

  • S Storage: worst test s_entity_index_used, score 0.9931 × 0.9993
  • B Resolvers and permissions: worst test b_comment_adf_as_user, score 0 × 0.9000

    Already counted in this group: b_hidden_count

  • U UI function: worst test u_ledger_sort, score 0 × 0.9000

    Already counted in this group: u_widget_numbers, u_widget_chart, u_ledger_table, u_modal_close, u_not_started, u_widget_live, u_llm_explain

  • A Rovo: worst test a_action_result, score 0 × 0.9000

    Already counted in this group: a_action_permissions

  • R1 Migration: worst test r1_events_during_migration, score 0.9787 × 0.9979
  • R2 Dosing: worst test r2_person_never_quota_refused, score 0 × 0.9000

    Already counted in this group: r2_backfill_complete

  • R3 Time limits: worst test r3_never_killed, score 0.8889 × 0.9889
  • R4 Changing world: worst test r4_sprint_close_final, score 0 × 0.9000

    Already counted in this group: r4_move_new_board, r4_field_switch

  • R7 Custom field: worst test r7_values_fresh, score 0.4844 × 0.9484
  • R9 Boot budget: worst test r9_widget_boot, score 0.6667 × 0.9667

    Already counted in this group: r9_sprint_boot

  • R10 Native JQL: worst test r10_initial_membership, score 0 × 0.9000

    Already counted in this group: r10_precomputation_refresh, r10_shared_permissions, r10_empty_and_closed, r10_invalid_arguments

Priced as a critical defect instead, so no group counts them: b_no_permission_leak.

v1 is this run's score on the tests carried over from Forge 1.0: 15% of the total. v2 is the requirements R1–R10, each at its share of the score: the other 85%. Critical defects multiply the whole score, and so does each group of tests, by 1 − 0.10 × the shortfall of its worst test.

Excellence gate 0.8204: the average of the 18 conditions below, each counted at the value shown. Green is met in full; red is not, and lowers the gate. The 3 excellence tests are paid in proportion to the gate; together they are 1.8% of the total.

t_event_rows 1.00r_heal_dropped 0.50u_widget_numbers 0.25u_ledger_table 0.0168b_comment_adf_as_user 0.00k_consumer_shape 1.00k_current_apis 1.00k_dashboard_widget 1.00k_entity_declared 1.00k_llm_model_current 1.00k_manifest_semantics 1.00k_rovo_mcp 1.00k_rovo_skill 1.00k_runtime_risks 1.00k_widget_edit_bridge 1.00v_console_clean 1.00v_csp_clean 1.00l_lint_warnings 1.00

Earned score 0.1815 · No cap applies · Final score 0.1815

Under a cap the final score is min(earned, cap − 0.05 × (1 − earned)): always below the cap, and closer to it the more the run earned. With no cap it is the earned score. Avoiding a cap adds no points.

scopeChanged(sprintId) is a jira:jqlFunction returning native issue predicates from the ledger. Jira shares its precomputed expansion across users, applies each viewer's browse permissions, and keeps the same cached mapping fresh through the documented precomputation update API after changes and reconciliation. Empty, future and closed sprints, IN and NOT IN, and invalid arguments are checked by running actual native JQL.

r10 manifest

1.00

scopeChanged manifest declares issue IN/NOT IN, required sprintId, and bound function

Fixture 1: 1.0000

scopeChanged manifest declares issue IN/NOT IN, required sprintId, and bound function

Fixture 2: 1.0000

scopeChanged manifest declares issue IN/NOT IN, required sprintId, and bound function

Fixture 3: 1.0000

scopeChanged manifest declares issue IN/NOT IN, required sprintId, and bound function

r10 initial membership

0.00

worst of 3 scoring sites (seed 3aaa6d6b73d37669): 0/24 initial_membership cases correct; initial: missing=['24606', '24692', '24812'], extra=[], invoked=1; cache: missing=['24606', '24692', '24812'], extra=[], invoked=0

Fixture 1: 0.0833

2/24 initial_membership cases correct; initial: missing=['34725', '34731', '34885'], extra=[], invoked=1; cache: missing=['34725', '34731', '34885'], extra=[], invoked=0

Fixture 2: 0.0000

0/24 initial_membership cases correct; initial: missing=['24606', '24692', '24812'], extra=[], invoked=1; cache: missing=['24606', '24692', '24812'], extra=[], invoked=0

Fixture 3: 0.0000

0/24 initial_membership cases correct; initial: missing=['24140', '25151', '26694'], extra=[], invoked=1; cache: missing=['24140', '25151', '26694'], extra=[], invoked=0

r10 precomputation refresh

0.00

worst of 3 scoring sites (seed d031c3ee22136508): 0/24 precomputation_refresh cases correct; refresh: missing=['23782', '24140', '25074'], extra=[], invoked=0; refresh: missing=['23747', '23749', '23750'], extra=['23767'

Fixture 1: 0.0417

1/24 precomputation_refresh cases correct; refresh: missing=['34437', '34725', '34731'], extra=[], invoked=0; refresh: missing=['34100', '34101', '34108'], extra=['34241', '34345', '34355'], invoked=0

Fixture 2: 0.0417

1/24 precomputation_refresh cases correct; refresh: missing=['24806', '24971', '25466'], extra=[], invoked=0; refresh: missing=['24397', '24407', '24413'], extra=['24419', '24547', '24606'], invoked=0

Fixture 3: 0.0000

0/24 precomputation_refresh cases correct; refresh: missing=['23782', '24140', '25074'], extra=[], invoked=0; refresh: missing=['23747', '23749', '23750'], extra=['23767', '23847', '23952'], invoked=0

r10 shared permissions

0.0556

worst of 3 scoring sites (seed d031c3ee22136508): JQL disclosure not observed: 4/72 shared_permissions cases correct; shared-user: missing=['24140', '25151', '26694'], extra=[], invoked=0; shared-user: missing=['24140',

Fixture 1: 0.0972

JQL disclosure not observed: 7/72 shared_permissions cases correct; shared-user: missing=['34725', '34731', '34885'], extra=[], invoked=0; shared-user: missing=['34725', '34731', '35525'], extra=[], invoked=0

Fixture 2: 0.0694

JQL disclosure not observed: 5/72 shared_permissions cases correct; shared-user: missing=['24606', '24692', '24812'], extra=[], invoked=0; shared-user: missing=['24606', '24692', '24812'], extra=[], invoked=0

Fixture 3: 0.0556

JQL disclosure not observed: 4/72 shared_permissions cases correct; shared-user: missing=['24140', '25151', '26694'], extra=[], invoked=0; shared-user: missing=['24140', '25151', '26694'], extra=[], invoked=0

r10 empty and closed

0.50

2/4 empty_and_closed cases correct; empty: missing=['34100', '34101', '34108'], extra=[], invoked=1; closed: missing=['34490', '34874', '35014'], extra=[], invoked=0

Fixture 1: 0.5000

2/4 empty_and_closed cases correct; empty: missing=['34100', '34101', '34108'], extra=[], invoked=1; closed: missing=['34490', '34874', '35014'], extra=[], invoked=0

Fixture 2: 0.5000

2/4 empty_and_closed cases correct; empty: missing=['24397', '24407', '24413'], extra=[], invoked=1; closed: missing=['25036', '25109', '27166'], extra=[], invoked=0

Fixture 3: 0.5000

2/4 empty_and_closed cases correct; empty: missing=['23747', '23749', '23750'], extra=[], invoked=1; closed: missing=['24523'], extra=[], invoked=0

r10 invalid arguments

0.75

3/4 invalid_arguments cases correct; invalid: no explicit refusal or query returned issues

Fixture 1: 0.7500

3/4 invalid_arguments cases correct; invalid: no explicit refusal or query returned issues

Fixture 2: 0.7500

3/4 invalid_arguments cases correct; invalid: no explicit refusal or query returned issues

Fixture 3: 0.7500

3/4 invalid_arguments cases correct; invalid: no explicit refusal or query returned issues

Run notes and corrections

Canonical native verdict summary reports $36.1540217, 301 billed generations and 31136045 prompt / 19652736 cached / 322168 completion tokens. Per-call request and invoice correspondence remains an observation; no independent raw invoice audit is claimed.

Graded browser recording

Loading duration…

Watch the full graded browser recording at its original speed: the dashboard widget, the sprint action, the not-started sprint and the Forge LLM cases, as the scorer drove them on the run's own seed, the first of the three scoring sites. The test results and screenshots on this page provide the wider evidence. Pause or scrub to inspect a view.

The UI Kit admin panel is not in the recording: it is graded from its component tree.

Ready to play0:00 / —:—
Open recording file

Drag the timeline to seek. Keyboard: arrow keys move 5 seconds; Home and End jump to the start and end.

Full graded browser recording: dashboard widget (before configuration, edit and Save, light and dark at 380 px, a second instance at 1180 px), sprint action (light and dark, sort, issue link, select, comment post, double click, forbidden post, explain, close), the not-started sprint and the Forge LLM cases, where the app has each. The UI Kit admin panel is not in the recording.

Screenshots

Pictures from one of the three scoring sites, the one on the run's own seed. The dashboard widget and the sprint action are captured from the built app in a browser during grading. The admin panel picture is drawn by the benchmark from the app's component tree, not by Jira, and nothing is graded from that picture. A test keeps the score of its worst site (the excellence measurements keep their mean), so a test can fail on a site these pictures do not show. A detail that opens "worst of …" names the seed of the site the test scored worst on, which can be the pictured one.

1Dashboard widget · light
2Dashboard widget · dark
3Sprint action · light
4Sprint action · dark
5Admin panel (UI Kit) · light: drawn by the benchmark from the app's component tree, not by Jira.

Run details

Model
x-ai/grok-4.7
Engine events
0
Repair rounds
0
Started
Oct 15, 2026, 03:40 AM
Finished
Oct 15, 2026, 05:40 AM

How the benchmark is scored