Change detection: a kind of geospatial work
Satellite rasters of the same place at two dates or periods, where the answer is the change: a difference or percentage change in temperature, vegetation, snow, water, night-time lights or built-up volume, the largest rise or fall between dates, or the share of the area that changed. Fitted trends over many dates count under climate and time series.
Score
All
Change detection score
Share of tasks passed, 0 to 100 · Higher is better
How to read this chart
What this metric means. For each task whose main kind of work is change detection, the share of a model's attempts that passed every check; then the plain average over those tasks. These scores do not enter the Geospatial Agent Index.
Data table: Change detection score
Open weights
Change detection score
Share of tasks passed, 0 to 100 · Higher is better
How to read this chart
What this metric means. For each task whose main kind of work is change detection, the share of a model's attempts that passed every check; then the plain average over those tasks. These scores do not enter the Geospatial Agent Index.
Data table: Change detection score
All
Change detection: score vs. cost per task
Change detection score against average cost per task (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 task (log scale); higher means a higher Change detection 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: Change detection: score vs. cost per task
Open weights
Change detection: score vs. cost per task
Change detection score against average cost per task (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 task (log scale); higher means a higher Change detection 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: Change detection: score vs. cost per task
Token usage
All
Change detection: tokens per task
Average tokens per task 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: Change detection: tokens per task
Open weights
Change detection: tokens per task
Average tokens per task 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: Change detection: tokens per task
Cost
All
Change detection: cost per task
Average cost per task (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: Change detection: cost per task
| Model | Developer | Uncached input | Cached input | Output | Not split by token type | Total |
|---|---|---|---|---|---|---|
| Nemotron 3.5 Lightning 30B (Reasoning), Terminus-2 | NVIDIA | $0.0011 | $0.00083 | $0.00089 | $0.00 | $0.0028 |
| GPT-6 Luna (medium), Codex | OpenAI | $0.0013 | $0.00082 | $0.00080 | $0.00 | $0.0029 |
| GPT-6 Luna (low), Codex | OpenAI | $0.0017 | $0.0011 | $0.00087 | $0.00000026 | $0.0037 |
| GPT-6 Luna (high), Codex | OpenAI | $0.0017 | $0.0010 | $0.0017 | $0.00 | $0.0044 |
| Claude Haiku 5.5 (low), Claude Code | Anthropic | $0.0010 | $0.0017 | $0.0018 | $0.0010 | $0.0056 |
| GPT-5.6 Luna (low), Codex | OpenAI | $0.0024 | $0.0015 | $0.0023 | $0.00 | $0.0062 |
| Claude Haiku 5.5 (medium), Claude Code | Anthropic | $0.0012 | $0.0019 | $0.0024 | $0.0012 | $0.0068 |
| gpt-oss-120b (low), Terminus-2 | OpenAI | $0.0054 | $0.00 | $0.0019 | $0.00000029 | $0.0073 |
| GPT-6 Luna (xhigh), Codex | OpenAI | $0.0024 | $0.0015 | $0.0044 | $0.00 | $0.0083 |
| GPT-5.6 Luna (medium), Codex | OpenAI | $0.0039 | $0.0022 | $0.0038 | $0.00 | $0.0099 |
| Claude Haiku 5.5 (high), Claude Code | Anthropic | $0.0018 | $0.0026 | $0.0040 | $0.0018 | $0.010 |
| Gemini 3.1 Flash-Lite (minimal), Terminus-2 | $0.0032 | $0.00025 | $0.0074 | $0.00 | $0.011 | |
| Nemotron 3.5 Super VL 120B (Reasoning), Terminus-2 | NVIDIA | No data | No data | No data | $0.013 | $0.013 |
| Claude Haiku 5.5 (xhigh), Claude Code | Anthropic | $0.0030 | $0.0037 | $0.0087 | $0.0030 | $0.018 |
| GPT-5.6 Luna (high), Codex | OpenAI | $0.0062 | $0.0051 | $0.0088 | $0.00000020 | $0.020 |
| Gemma 4 26B A4B (Reasoning), Terminus-2 | $0.0081 | $0.0065 | $0.0084 | $0.00 | $0.023 | |
| MiniMax M3.1 Flash (max), Terminus-2 | MiniMax | $0.0035 | $0.0038 | $0.016 | $0.00000016 | $0.023 |
| Gemini 3.1 Flash-Lite (low), Terminus-2 | $0.0059 | $0.0012 | $0.017 | $0.000000045 | $0.024 | |
| DeepSeek V4 Flash (high), Claude Code | DeepSeek | No data | No data | No data | $0.025 | $0.025 |
| gpt-oss-20b (high), Terminus-2 | OpenAI | $0.012 | $0.00 | $0.013 | $0.00 | $0.025 |
| Llama 3.3 70B (Non-reasoning), Terminus-2 | Meta | $0.018 | $0.00 | $0.0085 | $0.00000011 | $0.026 |
| GPT-5.6 Luna (xhigh), Codex | OpenAI | $0.0078 | $0.011 | $0.014 | $0.00 | $0.033 |
| DeepSeek V4 Pro (high), Codex | DeepSeek | $0.024 | $0.0020 | $0.011 | $0.00 | $0.037 |
| Gemini 3.1 Flash-Lite (high), Terminus-2 | $0.0053 | $0.00083 | $0.031 | $0.00000048 | $0.037 | |
| gpt-oss-120b (high), Terminus-2 | OpenAI | $0.026 | $0.00 | $0.012 | $0.00 | $0.038 |
| Mistral Large 3 (Non-reasoning), Terminus-2 | Mistral AI | $0.033 | $0.00 | $0.012 | $0.00000050 | $0.045 |
| GLM-4.7-Flash (Reasoning), Terminus-2 | Z.ai | $0.038 | $0.00 | $0.010 | $0.00000049 | $0.048 |
| Claude Sonnet 5.5 (low), Claude Code | Anthropic | $0.013 | $0.0079 | $0.015 | $0.013 | $0.048 |
| Claude Sonnet 5.5 (medium), Claude Code | Anthropic | $0.013 | $0.0085 | $0.018 | $0.013 | $0.054 |
| Gemini 3.1 Pro (preview) (low), Terminus-2 | $0.022 | $0.00 | $0.033 | $0.0000010 | $0.056 | |
| GPT-6.1 Sol (medium), Codex | OpenAI | $0.029 | $0.010 | $0.020 | $0.00000011 | $0.059 |
| GPT-6.1 Sol (high), Codex | OpenAI | $0.035 | $0.011 | $0.027 | $0.00000023 | $0.073 |
| GPT-6 Sol (medium), Codex | OpenAI | $0.026 | $0.023 | $0.025 | $0.00000040 | $0.074 |
| gpt-oss-20b (high), Codex | OpenAI | $0.070 | $0.00 | $0.0088 | $0.000000060 | $0.078 |
| Nemotron 3 Nano Omni 30B (Reasoning), Terminus-2 | NVIDIA | $0.011 | $0.051 | $0.018 | $0.00000020 | $0.079 |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | $0.011 | $0.0088 | $0.063 | $0.00000046 | $0.082 |
| DeepSeek V4 Flash (max), Terminus-2 | DeepSeek | $0.018 | $0.0058 | $0.059 | $0.00000027 | $0.083 |
| Claude Sonnet 5.5 (high), Claude Code | Anthropic | $0.021 | $0.012 | $0.031 | $0.021 | $0.085 |
| Claude Opus 5.5 (low), Claude Code | Anthropic | $0.024 | $0.014 | $0.027 | $0.024 | $0.089 |
| GLM-5.3-Flash (low), Terminus-2 | Z.ai | $0.059 | $0.020 | $0.012 | $0.00 | $0.091 |
| GLM-4.7-Flash (Reasoning), Claude Code | Z.ai | $0.086 | $0.00 | $0.0076 | $0.0000080 | $0.093 |
| MiMo V2.6 Flash (Reasoning), MiMo Code | Xiaomi | $0.062 | $0.013 | $0.020 | $0.00 | $0.096 |
| Nemotron 3 Ultra (high), Terminus-2 | NVIDIA | $0.048 | $0.0086 | $0.040 | $0.00 | $0.097 |
| GPT-6 Sol (high), Codex | OpenAI | $0.028 | $0.034 | $0.040 | $0.00 | $0.10 |
| Qwen 3.8 27B (xhigh), Terminus-2 | Alibaba (Qwen) | No data | No data | No data | $0.11 | $0.11 |
| GPT-6.1 Sol (xhigh), Codex | OpenAI | $0.044 | $0.017 | $0.059 | $0.000000090 | $0.12 |
| GPT-5.6 Terra (high), Codex | OpenAI | $0.037 | $0.032 | $0.051 | $0.00 | $0.12 |
| Claude Haiku 4.5 (Reasoning), Claude Code | Anthropic | $0.019 | $0.037 | $0.054 | $0.019 | $0.13 |
| Mistral Large 4 (high), Terminus-2 | Mistral AI | $0.073 | $0.014 | $0.042 | $0.00 | $0.13 |
| DeepSeek V4 Flash (high), Terminus-2 | DeepSeek | $0.042 | $0.0090 | $0.078 | $0.00 | $0.13 |
| Muse Glimmer 30B (high), Terminus-2 | Meta | $0.083 | $0.016 | $0.031 | $0.00 | $0.13 |
| Claude Opus 5.5 (medium), Claude Code | Anthropic | $0.034 | $0.020 | $0.050 | $0.034 | $0.14 |
| GLM-5.2 (Non-reasoning), Terminus-2 | Z.ai | $0.031 | $0.067 | $0.042 | $0.00000054 | $0.14 |
| Claude Haiku 5.5 (max), Claude Code | Anthropic | $0.0090 | $0.010 | $0.036 | $0.088 | $0.14 |
| MiniMax M3 (Reasoning), MiniMax Code | MiniMax | $0.022 | $0.086 | $0.049 | $0.00 | $0.16 |
| Step 5 Preview (Reasoning), Terminus-2 | StepFun | $0.025 | $0.018 | $0.11 | $0.018 | $0.17 |
| GLM-5.3-Flash (max), Terminus-2 | Z.ai | $0.13 | $0.012 | $0.025 | $0.000000023 | $0.17 |
| DeepSeek V4.1 Flash (max), Claude Code | DeepSeek | $0.039 | $0.0090 | $0.097 | $0.027 | $0.17 |
| Claude Opus 5.5 (high), Claude Code | Anthropic | $0.039 | $0.023 | $0.075 | $0.039 | $0.18 |
| DeepSeek V4 Flash (high), Codex | DeepSeek | $0.096 | $0.032 | $0.050 | $0.00000055 | $0.18 |
| Claude Sonnet 5.5 (xhigh), Claude Code | Anthropic | $0.039 | $0.023 | $0.089 | $0.039 | $0.19 |
| Gemini 3.8 Flash (low), Terminus-2 | $0.10 | $0.038 | $0.056 | $0.00 | $0.19 | |
| Gemini 3.8 Flash (high), Terminus-2 | $0.12 | $0.042 | $0.068 | $0.00 | $0.23 | |
| GLM-5.3-Flash (max), Claude Code | Z.ai | $0.17 | $0.023 | $0.036 | $0.00 | $0.23 |
| GPT-5.6 Sol (high), Codex | OpenAI | $0.078 | $0.078 | $0.094 | $0.00 | $0.25 |
| Kimi K2.6 (Reasoning), Terminus-2 | Moonshot AI | $0.069 | $0.071 | $0.12 | $0.00 | $0.26 |
| Kimi K2.7 Code (Reasoning), Terminus-2 | Moonshot AI | $0.046 | $0.13 | $0.095 | $0.000000013 | $0.27 |
| Qwen 3.8 27B (Reasoning), Qwen Code | Alibaba (Qwen) | No data | No data | No data | $0.29 | $0.29 |
| Claude Sonnet 5 (high), Claude Code | Anthropic | $0.045 | $0.085 | $0.13 | $0.045 | $0.30 |
| GLM-5.2 (high), Terminus-2 | Z.ai | $0.056 | $0.11 | $0.14 | $0.00 | $0.31 |
| Kimi K2.7 Code (Reasoning), Kimi Code | Moonshot AI | $0.079 | $0.15 | $0.080 | $0.00 | $0.31 |
| Kimi K3 (Reasoning), Terminus-2 | Moonshot AI | $0.24 | $0.00 | $0.15 | $0.00 | $0.39 |
| Claude Opus 5.5 (xhigh), Claude Code | Anthropic | $0.082 | $0.048 | $0.22 | $0.082 | $0.43 |
| GLM-5.2 (max), Terminus-2 | Z.ai | $0.10 | $0.14 | $0.19 | $0.00000011 | $0.43 |
| Claude Sonnet 4.6 (high), Terminus-2 | Anthropic | $0.017 | $0.0042 | $0.38 | $0.042 | $0.44 |
| Claude Opus 4.8 (high), Claude Code | Anthropic | $0.076 | $0.086 | $0.23 | $0.076 | $0.47 |
| Claude Fable 5.1 (medium), Claude Code | Anthropic | $0.12 | $0.030 | $0.21 | $0.12 | $0.49 |
| Gemini 3.1 Pro (preview) (high), Terminus-2 | $0.10 | $0.010 | $0.43 | $0.00 | $0.54 | |
| Claude Opus 5 (high), Claude Code | Anthropic | $0.098 | $0.10 | $0.24 | $0.098 | $0.54 |
| DeepSeek V4 Pro (high), Terminus-2 | DeepSeek | $0.41 | $0.0041 | $0.14 | $0.00000028 | $0.55 |
| GLM-5.2 (max), Claude Code | Z.ai | $0.18 | $0.17 | $0.21 | $0.00000015 | $0.56 |
| Kimi K2.6 (Reasoning), Kimi Code | Moonshot AI | $0.10 | $0.32 | $0.17 | $0.00 | $0.59 |
| Claude Opus 4.7 (high), Claude Code | Anthropic | $0.10 | $0.18 | $0.27 | $0.10 | $0.66 |
| gpt-oss-120b (high), Codex | OpenAI | $0.62 | $0.00 | $0.048 | $0.00 | $0.67 |
| DeepSeek V4 Pro (max), Terminus-2 | DeepSeek | $0.52 | $0.011 | $0.18 | $0.00000040 | $0.71 |
| Claude Fable 5.1 (high), Claude Code | Anthropic | $0.17 | $0.042 | $0.34 | $0.17 | $0.73 |
| Kimi K3 (Reasoning), Kimi Code | Moonshot AI | $0.21 | $0.19 | $0.36 | $0.00 | $0.76 |
| GLM-5.3 (low), Terminus-2 | Z.ai | $0.83 | $0.028 | $0.11 | $0.00 | $0.96 |
| GLM-5.3 (max), Terminus-2 | Z.ai | $0.78 | $0.040 | $0.18 | $0.00000039 | $0.99 |
| GLM-5.3 (max), Claude Code | Z.ai | $0.92 | $0.099 | $0.17 | $0.00 | $1.19 |
| Claude Sonnet 5.5 (max), Claude Code | Anthropic | $0.19 | $0.13 | $0.72 | $0.19 | $1.24 |
| Claude Opus 5.5 (max), Claude Code | Anthropic | $0.27 | $0.18 | $0.87 | $0.27 | $1.59 |
Open weights
Change detection: cost per task
Average cost per task (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: Change detection: cost per task
| Model | Developer | Uncached input | Cached input | Output | Not split by token type | Total |
|---|---|---|---|---|---|---|
| Nemotron 3.5 Lightning 30B (Reasoning), Terminus-2 | NVIDIA | $0.0011 | $0.00083 | $0.00089 | $0.00 | $0.0028 |
| gpt-oss-120b (low), Terminus-2 | OpenAI | $0.0054 | $0.00 | $0.0019 | $0.00000029 | $0.0073 |
| Nemotron 3.5 Super VL 120B (Reasoning), Terminus-2 | NVIDIA | No data | No data | No data | $0.013 | $0.013 |
| Gemma 4 26B A4B (Reasoning), Terminus-2 | $0.0081 | $0.0065 | $0.0084 | $0.00 | $0.023 | |
| MiniMax M3.1 Flash (max), Terminus-2 | MiniMax | $0.0035 | $0.0038 | $0.016 | $0.00000016 | $0.023 |
| DeepSeek V4 Flash (high), Claude Code | DeepSeek | No data | No data | No data | $0.025 | $0.025 |
| gpt-oss-20b (high), Terminus-2 | OpenAI | $0.012 | $0.00 | $0.013 | $0.00 | $0.025 |
| Llama 3.3 70B (Non-reasoning), Terminus-2 | Meta | $0.018 | $0.00 | $0.0085 | $0.00000011 | $0.026 |
| DeepSeek V4 Pro (high), Codex | DeepSeek | $0.024 | $0.0020 | $0.011 | $0.00 | $0.037 |
| gpt-oss-120b (high), Terminus-2 | OpenAI | $0.026 | $0.00 | $0.012 | $0.00 | $0.038 |
| Mistral Large 3 (Non-reasoning), Terminus-2 | Mistral AI | $0.033 | $0.00 | $0.012 | $0.00000050 | $0.045 |
| GLM-4.7-Flash (Reasoning), Terminus-2 | Z.ai | $0.038 | $0.00 | $0.010 | $0.00000049 | $0.048 |
| gpt-oss-20b (high), Codex | OpenAI | $0.070 | $0.00 | $0.0088 | $0.000000060 | $0.078 |
| Nemotron 3 Nano Omni 30B (Reasoning), Terminus-2 | NVIDIA | $0.011 | $0.051 | $0.018 | $0.00000020 | $0.079 |
| DeepSeek V4.1 Flash (max), Codex | DeepSeek | $0.011 | $0.0088 | $0.063 | $0.00000046 | $0.082 |
| DeepSeek V4 Flash (max), Terminus-2 | DeepSeek | $0.018 | $0.0058 | $0.059 | $0.00000027 | $0.083 |
| GLM-5.3-Flash (low), Terminus-2 | Z.ai | $0.059 | $0.020 | $0.012 | $0.00 | $0.091 |
| GLM-4.7-Flash (Reasoning), Claude Code | Z.ai | $0.086 | $0.00 | $0.0076 | $0.0000080 | $0.093 |
| MiMo V2.6 Flash (Reasoning), MiMo Code | Xiaomi | $0.062 | $0.013 | $0.020 | $0.00 | $0.096 |
| Nemotron 3 Ultra (high), Terminus-2 | NVIDIA | $0.048 | $0.0086 | $0.040 | $0.00 | $0.097 |
| Qwen 3.8 27B (xhigh), Terminus-2 | Alibaba (Qwen) | No data | No data | No data | $0.11 | $0.11 |
| Mistral Large 4 (high), Terminus-2 | Mistral AI | $0.073 | $0.014 | $0.042 | $0.00 | $0.13 |
| DeepSeek V4 Flash (high), Terminus-2 | DeepSeek | $0.042 | $0.0090 | $0.078 | $0.00 | $0.13 |
| Muse Glimmer 30B (high), Terminus-2 | Meta | $0.083 | $0.016 | $0.031 | $0.00 | $0.13 |
| GLM-5.2 (Non-reasoning), Terminus-2 | Z.ai | $0.031 | $0.067 | $0.042 | $0.00000054 | $0.14 |
| MiniMax M3 (Reasoning), MiniMax Code | MiniMax | $0.022 | $0.086 | $0.049 | $0.00 | $0.16 |
| Step 5 Preview (Reasoning), Terminus-2 | StepFun | $0.025 | $0.018 | $0.11 | $0.018 | $0.17 |
| GLM-5.3-Flash (max), Terminus-2 | Z.ai | $0.13 | $0.012 | $0.025 | $0.000000023 | $0.17 |
| DeepSeek V4.1 Flash (max), Claude Code | DeepSeek | $0.039 | $0.0090 | $0.097 | $0.027 | $0.17 |
| DeepSeek V4 Flash (high), Codex | DeepSeek | $0.096 | $0.032 | $0.050 | $0.00000055 | $0.18 |
| GLM-5.3-Flash (max), Claude Code | Z.ai | $0.17 | $0.023 | $0.036 | $0.00 | $0.23 |
| Kimi K2.6 (Reasoning), Terminus-2 | Moonshot AI | $0.069 | $0.071 | $0.12 | $0.00 | $0.26 |
| Kimi K2.7 Code (Reasoning), Terminus-2 | Moonshot AI | $0.046 | $0.13 | $0.095 | $0.000000013 | $0.27 |
| Qwen 3.8 27B (Reasoning), Qwen Code | Alibaba (Qwen) | No data | No data | No data | $0.29 | $0.29 |
| GLM-5.2 (high), Terminus-2 | Z.ai | $0.056 | $0.11 | $0.14 | $0.00 | $0.31 |
| Kimi K2.7 Code (Reasoning), Kimi Code | Moonshot AI | $0.079 | $0.15 | $0.080 | $0.00 | $0.31 |
| Kimi K3 (Reasoning), Terminus-2 | Moonshot AI | $0.24 | $0.00 | $0.15 | $0.00 | $0.39 |
| GLM-5.2 (max), Terminus-2 | Z.ai | $0.10 | $0.14 | $0.19 | $0.00000011 | $0.43 |
| DeepSeek V4 Pro (high), Terminus-2 | DeepSeek | $0.41 | $0.0041 | $0.14 | $0.00000028 | $0.55 |
| GLM-5.2 (max), Claude Code | Z.ai | $0.18 | $0.17 | $0.21 | $0.00000015 | $0.56 |
| Kimi K2.6 (Reasoning), Kimi Code | Moonshot AI | $0.10 | $0.32 | $0.17 | $0.00 | $0.59 |
| gpt-oss-120b (high), Codex | OpenAI | $0.62 | $0.00 | $0.048 | $0.00 | $0.67 |
| DeepSeek V4 Pro (max), Terminus-2 | DeepSeek | $0.52 | $0.011 | $0.18 | $0.00000040 | $0.71 |
| Kimi K3 (Reasoning), Kimi Code | Moonshot AI | $0.21 | $0.19 | $0.36 | $0.00 | $0.76 |
| GLM-5.3 (low), Terminus-2 | Z.ai | $0.83 | $0.028 | $0.11 | $0.00 | $0.96 |
| GLM-5.3 (max), Terminus-2 | Z.ai | $0.78 | $0.040 | $0.18 | $0.00000039 | $0.99 |
| GLM-5.3 (max), Claude Code | Z.ai | $0.92 | $0.099 | $0.17 | $0.00 | $1.19 |
Speed
All
Change detection: time per task
Time per task (at 100 output tokens/s), minutes · Lower is better
How to read this chart
Time per task. 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: Change detection: time per task
Open weights
Change detection: time per task
Time per task (at 100 output tokens/s), minutes · Lower is better
How to read this chart
Time per task. 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: Change detection: time per task
All
Change detection: score vs. time per task
Change detection score against time per task (at 100 output tokens/s), minutes · Higher and further left is better
- Most attractive quadrant
- Pareto line
How to read this chart
Time per task. 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 Change detection 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: Change detection: score vs. time per task
Open weights
Change detection: score vs. time per task
Change detection score against time per task (at 100 output tokens/s), minutes · Higher and further left is better
- Most attractive quadrant
- Pareto line
How to read this chart
Time per task. 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 Change detection 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: Change detection: score vs. time per task
Score vs. release date
All
Change detection: score vs. release date
Change detection 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 Change detection score. Models with no published release date are not plotted.
Data table: Change detection: score vs. release date
Open weights
Change detection: score vs. release date
Change detection 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 Change detection score. Models with no published release date are not plotted.
Data table: Change detection: score vs. release date
What the tasks are
Earth-Bench V2
Typical tasks: change and trend analysis, urban growth and night-time lights, vegetation and drought monitoring, snow and ice mapping, water and water quality mapping, surface temperature and heat mapping. Where the tasks are set and what they read.
Background
The score is the share of a model’s attempts that passed every check on each task of this kind, averaged over the tasks; it does not enter the indexes. How tasks are sorted into kinds of work.
