Every number on this site comes from a single typed dataset with a stable shape.
The same interface backs the site today and will back a public data feed: the UI
reads through a DataAdapter, so the source can change without the shape
changing.
Entities#
| Entity | Key fields |
| --- | --- |
| Model | id, developerId, family, params, isReasoning, isOpenWeights, contextWindow, modality, effortLevels |
| Developer | id, name, color |
| Provider | id, type (overshoot / hosted-api / self-host-vllm), regionIds |
| Region | id, name, continent, lat, lng |
| Benchmark | id, category, unit, higherIsBetter |
| Score | modelId, benchmarkId, value, ciLow, ciHigh, sampleN |
| LatencyPoint | modelId, providerId, regionId, ttftMs, e2eMs, realtimeReady |
| SpeedPoint | modelId, providerId, tokensPerSec |
| PricePoint | modelId, providerId, inputPer1M, outputPer1M, perFrame |
| AgentTaskResult | modelId, taskSuite, passAt1, avgCostUsd, outTokens, steps |
The composite index#
The Intelligence Index is computed, not hand-set:
index = Σ (weightᵢ × scoreᵢ) / Σ weightᵢover the six capability benchmarks, with published weights. Recompute it from the
raw Score rows and you'll reproduce the value we display, exactly.
Adapter interface#
interface DataAdapter {
models(): Promise<Model[]>
scores(q?: ScoreQuery): Promise<Score[]>
latency(): Promise<LatencyPoint[]>
// …one method per entity
}Swap the implementation, keep every page. A public read API is on the roadmap. Same discipline as the product: one stable shape, results you can pull and verify yourself.