Skip to content

Evaluation and modelsComparison

Frontier models compared: GPT-6, Fable 5.1, Gemini, Grok

Four frontier models, compared only on what their vendors publish: list rates, context windows, output limits, modalities, caching and the long-prompt rules that change a bill. Then a method for choosing between them on your own work.

By INFRO Editorial

Published

8 min read

A grid of dark tiles with several lit in amber, compared side by side on a dark ground, representing four frontier AI models

In short

On published facts, GPT-6 Astra and Claude Fable 5.1 share a $10 input and $50 output list rate per million tokens, Gemini 3.1 Pro (still a preview) lists $2 and $12, and Grok 4.7 lists $2 and $6, with different context windows, output limits and long-prompt surcharges. None of that says which model does your task well: evaluate each on your own tasks, compare cost per successful task, and route each task tier to the lowest-cost model that passes.

Key takeaways

  • GPT-6 Astra and Claude Fable 5.1 have the same standard input and output list rates; caching and long-prompt rules are where their bills diverge.
  • Gemini 3.1 Pro is a preview model, and Grok 4.7 has a 500K window, half the others; check both facts before designing around them.
  • Every vendor here reprices long prompts differently: above 272K, 200K or not at all. Know where your prompt sizes sit.
  • List rates price tokens, not outcomes. Cost per successful task on your own eval set is the comparison that decides.
  • Run candidates behind one route so the application never changes and every attempt is recorded with its estimated provider cost.

Four model families sit at the top of their vendors' price lists this autumn: OpenAI's GPT-6 Astra, Anthropic's Claude Fable 5.1, Google's Gemini 3.1 Pro and xAI's Grok 4.7. Comparisons of them tend to lead with benchmark charts. This one leaves benchmarks out and compares only what each vendor publishes about its own model — the facts that decide whether a model can run your workload at all, and what your provider will bill for it. Then it gives a method for the question the facts cannot answer: which one does your task well enough.

Every rate below is the vendor's own list rate, read on 2026-09-29. If your organization has negotiated rates with a provider, those are what you pay; the list rate is a reference point.

The four models on one page

GPT-6 Astra is described by OpenAI as its most capable model, built for the hardest end-to-end work1. Claude Fable 5.1 is Anthropic's model for demanding reasoning and long-horizon agentic work2. Gemini 3.1 Pro is published under the preview codes gemini-3.1-pro-preview and gemini-3.1-pro-preview-customtools, the second tuned for agentic work with custom tools and bash3. Grok 4.7 is served as grok-4.7, with a 500K-token context window and reasoning effort from low to xhigh4.

Vendor-publishedGPT-6 AstraClaude Fable 5.1Gemini 3.1 ProGrok 4.7
Context window1.05M (922K max input)1M1,048,576 input500K
Max output128K128K65,536Not listed
InputText, imageText, imageText, image, video, audio, PDFText, image
Structured outputs●Yes●Yes●Yes●Yes
Function / tool calling●Yes●Yes●Yes●Yes
Cached input / 1M$1.00$0.25$0.20 + storage$0.50
Long-prompt rule>272K input: 2x input, 1.5x outputStandard rate across 1M>200K: $4 in, $18 out≥200K: 2x, whole request
API model idgpt-6-astraclaude-fable-5-1gemini-3.1-pro-previewgrok-4.7
What each vendor publishes about its own model, read 2026-09-29. "Not listed" means the vendor page did not state it, not that the model lacks it.

Three facts in that grid deserve attention before anything else:

  • Gemini 3.1 Pro is a preview. Its model codes carry -preview3. That is a lifecycle fact, not a quality one, and it belongs in any production decision.
  • Output limits differ by a factor of two. Astra and Fable 5.1 both allow 128K output tokens52; Gemini 3.1 Pro allows 65,5363. Long generated documents or large code edits can hit the lower limit.
  • Grok 4.7's window is 500K4, where the other three sit near one million. Astra's 1.05M window accepts at most 922K input tokens5.

All four accept images alongside text; Gemini 3.1 Pro also takes video, audio and PDF input3. All four support function calling and structured outputs according to their vendors5634.

List rates

Vendor list rate, standard tier

USD per 1M tokens

  • GPT-6 Astrainput$10.00
  • GPT-6 Astra output$50.00
  • Claude Fable 5.1input$10.00
  • Claude Fable 5.1 output$50.00
  • Gemini 3.1 Proinput, prompts ≤200K$2.00
  • Gemini 3.1 Pro output, prompts ≤200K$12.00
  • Grok 4.7input, prompts <200K$2.00
  • Grok 4.7 output, prompts <200K$6.00
