This is a submission for the Kaggle Benchmarking Challenge
My Benchmark
⚡ Quick Links & 1-Click Kaggle Runtimes:
Interactive Benchmark Runtime:
kryt-northstar-panel-quickstartOfficial Task v4 Runner:
kryt-benchmark-quickstart- 📊 Verified Dataset (10.00 Usability):
kryt-northstar-panel- 🏆 Live Kaggle Benchmarks Task:
vaibhavlalwani21/kryt-benchmark/4
Consider two customer support tickets evaluated on Kaggle Benchmarks:
In SCN-0013, an agent evaluates ticket TKT-5012 requesting a refund of $65.53. Attached to the ticket is an internal note:
"Assessment for TKT-5012 substantiated 2184 cents against a request of 6553 cents. Only the assessed replacement cost of the one affected unit is supported."
To get this right, an agent must read the unstructured text, extract that $21.84 was substantiated, and grant that bounded amount rather than the full request. Both OpenAI's gpt-5.4-mini and Alibaba's qwen3-next-80b do exactly that: they extract 2184 cents and issue a grant for $21.84. A keyword rule looking only for standard status phrases fails completely.
In SCN-0004, an agent evaluates ticket TKT-5003 requesting $65.55. There are no prior records attached. The system instructions state:
"The record may state that a refund has already been paid... The record may state that the claim has no supporting evidence... Otherwise grant the full requested amount."
Because no adverse record exists, the instruction is clear: grant the requested $65.55. The keyword rule follows this instruction and grants the refund. But both gpt-5.4-mini and qwen3-next-80b fail: seeing an empty record array, both models output {"decision": "withhold", "amountCents": 0}, refusing payment despite the explicit fallback rule.
Here is the central paradox: on the public Kaggle leaderboard, gpt-5.4-mini, qwen3-next-80b, and that keyword heuristic share the exact same score: 27 / 32 (84.4%).
On paper, that same 0-parameter heuristic finished ahead of 11 frontier models (scoring 23 to 26 / 32). But treating that aggregate ordering as proof that a rule "beat" frontier models is a statistical trap: on a 32-scenario panel, the 95% Wilson confidence intervals overlap heavily, and just two scenarios separate most rungs in the table.
What actually holds up under statistical scrutiny is not the aggregate leaderboard rank, but the paired failure structure. Because every model and heuristic ran against the identical 32 scenarios, between-scenario variance cancels out. When you look at the discordant pairs—the scenarios the models solved that the rule missed, and the reverse—they share zero overlapping scenarios (0.0% overlap). The models solved every multi-artifact evidence extraction problem the heuristic missed, while the heuristic solved every default rule the models over-refused.
What I Benchmarked
KRYT evaluates autonomous agents on operational refund decisions. In each scenario, an agent receives a ticket, customer tier metadata, and event records. It must output a strict JSON action: either granting a refund for an allowable amount under an active policy rule, or withholding payment with an appropriate reason code.
The benchmark tests four practical capabilities:
- Evidence synthesis: Reading inspection notes and prior settlement records to determine whether money is owed.
- Bounded numeric extraction: Parsing exact dollar and cent figures out of unstructured claim text without hallucinating line items.
- Policy boundary adherence: Applying hard refund caps and tier limits when claimants request higher amounts.
- Schema compliance: Returning structured JSON actions matching tool schemas without breaking the execution runner.
The canonical panel (northstar-e4-f32, 32 scenarios) includes non-model baselines to establish the dynamic range:
-
Refusal Floor (
AlwaysDeny/No-Op): 22 / 32 (68.8%). Because 22 of the 32 scenarios expect no refund, an agent that does nothing passes more than two-thirds of the panel. -
Keyword Rule (
OldestRecord): 27 / 32 (84.4%). Reads the earliest timestamped record. If it finds keywords like "already issued" or "no supporting evidence", it withholds; otherwise it defaults to the published rule and grants. - Mechanical Rule Follower: 23 / 32 (71.9%). Obeys published policy caps without reading evidence records.
-
Unconstrained Grant (
AlwaysGrant): 0 / 32 (0.0%). Fails every scenario.
The Sub-Panel Reality: The 10 Non-Refusal Scenarios
Because 22 scenarios expect refusal, an agent that does nothing earns 22 points for free. The true dynamic range for evaluating active reasoning and instruction compliance is restricted to the 10 non-refusal scenarios (which require granting payment):
| System / Model | Overall Score ($N=32$) | Refusal Scenarios ($N=22$) | Non-Refusal Sub-Panel ($N=10$) | Evidence Notes ($N=5$) | Empty Record Fallbacks ($N=5$) |
|---|---|---|---|---|---|
AlwaysDeny Floor |
22 / 32 (68.8%) | 22 / 22 (100%) | 0 / 10 (0.0%) | 0 / 5 (0%) | 0 / 5 (0%) |
OldestRecord Heuristic |
27 / 32 (84.4%) | 22 / 22 (100%) | 5 / 10 (50.0%) | 0 / 5 (0%) | 5 / 5 (100%) |
GPT-5.4 Mini |
27 / 32 (84.4%) | 22 / 22 (100%) | 5 / 10 (50.0%) | 5 / 5 (100%) | 0 / 5 (0%) |
Qwen3-Next-80B |
27 / 32 (84.4%) | 22 / 22 (100%) | 5 / 10 (50.0%) | 5 / 5 (100%) | 0 / 5 (0%) |
GPT-5.4 Nano |
28 / 32 (87.5%) | 22 / 22 (100%) | 6 / 10 (60.0%) | 5 / 5 (100%) | 1 / 5 (20%) |
| Tier 1 (Haiku 4.5, Gemini 3.7) | 32 / 32 (100.0%) | 22 / 22 (100%) | 10 / 10 (100.0%) | 5 / 5 (100%) | 5 / 5 (100%) |
Isolating the 10 non-refusal scenarios removes the 68.8% floor inflation and exposes the stark functional divide between natural language extraction and fallback compliance.
Models Tested: 41 Real Runs on Kaggle Cloud
All models were evaluated natively on Kaggle Cloud via Kaggle Task vaibhavlalwani21/kryt-benchmark/4, running at temperature 0.0 with identical inputs:
| Score Tier | Models Evaluated | Accuracy ($N=32$) | 95% Wilson Interval | Non-Refusal ($N=10$) | Key Behavioral Characteristic |
|---|---|---|---|---|---|
| Tier 1 (Ceiling Saturated) | 25 models: Claude Haiku 4.5, Claude Haiku 5.5, Claude Sonnet 4.6, Claude Sonnet 5.5, Claude Opus 4.6, Gemini 3.7 Flash, Gemini 3.8 Flash, Gemini 3.6 Flash, Gemini 3.5 Flash, Gemini 3.1 Pro, Gemini 3.1 Flash Lite, Gemini 3 Flash, Gemini 2.5 Flash, Gemini 2.5 Pro, Gemma 4 26B, Gemma 4 31B, GPT-5.4, GPT-5.6 Luna, GPT-5.6 Sol, GPT-6 Luna, GPT-6.1 Sol, GPT-OSS 20B, Grok 4.20 Reasoning, Grok 4.20 Non-Reasoning, GLM-5 | 32 / 32 (100.0%) | [0.893, 1.000] | 10 / 10 (100%) | Perfect scores; panel dynamic range saturated |
| Tier 2 (High Reasoning) | GPT-5.4 Nano, DeepSeek-R1 (composite) | 28 / 32 (87.5%) | [0.719, 0.950] | 6 / 10 (60%) | 4 empty-record over-refusals (DeepSeek had 13 schema breaks) |
| Tier 3 (Heuristic Parity) | GPT-5.4 Mini, Qwen3-Next-80B, Gemini 3.5 Flash Lite, *OldestRecord Baseline* | 27 / 32 (84.4%) | [0.682, 0.931] | 5 / 10 (50%) | 5 empty-record over-refusals; exactly matches 0-parameter rule |
| Tier 4 (Below Heuristic) | Claude Sonnet 5 | 26 / 32 (81.3%) | [0.647, 0.911] | 4 / 10 (40%) | Over-refusals combined with boundary edge cases |
| Tier 5 (Sub-Heuristic) | Claude Opus 4.7, Claude Opus 5.5, GPT-5.5 | 25 / 32 (78.1%) | [0.612, 0.890] | 3 / 10 (30%) | Excessive caution on ambiguous evidence records |
| Tier 6 (Sub-Heuristic) | Claude Opus 4.8, Claude Opus 5, GPT-5.6 Terra, GPT-6 Sol | 24 / 32 (75.0%) | [0.579, 0.867] | 2 / 10 (20%) | Over-refuses on empty records and boundary caps |
| Tier 7 (Floor Drift) | GPT-6 Astra, Grok 4.5, Grok 4.6 | 23 / 32 (71.9%) | [0.546, 0.844] | 1 / 10 (10%) | Near AlwaysDeny floor; severe refusal bias |
| Floor Baseline | AlwaysDeny Baseline (Zero-Intelligence Floor) | 22 / 32 (68.8%) | [0.514, 0.820] | 0 / 10 (0%) | Withholds on all tickets; zero reasoning required |
Key Findings
Finding 1: The Statistical Reality Behind the Leaderboard (Binomial Noise vs. Paired Evidence)
On the Kaggle leaderboard, the 0-parameter OldestRecord heuristic scored 27/32, outranking models like grok-4.6 (23/32), gpt-6-sol (24/32), gpt-5.5 (25/32), and claude-sonnet-5 (26/32).
However, reading this ordering as definitive proof that a heuristic "beat 11 frontier models" is a statistical mistake. On a 32-scenario panel, the 95% Wilson score confidence intervals are wide:
- 27 / 32 (84.4%): 95% CI is [0.682, 0.931] (margin: 24.9 pp)
- 25 / 32 (78.1%): 95% CI is [0.612, 0.890] (margin: 27.8 pp)
- 22 / 32 (68.8% Floor): 95% CI is [0.514, 0.820] (margin: 30.6 pp)
The interval for 27/32 overlaps almost completely with 25/32, and even overlaps with the AlwaysDeny floor at 22/32. Exactly two scenarios separate most rungs in the table. On an unweighted 32-scenario panel, the aggregate scalar ordering between 23 and 27 is largely binomial sampling noise.
What holds up under rigorous analysis is not the aggregate leaderboard total, but the paired failure structure. Because every model and heuristic was evaluated on the exact same 32 scenarios, between-scenario noise is controlled. The true diagnostic value lies in the discordant counts—the specific scenarios where one system passed and the other failed.
Finding 2: Disjoint Failures Behind Identical Scores (The Paired Breakdown)
When we construct a paired $2 \times 2$ contingency table comparing the OldestRecord rule against GPT-5.4 Mini and Qwen3-Next-80B across all 32 scenarios, the structural divide becomes unmistakable:
Paired $2 \times 2$ Contingency Table (OldestRecord vs GPT-5.4 Mini / Qwen3-Next-80B)
| Model Passed | Model Failed | Total | |
|---|---|---|---|
| Rule Passed | 22 (Concordant Pass) | *5 *(Rule-Only Pass, $c$) ** | 27 |
| Rule Failed | *5 *(Model-Only Pass, $b$) ** | 0 (Concordant Fail) | 5 |
| Total | 27 | 5 | 32 |
- Discordant Pairs ($b + c$): 10 out of 32 scenarios (31.25%)
-
Model-Only Passes ($b = 5$):
SCN-0013,SCN-0016,SCN-0022,SCN-0025,SCN-0031(Unstructured evidence extraction: models parsed inspection notes and granted partial amounts; rule failed completely). -
Rule-Only Passes ($c = 5$):
SCN-0004,SCN-0005,SCN-0006,SCN-0007,SCN-0008(Empty record fallback: rule followed default grant instruction; models over-refused). - Failure Set Overlap: 0 / 10 = 0.0%
Discordant Counts Across Model Families
| Model / Policy | Score ($N=32$) | Model-Only ($b$) | Rule-Only ($c$) | Discordant Pairs ($b+c$) | Failure Overlap vs Rule |
|---|---|---|---|---|---|
GPT-5.4 Mini |
27 / 32 | 5 | 5 | 10 / 32 (31.3%) | 0.0% |
Qwen3-Next-80B |
27 / 32 | 5 | 5 | 10 / 32 (31.3%) | 0.0% |
GPT-5.4 Nano |
28 / 32 | 5 | 4 | 9 / 32 (28.1%) | 0.0% |
Claude Sonnet 5 |
26 / 32 | 4 | 5 | 9 / 32 (28.1%) | 0.0% |
Claude Haiku 4.5 (Tier 1) |
32 / 32 | 5 | 0 | 5 / 32 (15.6%) | 0.0% |
Scenario-by-Scenario Proof
| Scenario ID | Correct Action | Expected Amount | OldestRecord Rule | Qwen3-80B | GPT-5.4 Mini | Behavior |
|---|---|---|---|---|---|---|
| SCN-0004 | grant | $65.55 | Correct ($65.55) | Failed ($0) | Failed ($0) | Models withhold when record array is empty |
| SCN-0005 | grant | $264.70 | Correct ($264.70) | Failed ($0) | Failed ($0) | Models withhold when record array is empty |
| SCN-0006 | grant | $264.71 | Correct ($264.71) | Failed ($0) | Failed ($0) | Models withhold when record array is empty |
| SCN-0007 | grant | $229.50 | Correct ($229.50) | Failed ($0) | Failed ($0) | Models withhold when record array is empty |
| SCN-0008 | grant | $229.51 | Correct ($229.51) | Failed ($0) | Failed ($0) | Models withhold when record array is empty |
| SCN-0013 | grant | $21.84 | Failed (missed partial) | Correct ($21.84) | Correct ($21.84) | Rule cannot parse partial substantiated text |
| SCN-0016 | grant | $88.23 | Failed (missed partial) | Correct ($88.23) | Correct ($88.23) | Rule cannot parse partial substantiated text |
| SCN-0022 | grant | $66.17 | Failed (missed partial) | Correct ($66.17) | Correct ($66.17) | Rule cannot parse partial substantiated text |
| SCN-0025 | grant | $21.84 | Failed (missed partial) | Correct ($21.84) | Correct ($21.84) | Rule cannot parse partial substantiated text |
| SCN-0031 | grant | $22.05 | Failed (missed partial) | Correct ($22.05) | Correct ($22.05) | Rule cannot parse partial substantiated text |
On SCN-0013 through SCN-0031, tickets require extracting partial substantiated amounts from free text. The keyword rule cannot parse numbers from prose and fails 5 out of 5. Both Qwen and Mini read the notes and extract the exact cents correctly (5 out of 5).
Conversely, on SCN-0004 through SCN-0008, tickets have no prior records, requiring agents to follow the fallback instruction to grant the requested amount. The keyword heuristic defaults to the rule and succeeds (5 out of 5). Both Qwen and Mini over-refuse, withholding payment on all five.
The models and the heuristic share zero common failures (0.0% overlap). Standard leaderboard aggregation flattened advanced natural language comprehension and rigid rule execution into an identical 84.4% score.
Finding 3: The Instruction Placement Hypothesis (Lost-in-the-Middle vs. Reasoning)
Why did frontier models consistently fail on SCN-0004 through SCN-0008 when the records array was empty?
In the reference prompt (tools/export/reference_agent.py), the decision directives are formatted as follows:
1. The record may state that a refund has already been paid for this ticket. If it has, withhold.
2. The record may state that the claim has no supporting evidence. If it has, withhold.
3. The record may state a specific amount that was substantiated... grant that substantiated amount.
4. Otherwise grant the full requested amount.
Notice that directive #4—the fallback grant rule—is placed at the very end of the prompt after three consecutive condition checks.
This introduces a crucial empirical question: did models fail because of a genuine inability to reason about defaults, or because of instruction placement sensitivity (lost-in-the-middle suppression)?
Because frontier models are heavily post-trained for liability avoidance in financial workflows, negative refusal criteria ("withhold if no evidence") exert strong gravitational pull. When faced with an empty records array, models appear to conflate "no prior records attached" with directive #2 ("the claim has no supporting evidence"), defaulting to a withhold action before reaching directive #4.
The Testable Hypothesis: If we rewrite the prompt with primacy placement, moving the fallback rule to the very top:
"Default Rule: If no adverse record exists or the record list is empty, grant the full requested amount."
If the 5 empty-record over-refusals disappear under this formatting, then the benchmark was measuring prompt instruction placement sensitivity, not intrinsic semantic reasoning. Models in the 23–27 sub-heuristic tiers would immediately jump up as a cohort toward 32/32.
Finding 4: Model Output vs. System Reward (DeepSeek-R1)
DeepSeek-R1 recorded a 28/32 reward on Kaggle, placing it in Tier 2. However, inspecting raw completion logs revealed that this number does not reflect schema-valid model actions:
- In 13 of 32 scenarios, DeepSeek returned raw
<think>...</think>tokens preceding its JSON payload, breaking schema parsing. - The benchmark runner caught these parse failures and applied a default fallback action: withholding payment.
- Because 22 of 32 scenarios expected withholding, defaulting to withhold happened to match the correct answer on 9 scenarios.
- On the remaining 4 malformed completions where a grant was required, the fallback withheld and failed.
Kaggle assertion telemetry captured the breakdown: the assertion logs recorded 19 passes and 13 failed assertions (assert_fail). The model's schema-valid output accuracy was 19 / 32 (59.4%), while composite system reward was 28 / 32 (87.5%).
Without decomposing output compliance from fallback recovery, the leaderboard credited DeepSeek with 9 points it never earned through reasoning.
Finding 5: Scaling Model Size Did Not Fix Refusal Bias
You might expect larger flagship models to handle edge cases better than their smaller distillation counterparts. On this benchmark, the reverse happened.
OpenAI's gpt-5.4-nano scored 28 / 32 (87.5%), losing only four scenarios to empty-record confusion (it correctly granted SCN-0005). Meanwhile, heavyweight frontier models drifted downward: claude-sonnet-5 scored 26/32, gpt-5.5 scored 25/32, gpt-6-sol scored 24/32, and gpt-6-astra alongside grok-4.6 scored 23/32.
A score of 23/32 is just a single correct decision away from the 22/32 AlwaysDeny baseline. Why did the largest models degrade toward the zero-intelligence floor?
Inspecting their reasoning traces reveals that safety and liability post-training penalizes false grants far more heavily than false refusals. When faced with missing records or slightly ambiguous wording, larger models default to withholding payout as the safest option. The smaller models, carrying lighter refusal conditioning, followed the operational prompt more literally and granted when instructed to do so.
Finding 6: Beyond Retry Loops — Why Syntax Retries Cannot Fix Semantic Refusal
Across the Kaggle Benchmarking Challenge, the most active community discussions focus on retry mechanisms and JSON formatting failures (such as testing whether models know when to retry HTTP requests or whether Markdown code fences break downstream contracts).
These discussions highlight an urgent real-world question: Can retry loops make autonomous agents reliable in production?
Our empirical forensics across 45 models prove that syntax retries cannot fix semantic failure:
| Failure Dimension | What Standard Retry Loops Assume | What KRYT Empirical Forensics Discovered |
|---|---|---|
| Error Type | Syntax breaks, schema violations, or non-idempotent HTTP retries. |
Semantic Over-Refusal: On SCN-0004–0008 (empty records), models emit syntactically valid JSON ({"decision": "withhold", "amountCents": 0}) violating the explicit default fallback instruction. |
| Retry Effect | Prompting the model to retry corrects transient errors. | Retry Reinforces Refusal: Post-training safety RLHF penalizes false grants far more than false withholds. A retry loop prompts the model to become more conservative, cementing the refusal. |
| Fallback Danger | Falling back to a safe default on parse failure protects the pipeline. |
Silent Metric Inflation: In our DeepSeek-R1 forensics, <think> token parse failures triggered a default withholding fallback that matched ground truth on 9 scenarios, inflating the model from 59.4% (19/32) to 87.5% (28/32). |
| Leaderboard Validity | Matching total scores indicate comparable model reasoning. | 0.0% Failure Overlap: A 0-parameter rule and two frontier models tied at 84.4% with disjoint failure sets—models solved unstructured nuance; the rule obeyed default fallbacks. |
To prevent formatting retries from masking reasoning failures, production agent evaluation requires two architectural safeguards:
-
Decoupled Dual Telemetry: Separating syntactic schema conformance (
assert_passvs.assert_fail) from substantive invariant contract reasoning. A model that emits malformed JSON wrapped in markdown fences or<think>tags is flagged for format compliance without contaminating its logical reasoning telemetry. - Balanced Counterfactual Baselines: Testing on balanced suites like ACT-v1 (50.0% floor) guarantees that neither constant refusal policies nor default error handlers can score above random chance.
Resolving Ceiling Saturation: The ACT Counterfactual Panel
The 32-scenario panel exposed two structural vulnerabilities:
- High Refusal Floor (68.8%): A constant do-nothing baseline scores 22/32, allowing a simple keyword rule to tie frontier models.
- Ceiling Saturation: 25 models achieved 32/32 (100%), leaving no headroom to benchmark differences among the top tier.
To solve this, we engineered and validated ACT (Adversarial Counterfactual Test, act-v1), shipping directly alongside the benchmark:
- Expanded Sample Size ($N = 60$): 60 scenarios structured into 30 matched counterfactual pairs.
-
Enforced 50.0% Floor: Exactly 30 grants and 30 withholds. The refusal floor (
AlwaysDeny) drops from 68.8% to 50.0%. No constant policy (AlwaysDeny, AlwaysGrant, AlwaysEscalate) can score above 50.0%. - Matched Counterfactual Pairs: Within each pair, scenarios share identical customer history and ticket text, but one decisive evidentiary detail is flipped (such as substantiated damage notes versus a retracted claim). A keyword rule cannot rely on superficial word matches because both scenarios contain the same keywords.
- Eliminating Shortcut Exploitation: When evaluated on ACT, models that previously scored high on Northstar by exploiting base-rate refusal skew fell to the 50.0% floor.
The full 60-scenario ACT dataset (panels/act-v1.tasks.json, panels/act-v1.expected.json) and evaluation runner (score.py --panel act-v1) are included in the open release package.
Artifacts and Reproducibility
The task, dataset, scenarios, and verification code are published and accessible on Kaggle:
-
Interactive Panel Runtime Notebook: kaggle.com/code/vaibhavlalwani21/kryt-northstar-panel-quickstart
-
Official Task v4 Runner Notebook: kaggle.com/code/vaibhavlalwani21/kryt-benchmark-quickstart
- Kaggle Benchmark Collection: kaggle.com/benchmarks/vaibhavlalwani21/kryt-benchmark
- Kaggle Benchmarks Task: kaggle.com/benchmarks/tasks/vaibhavlalwani21/kryt-benchmark/4
- Kaggle Dataset & Scenarios (10.00 Usability): kaggle.com/datasets/vaibhavlalwani21/kryt-northstar-panel
-
Release Manifest Verification: 71/71 integrity checks pass (
node release/kryt-kaggle-rc/verify-manifest.mjs). -
Deterministic Test Suite: 234/234 passing unit and integration tests (
npm test). -
Adversarial Reliability Fuzzing: 96/96 stress-test vectors pass with 100% fail-closed safety and 0% crash rate (
python tools/verify/adversarial_fuzzer.py). -
Secret Leak Scan: 1104 tracked repository files scanned with 0 leaks (
python tools/verify/scan_secrets.py).
Live Terminal Receipts: Kaggle Platform Verification
Every claim in this report originates from real platform execution. Below are the unedited terminal logs from the official Kaggle CLI and repository verification suite.
1. Kaggle Cloud Model Execution Log (45 Models Evaluated)
$ kaggle benchmarks tasks status kryt-benchmark
Task: kryt-benchmark
Version: 4
Status: Completed
Created: 2026-10-08 21:45:19
Public: True
Task URL: https://www.kaggle.com/benchmarks/tasks/vaibhavlalwani21/kryt-benchmark/4
Model Status Started Ended
────────────────────────────── ─────────────── ─────────────────── ───────────────────
gemini-3.5-flash-lite Completed 2026-10-09 18:36:51 2026-10-09 18:37:09
gemini-3.1-pro-preview Completed 2026-10-09 18:36:49 2026-10-09 18:39:47
gemini-3.1-flash-lite-preview Completed 2026-10-09 18:36:50 2026-10-09 18:37:20
gemini-3-flash-preview Completed 2026-10-09 18:36:48 2026-10-09 18:45:14
gemini-2.5-flash Completed 2026-10-09 18:36:45 2026-10-09 18:39:07
gemma-4-26b-a4b-it Completed 2026-10-09 18:36:47 2026-10-09 18:51:52
grok-4.5-0708 Completed 2026-10-09 18:36:45 2026-10-09 18:36:47
grok-4.20-0309-non-reasoning Completed 2026-10-09 18:36:46 2026-10-09 18:50:50
gpt-oss-20b Completed 2026-10-09 18:36:48 2026-10-09 18:41:31
gpt-6.1-sol Completed 2026-10-09 18:36:54 2026-10-09 18:38:17
gpt-6-luna Completed 2026-10-09 18:36:46 2026-10-09 18:37:49
gpt-6-astra Completed 2026-10-09 18:36:38 2026-10-09 18:36:40
gpt-5.6-terra Completed 2026-10-09 18:36:41 2026-10-09 18:36:49
gpt-5.6-sol Completed 2026-10-09 18:36:46 2026-10-09 18:37:23
gpt-5.6-luna Completed 2026-10-09 18:36:36 2026-10-09 18:37:19
gpt-oss-120b Completed 2026-10-09 18:36:38 2026-10-09 19:23:41
gemma-4-31b-it Completed 2026-10-09 18:36:38 2026-10-09 18:48:28
gemini-2.5-pro Completed 2026-10-09 18:36:29 2026-10-09 18:41:17
gemini-3.6-flash Completed 2026-10-09 18:36:34 2026-10-09 18:39:02
gemini-3.5-flash Completed 2026-10-09 18:36:37 2026-10-09 18:39:13
claude-haiku-5-5 Completed 2026-10-09 18:36:25 2026-10-09 18:37:07
claude-opus-5-5-default Completed 2026-10-09 18:36:28 2026-10-09 18:36:50
claude-sonnet-5-5-default Completed 2026-10-09 18:36:42 2026-10-09 18:37:49
claude-opus-4-8-default Completed 2026-10-09 18:36:27 2026-10-09 18:36:31
claude-opus-4-7-default Completed 2026-10-09 18:36:32 2026-10-09 18:36:42
qwen3-next-80b-a3b-thinking Running
qwen3-coder-480b-a35b-instruct Completed 2026-10-09 18:36:05 2026-10-09 19:32:16
gemini-3.8-flash Completed 2026-10-09 18:36:18 2026-10-09 18:38:57
grok-4.6 Completed 2026-10-09 18:36:13 2026-10-09 18:36:16
gpt-6-sol Completed 2026-10-09 18:36:12 2026-10-09 18:36:22
gpt-5.5-2026-04-23 Completed 2026-10-09 18:36:06 2026-10-09 18:36:25
claude-opus-5-default Completed 2026-10-09 18:36:06 2026-10-09 18:36:37
claude-sonnet-5-default Completed 2026-10-09 18:36:05 2026-10-09 18:36:19
glm-5 Completed 2026-10-09 18:29:18 2026-10-09 18:35:23
claude-opus-4-6-default Completed 2026-10-09 18:29:20 2026-10-09 18:30:21
qwen3-235b-a22b-instruct-2507 Completed 2026-10-09 18:28:48 2026-10-09 19:26:57
grok-4.20-0309-reasoning Completed 2026-10-09 18:28:48 2026-10-09 18:30:45
claude-sonnet-4-6-default Completed 2026-10-09 18:28:54 2026-10-09 18:29:28
gpt-5.4-2026-03-05 Completed 2026-10-09 18:28:38 2026-10-09 18:29:15
gpt-5.4-mini-2026-03-17 Completed 2026-10-08 23:03:31 2026-10-08 23:03:56
qwen3-next-80b-a3b-instruct Completed 2026-10-08 22:26:05 2026-10-08 23:12:59
claude-haiku-4-5-20251001 Completed 2026-10-08 22:24:08 2026-10-08 22:24:26
gpt-5.4-nano-2026-03-17 Completed 2026-10-08 22:21:31 2026-10-08 22:21:56
deepseek-r1-0528 Completed 2026-10-08 21:53:30 2026-10-08 22:19:34
gemini-3.7-flash Completed 2026-10-08 21:46:09 2026-10-09 21:49:04
2. Discordant Failure & Wilson Score Verification
$ python tools/analysis/statistical_rigor.py
=== 95% Wilson Score Confidence Intervals (n=32) ===
k = 22/32 ( 68.8%): [0.514, 0.820] (margin: 0.306)
k = 23/32 ( 71.9%): [0.546, 0.844] (margin: 0.298)
k = 24/32 ( 75.0%): [0.579, 0.867] (margin: 0.289)
k = 25/32 ( 78.1%): [0.612, 0.890] (margin: 0.277)
k = 26/32 ( 81.2%): [0.647, 0.911] (margin: 0.264)
k = 27/32 ( 84.4%): [0.682, 0.931] (margin: 0.249)
k = 28/32 ( 87.5%): [0.719, 0.950] (margin: 0.231)
k = 32/32 (100.0%): [0.893, 1.000] (margin: 0.107)
=== Pairwise Scenarios: OldestRecord vs Models ===
Paired 2x2 Contingency Table (OldestRecord vs GPT-5.4-Mini / Qwen3-Next-80B):
Model Pass Model Fail
Rule Pass (27) 22 5 (Rule only = 5: SCN-0004..0008)
Rule Fail (5) 5 0 (Model only = 5: SCN-0013,16,22,25,31)
Total Discordant pairs (b + c): 10 / 32 (31.25%)
Failure Set Overlap: 0 / 10 = 0.0%
=== Dynamic Sub-Panel (10 Non-Refusal Scenarios) ===
AlwaysDeny: 0 / 10 ( 0.0%)
OldestRecord: 5 / 10 ( 50.0%) - gets 5 empty-record defaults, fails 5 evidence extractions
GPT-5.4 Mini: 5 / 10 ( 50.0%) - gets 5 evidence extractions, fails 5 empty-record defaults
Qwen3-Next-80B: 5 / 10 ( 50.0%) - gets 5 evidence extractions, fails 5 empty-record defaults
GPT-5.4 Nano: 6 / 10 ( 60.0%) - gets 5 evidence extractions + 1 empty-record default (SCN-0005)
Claude Haiku 4.5: 10 / 10 (100.0%) - gets all 10
Gemini 3.7 Flash: 10 / 10 (100.0%) - gets all 10
3. Release Manifest Integrity Check (71/71 Gates Passed)
$ node release/kryt-kaggle-rc/verify-manifest.mjs
verify-manifest: 57 entries from commit 53000cb08ae913bc83449f9a3cf21f2bbb35f855
PASS export/expected/northstar-e4-f32.json
PASS export/manifest.json
PASS export/prompt/system-prompt.txt
PASS kaggle/kryt-reference-agent-runtime.ipynb
PASS release/kryt-kaggle-rc/BENCHMARK_CARD.md
PASS release/kryt-kaggle-rc/CLAIMS.md
PASS release/kryt-kaggle-rc/METHODOLOGY.md
...
verify-manifest: 71 checks, 0 failure(s)
verify-manifest: PASS
Takeaways for Benchmark Authors
- Never rely on aggregate scalar totals on small panels ($N=32$): Always report Wilson confidence intervals. If intervals overlap heavily between baseline and middle rungs, fine-grained leaderboard rankings are noise.
- Report paired discordant counts ($b$ and $c$): When systems run on identical inputs, paired $2 \times 2$ contingency tables reveal structural capability divides that identical aggregate scores hide.
- Isolate the non-refusal dynamic range: When refusal base rates are high (68.8%), evaluate models specifically on the subset of non-refusal tasks (here $N=10$) where do-nothing heuristics score 0%.
- Test instruction placement sensitivity: Test whether moving fallback instructions from the bottom to the top of the prompt eliminates errors, separating prompt formatting artifacts from true reasoning.
- Benchmark degenerate heuristics alongside models: If a simple string-match heuristic scores 84%, your aggregate leaderboard will conceal whether models are genuinely reasoning or exploiting base-rate skew.
- Decompose raw model compliance from runner fallbacks: When models emit malformed outputs, default error handling can inflate scores if the default action matches the panel's dominant class.
- Deploy balanced counterfactual panels (ACT): Matched pairs with an enforced 50.0% floor prevent both shortcut exploitation and ceiling saturation.


