Skip to content

ITLab Bench 02.5: 10 AI models across 49 real-world cases

ITLab Bench 02.5: 10 local and paid AI models on 49 real work cases. Weighted ranking, best model per series and practical guidance for businesses.

Eight local AI models and two paid ones worked through the same set of real tasks. A local model, running on a single consumer graphics card, tops the overall score; the best paid model finishes second, two points behind.

  • A statistical tie at the top. Swift Flash Next IQ3_S scores 94.6, followed by Claude Haiku 5.5 (92.6), Qwen 3.8 Flash Next SC117 IQ2_XS (92.5) and Swift SC117 IQ3_XXS (89.1). First and fourth are 5.5 points apart, and second and third just 0.1: with one run per case, those gaps don't separate anyone.
  • The best model for office work is local. Swift 27B IQ3_S passed more checks than any other model in analysis and office work (49 of 54; 90.7), one more than Claude Haiku 5.5 and Qwen 3.8 Flash Next SC117 IQ3_XXS.
  • Paying doesn't buy you the top spot. The two paid models finished second and ninth. What splits the field most is the Rust and Rails software project: five models complete it fully and five don't.

What the ITLab Bench is

The ITLab Bench is ITLab's in-house test for evaluating AI models on real office, development and analysis work. This article uses ITLab Bench, version 02.5, the current version of the instrument: a single test that keeps being refined and serves as the baseline for every new model we measure. Earlier studies, such as Swift 27B versus two Flash Next models, belong to a previous testing stage and are not mixed with these figures.

We measured 10 models on 49 cases each, with a single final run per model and case. The eight local models ran on one 16 GiB consumer graphics card, in quantized (compressed) builds so they would fit in its memory, at temperature 1.0 with reasoning set to medium. The two paid models, Claude Haiku 5.5 and GPT-6 Luna, were called with each provider's native settings.

Why it matters: a local model can work through contracts, spreadsheets or source code without that data ever leaving the organization. The question this bench answers is how much you give up, if anything, by working that way on hardware a mid-sized Chilean company can actually afford.

The cases fall into six series that count toward the total:

  • N, analysis and office work (35%): 10 exercises with three cases each (a, b and c) and one with a single case; 31 cases in all.
  • C, programming (20%): 3 Rust exercises checked by automated tests.
  • M, software project (20%): 2 projects combining Rust and Rails.
  • A, agentic (10%): 1 exercise with simulated tools, over three episodes.
  • Vision (10%): 1 test of 31 questions about images and 1 photographed-receipt exercise with three cases.
  • L, reading (5%): 1 table-reading exercise.

Three more exercises (N13, N14 and M08) are run and reported separately, but don't count toward the total because they only check part of the task. GPT-OSS 20B doesn't accept images, so it sits out the Vision series: it doesn't get a zero; its total is calculated over the other five series instead.

How the score works

In series C, M, A, Vision and L, the score is built from the bottom up with the weights set by the test's authors, on four levels: check, case, exercise and series. At every level, what matters more in real work weighs more. Series N is the exception: there, every check counts the same (point 6).

  1. Checks. Each case is graded by several automated checks (is the total added up correctly? does it cite the source? does it pass the test?). Each check has a weight within its exercise, set by what it measures and how much damage that mistake would do in a real office. Each check also carries a label: critical, important or normal.
  2. Critical failures. If a critical check fails, the case scores 0, even if everything else is right. Examples of critical checks: inventing a month that isn't in the data, counting the same receipt twice, letting a code injection through, or making a false legal statement.
  3. Format gates. Some checks only verify that the answer is usable: that it can be parsed, that it has the requested structure, or that the code compiles. These gates add no points, but if one fails, everything that depends on it scores 0.
  4. Checks not run. If a model's mistake prevents a check from running (for example, the code doesn't compile so the tests never execute), that check scores 0: it follows from the model's error, not from an omission by the grader.
  5. Cases and exercises. An exercise's score is the average of its cases a, b and c.
  6. Series N, by checks passed. In N, every check counts the same: the score is the number of checks passed divided by 54, times 100. There are no per-exercise or per-check weights, no partial credit, and a critical failure doesn't void the case. An exercise with more checks weighs more simply because it has more of them. Format gates add no points, and checks not run or indeterminate count toward the total as not passed.
  7. Exercises within the series. In series C, M and Vision, each exercise carries the weight set by the authors (the tables for each series, below, show it); A and L have a single exercise.
  8. Series in the total. The series weigh N 35%, C 20%, M 20%, A 10%, Vision 10% and L 5%, based on the work that matters most to ITLab.

