Skip to content

LLM accuracy benchmark  |  SEAD-4 rules

DSAIL® Benchmark 3.0
PROVE EVERYTHING

In this LLM accuracy benchmark, we put DSAIL up against the three ways teams usually try to make LLMs reliable: better prompts, retrieval (RAG), and a second model as judge. Across 65 security-clearance rule checks, run five times each, DSAIL got every one right every time. The best alternative got only 78.5%.

100%

Correct on every rule, every trial

78.5%

Best score without DSAIL, across prompts, RAG, and judges

66%

Of LLM errors were confident guesses on open questions

~3 s

Per trial with DSAIL, with zero reasoning tokens

What we tested

65 security-clearance rule checks, five runs each

The rules come from SEAD-4, the federal guidelines for deciding who can hold a security clearance. Each check asks whether one rule holds for one person, based on a short background report. We chose SEAD-4 because every decision has to hold up each time it is checked, and the reports often leave facts open, so a system has to tell a supported answer from a guess.

Example rule

"The subject does not drink habitually or binge drink to the point of impaired judgment."

DSAIL splits it into two questions

Does the report show repeated heavy or binge drinking?True / False / Unknown
Did the drinking impair judgment?True / False / Unknown

Correctness

Right verdict on every run

Consistency

Same verdict on every run

Tokens

How much model output it took

Runtime

Time for a full pass of all 65

Four approaches, same models, same reports

DSAIL

The model answers the narrow questions. Logic decides the verdict. More on DSAIL

Prompting

The model reads the rules and report and decides.

RAG

The model decides from retrieved excerpts.

LLM-as-judge

A second model checks the first one's answers.

Result 1  |  DSAIL vs. prompting

Every model scored higher inside DSAIL

We ran DSAIL and the tuned prompt on the same Claude, GPT, and Gemini models. DSAIL with Opus 5.5 or Sol scored 100% on both metrics. The best plain prompt, Sol with reasoning off, reached 78.5%. DSAIL was fast too: about 3 seconds and 110 to 150 output tokens per trial, with no reasoning tokens.

System under testReasoningConsistencyCorrectnessTokens (reasoning)Runtime
DSAIL, with the named model extracting claims
DSAIL + Claude Opus 5.5Low100%
100%
9,626195 s
DSAIL + GPT 5.6 SolNone100%
100%
5,400128 s
DSAIL + GPT 5.6 TerraNone98.5%
96.9%
3,66988 s
DSAIL + Claude Sonnet 5.5Low100%
95.4%
9,144149 s
DSAIL + Gemini 4 ArgonLow98.5%
92.3%
9,105518 s
DSAIL + Claude Haiku 5.5Low90.8%
85.6%
18,262 (12,517)195 s
Plain prompt with structured output
GPT 5.6 SolNone95.4%
78.5%
4,160136 s
Claude Sonnet 5.5Low90.8%
69.2%
7,97988 s
Claude Sonnet 5.5Medium90.8%
66.2%
7,94693 s
GPT 5.6 SolMedium75.4%
61.5%
19,382 (15,092)295 s
Claude Opus 5.5Low89.2%
60.0%
8,720240 s
GPT 5.6 TerraNone93.8%
58.5%
4,160110 s
Gemini 3.8 FlashLow89.2%
52.3%
6,673154 s
Claude Opus 5.5Medium84.6%
49.2%
25,848 (18,193)334 s
GPT 5.6 TerraMedium58.5%
38.5%
9,596206 s

Five trials per configuration. Correctness counts rules answered correctly in every trial. Consistency counts rules answered the same way in every trial.

More reasoning lowered accuracy

Raising reasoning effort hurt every plain-prompt model. Sol fell from 78.5% to 61.5% and Terra from 58.5% to 38.5%, while tokens and runtime climbed.

Smaller models held up

GPT 5.6 Terra went from 58.5% on its own to 96.9% inside DSAIL, in 88 seconds, the fastest run in the study.

The clearest number in the study

The same model, measured twice. The only change is the question it was asked

At the same setting, Opus 5.5 went from 60% on a plain prompt to 100% inside DSAIL. Sonnet went from 69.2% to 95.4%.

Where plain prompts go wrong

649 of 983 wrong verdicts answered a question the report left open

That's 66% of plain-prompt errors: a confident TRUE or FALSE where the right answer was UNKNOWN. This is how LLM hallucination shows up in rule checks.

Alcohol mitigation rule 3 applies when the subject is in treatment, has no relapse, and is progressing. In one report, the only witness, a classmate, lost contact with the subject after graduation. Nothing covers the present, so the right verdict is UNKNOWN.

GPT 5.6 Sol, plain prompt, five trials

FALSEFALSEUNKNOWNUNKNOWNFALSE

Every call has to decide again whether a lost contact rules out treatment, and the answer flips between runs.

DSAIL + Opus 5.5 or Sol, five trials

UNKNOWNUNKNOWNUNKNOWNUNKNOWNUNKNOWN

The ruleset asks this as its own claim, currently_in_treatment, and the logic returns UNKNOWN every time.

"A source being unaware of treatment does not show there was none."

Guidance written once on the currently_in_treatment claim.

DSAIL with Sonnet first answered FALSE, pointing to counseling the subject finished years earlier. The trace showed the exact claim that went wrong. One line of guidance fixed it for every trial after.

Result 2  |  DSAIL vs. RAG

The best RAG run scored 73.8%, 26 points behind DSAIL

We tested retrieval-augmented generation on Opus 5.5 and Sol, one call per rule. BM25 ranked short report excerpts against each rule, and we varied how many excerpts (k) the model saw, plus a whole-report control.

