Spaces:
Running
Running
File size: 10,022 Bytes
41bb633 29719c7 ad3b1a7 41bb633 ad3b1a7 e64646f 5b43ed7 ad3b1a7 e64646f ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 e64646f 4b06a83 e64646f ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 e64646f ad3b1a7 e64646f ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 e64646f ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 e64646f ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 5b43ed7 ad3b1a7 e64646f 4b06a83 ad3b1a7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 | ---
license: mit
title: AI Stupid Level
sdk: static
colorFrom: green
colorTo: green
short_description: Continuous, independent evaluation of production LLMs
---
# AI Stupid Level (ASL)
[](https://aistupidlevel.info)
[](https://aistupidlevel.info/methodology)
[](https://aistupidlevel.info/api-docs)
[](https://www.linkedin.com/company/asl-aistupidlevel-info)
[](https://x.com/aistupidlevel)
**Continuous, independent evaluation of the language models people actually ship on.**
We re-measure a fixed fleet of production models several times a day, on the same tasks,
through the vendors' own APIs β and publish when their behaviour changes. The question we
exist to answer is not "which model is best on a leaderboard" but **"is the model you
deployed last month still the model you are calling today?"**
**Website:** [aistupidlevel.info](https://aistupidlevel.info) Β· **Operated by:** Studio Platforms (Romania)
---
## What is measured
**18 models across 6 providers**, re-measured continuously:
| Provider | Models |
|---|---|
| OpenAI | gpt-5.5, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-6-astra |
| Anthropic | claude-opus-5, claude-opus-4-8, claude-opus-4-6, claude-sonnet-5, claude-sonnet-4-6, claude-fable-5-1 |
| Google | gemini-3.8-flash, gemini-3.5-flash-lite |
| DeepSeek | deepseek-v4-pro, deepseek-v4-flash |
| Moonshot AI | kimi-k3, kimi-k2.7-code |
| Zhipu AI | glm-5.2 |
The fleet changes as vendors ship and retire models. Retired models keep their history β
nothing is deleted, because a comparable past is the entire point.
---
## The measurement suites
Five suites run on independent schedules. Each has its own tasks, its own axes and its own
drift baseline. **They are never blended into a single number without saying so.**
### Coding β every 4 hours
7 Python tasks, **7 trials each**. Six of the seven are repository-repair tasks: the model
is given a real codebase and a bug report, and graded on whether it fixed the actual defect
or silenced the symptom it was shown. Scored on 9 axes: correctness, stability, edge cases,
debugging, code quality, efficiency, format, safety, complexity.
### Tool calling β daily
9 sandboxed agent tasks (3 easy, 3 medium, 3 hard) covering file operations, multi-step
workflows and tool chaining. Scored on 7 axes: task completion, tool selection, parameter
accuracy, efficiency, error handling, context awareness, safety compliance.
### Deep reasoning β daily
4 multi-turn tasks that run to completion rather than a single exchange: IDE assistance,
specification following, document memory, project refactoring. Scored on 6 axes:
correctness, memory retention, plan coherence, context window handling, debugging,
stability.
### Canary β hourly
2 tasks, 2 trials, deliberately small. A fast probe whose only job is to notice change
between the heavier runs.
### Calibration and known-unknowns β every 6 hours
Does the model know what it does not know? Each model is asked questions from a stratified
corpus; some have a verifiable answer, some have none β a library function that does not
exist, a real company with an attribute it cannot have, a fact it has no way to observe.
Declining the second group is the correct behaviour and is scored as such. Reported per
model: **fabrication rate**, accuracy, abstention rate, **expected calibration error**, and
over/under-confidence.
These figures are published separately and never enter the composite score. Being well
calibrated does not make a model better at coding, and blending the two would make both
numbers mean less.
---
## Drift detection
A leaderboard tells you where a model stands today. Drift detection tells you when it moved.
- **Page-Hinkley change detection**, run **per suite** on that suite's own daily series β
coding, tool use and reasoning are never blended, because each has a different scale and
noise floor.
- A suite needs **10 measured days** on its current benchmark configuration before it may
fire. The statistic is visible from day one, but a reading during warm-up is an early
indication, not a verdict.
- **Any scoring or corpus change mints a new configuration id** and resets the baseline.
Scores either side of such a change are not comparable and are not compared.
- **Task-level regressions** are detected separately, from execution records rather than
composite scores. A single task collapsing is close to invisible in a composite β it
moves the overall score by less than the alert threshold β so it is reported on its own.
---
## How the numbers are kept honest
This is the part we would want to read first about someone else's benchmark.
- **A provider that is not answering is skipped, not scored.** A dead API key or an outage
must never be published as a model getting worse.
- **Refusals are recorded, not imputed.** If a model declines a task, that task drops out
and the run is marked partial. A refusal is not a zero.
- **A missing suite drops out and the remaining weights are renormalised.** No suite is
ever backfilled with a placeholder value.
- **Provenance is labelled.** Where a figure is not backed by a live measurement, the
interface says so rather than presenting it as one.
- **Every task grades only what was asked.** Hidden requirements that were never stated in
the prompt are not graded.
- **Ranks close together are statistical ties** and are presented as such, with confidence
intervals rather than false precision.
The full methodology, including the scoring weights and the task design, is published at
[aistupidlevel.info/methodology](https://aistupidlevel.info/methodology).
---
## Smart router
An OpenAI-compatible endpoint that picks the model for each request from current benchmark
results instead of a hard-coded name.
```bash
curl -X POST https://aistupidlevel.info/v1/chat/completions \
-H "Authorization: Bearer aism_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"model": "auto-coding",
"messages": [{"role": "user", "content": "Write a binary search in Python"}]
}'
```
**Eight strategies:** `auto` (best overall), `auto-coding`, `auto-reasoning`,
`auto-creative`, `auto-tooling`, `auto-agentic`, `auto-cheapest`, `auto-fastest`.
**You bring your own provider keys.** They are encrypted at rest with AES-256-GCM, and the
providers bill you directly β we never resell tokens or mark them up. A provider outage
falls through to the next best model rather than failing your request. Works as a drop-in
replacement in tools that accept an OpenAI base URL, such as Cline, Continue and Cursor.
---
## Data API
Programmatic access to scores, rankings, history, drift signals and incidents, at
`https://aistupidlevel.info/api/v1` with `asl_` keys.
| Tier | Requests / day | Requests / minute |
|---|---|---|
| Free | 10 | 1 |
| Pro | 10,000 | 60 |
| Teams | 100,000 | 300 |
| Enterprise | 250,000 | 1,000 |
The free tier is an evaluation allowance β enough to build against, not to run on.
Documentation: [aistupidlevel.info/api-docs](https://aistupidlevel.info/api-docs).
---
## Who this is for
- **Teams running models in production** β know within hours when a model you depend on
starts behaving differently, instead of finding out from your users.
- **Researchers** β a public methodology, published per-task results, and history that
survives corpus changes because configuration boundaries are recorded rather than
smoothed over.
- **Developers choosing a model** β per-suite comparisons, cost per million tokens, and
measured latency, rather than a single aggregate that hides the trade-off you care about.
- **Anyone tired of vibes** β every published figure traces back to a run we can point at.
Current scores, every category ranking, seven days of history, provider status and the full
methodology are **free and require no account**. Paid plans add longer comparable history,
the drift curves, calibration data, exports and the routing volume.
---
## Technical notes
- **API:** TypeScript, Fastify, SQLite with Drizzle ORM, Redis caching
- **Web:** Next.js 14, React 18, Recharts, NextAuth
- **Infrastructure:** a single VPS under systemd, behind nginx with SSL
- **Frontend source:** [github.com/StudioPlatforms/aistupidmeter-web](https://github.com/StudioPlatforms/aistupidmeter-web)
The web frontend is public. The benchmark engine is not open source β the task corpus is
deliberately unpublished, because a benchmark whose answers a model has been trained on
measures nothing. The methodology, the scoring weights and the per-task outcomes are public
instead, which is what makes a result checkable without making it gameable.
---
## Status and transparency
A live [status page](https://aistupidlevel.info/status) reports provider availability and
separates three things that look identical from outside and mean different things: the
provider being down, our own account or key failing, and our probe failing. When a suite
could not run, the site says which and why rather than quietly publishing a lower number.
---
## Contact
- **Contact form:** [aistupidlevel.info/contact](https://aistupidlevel.info/contact)
- **LinkedIn:** [ASL β aistupidlevel.info](https://www.linkedin.com/company/asl-aistupidlevel-info)
- **X / Twitter:** [@aistupidlevel](https://x.com/aistupidlevel)
- **Website:** [aistupidlevel.info](https://aistupidlevel.info) Β· also reachable at
[asl.info](https://asl.info)
---
**AI Stupid Level is an independent evaluation platform built by Ionut Adrian Visan. It is not affiliated with, endorsed by, or funded by any of the model providers
it measures β which is the only reason its numbers are worth anything.**
|