Three exercises use partial credit per check, with no pass threshold: reading (L01), the 31-question vision test (V01) and the agentic exercise (A01). In them, each check contributes its share even if others fail.

A minimal example in N. If an office exercise has 4 checks and the model passes 3, those 3 passes and the 4 checks are added to the rest of the series; the N score is the total passed over the series' 54 checks.

Transparency. The test's authors set the weights already knowing the results of this round. So that isn't a blank check, every weight is justified by what the check measures and what its error costs, and we also publish the ranking with all weights equal (the "Equal weights" column in the overall ranking). The weights are recorded in a file whose SHA256 fingerprint starts with `e0669dcfc517`¹; any change to the weights changes that fingerprint.

The series weights are ITLab's call, not a universal truth. An organization that mostly uses AI to read documents or to write code can reweight them and will get a different order.

Overall ranking

Rank Model Type Total (bench weights) Total with equal weights (rank)
1 Swift Flash Next IQ3_S Local 94.6 92.7 (1)
2 Claude Haiku 5.5 Paid 92.6 90.4 (4)
3 Qwen 3.8 Flash Next SC117 IQ2_XS Local 92.5 91.3 (3)
4 Swift SC117 IQ3_XXS Local 89.1 91.6 (2)
5 Swift 27B IQ3_S Local 85.9 84.8 (5)
6 Qwen 3.8 Flash Next SC117 IQ3_XXS Local 82.7 80.2 (8)
7 Qwen3.8-27B-GSQ-RCO IQ3_S Local 82.5 82.7 (7)
8 Gemma 26B Local 81.2 83.1 (6)
9 GPT-6 Luna Paid 74.9 77.0 (9)
10 GPT-OSS 20B Local 68.5 (no Vision, over five series) 66.5 (10)

The top four are 5.5 points apart, and second and third 0.1: with one run per case, that's a statistical tie. All four tie on programming, the software project, vision and reading; what separates them is office work and the agentic series, where Claude Haiku 5.5 and Swift SC117 IQ3_XXS score 72.3 and 76.0, against 99.3 for the best. There are 3.2 points between fourth and fifth, driven by the software project, though Swift 27B IQ3_S wins some of it back with its lead in office work: none of the models from fifth place down, except GPT-6 Luna, completed it fully.

With equal weights the same four models stay on top, and first, third, fifth, seventh, ninth and tenth stay put. Claude Haiku 5.5 drops from second to fourth and Swift SC117 IQ3_XXS climbs from fourth to second; Gemma 26B climbs from eighth to sixth, because with equal weights its many partial successes on the calculator project count for more, and Qwen 3.8 Flash Next SC117 IQ3_XXS drops from sixth to eighth.

Some names look alike but are different models. The Flash Next variants differ by quantization, shown in the name; Swift 27B IQ3_S is a separate model from Swift Flash Next IQ3_S.

Results by series

Each series gets its own table, ranked from best to worst; models with the same score share a rank. "Checks passed" counts the substantive checks fully passed in the series, excluding format gates; in N it is also the basis of the score. With a single run per case, gaps of one or two points are noise.

N: analysis and office work (35% of the total)

Tests whether a model handles office tasks on real material and answers only with what the material says. It's the series closest to a company's daily work: office documents, business, customer service, legal support, systems maintenance and a small application. In N, every check counts the same: the score is the percentage of the 54 checks passed, and an exercise with more checks weighs more simply because it has more of them.