SystemConsistencyCorrectnessTokens (reasoning)Runtime
DSAIL + GPT 5.6 Sol100%
100%
5,400128 s
DSAIL + Claude Opus 5.5100%
100%
9,626195 s
GPT 5.6 Sol, plain prompt95.4%
78.5%
4,160136 s
GPT 5.6 Sol, best RAG run (k = 3)95.4%
73.8%
4,875161 s
Claude Opus 5.5, best RAG run (k = 5)90.8%
72.3%
13,122 (7,865)350 s
See all 10 RAG runs
ModelReasoningExcerpts (k)ConsistencyCorrectnessTokens (reasoning)Runtime
Claude Opus 5.5Low190.8%
69.2%
9,662 (4,156)326 s
Claude Opus 5.5Low389.2%
69.2%
9,708 (4,343)347 s
Claude Opus 5.5Low590.8%
72.3%
13,122 (7,865)350 s
Claude Opus 5.5Low1087.7%
61.5%
10,503 (5,337)359 s
Claude Opus 5.5LowAll92.3%
66.2%
20,856 (15,690)413 s
GPT 5.6 SolNone192.3%
66.2%
4,875158 s
GPT 5.6 SolNone395.4%
73.8%
4,875161 s
GPT 5.6 SolNone584.6%
69.2%
4,875158 s
GPT 5.6 SolNone1090.8%
69.2%
4,875166 s
GPT 5.6 SolNoneAll89.2%
72.3%
4,875176 s
DSAIL + Opus 5.5 or SolLow / Nonen/a100%
100%
9,626 / 5,400195 s / 128 s

"All" sends the whole report with no retrieval, still one call per rule.

Never beat the plain prompt

Sol's best RAG run got 48 of 65 right. Sol's plain prompt got 51, with half the input tokens.

Missed violations

With one excerpt, Opus caught 40% of the rules that should fail and Sol caught 46%. When retrieval misses the evidence, the model says UNKNOWN.

Slower at every k

Opus RAG runs took 326 to 413 seconds against 240 for its plain prompt. Every configuration ran slower than DSAIL.

Result 3  |  DSAIL vs. LLM-as-judge

A second model judging the first did little or did harm

Each judge saw the original prompt and the proposed verdicts, then kept or replaced each one. As a control, a majority vote of the other four trials stood in for the judge, with no model involved.

Base modelJudgeWhat it testsConsistency (base / judged)Correctness (base / judged)
GPT 5.6 Sol, noneGPT 5.6 Sol, noneSelf-review, strongest model95% / 94%78% / 78%
GPT 5.6 Sol, noneClaude Opus 5.5, lowJudge from another family95% / 88%78% / 62%
GPT 5.6 Sol, noneMajority voteAggregation, no model95% / 97%78% / 78%
Claude Opus 5.5, lowGPT 5.6 Sol, noneOther family, weaker base89% / 85%60% / 63%
Claude Opus 5.5, lowClaude Opus 5.5, mediumSame model, more reasoning89% / 89%60% / 60%
Claude Opus 5.5, lowMajority voteAggregation, no model89% / 100%60% / 65%
DSAIL with either base model100%100%

Self-review changed nothing

Sol reviewing itself changed 6 of 325 cells. Opus reviewing itself changed 12 and spent 410 seconds doing it. Neither score moved.

A judge brings its own bias

Opus judging Sol overrode 46 correct UNKNOWNs with TRUE. Correctness fell from 78% to 62%.

The one gain was small

Sol judging Opus lifted it from 60% to 63%, still 15 points below Sol working alone.

A vote beat every judge

The majority vote matched or beat every LLM judge on both metrics. The judges added 109 to 410 seconds per run.

Methodology

How we ran the benchmark

For how DSAIL turns written rules into checks, read our engineering note.

Models

Claude Opus 5.5, Sonnet 5.5, and Haiku 5.5, GPT 5.6 Sol and Terra, and Gemini 4 Argon and 3.8 Flash, all through OpenRouter's Responses API. Claude 5.5 models don't accept a reasoning effort of none, so their lowest setting was low.

Prompt

Each call held fewer than ten rules for one topic and the full report (three to four paragraphs). This is the exact text:

Your job is to identify whether a report is compliant with the rules listed below.
Each rule should evaluate to TRUE (compliant), UNKNOWN (not enough information to
decide), or FALSE (non-compliant) based on the rule and the content of the report.
Do not skip or omit any rules.

Rules:
{rules}

Report:
{report}

RAG

Reports were split into windows of up to 300 characters with about 50 characters of overlap, indexed with BM25, and queried with each rule's text. Ties went to the earlier window, so any variation across trials came from the model. k = 1, 3, 5, and 10 showed the model 16%, 42%, 62%, and 89% of each report on average.

LLM-as-judge

The judge got the base prompt unchanged, the proposed verdicts, and one instruction: keep each verdict if it is correct, or replace it. No rationale passed between models. Base and judged trials were paired cell for cell.

Limits

The benchmark is small: 9 short synthetic reports, 65 evaluations, five trials each. One rule is worth about 1.5 points, so gaps among RAG settings and judge pairings sit inside the noise. The 14-rule gap between DSAIL and the best alternative is well outside it.

Run it on your rules

Test DSAIL against your own policy

Bring a written policy and the documents it applies to. We'll encode the first ruleset with your team and measure consistency and correctness on your data, in your environment.

Same input, same ruleset, same verdict, with the trace to prove it.

Request API access

Tell us the decision that has to come out the same way every time.

Or write directly: info@jaxon.ai