Skip to content

GPT-6 Astra vs Terra: Same Contract Answers, 10x the Price

We gave GPT-6 Astra, Claude Fable 5.1, GPT-6.1 Terra and Claude Opus 5.5 a 15,000-word contract with four amendments and ten trap questions. All four got every trap right in every run; cost per read ranged from $0.02 (Terra) to $0.38 (Fable 5.1).

By the RanThis team, written with AI8 min read

Why trust this: every result, number and screenshot comes from a real run on our own accounts, not from the AI. How we test

GPT-6 Astra is OpenAI's most capable model, and at $10/$50 per million tokens it costs ten times as much as GPT-6.1 Terra. We gave Astra, Claude Fable 5.1, Terra and Claude Opus 5.5 a 15,000-word contract with four amendments and asked ten questions, each hiding a trap. All four got every trap right, for $0.02 to $0.38 per read.

The contract is the kind office teams dread: schedules, a data processing addendum, and amendments where the right answer sits on a later page that overrides an earlier one. Measured on 27 Oct 2026 through the OpenAI and Anthropic APIs, from a Python script. The contract is invented; the questions, answer key and scoring code were committed before any model was called, and the raw answers are kept with this article's source files.

At a glance

Key results

  • GPT-6 Astra answered all ten questions correctly in all three runs of round 1, and got questions 1–9 right in all three runs of the second, no-hints round, at a median $0.23 per contract read.
  • Claude Fable 5.1, GPT-6.1 Terra and Claude Opus 5.5 did the same. Across 24 runs, no model missed a trap, and none invented an answer to the question the contract does not answer.
  • Cost per contract read: Terra $0.022, Opus 5.5 $0.15, Astra $0.23, Fable 5.1 $0.38 (medians). Same answers, a 17× spread.
  • Astra and Fable 5.1 have the same list price, but Fable cost 1.65× more per read. Anthropic's API counted the identical file as 30,622 input tokens; OpenAI's counted 18,893. Fable also wrote more.
  • Terra was the fastest (median 9.0 s vs 15.4 s for Astra) as well as the cheapest.
  • What we did not test: contracts as scanned PDFs, files near the 1M-token context limit, Astra inside ChatGPT, or legal judgment. This is one invented contract, ten questions with fixed answers, three runs per model per prompt.

Hands-on test

Setup

  • Document: an invented master services agreement between a freight company (the customer) and a data vendor: 26 sections, five schedules (fees, service levels, approved subcontractors, service description, notice details), a data processing addendum and Amendments No. 1 to No. 4. About 15,000 words, 94,000 characters.
  • Ten questions, each with one trap:
    • March 2027 fee: Amendment 1 raised it 4%, Amendment 2 deleted that rise "as if it had never applied". A withdrawn "Tier B (Legacy)" row sits next to the real one.
    • May 2027 service credit: needs the new 3.5% fee rise from April and a credit band that Amendment 2 raised from 10% to 15%, then the contract's half-up rounding.
    • Invoicing: the body says monthly in arrears, Schedule A says quarterly in advance; a precedence clause decides.
    • Termination notice, asked twice: Amendment 2 changed it to 90 days for the customer only, so the vendor's notice stays 60.
    • Data-breach liability cap: Amendment 3 cut the multiple from 3× to 2×.
    • Subcontractor consent: Amendment 3 removed one firm from the approved list.
    • Deleting personal data: the body says 30 days, the data addendum says 45 "notwithstanding anything in the Agreement".
    • Governing law: Amendment 4 would move it to Delaware, but only the customer signed it, and the contract says amendments need both signatures.
    • Penalty for a late onboarding report: the report is required, but no penalty is written anywhere.
  • Two prompts: round 1 told the models to apply the document's own precedence and amendment rules and to answer "not stated" when the document is silent. Round 2, sealed after round 1 came back perfect, asked the same questions the way someone in a hurry would, with no hint about traps.
  • Scoring (code, not AI): one point per question, numbers to the cent. Round 2 did not tell models to say "not stated", so for question 10 we quote what each model wrote instead of scoring it.
  • Models: gpt-6-astra and gpt-6.1-terra at reasoning effort high; claude-fable-5-1 and claude-opus-5-5 at their defaults (Anthropic lists high for Fable 5.1, medium for Opus 5.5). Three runs each, interleaved, no streaming.
  • Cost: tokens × list price ($10/$50 per million for Astra and Fable 5.1, $4/$20 for Opus 5.5, $1/$5 for Terra), output including reasoning tokens, no cache discount. All 24 runs together cost $4.76.
Two contract excerpts: Amendment 2 deleting a fee rise retroactively, and Amendment 4 with the vendor's signature line left blank
Two of the traps, copied from the test file. The highlighted lines decide question 1 (the fee rise that never applied) and question 9 (an amendment only one side signed).

The results

Model (effort)Round 1 score, 3 runsRound 2, questions 1–9 correctMedian time, round 1 / 2Input tokensMedian cost per read (round 1)
GPT-6 Astra (high)10, 10, 109, 9, 915.4 s / 22.8 s18,893$0.233
Claude Fable 5.1 (default)10, 10, 109, 9, 917.4 s / 18.2 s30,622$0.385
GPT-6.1 Terra (high)10, 10, 109, 9, 99.0 s / 10.7 s18,893$0.022
Claude Opus 5.5 (default)10, 10, 109, 9, 914.7 s / 15.1 s30,622$0.150
Terminal output listing every run of both rounds with seconds, tokens, cost and score
Every run of both rounds, re-drawn from the saved logs (no new API calls). In round 2 the code marks question 10 wrong unless a model wrote "not stated" or left it empty; the answers themselves are quoted below.