Exercise What it measures
N01 Sales totals and cleanup from Excel; spotting missing months and sheets that contradict each other.
N03 Extracting active, revoked and uncertain commitments from an email thread.
N04 Quotes, deadlines and penalties with amounts in pesos, VAT and discounts; flagging deadline conflicts.
N05 Completing a small Rails inventory app that passes a hidden suite and its own tests.
N06 Analyzing a PowerPoint deck: figures per slide, contradictions and unreadable slides.
N07 Backup and restore script for Linux, PowerShell and macOS with awkward file names (a single case).
N08 Triage of security scanner findings against the logs: classify, cite evidence and propose allowed actions.
N09 Replying to public reviews without promising what the policy doesn't allow or exposing personal data.
N10 Answering legal questions using only the attached official material, citing it and stating certainty.
N11 Explaining to a non-technical person, with correct calculations and correcting a false premise.
N12 Structured minutes from a transcript: agreements, disagreements and what can't be confirmed.
Rank Model Type Series score Checks passed Critical failures
1 Swift 27B IQ3_S Local 90.7 49 of 54 1
2 Claude Haiku 5.5 Paid 88.9 48 of 54 1
2 Qwen 3.8 Flash Next SC117 IQ3_XXS Local 88.9 48 of 54 1
4 Swift Flash Next IQ3_S Local 87.0 47 of 54 1
5 Qwen 3.8 Flash Next SC117 IQ2_XS Local 81.5 44 of 54 2
5 Qwen3.8-27B-GSQ-RCO IQ3_S Local 81.5 44 of 54 2
7 Swift SC117 IQ3_XXS Local 77.8 42 of 54 2
8 GPT-6 Luna Paid 75.9 41 of 54 2
9 GPT-OSS 20B Local 74.1 40 of 54 3
10 Gemma 26B Local 70.4 38 of 54 2

The "Critical failures" column counts the cases in which a check labeled critical by the test's authors failed; it is for information only and doesn't change the N score.

Swift 27B IQ3_S leads with one check more than Claude Haiku 5.5 and Qwen 3.8 Flash Next SC117 IQ3_XXS, and two more than Swift Flash Next IQ3_S: the four sit within 3.7 points, a margin a single run can't order with confidence. Fifth through last are six checks apart; Gemma 26B finishes last, with 38 of 54.

C: programming (20% of the total)

Tests whether the model's Rust code passes automated tests it never sees. Useful for choosing a coding assistant, including for secure coding.

Exercise Weight in series What it measures
C01 30% Distributing the width of a wide table (public and hidden tests).
C02 40% Cleaning user text without losing content or letting dangerous markup through.
C03 30% Porting a Ruby function to Rust with exact parity.
Rank Model Type Series score Checks passed
1 Swift Flash Next IQ3_S Local 100 34 of 34
1 Qwen 3.8 Flash Next SC117 IQ2_XS Local 100 34 of 34
1 Swift SC117 IQ3_XXS Local 100 34 of 34
1 Claude Haiku 5.5 Paid 100 34 of 34
1 Swift 27B IQ3_S Local 100 34 of 34
1 Qwen3.8-27B-GSQ-RCO IQ3_S Local 100 34 of 34
1 Gemma 26B Local 100 34 of 34
8 Qwen 3.8 Flash Next SC117 IQ3_XXS Local 87.1 25 of 34
9 GPT-OSS 20B Local 60.0 24 of 34
10 GPT-6 Luna Paid 44.3 13 of 34

Seven models solve all three exercises without errors. GPT-6 Luna, one of the two paid models, finishes last in this series.

M: software project (20% of the total)

Tests whether a model can carry a full two-language project, in Rust and Rails, whose parts have to fit together and pass tests. Useful for choosing a model for multi-part projects, not just standalone functions.

Exercise Weight in series What it measures
M09 50% Installment engine in Rust wired to a Rails console.
M10 50% Scientific calculator from scratch (Rust engine, Rails console).
Rank Model Type Series score Checks passed
1 Swift Flash Next IQ3_S Local 100 83 of 83
1 Qwen 3.8 Flash Next SC117 IQ2_XS Local 100 83 of 83
1 Swift SC117 IQ3_XXS Local 100 83 of 83
1 Claude Haiku 5.5 Paid 100 83 of 83
1 GPT-6 Luna Paid 100 83 of 83
6 Gemma 26B Local 73.8 69 of 83
7 Swift 27B IQ3_S Local 50.0 12 of 83
7 Qwen3.8-27B-GSQ-RCO IQ3_S Local 50.0 12 of 83
7 Qwen 3.8 Flash Next SC117 IQ3_XXS Local 50.0 12 of 83
7 GPT-OSS 20B Local 50.0 12 of 83