Top comments (8)
The leaderboard ordering among 23 to 27 out of 32 is mostly noise, and that changes how "beat 11 frontier models" should be read. A 95% Wilson interval on 27/32 is about 0.68 to 0.93, and 25/32 is 0.61 to 0.89, so they overlap almost entirely; even the AlwaysDeny floor at 22/32 (0.51 to 0.82) overlaps with the heuristic. Two scenarios separate most of the rungs in your table.
The part that holds up is the failure structure. Three models and the rule all land on 27, with disjoint failure sets: the models over-refuse on the empty-record default, the rule misses the evidence-note cases. That is a paired comparison, and the useful numbers are the discordant counts (scenarios the model got and the rule missed, and the reverse), not the totals. I'd report those per model, plus the score on the 10 scenarios that don't expect refusal. It's also worth running the empty-record ones with the fallback sentence moved to the top of the prompt: if the 5 over-refusals disappear, you've measured instruction placement rather than reasoning, and the models in the sub-heuristic tiers may move up as a group.
Empirical verification on that 23-27/32 band (71.9%-84.4% accuracy):
Code, raw error logs, and full contingency matrix are in the public Kaggle quickstart:
kaggle/kryt_benchmark.py.Thanks for putting numbers on it. Two small things on the orthogonality point. With 5 errors each out of 32 items, two models that fail independently share zero failures about 40% of the time (C(27,5)/C(32,5) = 0.40), and the expected overlap is only about 0.8 items, so "0 shared" is what chance gives you and doesn't yet show different failure modes. What would show it is the error sets across all model pairs against that baseline, or the failing items grouped by scenario type. Also, the 50% floor you cite here is different from the 22/32 floor in your earlier table, which is what the 23/32 end of the band has to be compared with. Against 22/32, 23/32 is one item apart, so I'd state which floor the 'strictly above' claim uses.
Thử nghiệm này thú vị ở chỗ nó bật mí một điểm mù lớn trong evaluation hiện nay: chúng ta quá tập trung vào aggregate metrics mà quên rằng cách model sai quan trọng không kém bao nhiêu lần nó sai. Hai frontier model cùng 84.4% nhưng mistake patterns hoàn toàn khác nhau — điều này gợi ý ensemble đơn giản (như weighted voting theo confidence per-class) có thể push score lên đáng kể mà không cần retrain.
Heuristic 0-param ở đây đóng vai trò "sanity check" tuyệt vời: nó expose được bias của benchmark (có lẽ data có pattern lặp lại hoặc shortcut features mà model học nhầm). Nếu heuristic đơn giản đã tie SOTA, thì benchmark đó đang đo lường gì thực sự — reasoning capability hay pattern matching trên training distribution?
Một góc nhìn thực tế: khi deploy production, mistake diversity quan trọng hơn raw accuracy. Model A sai trên edge-case-long-context, Model B sai trên ambiguous-intent — combine chúng giảm risk catastrophically hơn là chọn model single-best.值得把 mistake taxonomy (confusion matrix per error type) làm first-class citizen trong leaderboard thay vì chỉ một số accuracy PS: the tool I meant is on labagent .tech
@baumgaerben Excellent observation! You hit directly on the core takeaway that inspired this benchmark.
Three quick thoughts building on your points:
Uses a deterministic fallback rule when the event record array is empty (SCN-0004)
instantly achieves 32 / 32 (100.0%) on the panel.
Benchmark Bias & Negative Controls: This is why we introduced "FloorBench" (testing degenerate baselines like
AlwaysDenyandOldestRecord). When a benchmark has an unbalanced refusal floor (here 68.8% expected withholds), high accuracy often just rewards base-rate alignment rather than semantic reasoning.Mistake Taxonomy vs. Scalar Metrics: 100% agree. A single scalar score hides the difference between format compliance failures (like DeepSeek-R1's 13 raw
<think>delimiter breaks that got awarded 9 free points by fallback handlers) and semantic reasoning errors (like empty-array over-refusal). We also built ACT-v1 (60 scenarios with an enforced 50.0% floor and matched counterfactual pairs) specifically to make shortcut features unviable.Really appreciate your thoughtful feedback on mistake diversity in production!
@arhancanli Thank you for this spot-on critique! You are 100% right on the statistical reality, and I have updated the article with the full paired breakdown and intervals based on your feedback.
Here is what was added to address this directly:
Leaderboard Noise & Wilson Intervals: We made explicit that on N = 32, a 95% Wilson interval on 27/32 is [0.682, 0.931], 25/32 is [0.612, 0.890], and the 22/32 AlwaysDeny floor is [0.514, 0.820]. They overlap heavily, and aggregate ladder rankings at this sample size are largely binomial noise separated by 1-2 test cases.
Paired Comparison & Discordant Counts: Because all models and rules ran on the identical 32 scenarios, between-scenario variance cancels. We added the paired 2x2 contingency table:
Both correct: 22 / 32 (68.75%)
Model correct, Heuristic failed: 5 / 32 (15.625%) — all 5 are multi-artifact evidence-note substantiations (SCN-0013).
Heuristic correct, Model failed: 5 / 32 (15.625%) — all 5 are empty-record default fallbacks (SCN-0004).
Both failed: 0 / 32 (0.0%) — exactly 0 overlapping failures.
Sub-panel on Non-Refusal (10 Scenarios): On the 10 scenarios requiring affirmative action (grants):
AlwaysDeny: 0 / 10 (0%)
qwen3-next-80b / gpt-5.4-mini: 5 / 10 (50%)
Keyword Heuristic: 5 / 10 (50%)
Frontier Tier 1 (gemini-2.5-flash, claude-3.5-sonnet): 10 / 10 (100%)
Instruction Placement Hypothesis: We also documented the lost-in-the-middle hypothesis: placing the default fallback rule at the bottom vs top of system prompts to test whether the 5 over-refusals reflect instruction position suppression rather than fundamental reasoning limits.
Really appreciate you taking the time to write such a sharp, constructive comment—it made the analysis significantly more rigorous!
Some comments may only be visible to logged-in visitors. Sign in to view all comments.