What the models wrote on the hard ones

The useful difference between the models was not the answer but how much of the reasoning they showed. On the unsigned Amendment 4, Claude Opus 5.5 wrote: "Amendment No. 4 is an unsigned draft (no Vendor signature), so it is not effective under Section 26.4." Fable 5.1 gave the same reason. Astra's note pointed to the same place in fewer words: "Agreement Sections 25.1 and 26.4; Amendment No. 4, clause 2 and incomplete signature block." Terra listed only the section numbers.

On the service-credit question, the Claude models showed the arithmetic ("14,500 x 1.035 = 15,007.50 from 1 April 2027"), while the OpenAI models gave the right number with a list of sections. If someone else has to check the answer, the longer note saves them a trip back into the contract; if you only want the number, it is output you pay for.

Question 10 in round 2 is where we expected a guess. There is an onboarding report with a 20-business-day deadline and no penalty, and the question asks "what penalty, in USD". No model made one up. Terra wrote "No contractual penalty specified" or "No penalty specified". Astra wrote "No contractual penalty specified" and "Not specified", and once left the answer empty with the note "no monetary penalty specified". Opus 5.5 returned an empty answer every time, with a note that no section sets a penalty. Fable 5.1 returned the number 0 in all three runs, and its note said "no penalty or liquidated damages is specified anywhere". That is right in substance, but if you copy only the answer column into a spreadsheet, a 0 reads like a zero-dollar penalty the contract sets, and the contract sets none.

What worked

What worked

  • Every model applied the precedence clause, the retroactive deletion and the one-sided signature correctly in every run, with or without being told to look for them.
  • Every reply parsed as JSON; no run needed a retry.
  • Sealing the questions, answers and scoring code before the first call meant the second round could not be tuned to make anyone lose.

Where it fell short

What didn't work

  • The test did not separate the models. A contract of about 20,000–30,000 tokens with ten planted traps was within what all four handled in every run; a longer file, a scanned PDF or vaguer questions might split them, and we have not measured that.
  • Our scoring code accepted only "not stated"-style wording or an empty answer for question 10, so in round 2 it marked correct answers like "No contractual penalty specified" as wrong. We report those answers verbatim instead of changing the sealed code.
  • Three runs per model per prompt shows consistency, not a failure rate. Our earlier messy sales sheet test of GPT-6.1 Terra, Astra and Fable 5.1 did split the models, on one ambiguous cell; clear-cut traps like the ones in this contract did not.

FAQ

How much does GPT-6 Astra cost per document?

OpenAI lists GPT-6 Astra at $10 per million input tokens and $50 per million output tokens. In our test, one read of a 15,000-word contract (18,893 input tokens) plus a JSON answer cost a median $0.23 at reasoning effort high. A short document costs proportionally less; prompts above 272,000 input tokens are billed at a higher rate.

Is GPT-6 Astra better than Claude Fable 5.1 at reading contracts?

Not in our test: both answered all ten trap questions correctly in every run. Astra was cheaper per read ($0.23 vs $0.38) because OpenAI counted fewer input tokens for the same file and Astra wrote shorter answers. Fable's notes explained its reasoning in more detail.

Do I need GPT-6 Astra to check a contract with amendments?

For a contract of this size, no. GPT-6.1 Terra at reasoning effort high gave the same answers for about $0.02 per read, and Claude Opus 5.5 did the same for $0.15. Whatever you use, have a person check the clauses the model cites before acting on them.

Our verdict

For reading a long contract and pulling out facts that depend on amendments and precedence clauses, GPT-6 Astra is accurate, but in our test so was GPT-6.1 Terra at a tenth of the price and in about half the time. We would not pay for Astra for this kind of job. If you work in Claude, Opus 5.5 gave the same answers as Fable 5.1 at 40% of the cost. Fable and Astra share a list price, yet the same file cost 1.65× more on Fable, so compare cost per document, not price per token. Whichever model you use, ask it to name the section and the amendment behind each answer, because that note is what lets a person check it in a minute.

How this was made: an AI (Claude) helped write this article; the RanThis editor ran the test script, checked every number against the raw results and checked facts against the linked sources.

Claude

Connect Claude to PostgreSQL: Remote MCP Server, Tested

We built a small remote MCP server that lets Claude query a PostgreSQL database read-only, with scoped tokens and an audit log. Claude Code answered three business questions in 5 tool calls and 19.1 s for $0.10; every number matched direct SQL.

AI-generated illustration

Claude

Claude Long Chat vs New Chat: Does It Get Lost? (Tested)

We hid three corrections in a 40-message office chat about a fake sales table and asked Claude Haiku 5.5 and Sonnet 5.5 five questions there, in a short chat and in a new chat built from a summary. All scored 5/5; the new chat carried 5–7 times less history per message.

AI-generated illustration

Other AI

ElevenLabs API Key: Free Tier Tested on 4 Models (2026)

We created a free ElevenLabs API key with a 2,000-credit cap and ran Flash v2.5, Multilingual v2, v3 and v4 in English and Vietnamese: what each call cost, how fast it was, which models read Vietnamese correctly, and what the free tier blocks.

AI-generated illustration