This is the series that splits the field most. Everyone solves the installment engine (M09); the difference is the calculator (M10). Gemma 26B gets nearly all of the calculator engine right but doesn't reach the Rails console or the end-to-end tests; the bottom four score no checks on it.

A: agentic (10% of the total)

Tests whether the model uses tools in the right order and completes the task across three episodes: diagnosing an incident, computing a total from several sources and deploying in line with a policy. Useful for choosing a model that operates tools on its own. It's a single exercise (A01) with partial credit: in each episode, the delivered result weighs 70, economy of steps 15 and protocol (well-formed turns) 15.

Rank Model Type Series score Checks passed
1 Swift Flash Next IQ3_S Local 99.3 8 of 9
1 Swift 27B IQ3_S Local 99.3 8 of 9
1 Qwen3.8-27B-GSQ-RCO IQ3_S Local 99.3 8 of 9
1 Qwen 3.8 Flash Next SC117 IQ3_XXS Local 99.3 8 of 9
5 Qwen 3.8 Flash Next SC117 IQ2_XS Local 97.7 7 of 9
6 Gemma 26B Local 96.0 7 of 9
7 GPT-OSS 20B Local 90.7 4 of 9
8 Swift SC117 IQ3_XXS Local 76.0 7 of 9
9 GPT-6 Luna Paid 75.3 7 of 9
10 Claude Haiku 5.5 Paid 72.3 7 of 9

Four models sit at 99.3, the highest score reached: none got to 100 because all of them used more steps than needed in the first episode (the optimum is four), and the process criterion gives partial credit. Checks passed don't follow the same order as the score, because they don't all weigh the same: the delivered result is worth 70 and the process and the protocol 15 each, with partial credit. That is why GPT-OSS 20B, with 4 of 9 fully passed, sits at 90.7, and Claude Haiku 5.5, with 7 of 9, at 72.3: it failed one of the heaviest checks. With a single exercise and one pass, read it as a trend, not a verdict.

Vision (10% of the total)

Covers reading images and photographed documents. Useful for choosing a model that reads receipts, document photos, charts or screens.

Exercise Weight in series What it measures
V01 50% 31 questions about 11 images with text, objects, scenes and charts (breadth).
N02 Expense reports: reading photographed receipts (number, date, amount), spotting duplicates and what isn't a valid receipt (accuracy).
Rank Model Type Series score Checks passed Critical failures
1 Swift Flash Next IQ3_S Local 92.5 42 of 43 0
1 Qwen 3.8 Flash Next SC117 IQ2_XS Local 92.5 42 of 43 0
1 Swift SC117 IQ3_XXS Local 92.5 42 of 43 0
1 Claude Haiku 5.5 Paid 92.5 42 of 43 0
1 Swift 27B IQ3_S Local 92.5 42 of 43 0
1 Qwen3.8-27B-GSQ-RCO IQ3_S Local 92.5 42 of 43 0
1 Qwen 3.8 Flash Next SC117 IQ3_XXS Local 92.5 42 of 43 0
8 GPT-6 Luna Paid 74.2 39 of 43 1
9 Gemma 26B Local 72.6 38 of 43 1
— GPT-OSS 20B Local Not supported — —

Critical failures: cases in this series voided by a critical failure. GPT-OSS 20B does not take part.

Seven models tie: they get all 31 image questions right and miss the document reading on the same receipt case. GPT-6 Luna and Gemma 26B miss further checks and drop about 20 points. GPT-OSS 20B doesn't accept images: it has no vision score, isn't penalized, and its total is calculated over the other five series.

L: reading (5% of the total)