Standard-tier list rates per million tokens, from each vendor's pricing page on 2026-09-29. Gemini and Grok rates are for prompts under their long-prompt thresholds.

Astra and Fable 5.1 list the same rates: $10 per million input tokens and $50 per million output tokens78. Gemini 3.1 Pro lists $2 input and $12 output for prompts up to 200K tokens9. Grok 4.7 lists $2 input and $6 output under 200K10. See each model's reference page for the catalog entry INFRO estimates against: GPT-6 Astra, Claude Fable 5.1, Gemini 3.1 Pro and Grok 4.7.

A per-token rate is only half of a comparison, because the models do not produce the same number of tokens for the same work. A model that thinks longer, writes longer answers or needs a second attempt costs more per task at the same rate. That is why the method at the end divides by successful tasks, not by tokens.

Where the bills diverge: caching and long prompts

Two published rules change a bill more than the headline rate for many production workloads.

Cached input. Agents and assistants resend the same system prompt, tool definitions and history on every call, so cached-input pricing often decides the input bill. Fable 5.1 bills cache hits at 0.025x input, $0.25 per million, with 5-minute cache writes at $12.50 and 1-hour writes at $208. Astra lists cached input at $1.00 and cache writes at $12.507. Gemini 3.1 Pro lists context caching at $0.20 per million for prompts up to 200K, plus $4.50 per million tokens per hour of storage9. Grok 4.7 lists cached input at $0.50 below 200K4.

Long prompts. Each vendor treats a large prompt differently:

ModelThresholdWhat changes
GPT-6 AstraMore than 272K input tokens2x input and cache rates, 1.5x output, for the full request7
Claude Fable 5.1NoneThe full 1M window is billed at the standard rate8
Gemini 3.1 ProMore than 200K prompt tokens$4 input, $18 output per million9
Grok 4.7200K prompt tokens or moreHigher rate for all tokens in the request10
Long-prompt pricing rules as published on 2026-09-29.

Other published options that affect cost

  • Batch. OpenAI lists Astra's batch and flex tiers at $5 input and $25 output7; Anthropic lists Fable 5.1 batch at the same $5 and $258; Google lists Gemini 3.1 Pro batch at $1 and $6 below 200K9. Batch suits work nobody is waiting for.
  • Location. Anthropic applies a 1.1x multiplier when you pin inference to the US with inference_geo8. OpenAI charges a 10% uplift on regional processing endpoints for models released on or after March 5, 20267. If your contracts require a region, compare the uplifted rates.
  • Knowledge cutoff. Astra's is April 30, 20265; Fable 5.1's reliable knowledge cutoff is June 20262. It matters for tasks that depend on recent facts without retrieval.

What this comparison cannot tell you

No table of published facts says which model writes the better contract summary, fixes the harder bug or follows your tool schema more reliably on your data. Vendors publish benchmark results for their own models, but a benchmark measures a benchmark. Your prompts, your tools, your documents and your definition of a correct answer are different, and differences in output length and retry rate change the real cost per task as much as the rate card does. See evaluating models on real workloads for how to build the evaluation set.

A method for choosing

  1. 1 · filter

    Shortlist on facts

    Context, output limit, modalities, structured outputs, data location. Drop what cannot run the task.

  2. 2 · measure

    Build the eval set

    Real inputs with a pass/fail check per task, not a public leaderboard.

  3. 3 · compare

    Run behind one route

    Same prompts, same client, each model as a route target; record every request.

  4. 4 · decide

    Divide cost by passes

    Cost per successful task, then route each task tier to the lowest-cost model that passes.

Four steps from published facts to a routing decision. The facts filter; your own evaluation decides.
  1. Shortlist on facts. Remove any model that cannot run the task: too small a window, too low an output limit, a missing modality, a data-location option you need, or a preview status your policy rejects.
  2. Build an eval set from real traffic. Fifty to a few hundred real inputs per task type, each with a check a machine or a reviewer can apply: schema valid, test suite passes, answer matches the reference.
  3. Run every candidate on the same inputs through the same client, recording each request's estimated provider cost and outcome.
  4. Compute cost per successful task — total estimated cost for the model divided by the number of tasks it passed — and route each task tier to the lowest-cost model that meets your pass rate. The companion piece on cost per successful task goes deeper on the metric.

Running the comparison through INFRO routes

INFRO does not score answers; your eval harness does. What INFRO contributes is one endpoint for every candidate on your own provider accounts, a record of each request, and an estimate of what your provider will bill for it.

