ThinkGeo images benchmark leaderboard
Questions on aerial and satellite images, answered from the image alone, with no tools. One of the two sources of Vision, a group of the Geospatial Intelligence Index. The same questions worked out by an agent that can run code are in Vision agents.
Models76 of 76 entries
Score
ThinkGeo images score
Share of questions answered correctly, 0 to 100 · Higher is better
How to read this chart
What this metric means. The share of questions the model answered correctly from the image alone, with no tools.
Rows. Each model once, at its highest reasoning level with a score; every level is in the data table.
Data table: ThinkGeo images score
ThinkGeo images: score vs. cost per question
ThinkGeo images score against average cost per question (USD) · Higher and further left is better
- Most attractive quadrant
- Pareto line
How to read this chart
What cost is measuring. What one attempt at a task would cost if paid token by token at the provider's published API prices, averaged over attempts: ordinary input tokens, input tokens served from the provider's cache at the lower cached price, tokens written to the cache where the provider charges for that, and output tokens (thinking included). Cost assumes each harness uses the model's pay-per-token API, priced at public list rates; sandboxes and our own engineering time are not included. Failed attempts count too.
How to read this chart. Each point is one entry. Further left means a lower average cost per question (log scale); higher means a higher ThinkGeo images score. Both axes fit the points shown, so the score axis does not start at zero. The shaded most attractive quadrant is the top-left quarter of the plot, split at the middle of each axis: a reading aid, not a fixed bar. The dotted Pareto line joins the points that no cheaper one beats on score. Only exact costs are plotted; the table lists every entry.
Data table: ThinkGeo images: score vs. cost per question
| Model | ThinkGeo images score | Cost per question (USD) | On the Pareto line |
|---|---|---|---|
| Claude Opus 5.5 (xhigh) | 48 | $0.026 | Yes |
| Claude Sonnet 5.5 (xhigh) | 47 | $0.010 | Yes |
| GPT-5.6 Sol (high) | 41 | No data | No data |
| GPT-6 Sol (high) | 41 | No data | No data |
| GPT-6.1 Sol (xhigh) | 41 | $0.038 | No |
| Claude Opus 5 (high) | 38 | $0.047 | No |
| GPT-5.6 Luna (xhigh) | 37 | No data | No data |
| Qwen 3.8 27B (xhigh) | 37 | No data | No data |
| Claude Haiku 5.5 (xhigh) | 35 | $0.00095 | Yes |
| GLM-5.3-Flash (max) | 35 | $0.0066 | No |
| GPT-6 Luna (xhigh) | 35 | $0.0013 | No |
| Claude Opus 4.8 (high) | 34 | $0.034 | No |
| GPT-5.6 Terra (high) | 34 | No data | No data |
| Gemini 3.8 Flash (low) | 34 | No data | No data |
| Kimi K2.7 Code (Reasoning) | 31 | $0.075 | No |
| Kimi K3 (Reasoning) | 30 | No data | No data |
| Claude Sonnet 5 (high) | 28 | $0.023 | No |
| Kimi K2.6 (Reasoning) | 28 | $0.084 | No |
| Claude Opus 4.7 (high) | 27 | $0.038 | No |
| Gemini 3.1 Flash-Lite (high) | 24 | No data | No data |
| Gemma 4 26B A4B (Reasoning) | 22 | $0.0041 | No |
| Claude Haiku 4.5 (Reasoning) | 19 | $0.025 | No |
| Mistral Large 3 (Non-reasoning) | 15 | No data | No data |
Token usage
ThinkGeo images: tokens per question
Average tokens per question by type · Lower is better
- Uncached input
- Cached input
- Output (reasoning included)
How to read this chart
What the parts mean. Uncached input: input tokens read at the full price. Cached input: input tokens served from the provider's cache at the lower cached price. Output: the tokens the model wrote, its reasoning included, as reported by the provider.
Compare with care. Models use different tokenisers, so the same text is a different number of tokens for different models. Use token counts to see how much work each model did, and cost to compare spending.
Data table: ThinkGeo images: tokens per question
| Model | Developer | Uncached input | Cached input | Output (reasoning included) | Total |
|---|---|---|---|---|---|
| Claude Opus 4.8 (high) | Anthropic | 2k | No data | 554 | 3k |
| Claude Sonnet 5.5 (xhigh) | Anthropic | 177 | 2k | 949 | 3k |
| Claude Opus 4.7 (high) | Anthropic | 2k | No data | 672 | 3k |
| Claude Opus 5 (high) | Anthropic | 2k | No data | 1k | 3k |
| Claude Opus 5.5 (xhigh) | Anthropic | 173 | 2k | 1k | 3k |
| Claude Sonnet 5 (high) | Anthropic | 2k | No data | 1k | 4k |
| GPT-6 Luna (xhigh) | OpenAI | 2k | No data | 2k | 4k |
| Claude Haiku 5.5 (xhigh) | Anthropic | 449 | 2k | 2k | 4k |
| GPT-6.1 Sol (xhigh) | OpenAI | 2k | No data | 3k | 5k |
| Claude Haiku 4.5 (Reasoning) | Anthropic | 2k | No data | 5k | 7k |
| Gemma 4 26B A4B (Reasoning) | 564 | 0 | 13k | 14k | |
| GLM-5.3-Flash (max) | Z.ai | 2k | 33 | 12k | 14k |
| Kimi K2.7 Code (Reasoning) | Moonshot AI | 242 | 1k | 19k | 20k |
| Kimi K2.6 (Reasoning) | Moonshot AI | 1k | 239 | 21k | 22k |
| GPT-5.6 Sol (high) | OpenAI | No data | No data | No data | No data |
| GPT-6 Sol (high) | OpenAI | No data | No data | No data | No data |
| GPT-5.6 Luna (xhigh) | OpenAI | No data | No data | No data | No data |
| Qwen 3.8 27B (xhigh) | Alibaba (Qwen) | No data | No data | No data | No data |
| GPT-5.6 Terra (high) | OpenAI | No data | No data | No data | No data |
| Gemini 3.8 Flash (low) | No data | No data | No data | No data | |
| Kimi K3 (Reasoning) | Moonshot AI | No data | No data | No data | No data |
| Gemini 3.1 Flash-Lite (high) | No data | No data | No data | No data | |
| Mistral Large 3 (Non-reasoning) | Mistral AI | No data | No data | No data | No data |
Cost
ThinkGeo images: cost per question
Average cost per question (USD) by token type · Lower is better
- Uncached input
- Cached input
- Output
- Not split by token type
How to read this chart
What cost is measuring. What one attempt at a task would cost if paid token by token at the provider's published API prices, averaged over attempts: ordinary input tokens, input tokens served from the provider's cache at the lower cached price, tokens written to the cache where the provider charges for that, and output tokens (thinking included). Cost assumes each harness uses the model's pay-per-token API, priced at public list rates; sandboxes and our own engineering time are not included. Failed attempts count too.
How the cost is split. Each part is the entry's average tokens of that type times its list price. The rest, mostly tokens written to the cache, is shown as not split by token type.
Data table: ThinkGeo images: cost per question
| Model | Developer | Uncached input | Cached input | Output | Not split by token type | Total |
|---|---|---|---|---|---|---|
| Claude Haiku 5.5 (xhigh) | Anthropic | $0.000045 | $0.000018 | $0.00084 | $0.000044 | $0.00095 |
| GPT-6 Luna (xhigh) | OpenAI | $0.00016 | $0.00 | $0.0011 | $0.00 | $0.0013 |
| Gemma 4 26B A4B (Reasoning) | $0.000056 | $0.00 | $0.0040 | $0.00000019 | $0.0041 | |
| GLM-5.3-Flash (max) | Z.ai | $0.00025 | $0.00000098 | $0.0062 | $0.000076 | $0.0066 |
| Claude Sonnet 5.5 (xhigh) | Anthropic | $0.00035 | $0.00018 | $0.0095 | $0.00035 | $0.010 |
| Claude Sonnet 5 (high) | Anthropic | $0.0048 | $0.00 | $0.013 | $0.0048 | $0.023 |
| Claude Haiku 4.5 (Reasoning) | Anthropic | $0.0020 | $0.00 | $0.023 | $0.00000010 | $0.025 |
| Claude Opus 5.5 (xhigh) | Anthropic | $0.00069 | $0.00037 | $0.024 | $0.00069 | $0.026 |
| Claude Opus 4.8 (high) | Anthropic | $0.010 | $0.00 | $0.014 | $0.0098 | $0.034 |
| GPT-6.1 Sol (xhigh) | OpenAI | $0.0032 | $0.00 | $0.035 | $0.00 | $0.038 |
| Claude Opus 4.7 (high) | Anthropic | $0.012 | $0.00 | $0.017 | $0.0094 | $0.038 |
| Claude Opus 5 (high) | Anthropic | $0.010 | $0.00 | $0.027 | $0.010 | $0.047 |
| Kimi K2.7 Code (Reasoning) | Moonshot AI | $0.00023 | $0.00028 | $0.074 | $0.000000068 | $0.075 |
| Kimi K2.6 (Reasoning) | Moonshot AI | $0.0014 | $0.000038 | $0.083 | $0.000000017 | $0.084 |
| GPT-5.6 Sol (high) | OpenAI | No data | No data | No data | No data | No data |
| GPT-6 Sol (high) | OpenAI | No data | No data | No data | No data | No data |
| GPT-5.6 Luna (xhigh) | OpenAI | No data | No data | No data | No data | No data |
| Qwen 3.8 27B (xhigh) | Alibaba (Qwen) | No data | No data | No data | No data | No data |
| GPT-5.6 Terra (high) | OpenAI | No data | No data | No data | No data | No data |
| Gemini 3.8 Flash (low) | No data | No data | No data | No data | No data | |
| Kimi K3 (Reasoning) | Moonshot AI | No data | No data | No data | No data | No data |
| Gemini 3.1 Flash-Lite (high) | No data | No data | No data | No data | No data | |
| Mistral Large 3 (Non-reasoning) | Mistral AI | No data | No data | No data | No data | No data |
Speed
ThinkGeo images: time per question
Time per question (at 100 output tokens/s), seconds · Lower is better
How to read this chart
Time per question. Time as if every model wrote 100 output tokens per second: output tokens divided by 100, plus the time the agent's commands took. Serving speed differs between providers and is not ranked.
Data table: ThinkGeo images: time per question
| Model | Developer | Time per question (s) |
|---|---|---|
| Claude Opus 4.8 (high) | Anthropic | 7s |
| Claude Opus 4.7 (high) | Anthropic | 8s |
| Claude Sonnet 5.5 (xhigh) | Anthropic | 11s |
| Claude Opus 5 (high) | Anthropic | 12s |
| Claude Opus 5.5 (xhigh) | Anthropic | 13s |
| Claude Sonnet 5 (high) | Anthropic | 14s |
| Claude Haiku 5.5 (xhigh) | Anthropic | 18s |
| GPT-6 Luna (xhigh) | OpenAI | 24s |
| GPT-6.1 Sol (xhigh) | OpenAI | 36s |
| Claude Haiku 4.5 (Reasoning) | Anthropic | 48s |
| GLM-5.3-Flash (max) | Z.ai | 126s |
| Gemma 4 26B A4B (Reasoning) | 138s | |
| Kimi K2.7 Code (Reasoning) | Moonshot AI | 187s |
| Kimi K2.6 (Reasoning) | Moonshot AI | 208s |
| GPT-5.6 Sol (high) | OpenAI | No data |
| GPT-6 Sol (high) | OpenAI | No data |
| GPT-5.6 Luna (xhigh) | OpenAI | No data |
| Qwen 3.8 27B (xhigh) | Alibaba (Qwen) | No data |
| GPT-5.6 Terra (high) | OpenAI | No data |
| Gemini 3.8 Flash (low) | No data | |
| Kimi K3 (Reasoning) | Moonshot AI | No data |
| Gemini 3.1 Flash-Lite (high) | No data | |
| Mistral Large 3 (Non-reasoning) | Mistral AI | No data |
ThinkGeo images: score vs. time per question
ThinkGeo images score against time per question (at 100 output tokens/s), seconds · Higher and further left is better
- Most attractive quadrant
- Pareto line
How to read this chart
Time per question. Time as if every model wrote 100 output tokens per second: output tokens divided by 100, plus the time the agent's commands took. Serving speed differs between providers and is not ranked.
How to read this chart. Each point is one entry. Further left means a lower average time per question (log scale); higher means a higher ThinkGeo images score. Both axes fit the points shown, so the score axis does not start at zero. The shaded most attractive quadrant is the top-left quarter of the plot: a reading aid, not a fixed bar. The dotted Pareto line joins the points that no faster one beats on score.
Data table: ThinkGeo images: score vs. time per question
| Model | ThinkGeo images score | Time per question (seconds) | On the Pareto line |
|---|---|---|---|
| Claude Opus 5.5 (xhigh) | 48 | 13s | Yes |
| Claude Sonnet 5.5 (xhigh) | 47 | 11s | Yes |
| GPT-5.6 Sol (high) | 41 | No data | No data |
| GPT-6 Sol (high) | 41 | No data | No data |
| GPT-6.1 Sol (xhigh) | 41 | 36s | No |
| Claude Opus 5 (high) | 38 | 12s | No |
| GPT-5.6 Luna (xhigh) | 37 | No data | No data |
| Qwen 3.8 27B (xhigh) | 37 | No data | No data |
| Claude Haiku 5.5 (xhigh) | 35 | 18s | No |
| GLM-5.3-Flash (max) | 35 | 126s | No |
| GPT-6 Luna (xhigh) | 35 | 24s | No |
| Claude Opus 4.8 (high) | 34 | 7s | Yes |
| GPT-5.6 Terra (high) | 34 | No data | No data |
| Gemini 3.8 Flash (low) | 34 | No data | No data |
| Kimi K2.7 Code (Reasoning) | 31 | 187s | No |
| Kimi K3 (Reasoning) | 30 | No data | No data |
| Claude Sonnet 5 (high) | 28 | 14s | No |
| Kimi K2.6 (Reasoning) | 28 | 208s | No |
| Claude Opus 4.7 (high) | 27 | 8s | No |
| Gemini 3.1 Flash-Lite (high) | 24 | No data | No data |
| Gemma 4 26B A4B (Reasoning) | 22 | 138s | No |
| Claude Haiku 4.5 (Reasoning) | 19 | 48s | No |
| Mistral Large 3 (Non-reasoning) | 15 | No data | No data |
Score vs. release date
ThinkGeo images: score vs. release date
ThinkGeo images score against the model's public release date
How to read this chart
How to read this chart. Each point is one entry: across, the date its model was first released; up, its ThinkGeo images score. Models with no published release date are not plotted.
Data table: ThinkGeo images: score vs. release date
| Model | ThinkGeo images score | Release date |
|---|---|---|
| Claude Opus 5.5 (xhigh) | 48 | 22 September 2026 |
| Claude Sonnet 5.5 (xhigh) | 47 | 28 September 2026 |
| GPT-5.6 Sol (high) | 41 | No data |
| GPT-6 Sol (high) | 41 | No data |
| GPT-6.1 Sol (xhigh) | 41 | 29 September 2026 |
| Claude Opus 5 (high) | 38 | 24 July 2026 |
| GPT-5.6 Luna (xhigh) | 37 | No data |
| Qwen 3.8 27B (xhigh) | 37 | 14 August 2026 |
| Claude Haiku 5.5 (xhigh) | 35 | 7 October 2026 |
| GLM-5.3-Flash (max) | 35 | 26 August 2026 |
| GPT-6 Luna (xhigh) | 35 | 22 September 2026 |
| Claude Opus 4.8 (high) | 34 | 28 May 2026 |
| GPT-5.6 Terra (high) | 34 | No data |
| Gemini 3.8 Flash (low) | 34 | 2 September 2026 |
| Kimi K2.7 Code (Reasoning) | 31 | 12 June 2026 |
| Kimi K3 (Reasoning) | 30 | 16 July 2026 |
| Claude Sonnet 5 (high) | 28 | 30 June 2026 |
| Kimi K2.6 (Reasoning) | 28 | 20 April 2026 |
| Claude Opus 4.7 (high) | 27 | 16 April 2026 |
| Gemini 3.1 Flash-Lite (high) | 24 | 7 May 2026 |
| Gemma 4 26B A4B (Reasoning) | 22 | 2 April 2026 |
| Claude Haiku 4.5 (Reasoning) | 19 | 15 October 2025 |
| Mistral Large 3 (Non-reasoning) | 15 | 2 December 2025 |
Background
ThinkGeo asks for one number about aerial and satellite images: a count, an area, a distance or a heading, accepted within a range.
Licence: CC BY 4.0, with the terms of the source imagery.
Published by Mohamed bin Zayed University of Artificial Intelligence (MBZUAI).
Related links
Explore evaluations
- Geospatial Intelligence IndexAgent tasks, vision, guided workflows and geospatial knowledge, per model
- Geospatial Agent IndexEarth-Bench V2, GeoBenchX and GS-QA2; Text + vision adds Vision agents
- Earth-Bench V2Earth-Bench V2 poses Earth observation questions over satellite products (indices, temperatures, land cover) that are answered by computing over the data.
- GeoBenchXGeoBenchX asks for maps, numbers and lists from country-level and city-level geospatial data.
- GS-QA2GS-QA2 asks questions about places and terrain in the United States over OpenStreetMap vector layers and ASTER elevation data: nearest features, directions, distances, counts, elevations, slopes and features that meet terrain conditions.
- GeoAgentBenchGeoAgentBench gives an agent a geospatial question and the data to answer it, and expects the result files and a map.
- GeoAnalystBenchGeoAnalystBench collects GIS analyst workflows (suitability analysis, interpolation, hot spots, network and overlay work).
- OGD4AllOGD4All asks everyday questions about the City of Zurich's open government data: trees, buildings, transport, schools and more, from about 430 public datasets in GeoPackage and CSV form.
- GeoNatureAgentGeoNatureAgent asks for figures from environmental rasters over Spanish provinces and regions: here, the share of land suitable for CO₂ storage, by province, with follow-up questions that compare, rank or break the figures down.
- MultiGlobeQAMultiGlobeQA asks spatial questions about places all over the world: what lies within, next to or nearest to what, how far apart things are, and how many there are.
- GeoAgentEvalGeoAgentEval tests whether an agent can build, audit and repair spatial data in a PostGIS database, and decline honestly when a request cannot be done: flood zones, wards, routes, coordinate systems and stale records in one made-up town.
- GeoChronoGeoChrono asks about long-term change in a place seen over many years: what the land cover is, whether an area grew or shrank, when an object appeared and how things changed in order.
- BigEarthNet.txtBigEarthNet.txt asks about 1.2 km image patches over Europe: which land cover is present, how much, how many patches of it, what is next to what, and the country, season and climate zone.
- Geospatial knowledgeClosed-book multiple-choice questions on geospatial knowledge
- VisionQuestions answered from images
- Earth-Bench V2 imagesEarth-Bench V2 images are the Earth-Bench V2 questions that need the model to look at RGB satellite pictures: multiple choice on counting objects or scene types, ranking pictures by count or area, and comparing what changed.
- Vision agentsAgents that look at aerial images and use code