Tests whether the model accurately extracts the data from a set of tables and answers questions about it. Useful for choosing a model that reads reports, listings or org charts. It's a single exercise (L01) with partial credit: extracted data weighs 60 and answers 40.

Exercise Weight in series What it measures
L01 100% Reading a 5-table org chart and answering 12 questions.
Rank Model Type Series score Checks passed
1 Swift Flash Next IQ3_S Local 100 195 of 195
1 Qwen 3.8 Flash Next SC117 IQ2_XS Local 100 195 of 195
1 Swift SC117 IQ3_XXS Local 100 195 of 195
1 Claude Haiku 5.5 Paid 100 195 of 195
1 Swift 27B IQ3_S Local 100 195 of 195
1 Qwen 3.8 Flash Next SC117 IQ3_XXS Local 100 195 of 195
1 Gemma 26B Local 100 195 of 195
8 Qwen3.8-27B-GSQ-RCO IQ3_S Local 96.7 194 of 195
9 GPT-OSS 20B Local 93.3 193 of 195
10 GPT-6 Luna Paid 90.0 192 of 195

Seven models get everything right. The other three miss one to three checks, all of them questions, which weigh more than a single cell. This series barely tells models apart, which is why it carries the lowest weight.

For information only: N13, N14 and M08

These three exercises are run and scored under the same rules, but they don't count toward their series or the total, because they only check part of the task. N13 measures translation into Chilean Spanish while keeping figures, register and ambiguities; N14, rewriting a customer message in a formal tone without changing facts, amounts or degree of certainty; M08, a web admin interface, of which we only measure that it follows the brief's security rules and integrates into the repository.

Rank Model Type N13 N14 M08 Average Total time (min:s)
1 Claude Haiku 5.5 Paid 100 98.0 100 99.3 2:52
2 Swift SC117 IQ3_XXS Local 66.7 100 100 88.9 4:52
3 Swift 27B IQ3_S Local 66.7 100 100 88.9 6:22
4 Swift Flash Next IQ3_S Local 66.7 100 100 88.9 6:46
5 Gemma 26B Local 66.7 100 100 88.9 7:07
6 Qwen 3.8 Flash Next SC117 IQ2_XS Local 66.7 100 100 88.9 13:06
7 GPT-6 Luna Paid 66.7 66.7 100 77.8 0:35
8 GPT-OSS 20B Local 33.3 100 100 77.8 1:56
9 Qwen3.8-27B-GSQ-RCO IQ3_S Local 66.7 66.7 100 77.8 7:18
10 Qwen 3.8 Flash Next SC117 IQ3_XXS Local 66.7 100 0 55.6 6:20

They are ordered from the model that solves the three best to the one that solves them worst, by the average of the three; ties go to the model that solved them faster. Time is the sum of inference time over the seven cases (three of N13, three of N14 and M08).

Which model for which job

  • Balanced general use: Swift Flash Next IQ3_S, first overall, with top marks in programming, the software project and reading, and among the best in agentic and vision. Claude Haiku 5.5, Qwen 3.8 Flash Next SC117 IQ2_XS and Swift SC117 IQ3_XXS are in a statistical tie with it.
  • Office work and analysis (N): Swift 27B IQ3_S, with the most checks passed, although Claude Haiku 5.5, Qwen 3.8 Flash Next SC117 IQ3_XXS and Swift Flash Next IQ3_S are one or two checks behind. Note that it didn't solve the calculator in the software project, so it isn't the best pick if you also need multi-part software projects.
  • Rust programming (C): seven models with no errors; any of them will do.
  • Multi-part Rust and Rails projects (M): the five that completed it fully: three local (Swift Flash Next IQ3_S, Qwen 3.8 Flash Next SC117 IQ2_XS and Swift SC117 IQ3_XXS) and both paid models.
  • Agentic (A): four models reach 99.3 and three sit between 72.3 and 76.0; since it's a single exercise, the gap between them isn't conclusive.
  • Vision and reading: seven models tie at the top of each; these series have few exercises and shouldn't decide the choice on their own.
  • Systems maintenance: currently covered by N07 (a single case), N08 and partly A01. That isn't enough to recommend a model; a dedicated exercise is planned.

