Codex: geospatial agent results
The command-line coding agent made by OpenAI. 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 Codex on GIS and Earth observation tasks, and shows how the same model does in other harnesses.
Made by OpenAI · Version 0.162.0, pinned · 11 models from 2 labs · 21 entries, 18 ranked
Overview
Best on the Geospatial Agent Index
- #1GPT-6.1 Sol (xhigh)82
- #2GPT-6.1 Sol (medium)82
- #3GPT-6.1 Sol (high)80
- #4GPT-6 Sol (high)80
- #5DeepSeek V4.1 Flash (max)78
Geospatial Agent Index, Text only
Lowest cost
- #1GPT-6 Luna (medium)$0.0026
- #2GPT-6 Luna (low)$0.0032
- #3GPT-6 Luna (high)$0.0040
- #4GPT-5.6 Luna (low)$0.0058
- #5GPT-6 Luna (xhigh)$0.0070
Cost per agent task, at list prices
Fastest
- #1GPT-6.1 Sol (medium)0.4 min
- #2GPT-6 Luna (medium)0.4 min
- #3GPT-6 Luna (low)0.5 min
- #4GPT-6.1 Sol (high)0.5 min
- #5GPT-5.6 Luna (low)0.5 min
Time per agent task, at 100 output tokens/s
- In Codex, the best entry is GPT-6.1 Sol (xhigh), 4th of 83 entries on the Geospatial Agent Index, at 81.8.
- 5 of the models in Codex also run in another harness at the same reasoning level. Against the best other harness, Codex scores lower for 2 and within noise for 3.
- Still being benchmarked (provisional): DeepSeek V4 Pro (high), GPT-5.6 Sol (medium), GPT-6 Sol (medium).
Models
One per model
Geospatial Agent Index: every model in Codex
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 Codex with a result, highlighted. Provisional: not yet ranked.
Data table: Geospatial Agent Index: every model in Codex
| Model | Developer | Geospatial Agent Index: every model in Codex |
|---|---|---|
| GPT-6.1 Sol (xhigh), Codex | OpenAI | 82 |
| GPT-6 Sol (high), Codex | OpenAI | 80 |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | 78 |
| GPT-5.6 Sol (high), Codex | OpenAI | 76 |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | 73 |
| GPT-6 Luna (xhigh), Codex | OpenAI | 73 |
| GPT-5.6 Terra (high), Codex | OpenAI | 69 |
| DeepSeek V4 Flash (high), Codex | DeepSeek | 66 |
| gpt-oss-120b (high), Codex | OpenAI | 43 |
| gpt-oss-20b (high), Codex | OpenAI | 9 |
Every reasoning level
Geospatial Agent Index: every entry in Codex
Text only, 0 to 100 · Higher is better · every reasoning level
How to read this chart
Bars. Every entry in Codex with a result, highlighted. Provisional: not yet ranked.
Data table: Geospatial Agent Index: every entry in Codex
| Model | Developer | Geospatial Agent Index: every entry in Codex |
|---|---|---|
| GPT-6.1 Sol (xhigh), Codex | OpenAI | 82 |
| GPT-6.1 Sol (medium), Codex | OpenAI | 82 |
| GPT-6.1 Sol (high), Codex | OpenAI | 80 |
| GPT-6 Sol (high), Codex | OpenAI | 80 |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | 78 |
| GPT-5.6 Sol (high), Codex | OpenAI | 76 |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | 73 |
| GPT-6 Luna (xhigh), Codex | OpenAI | 73 |
| GPT-5.6 Luna (high), Codex | OpenAI | 72 |
| GPT-6 Luna (high), Codex | OpenAI | 71 |
| GPT-5.6 Terra (high), Codex | OpenAI | 69 |
| GPT-5.6 Luna (medium), Codex | OpenAI | 66 |
| DeepSeek V4 Flash (high), Codex | DeepSeek | 66 |
| GPT-5.6 Luna (low), Codex | OpenAI | 61 |
| GPT-6 Luna (medium), Codex | OpenAI | 57 |
| GPT-6 Luna (low), Codex | OpenAI | 51 |
| gpt-oss-120b (high), Codex | OpenAI | 43 |
| gpt-oss-20b (high), Codex | OpenAI | 9 |
Provisional, so not on the index chart: GPT-6 Sol (medium), GPT-5.6 Sol (medium), DeepSeek V4 Pro (high). Their finished evaluations are in the charts below.
Same model elsewhere
The models we benchmark in Codex 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. Codex is highlighted; gaps under about 3 points are within noise.
DeepSeek V4 Pro (high)
higher is better
- Striped: provisional, not yet ranked
Data table: DeepSeek V4 Pro (high)
| Model | Developer | DeepSeek V4 Pro (high) |
|---|---|---|
| DeepSeek V4 Pro (high), Codex | DeepSeek | 73 |
| DeepSeek V4 Pro (high), Terminus-2 | DeepSeek | 70 |
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 |
gpt-oss-120b (high)
higher is better
Data table: gpt-oss-120b (high)
| Model | Developer | gpt-oss-120b (high) |
|---|---|---|
| gpt-oss-120b (high), Terminus-2 | OpenAI | 46 |
| gpt-oss-120b (high), Codex | OpenAI | 43 |
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 |
gpt-oss-20b (high)
higher is better
Data table: gpt-oss-20b (high)
| Model | Developer | gpt-oss-20b (high) |
|---|---|---|
| gpt-oss-20b (high), Terminus-2 | OpenAI | 33 |
| gpt-oss-20b (high), Codex | OpenAI | 9 |
By evaluation
Earth-Bench V2
higher is better
- Striped: provisional, not yet ranked
Data table: Earth-Bench V2
| Model | Developer | Earth-Bench V2 |
|---|---|---|
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | 78 |
| GPT-6 Sol (medium), Codex | OpenAI | 77 |
| GPT-6 Sol (high), Codex | OpenAI | 75 |
| DeepSeek V4 Pro (high), Codex | DeepSeek | 75 |
| GPT-6.1 Sol (medium), Codex | OpenAI | 72 |
| GPT-6.1 Sol (high), Codex | OpenAI | 72 |
| GPT-6.1 Sol (xhigh), Codex | OpenAI | 72 |
| GPT-5.6 Sol (high), Codex | OpenAI | 70 |
| DeepSeek V4 Flash (high), Codex | DeepSeek | 70 |
| GPT-6 Luna (xhigh), Codex | OpenAI | 67 |
| GPT-5.6 Luna (high), Codex | OpenAI | 67 |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | 65 |
| GPT-6 Luna (high), Codex | OpenAI | 63 |
| GPT-5.6 Terra (high), Codex | OpenAI | 62 |
| GPT-5.6 Luna (medium), Codex | OpenAI | 56 |
| GPT-6 Luna (medium), Codex | OpenAI | 50 |
| gpt-oss-120b (high), Codex | OpenAI | 49 |
| GPT-5.6 Luna (low), Codex | OpenAI | 44 |
| GPT-6 Luna (low), Codex | OpenAI | 44 |
| gpt-oss-20b (high), Codex | OpenAI | 6 |
GeoBenchX
higher is better
- Striped: provisional, not yet ranked
Data table: GeoBenchX
| Model | Developer | GeoBenchX |
|---|---|---|
| GPT-6.1 Sol (medium), Codex | OpenAI | 79 |
| GPT-6.1 Sol (xhigh), Codex | OpenAI | 79 |
| GPT-6.1 Sol (high), Codex | OpenAI | 77 |
| GPT-6 Sol (medium), Codex | OpenAI | 75 |
| GPT-6 Sol (high), Codex | OpenAI | 75 |
| GPT-6 Luna (high), Codex | OpenAI | 74 |
| GPT-6 Luna (xhigh), Codex | OpenAI | 73 |
| DeepSeek V4 Pro (high), Codex | DeepSeek | 72 |
| GPT-5.6 Sol (high), Codex | OpenAI | 70 |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | 68 |
| GPT-5.6 Luna (high), Codex | OpenAI | 67 |
| GPT-5.6 Terra (high), Codex | OpenAI | 67 |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | 66 |
| GPT-5.6 Luna (medium), Codex | OpenAI | 63 |
| GPT-5.6 Luna (low), Codex | OpenAI | 62 |
| GPT-6 Luna (medium), Codex | OpenAI | 57 |
| gpt-oss-120b (high), Codex | OpenAI | 55 |
| DeepSeek V4 Flash (high), Codex | DeepSeek | 54 |
| GPT-6 Luna (low), Codex | OpenAI | 51 |
| gpt-oss-20b (high), Codex | OpenAI | 10 |
GS-QA2
higher is better
- Striped: provisional, not yet ranked
Data table: GS-QA2
| Model | Developer | GS-QA2 |
|---|---|---|
| GPT-5.6 Sol (medium), Codex | OpenAI | 100 |
| GPT-6.1 Sol (xhigh), Codex | OpenAI | 94 |
| GPT-6.1 Sol (medium), Codex | OpenAI | 93 |
| GPT-6.1 Sol (high), Codex | OpenAI | 93 |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | 89 |
| GPT-6 Sol (high), Codex | OpenAI | 89 |
| GPT-6 Sol (medium), Codex | OpenAI | 87 |
| GPT-5.6 Sol (high), Codex | OpenAI | 87 |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | 85 |
| GPT-5.6 Luna (high), Codex | OpenAI | 81 |
| GPT-5.6 Luna (medium), Codex | OpenAI | 80 |
| GPT-5.6 Terra (high), Codex | OpenAI | 80 |
| GPT-6 Luna (xhigh), Codex | OpenAI | 78 |
| GPT-6 Luna (high), Codex | OpenAI | 77 |
| GPT-5.6 Luna (low), Codex | OpenAI | 76 |
| DeepSeek V4 Flash (high), Codex | DeepSeek | 74 |
| GPT-6 Luna (medium), Codex | OpenAI | 65 |
| GPT-6 Luna (low), Codex | OpenAI | 59 |
| gpt-oss-120b (high), Codex | OpenAI | 25 |
| gpt-oss-20b (high), Codex | OpenAI | 12 |
GeoAgentBench
higher is better
- Striped: provisional, not yet ranked
Data table: GeoAgentBench
| Model | Developer | GeoAgentBench |
|---|---|---|
| GPT-6.1 Sol (medium), Codex | OpenAI | 100 |
| GPT-6.1 Sol (high), Codex | OpenAI | 100 |
| GPT-6.1 Sol (xhigh), Codex | OpenAI | 100 |
| GPT-6 Sol (medium), Codex | OpenAI | 100 |
| GPT-6 Sol (high), Codex | OpenAI | 100 |
| GPT-5.6 Sol (high), Codex | OpenAI | 100 |
| GPT-5.6 Luna (medium), Codex | OpenAI | 98 |
| GPT-5.6 Luna (high), Codex | OpenAI | 98 |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | 98 |
| GPT-6 Luna (xhigh), Codex | OpenAI | 96 |
| GPT-6 Luna (high), Codex | OpenAI | 96 |
| GPT-5.6 Terra (high), Codex | OpenAI | 96 |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | 96 |
| GPT-6 Luna (medium), Codex | OpenAI | 94 |
| DeepSeek V4 Flash (high), Codex | DeepSeek | 92 |
| GPT-6 Luna (low), Codex | OpenAI | 92 |
| GPT-5.6 Luna (low), Codex | OpenAI | 86 |
| gpt-oss-120b (high), Codex | OpenAI | 58 |
| gpt-oss-20b (high), Codex | OpenAI | 10 |
GeoAnalystBench
higher is better
Data table: GeoAnalystBench
| Model | Developer | GeoAnalystBench |
|---|---|---|
| GPT-6.1 Sol (medium), Codex | OpenAI | 100 |
| GPT-6.1 Sol (high), Codex | OpenAI | 100 |
| GPT-6 Luna (xhigh), Codex | OpenAI | 100 |
| GPT-6 Sol (high), Codex | OpenAI | 100 |
| GPT-6 Luna (high), Codex | OpenAI | 100 |
| GPT-5.6 Luna (medium), Codex | OpenAI | 100 |
| GPT-5.6 Luna (high), Codex | OpenAI | 100 |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | 100 |
| GPT-6.1 Sol (xhigh), Codex | OpenAI | 95 |
| GPT-5.6 Terra (high), Codex | OpenAI | 95 |
| GPT-5.6 Luna (low), Codex | OpenAI | 95 |
| DeepSeek V4 Flash (high), Codex | DeepSeek | 89 |
| GPT-6 Luna (medium), Codex | OpenAI | 89 |
| GPT-5.6 Sol (high), Codex | OpenAI | 89 |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | 88 |
| GPT-6 Luna (low), Codex | OpenAI | 79 |
| gpt-oss-120b (high), Codex | OpenAI | 42 |
| gpt-oss-20b (high), Codex | OpenAI | 11 |
ThinkGeo
higher is better
Data table: ThinkGeo
| Model | Developer | ThinkGeo |
|---|---|---|
| GPT-6 Sol (medium), Codex | OpenAI | 100 |
| GPT-6.1 Sol (xhigh), Codex | OpenAI | 88 |
| GPT-6.1 Sol (medium), Codex | OpenAI | 87 |
| GPT-6.1 Sol (high), Codex | OpenAI | 81 |
| GPT-5.6 Sol (high), Codex | OpenAI | 74 |
| GPT-6 Sol (high), Codex | OpenAI | 72 |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | 70 |
| GPT-6 Luna (xhigh), Codex | OpenAI | 64 |
| GPT-5.6 Terra (high), Codex | OpenAI | 62 |
| GPT-5.6 Luna (medium), Codex | OpenAI | 62 |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | 62 |
| GPT-6 Luna (medium), Codex | OpenAI | 60 |
| GPT-6 Luna (high), Codex | OpenAI | 60 |
| GPT-5.6 Luna (high), Codex | OpenAI | 57 |
| GPT-5.6 Luna (low), Codex | OpenAI | 57 |
| GPT-6 Luna (low), Codex | OpenAI | 23 |
OpenEarthAgent
higher is better
Data table: OpenEarthAgent
| Model | Developer | OpenEarthAgent |
|---|---|---|
| GPT-6.1 Sol (medium), Codex | OpenAI | 100 |
| GPT-6.1 Sol (high), Codex | OpenAI | 100 |
| GPT-6 Sol (high), Codex | OpenAI | 100 |
| GPT-5.6 Luna (high), Codex | OpenAI | 100 |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | 100 |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | 94 |
| GPT-6.1 Sol (xhigh), Codex | OpenAI | 94 |
| GPT-6 Luna (xhigh), Codex | OpenAI | 88 |
| GPT-6 Sol (medium), Codex | OpenAI | 88 |
| GPT-6 Luna (high), Codex | OpenAI | 88 |
| GPT-5.6 Terra (high), Codex | OpenAI | 88 |
| GPT-5.6 Luna (medium), Codex | OpenAI | 88 |
| GPT-5.6 Luna (low), Codex | OpenAI | 82 |
| GPT-6 Luna (medium), Codex | OpenAI | 76 |
| GPT-5.6 Sol (high), Codex | OpenAI | 76 |
| GPT-6 Luna (low), Codex | OpenAI | 41 |
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 Codex with a result, highlighted. Provisional: not yet ranked.
Data table: Cost per task
| Model | Developer | Cost per task |
|---|---|---|
| GPT-6 Luna (medium), Codex | OpenAI | $0.0026 |
| GPT-6 Luna (low), Codex | OpenAI | $0.0032 |
| GPT-6 Luna (high), Codex | OpenAI | $0.0040 |
| GPT-5.6 Luna (low), Codex | OpenAI | $0.0058 |
| GPT-6 Luna (xhigh), Codex | OpenAI | $0.0070 |
| GPT-5.6 Luna (medium), Codex | OpenAI | $0.0094 |
| GPT-5.6 Luna (high), Codex | OpenAI | $0.016 |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | $0.021 |
| GPT-6.1 Sol (medium), Codex | OpenAI | $0.046 |
| GPT-6 Sol (medium), Codex | OpenAI | $0.047 |
| GPT-6.1 Sol (high), Codex | OpenAI | $0.059 |
| GPT-5.6 Sol (medium), Codex | OpenAI | $0.060 |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | $0.067 |
| GPT-6 Sol (high), Codex | OpenAI | $0.082 |
| GPT-6.1 Sol (xhigh), Codex | OpenAI | $0.085 |
| DeepSeek V4 Flash (high), Codex | DeepSeek | $0.085 |
| gpt-oss-20b (high), Codex | OpenAI | $0.094 |
| GPT-5.6 Terra (high), Codex | OpenAI | $0.10 |
| GPT-5.6 Sol (high), Codex | OpenAI | $0.21 |
| gpt-oss-120b (high), Codex | OpenAI | $0.26 |
| DeepSeek V4 Pro (high), Codex | DeepSeek | $0.64 |
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
| Model | Geospatial Agent Index | Cost per task (USD) | On the Pareto line |
|---|---|---|---|
| DeepSeek V4 Flash (high), Codex | 66 | $0.085 | No |
| DeepSeek V4.1 Flash (max), Codex | 78 | $0.067 | No |
| gpt-oss-120b (high), Codex | 43 | $0.26 | No |
| gpt-oss-20b (high), Codex | 9 | $0.094 | No |
| GPT-6.1 Sol (medium), Codex | 82 | $0.046 | Yes |
| GPT-6.1 Sol (high), Codex | 80 | $0.059 | No |
| GPT-6.1 Sol (xhigh), Codex | 82 | $0.085 | Yes |
| GPT-6 Luna (xhigh), Codex | 73 | $0.0070 | Yes |
| GPT-6 Sol (high), Codex | 80 | $0.082 | No |
| GPT-6 Luna (medium), Codex | 57 | $0.0026 | Yes |
| GPT-6 Luna (high), Codex | 71 | $0.0040 | Yes |
| GPT-5.6 Sol (high), Codex | 76 | $0.21 | No |
| GPT-5.6 Terra (high), Codex | 69 | $0.10 | No |
| GPT-5.6 Luna (medium), Codex | 66 | $0.0094 | No |
| GPT-5.6 Luna (high), Codex | 72 | $0.016 | No |
| GPT-5.6 Luna (xhigh), Codex | 73 | $0.021 | Yes |
| GPT-6 Luna (low), Codex | 51 | $0.0032 | No |
| GPT-5.6 Luna (low), Codex | 61 | $0.0058 | No |
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 Codex with a result, highlighted. Provisional: not yet ranked.
Data table: Time per task
| Model | Developer | Time per task (at 100 output tokens/s) |
|---|---|---|
| GPT-5.6 Sol (medium), Codex | OpenAI | 0.2 min |
| GPT-6 Sol (medium), Codex | OpenAI | 0.3 min |
| GPT-6.1 Sol (medium), Codex | OpenAI | 0.4 min |
| GPT-6 Luna (medium), Codex | OpenAI | 0.4 min |
| GPT-6 Luna (low), Codex | OpenAI | 0.5 min |
| GPT-6.1 Sol (high), Codex | OpenAI | 0.5 min |
| GPT-5.6 Luna (low), Codex | OpenAI | 0.5 min |
| GPT-6 Luna (high), Codex | OpenAI | 0.7 min |
| GPT-6 Sol (high), Codex | OpenAI | 0.8 min |
| GPT-5.6 Luna (medium), Codex | OpenAI | 0.8 min |
| GPT-6.1 Sol (xhigh), Codex | OpenAI | 0.8 min |
| GPT-5.6 Terra (high), Codex | OpenAI | 0.8 min |
| GPT-5.6 Sol (high), Codex | OpenAI | 1.0 min |
| GPT-6 Luna (xhigh), Codex | OpenAI | 1.4 min |
| GPT-5.6 Luna (high), Codex | OpenAI | 1.4 min |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | 1.7 min |
| gpt-oss-20b (high), Codex | OpenAI | 4.8 min |
| DeepSeek V4 Pro (high), Codex | DeepSeek | 4.9 min |
| gpt-oss-120b (high), Codex | OpenAI | 6.0 min |
| DeepSeek V4 Flash (high), Codex | DeepSeek | 6.5 min |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | 8.6 min |
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
| Model | Geospatial Agent Index | Time per task (minutes) | On the Pareto line |
|---|---|---|---|
| DeepSeek V4 Flash (high), Codex | 66 | 6.5 min | No |
| DeepSeek V4.1 Flash (max), Codex | 78 | 8.6 min | No |
| gpt-oss-120b (high), Codex | 43 | 6.0 min | No |
| gpt-oss-20b (high), Codex | 9 | 4.8 min | No |
| GPT-6.1 Sol (medium), Codex | 82 | 0.4 min | Yes |
| GPT-6.1 Sol (high), Codex | 80 | 0.5 min | No |
| GPT-6.1 Sol (xhigh), Codex | 82 | 0.8 min | Yes |
| GPT-6 Luna (xhigh), Codex | 73 | 1.4 min | No |
| GPT-6 Sol (high), Codex | 80 | 0.8 min | No |
| GPT-6 Luna (medium), Codex | 57 | 0.4 min | No |
| GPT-6 Luna (high), Codex | 71 | 0.7 min | No |
| GPT-5.6 Sol (high), Codex | 76 | 1.0 min | No |
| GPT-5.6 Terra (high), Codex | 69 | 0.8 min | No |
| GPT-5.6 Luna (medium), Codex | 66 | 0.8 min | No |
| GPT-5.6 Luna (high), Codex | 72 | 1.4 min | No |
| GPT-5.6 Luna (xhigh), Codex | 73 | 1.7 min | No |
| GPT-6 Luna (low), Codex | 51 | 0.5 min | No |
| GPT-5.6 Luna (low), Codex | 61 | 0.5 min | No |
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 | ThinkGeo | OpenEarthAgent | Earth-Bench V2 images | ThinkGeo images | Geospatial knowledge |
|---|---|---|---|---|---|---|---|---|---|---|---|
| GPT-6.1 Sol (xhigh), Codex | Ranked | 72 | 79 | 94 | 100 | 95 | 88 | 94 | 72 | 41 | 93 |
| GPT-6.1 Sol (medium), Codex | Ranked | 72 | 79 | 93 | 100 | 100 | 87 | 100 | 72 | 37 | 92 |
| GPT-6.1 Sol (high), Codex | Ranked | 72 | 77 | 93 | 100 | 100 | 81 | 100 | 68 | 37 | 93 |
| GPT-6 Sol (medium), Codex | Provisional | 77 (provisional) | 75 (provisional) | 87 | 100 (provisional) | No data | 100 (provisional) | 88 (provisional) | No data | No data | No data |
| GPT-6 Sol (high), Codex | Ranked | 75 | 75 | 89 | 100 | 100 | 72 | 100 | 72 | 41 | 91 |
| DeepSeek V4.1 Flash (max), Codex | Ranked | 78 | 66 | 89 | 96 | 88 | 70 | 94 | No data | No data | No data |
| GPT-5.6 Sol (high), Codex | Ranked | 70 | 70 | 87 | 100 | 89 | 74 | 76 | 76 | 41 | 93 |
| GPT-5.6 Luna (xhigh), Codex | Ranked | 65 | 68 | 85 | 98 | 100 | 62 | 100 | 66 | 37 | 91 |
| GPT-6 Luna (xhigh), Codex | Ranked | 67 | 73 | 78 | 96 | 100 | 64 | 88 | 66 | 35 | 91 |
| GPT-5.6 Luna (high), Codex | Ranked | 67 | 67 | 81 | 98 | 100 | 57 | 100 | 68 | 35 | 91 |
| GPT-6 Luna (high), Codex | Ranked | 63 | 74 | 77 | 96 | 100 | 60 | 88 | 62 | 43 | 92 |
| GPT-5.6 Terra (high), Codex | Ranked | 62 | 67 | 80 | 96 | 95 | 62 | 88 | 74 | 34 | 92 |
| GPT-5.6 Luna (medium), Codex | Ranked | 56 | 63 | 80 | 98 | 100 | 62 | 88 | 60 | 35 | 91 |
| DeepSeek V4 Flash (high), Codex | Ranked | 70 | 54 | 74 | 92 | 89 | No data | No data | No data | No data | 91 |
| GPT-5.6 Luna (low), Codex | Ranked | 44 | 62 | 76 | 86 | 95 | 57 | 82 | 68 | 33 | 90 |
| GPT-6 Luna (medium), Codex | Ranked | 50 | 57 | 65 | 94 | 89 | 60 | 76 | 62 | 37 | 90 |
| GPT-6 Luna (low), Codex | Ranked | 44 | 51 | 59 | 92 | 79 | 23 | 41 | 66 | 29 | 89 |
| gpt-oss-120b (high), Codex | Ranked | 49 | 55 | 25 | 58 | 42 | No data | No data | No data | No data | 90 |
| gpt-oss-20b (high), Codex | Ranked | 6 | 10 | 12 | 10 | 11 | No data | No data | No data | No data | 85 |
| GPT-5.6 Sol (medium), Codex | Provisional | No data | No data | 100 (provisional) | No data | No data | No data | No data | No data | No data | No data |
| DeepSeek V4 Pro (high), Codex | Provisional | 75 (provisional) | 72 (provisional) | No data | No data | No data | No data | No data | No data | No data | 92 |
About Codex
- Made by
- OpenAI
- What it is
- The command-line coding agent made by OpenAI. It reads the task, writes and runs code in the sandbox, and passes the results back to the model.
- Version
- 0.162.0, 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.