Connect each provider account you want to test under Providers — OpenAI, Anthropic, Google AI (Gemini) and xAI each have a connection kind. Then call each candidate by its catalog id through the OpenAI-compatible endpoint, tagging the run so its requests can be grouped later:

compare.py
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["INFRO_API_KEY"], base_url="https://api.infro.io/v1")

CANDIDATES = [
    "openai/gpt-6-astra",
    "anthropic/claude-fable-5.1",
    "google/gemini-3.1-pro",
    "xai/grok-4.7",
]

def run(task, model):
    resp = client.chat.completions.create(
        model=model,
        messages=task["messages"],
        extra_body={"metadata": {"workflow": "frontier-eval", "feature": task["kind"]}},
    )
    usage = resp.usage.model_dump()
    return {
        "request_id": resp.id,             # INFRO request id, req_...
        "model": resp.model,               # the model that actually served
        "passed": task["check"](resp.choices[0].message.content),
        "cost": usage.get("cost"),         # estimated provider cost; None if unpriced
    }

usage.cost is an estimate of what your provider will bill, and usage.price_source says whether it came from the list rate or from a rate you entered. Totals for the run come from GET /v1/usage?group_by=model&from=...&to=..., which returns requests, cost, unpriced requests, error rate and p50/p95 latency per model (usage analytics); individual requests are in GET /v1/requests?workflow=frontier-eval (request traces).

Two cautions. First, the catalog carries one rate per model, so a request above a vendor's long-prompt threshold is estimated at the base rate and reads low; if your prompts cross those thresholds, enter your own rate under Prices (billing) or compare against the provider's invoice. Second, if you have negotiated rates, enter them too, or the comparison will rank list prices you do not pay.

Once you have decided, put the choice behind a route: a stable name such as contract-review whose ordered targets name the chosen model first and a tested alternative second. The application keeps sending "model": "contract-review"; changing the model is a console edit, and every request's trace names the connection and model that served it. A weighted route can also send a small share of live traffic to a challenger, but it still falls through to other targets on failure, so group results by the model that served, not by which target was picked first (routing).

Your providers bill your accounts directly for every one of these requests, at your rates. INFRO's subscription is separate and is not priced per token.

Questions readers ask

Is GPT-6 Astra or Claude Fable 5.1 better for coding?
Neither vendor's documentation answers that for your codebase, and this comparison does not rank them. Run both on a set of real tasks from your repository with a pass/fail check such as the test suite, then compare the estimated provider cost of each passing task.
Can I use Gemini 3.1 Pro in production while it is a preview?
Google lists it under preview model codes. Read Google's terms for preview models before depending on one, and keep a tested alternative target on the same route so a change to the preview does not become an outage.

From the team that builds it

Where this shows up in INFRO

INFRO is a control plane in front of the provider accounts you already hold. The capabilities below are the parts of it this article touches, each with the documentation that defines its behaviour.

INFRO is in private early access. Provider usage is billed to you by your providers; INFRO charges a software subscription and takes 0% of model spend. See plans.

Sources

Numbered in order of first citation. Each was opened and checked against the claim on the date shown.

  1. 1.Models (opens in a new tab) — OpenAI. Accessed Sep 29, 2026.
  2. 2.Models overview (opens in a new tab) — Anthropic. Accessed Sep 29, 2026.
  3. 3.Gemini 3.1 Pro Preview (opens in a new tab) — Google. Accessed Sep 29, 2026.
  4. 4.Grok 4.7 (opens in a new tab) — xAI. Accessed Sep 29, 2026.
  5. 5.GPT-6 Astra (opens in a new tab) — OpenAI. Accessed Sep 29, 2026.
  6. 6.Structured outputs (opens in a new tab) — Anthropic. Accessed Sep 29, 2026.
  7. 7.Pricing (opens in a new tab) — OpenAI. Accessed Sep 29, 2026.
  8. 8.Pricing (opens in a new tab) — Anthropic. Accessed Sep 29, 2026.
  9. 9.Gemini Developer API pricing (opens in a new tab) — Google. Accessed Sep 29, 2026.
  10. 10.Models and pricing (opens in a new tab) — xAI. Accessed Sep 29, 2026.

About this article

Model facts were read from each vendor's own model and pricing pages on 2026-09-29; list rates match INFRO's model catalog, which records the same vendor sources. The article contains no quality rankings or benchmark scores. INFRO behaviour is described from its public documentation and gateway source. Cost figures inside example blocks are illustrative.

Last checked against its sources on . The next review is due by . No separate named reviewer is recorded for this article.

How articles are written, sourced and corrected is set out in the editorial standards.