Failure patterns

The same mistakes show up in local and paid models alike:

  • Output format. Broken data structures, or fields with the wrong data type, that an automated integration can't consume.
  • Figures. Monthly totals that are slightly off, near-duplicate rows handled incorrectly, or months added that don't exist in the source.
  • Unsafe reading of ambiguity. Faced with a contradictory requirement, several models chose the interpretation that allowed an invalid state instead of blocking it.
  • Security finding classification. The most common miss was labeling a finding as real, or as a false positive, when the evidence was insufficient to decide.
  • Minutes and traceability. Agreements that weren't in the transcript, and inaudible or cut-off audio that went unreported.
  • Photographed document numbers. Reference numbers read with extra or missing digits.

Speed, time and tokens

These tables use the final passes of each model's 49 cases, the ones behind its score. When a case was rerun, only the final valid pass counts. Time is inference time (how long the model takes to respond), excluding loading and grading; in the agentic case it is the sum across turns. GPT-OSS 20B totals 45 cases because it doesn't accept images and didn't run the four vision cases.

Tokens generated

A token is the unit of text a model works with, on average a bit less than a word. Output tokens are everything the model writes when it answers; for models that reason, they normally include the reasoning done before answering. More tokens means more text or more reasoning, not a better answer. For a local model they are time and energy; for a paid service, cost. The table runs from the model that generated the most to the one that generated the least.

Model Type Cases Output tokens Average per case
Qwen 3.8 Flash Next SC117 IQ2_XS Local 49 344,117 7,023
Gemma 26B Local 49 321,057 6,552
Claude Haiku 5.5 Paid 49 277,780 5,669
Swift SC117 IQ3_XXS Local 49 207,099 4,227
Qwen3.8-27B-GSQ-RCO IQ3_S Local 49 199,410 4,070
Qwen 3.8 Flash Next SC117 IQ3_XXS Local 49 192,729 3,933
Swift Flash Next IQ3_S Local 49 192,293 3,924
Swift 27B IQ3_S Local 49 183,442 3,744
GPT-OSS 20B Local 45 116,633 2,592
GPT-6 Luna Paid 49 22,661 462

Tokens follow each engine's or provider's own accounting and don't compare work across tokenizers. For paid services, that accounting may not include all internal reasoning, so their figures are not equivalent to the local models'.

Response times

The table runs from fastest to slowest by total time.

Model Type Cases Total response time Average per case
GPT-6 Luna Paid 49 0:04:51 5.9 s
GPT-OSS 20B Local 45 0:12:58 17.3 s
Claude Haiku 5.5 Paid 49 0:21:23 26.2 s
Qwen 3.8 Flash Next SC117 IQ3_XXS Local 49 0:50:58 62.4 s
Swift SC117 IQ3_XXS Local 49 0:51:33 63.1 s
Gemma 26B Local 49 0:52:21 64.1 s
Swift Flash Next IQ3_S Local 49 0:53:58 66.1 s
Swift 27B IQ3_S Local 49 0:56:11 68.8 s
Qwen3.8-27B-GSQ-RCO IQ3_S Local 49 1:01:36 75.4 s
Qwen 3.8 Flash Next SC117 IQ2_XS Local 49 1:16:26 93.6 s

Paid-service times include the network and the provider's queue, so they aren't comparable with the local models, which ran on a single consumer graphics card. We publish them because the total time of a full battery is also a practical figure for anyone choosing.

Reading and generation speed (local models)

The table runs from the model that reads fastest to the one that reads slowest.

Model Reading (tok/s) Generation (tok/s)
GPT-OSS 20B 4,658.3 153.5
Qwen 3.8 Flash Next SC117 IQ2_XS 1,055.4 82.7
Swift SC117 IQ3_XXS 943.1 78.2
Qwen 3.8 Flash Next SC117 IQ3_XXS 915.7 73.7
Swift Flash Next IQ3_S 844.9 69.3
Gemma 26B 499.4 110.6
Qwen3.8-27B-GSQ-RCO IQ3_S 292.9 61.5
Swift 27B IQ3_S 280.7 62.7

