Claude Code: geospatial agent results
The command-line coding agent made by Anthropic. It reads the task, writes and runs code in the sandbox, and passes the results back to the model. An agent is a harness plus a model: this page ranks every model we benchmark in Claude Code on GIS and Earth observation tasks, and shows how the same model does in other harnesses.
Made by Anthropic · Version 2.1.286, pinned · 14 models from 3 labs · 26 entries, 25 ranked
Overview
Best on the Geospatial Agent Index
- #1Claude Opus 5.5 (max)85
- #2Claude Opus 5.5 (xhigh)85
- #3Claude Opus 5.5 (high)82
- #4Claude Opus 5.5 (medium)80
- #5Claude Opus 5 (high)80
Geospatial Agent Index, Text only
Lowest cost
- #1Claude Haiku 5.5 (low)$0.0053
- #2Claude Haiku 5.5 (medium)$0.0063
- #3Claude Haiku 5.5 (high)$0.0085
- #4Claude Haiku 5.5 (xhigh)$0.017
- #5Claude Sonnet 5.5 (low)$0.043
Cost per agent task, at list prices
Fastest
- #1Claude Opus 5.5 (low)0.4 min
- #2Claude Sonnet 5.5 (medium)0.4 min
- #3Claude Sonnet 5.5 (low)0.4 min
- #4Claude Opus 5.5 (medium)0.5 min
- #5Claude Sonnet 5.5 (high)0.6 min
Time per agent task, at 100 output tokens/s
- In Claude Code, the best entry is Claude Opus 5.5 (max), 1st of 83 entries on the Geospatial Agent Index, at 85.1.
- 6 of the models in Claude Code also run in another harness at the same reasoning level. Against the best other harness, Claude Code scores higher for 1, lower for 1 and within noise for 4.
- Still being benchmarked (provisional): Claude Sonnet 5.5 (max).
Models
One per model
Geospatial Agent Index: every model in Claude Code
Text only, 0 to 100 · Higher is better · one bar per model, at its best ranked reasoning level
How to read this chart
Bars. Every entry in Claude Code with a result, highlighted. Provisional: not yet ranked.
Data table: Geospatial Agent Index: every model in Claude Code
| Model | Developer | Geospatial Agent Index: every model in Claude Code |
|---|---|---|
| Claude Opus 5.5 (max), Claude Code | Anthropic | 85 |
| Claude Opus 5 (high), Claude Code | Anthropic | 80 |
| Claude Sonnet 5.5 (xhigh), Claude Code | Anthropic | 79 |
| Claude Haiku 5.5 (max), Claude Code | Anthropic | 77 |
| DeepSeek V4.1 Flash (max), Claude Code | DeepSeek | 76 |
| Claude Opus 4.8 (high), Claude Code | Anthropic | 76 |
| GLM-5.3 (max), Claude Code | Z.ai | 74 |
| Claude Sonnet 5 (high), Claude Code | Anthropic | 74 |
| Claude Opus 4.7 (high), Claude Code | Anthropic | 74 |
| GLM-5.2 (max), Claude Code | Z.ai | 74 |
| GLM-5.3-Flash (max), Claude Code | Z.ai | 72 |
| DeepSeek V4 Flash (high), Claude Code | DeepSeek | 59 |
| Claude Haiku 4.5 (Reasoning), Claude Code | Anthropic | 58 |
| GLM-4.7-Flash (Reasoning), Claude Code | Z.ai | 41 |
Every reasoning level
Geospatial Agent Index: every entry in Claude Code
Text only, 0 to 100 · Higher is better · every reasoning level
How to read this chart
Bars. Every entry in Claude Code with a result, highlighted. Provisional: not yet ranked.
Data table: Geospatial Agent Index: every entry in Claude Code
Provisional, so not on the index chart: Claude Sonnet 5.5 (max). Their finished evaluations are in the charts below.
Same model elsewhere
The models we benchmark in Claude Code and in another harness, at the same reasoning level: an agent is a harness plus a model, so the gap between the bars is the harness. Claude Code is highlighted; gaps under about 3 points are within noise.
GLM-5.3-Flash (max)
higher is better
Data table: GLM-5.3-Flash (max)
| Model | Developer | GLM-5.3-Flash (max) |
|---|---|---|
| GLM-5.3-Flash (max), Claude Code | Z.ai | 72 |
| GLM-5.3-Flash (max), Terminus-2 | Z.ai | 63 |
GLM-5.3 (max)
higher is better
Data table: GLM-5.3 (max)
| Model | Developer | GLM-5.3 (max) |
|---|---|---|
| GLM-5.3 (max), Claude Code | Z.ai | 74 |
| GLM-5.3 (max), Terminus-2 | Z.ai | 72 |
GLM-5.2 (max)
higher is better
Data table: GLM-5.2 (max)
| Model | Developer | GLM-5.2 (max) |
|---|---|---|
| GLM-5.2 (max), Claude Code | Z.ai | 74 |
| GLM-5.2 (max), Terminus-2 | Z.ai | 72 |
DeepSeek V4.1 Flash (max)
higher is better
Data table: DeepSeek V4.1 Flash (max)
| Model | Developer | DeepSeek V4.1 Flash (max) |
|---|---|---|
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | 78 |
| DeepSeek V4.1 Flash (max), Claude Code | DeepSeek | 76 |
GLM-4.7-Flash (Reasoning)
higher is better
Data table: GLM-4.7-Flash (Reasoning)
| Model | Developer | GLM-4.7-Flash (Reasoning) |
|---|---|---|
| GLM-4.7-Flash (Reasoning), Terminus-2 | Z.ai | 43 |
| GLM-4.7-Flash (Reasoning), Claude Code | Z.ai | 41 |
DeepSeek V4 Flash (high)
higher is better
Data table: DeepSeek V4 Flash (high)
| Model | Developer | DeepSeek V4 Flash (high) |
|---|---|---|
| DeepSeek V4 Flash (high), Terminus-2 | DeepSeek | 72 |
| DeepSeek V4 Flash (high), Codex | DeepSeek | 66 |
| DeepSeek V4 Flash (high), Claude Code | DeepSeek | 59 |
By evaluation
Earth-Bench V2
higher is better
- Striped: provisional, not yet ranked
Data table: Earth-Bench V2
GeoBenchX
higher is better
- Striped: provisional, not yet ranked
Data table: GeoBenchX
GS-QA2
higher is better
Data table: GS-QA2
GeoAgentBench
higher is better
- Striped: provisional, not yet ranked
Data table: GeoAgentBench
GeoAnalystBench
higher is better
- Striped: provisional, not yet ranked
Data table: GeoAnalystBench
OGD4All
higher is better
Data table: OGD4All
GeoNatureAgent
higher is better
Data table: GeoNatureAgent
MultiGlobeQA
higher is better
Data table: MultiGlobeQA
GeoAgentEval
higher is better
Data table: GeoAgentEval
ThinkGeo
higher is better
Data table: ThinkGeo
OpenEarthAgent
higher is better
Data table: OpenEarthAgent
Cost
Cost per task
Average cost per agent task (USD) · Lower is better
- Striped: provisional, not yet ranked
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. Lower is better. Costs are pay-per-token list prices, not any discount or credit a customer might have.
Bars. Every entry in Claude Code with a result, highlighted. Provisional: not yet ranked.
Data table: Cost per task
Geospatial Agent Index vs. cost per task
Geospatial Agent Index, Text only; cost per task (USD) · Higher and further left is better
- Most attractive quadrant
- Pareto line
How to read this chart
Why a log scale. Costs and times differ by a factor of ten or more between models, so equal steps on the axis are equal ratios.
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 task (log scale); higher means a higher Geospatial Agent Index. Both axes fit the models 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 that moves with the axes when you change the models shown, not a fixed bar. The dotted Pareto line joins the shown models that no cheaper shown model beats on score.
Data table: Geospatial Agent Index vs. cost per task
Time
Time per task
Average minutes per agent task, at 100 output tokens/s · Lower is better
- Striped: provisional, not yet ranked
How to read this chart
What this metric means. 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.
Bars. Every entry in Claude Code with a result, highlighted. Provisional: not yet ranked.
Data table: Time per task
Geospatial Agent Index vs. time per task
Geospatial Agent Index, Text only; time per task (minutes) · Higher and further left is better
- Most attractive quadrant
- Pareto line
How to read this chart
Why a log scale. Costs and times differ by a factor of ten or more between models, so equal steps on the axis are equal ratios.
What this metric means. 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 task (log scale); higher means a higher Geospatial Agent Index. Both axes fit the models 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 that moves with the axes when you change the models shown, not a fixed bar. The dotted Pareto line joins the shown models that no faster shown model beats on score.
Data table: Geospatial Agent Index vs. time per task
Every benchmark
Score by benchmark
Share answered correctly, 0 to 100 · Darker is better; hatched: provisional, evaluation not finished
Data table: Score by benchmark
| Model | Status | Earth-Bench V2 | GeoBenchX | GS-QA2 | GeoAgentBench | GeoAnalystBench | OGD4All | GeoNatureAgent | MultiGlobeQA | GeoAgentEval | ThinkGeo | OpenEarthAgent | Earth-Bench V2 images | ThinkGeo images | GeoChrono | BigEarthNet.txt | Geospatial knowledge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Claude Opus 5.5 (max), Claude Code | Ranked | 81 | 81 | 94 | 100 | 100 | 97 | 100 | 80 | 100 | 94 | 100 | No data | No data | No data | No data | No data |
| Claude Opus 5.5 (xhigh), Claude Code | Ranked | 77 | 83 | 94 | 98 | 100 | 96 | 100 | 79 | 100 | 96 | 100 | 70 | 48 | 74 | 58 | 94 |
| Claude Opus 5.5 (high), Claude Code | Ranked | 79 | 79 | 90 | 100 | 100 | 95 | 100 | 78 | 100 | 87 | 94 | 74 | 44 | 73 | 60 | 95 |
| Claude Opus 5.5 (medium), Claude Code | Ranked | 72 | 79 | 90 | 98 | 95 | 97 | 100 | 78 | 100 | 87 | 100 | 70 | 44 | No data | 58 | 94 |
| Claude Opus 5 (high), Claude Code | Ranked | 74 | 75 | 91 | 100 | 89 | 95 | 100 | 79 | 96 | 81 | 100 | 68 | 38 | 71 | 53 | 93 |
| Claude Sonnet 5.5 (xhigh), Claude Code | Ranked | 68 | 81 | 87 | 98 | 95 | 97 | 100 | 79 | 100 | 89 | 88 | 68 | 47 | 76 | 56 | 94 |
| Claude Sonnet 5.5 (high), Claude Code | Ranked | 71 | 81 | 83 | 98 | 100 | 96 | 100 | 77 | 100 | 74 | 88 | 68 | 50 | 74 | 57 | 94 |
| Claude Sonnet 5.5 (max), Claude Code | Provisional | 67 (provisional) | 74 (provisional) | 92 | 100 (provisional) | 100 (provisional) | 97 | 100 | 80 | 100 | 85 (provisional) | 100 (provisional) | No data | No data | No data | No data | No data |
| Claude Haiku 5.5 (max), Claude Code | Ranked | 67 | 78 | 87 | 98 | 100 | 97 | 100 | 77 | 96 | 77 | 94 | No data | No data | No data | No data | No data |
| DeepSeek V4.1 Flash (max), Claude Code | Ranked | 77 | 62 | 89 | 96 | 100 | 96 | 100 | 78 | 92 | No data | No data | No data | No data | No data | No data | No data |
| Claude Opus 4.8 (high), Claude Code | Ranked | 71 | 73 | 84 | 96 | 100 | 97 | 100 | 75 | 92 | 68 | 88 | 66 | 34 | 59 | 48 | 93 |
| Claude Haiku 5.5 (xhigh), Claude Code | Ranked | 68 | 77 | 81 | 100 | 95 | 97 | 100 | 76 | 92 | 74 | 94 | 70 | 35 | No data | 52 | 92 |
| Claude Haiku 5.5 (high), Claude Code | Ranked | 72 | 72 | 83 | 98 | 84 | 96 | 100 | 74 | 92 | 62 | 94 | 60 | 35 | 68 | 54 | 92 |
| GLM-5.3 (max), Claude Code | Ranked | 77 | 65 | 81 | 98 | 95 | 96 | 100 | 75 | 88 | No data | No data | No data | No data | No data | No data | 92 |
| Claude Sonnet 5 (high), Claude Code | Ranked | 68 | 77 | 77 | 98 | 95 | 95 | 100 | 73 | 92 | 81 | 82 | 66 | 28 | 55 | 47 | 91 |
| Claude Opus 5.5 (low), Claude Code | Ranked | 59 | 77 | 86 | 96 | 100 | 95 | 100 | 78 | 100 | 85 | 100 | No data | No data | No data | No data | 98 |
| Claude Opus 4.7 (high), Claude Code | Ranked | 69 | 73 | 79 | 96 | 100 | 95 | 100 | 77 | 92 | 72 | 88 | 68 | 27 | 54 | 49 | 93 |
| GLM-5.2 (max), Claude Code | Ranked | 71 | 67 | 83 | No data | No data | No data | No data | No data | No data | No data | No data | No data | No data | No data | No data | 89 |
| Claude Haiku 5.5 (medium), Claude Code | Ranked | 68 | 71 | 79 | 94 | 95 | 95 | 100 | 73 | 92 | 70 | 94 | 56 | 35 | No data | 50 | 92 |
| GLM-5.3-Flash (max), Claude Code | Ranked | 69 | 71 | 76 | 98 | 100 | 97 | 100 | 74 | 96 | 77 | 94 | 53 | 35 | No data | No data | 92 |
| Claude Sonnet 5.5 (medium), Claude Code | Ranked | 58 | 76 | 79 | 98 | 95 | 96 | 100 | 74 | 96 | 77 | 100 | 68 | 43 | No data | 56 | 93 |
| Claude Haiku 5.5 (low), Claude Code | Ranked | 62 | 73 | 75 | 92 | 100 | 95 | 100 | 72 | 92 | 70 | 94 | No data | No data | No data | No data | 96 |
| Claude Sonnet 5.5 (low), Claude Code | Ranked | 56 | 77 | 76 | 94 | 95 | 96 | 100 | 75 | 100 | 70 | 100 | No data | No data | No data | No data | 98 |
| DeepSeek V4 Flash (high), Claude Code | Ranked | 56 | 53 | 69 | 90 | 89 | 77 | 71 | 67 | 80 | No data | No data | No data | No data | No data | No data | 91 |
| Claude Haiku 4.5 (Reasoning), Claude Code | Ranked | 51 | 53 | 69 | 78 | 74 | 95 | 93 | 70 | 88 | 17 | 24 | 50 | 19 | 36 | 45 | 89 |
| GLM-4.7-Flash (Reasoning), Claude Code | Ranked | 38 | 39 | 48 | 30 | 26 | No data | No data | No data | No data | No data | No data | No data | No data | No data | No data | 86 |
About Claude Code
- Made by
- Anthropic
- What it is
- The command-line coding agent made by Anthropic. It reads the task, writes and runs code in the sandbox, and passes the results back to the model.
- Version
- 2.1.286, the same pinned build for every run
- How we run it
- The same tasks, limits and checks as every other harness: only the agent program changes. Methodology.
