Downloads / open data / CC BY 4.0
Data downloads
Product rows
41
Full stack builders and coding agents
Model rows
8
Large language models
Run rows
1,845
One per prompt execution
Reader index rows
17
Products past the 3 voter threshold, exported separately from the measured rows
Licensed CC-BY-4.0. Attribution required, commercial use allowed. The ranking exports contain measured figures only: reader votes are published in their own endpoint so nothing consuming the measured data can pick them up by accident.
Endpoints
All served from this domain, no key, no sign up. Measured data and voted data are separate files.
| Endpoint | Format | Contents |
|---|---|---|
| /api/rankings.json | application/json | One object per measured product with the composite index, all ten subscores, speed percentiles, pass counts and public page measurements. Includes a licence field and the generation timestamp. |
| /data/rankings.csv | text/csv | The same ranking rows as a flat CSV with a header line, suitable for a spreadsheet. The licence is carried in a column so it survives a copy and paste. |
| /api/runs.json | application/json | The raw per run data: one object per prompt execution with run number, prompt index, start time, duration in seconds, outcome and the reviewer note. Filter to one product with ?tool=slug. |
| /data/runs.csv | text/csv | The same raw per run data as a flat CSV. Every published median, tenth and ninetieth percentile and pass rate on this site is computed from these rows, so this file is enough to recompute the whole index yourself. Filter to one product with ?tool=slug. |
| /api/reader-index.json | application/json | The reader index: voted axis means per product, the number of distinct voters, the share of index weight they cover and the signed gap against the lab index. Published separately from the rankings so a consumer of the measured data never picks up voted data by accident. |
| /data/reader-index.csv | text/csv | The reader index as a flat CSV, one row per product with the lab index in the adjacent column for comparison. |
Ranking row schema
Field names match the endpoint payload exactly.
| Field | Type | Meaning |
|---|---|---|
| slug | string | Stable product identifier, also the URL segment |
| name | string | Product name as the vendor writes it |
| rank | integer | Position in the composite index, 1 is highest |
| rank_delta | integer | Rank change against the previous cycle |
| index_score | number | Composite index, 0 to 100, two decimals |
| score_agent_perf | number | Agent performance subscore, 0 to 100, weight 18 |
| score_reliability | number | Reliability subscore, 0 to 100, weight 18 |
| score_scalability | number | Scalability subscore, 0 to 100, weight 13 |
| score_seo_geo | number | SEO and GEO subscore, 0 to 100, weight 12 |
| score_api_mcp | number | API and MCP subscore, 0 to 100, weight 9 |
| score_integrations | number | Integrations subscore, 0 to 100, weight 8 |
| score_design | number | Design output subscore, 0 to 100, weight 7 |
| score_speed | number | Speed subscore, 0 to 100, weight 7 |
| score_value | number | Value subscore, 0 to 100, weight 5 |
| score_code_ownership | number | Code ownership subscore, 0 to 100, weight 3 |
| speed_seconds_p10 | number | Tenth percentile wall clock seconds per prompt |
| speed_seconds_median | number | Median wall clock seconds per prompt |
| speed_seconds_p90 | number | Ninetieth percentile wall clock seconds per prompt |
| runs_completed | integer | Executions that produced a usable artifact, pass plus partial |
| runs_failed | integer | Executions that failed outright |
| reliability_pct | number | Strict pass rate as a percentage of all executions |
| html_bytes_no_js | integer | Bytes of real text on the generated public page with JavaScript disabled |
| lcp_ms | integer | Largest contentful paint in milliseconds, throttled |
| cls | number | Cumulative layout shift on load |
| price_from_eur | number | Entry price in euros for the cheapest plan that can finish the specification |
| last_run_at | ISO 8601 | Timestamp of the last completed measurement run |
| next_run_at | ISO 8601 | Timestamp of the next scheduled measurement run |
Shape of the JSON payload
{
"ok": true,
"data": {
"licence": "CC-BY-4.0",
"licence_url": "https://creativecommons.org/licenses/by/4.0/",
"attribution": "LLM Tier, https://www.llm-tier.com",
"generated_at": "2026-08-19T00:00:00.000Z",
"index_scale": { "min": 0, "max": 100, "decimals": 2 },
"weights": { "agent_perf": 18, "reliability": 18, "scalability": 13, "seo_geo": 12,
"api_mcp": 9, "integrations": 8, "design": 7, "speed": 7,
"value": 5, "code_ownership": 3 },
"count": 11,
"rankings": [ { "rank": 1, "slug": "...", "index_score": 00.00, "...": "..." } ]
}
}Citing the lab
For a figure in prose, name the source and the cycle: LLM Tier, August 2026 cycle. For a table or a chart, add a link to the page the numbers came from. For a redistributed dataset, keep the licence and attribution fields in the payload intact.
If you are building something on this data and want a heads up before the shape changes, write to lab@llm-tier.com. Breaking changes are announced in the lab notes first, and additive fields are not treated as breaking.