These are consolidated speeds: the engine counters across all final passes are added up (tokens processed or generated over the corresponding time), without averaging averages. Reading is the speed at which the model processes the prompt, and generation is the speed at which it writes the answer. Paid services (Claude Haiku 5.5 and GPT-6 Luna) don't provide these counters, so they are not in this table; their times and tokens are in the two tables above.

More speed doesn't mean better answers: the fastest model at generation, GPT-OSS 20B, finishes last overall.

ITLab's take

This is ITLab's professional judgment based on our own measurements; it is not a certification or a buying recommendation.

  1. Choose by type of work, not by rank. For analysis involving figures, sources and policy, Swift 27B IQ3_S was the most reliable; for multi-part software projects, pick a model from the group that fully completed the Rust and Rails project.
  2. Take local seriously. First, third and fourth are local models, on a single consumer graphics card, without data leaving the organization; the best paid model, in second, is in a statistical tie with them.
  3. Don't assume paying guarantees quality. The two paid services we measured finished second and ninth.
  4. Always validate the format before using structured data generated by a model.
  5. Keep a human in the loop for figures, regulations, security and any text that commits you to something with a customer.
  6. Test with your own cases and, if your use differs from ours, reweight the series before deciding.

Limitations and scope

  • One run per model and case. A difference of one or two cases can be noise; there's no statistical significance and no universal winner.
  • Weights set with knowledge of the results. In C, M, A, Vision and L, the test's authors defined the weights after seeing this round. That's why every weight is justified by what it measures and we publish the equal-weights ranking, which leaves the same group at the top.
  • Series weights set by ITLab. The total depends on what each series is worth; the mix of units across series makes that choice unavoidable.
  • Few substantive checks in series N. Several office exercises are decided by one or two checks per case; refining them is a pending improvement to the bench.
  • Human review pending for N10 and N13. Their results come from automated verification only.
  • Single-exercise series. Reading and agentic each rest on one exercise, so their scores swing more.
  • Memory ceiling. Local models ran in compressed builds to fit a 16 GiB card; that ceiling determines which version of each model can be measured.
  • Reasoning. Reasoning modes aren't equivalent across model families and are not compared with each other.
  • Paid versus local. Paid-service times and tokens aren't comparable with local ones, and we can't certify which weights sit behind a paid service's name.

Frequently asked questions

Can a local model replace a paid one? Largely, yes. In this round, first place went to a local model and third place sits 0.1 points behind the best paid model, and the top model for office work was also local. We still recommend human review and testing with your own cases.

How are checks and exercises weighted? In series N, every check counts the same: the score is the percentage of checks passed. In the other series, each check has a weight within the exercise based on what it measures and the damage its error would cause, and if a critical check fails, the case scores 0; in addition, each exercise carries the weight set by the authors, and each series has a weight in the total. How long a model takes has no effect on the score.

Do the weights decide the ranking? No. With all weights equal, the top four are still the same four models; Claude Haiku 5.5 and Swift SC117 IQ3_XXS swap places (second and fourth), as do Gemma 26B and Qwen 3.8 Flash Next SC117 IQ3_XXS (sixth and eighth).

Why doesn't GPT-OSS 20B have a vision score? Because it doesn't accept images. It isn't penalized; its total is calculated over the other five series.

Can I use different series weights? Yes. The weights reflect ITLab's needs; an organization with a different use case can reweight them and get a different order.

What happens with new models? They'll be evaluated with ITLab Bench, version 02.5, and the same weights, so their results are comparable with the ones in this article.

Contact

If your organization is considering local AI with limited resources, ITLab can help you choose a model for your type of work and design tests built on your real cases. Contact us.


¹ SHA256 of the weights file: `e0669dcfc5172b8b8526ab8f3e6f264686ca79c7d5bbcff44f85fec38dddd92a`.

The ITLab Bench is a living instrument that we keep refining. The conclusions reflect ITLab's judgment based on its own measurements.

Do you need someone to take care of your technology?

Tell us what you need to organize, protect or solve. The first conversation has no cost: we assess whether our model fits you and what the next steps would be.

Let's talk about your business