Blog / 2026-09-09

GPT-6 Astra Is a Better Analyst When It Uses Tools, Not When You Paste the Warehouse

Harsh Vardhan Goswami

The meeting has a number on the slide and nobody can say how it was made. Someone pasted a warehouse extract into a chat window because the new model “has a million tokens.” The answer came back fluent, cited three tables that exist, and used a grain nobody in finance signed. By Friday the number is in a customer email.

That failure is older than GPT-6 Astra. Astra, announced by OpenAI on 3 September 2026, makes the failure more tempting: long context, stronger terminal and science benches, notes that survive compaction. Capacity went up. The definition of revenue did not. If you leave this page with one sentence, make it this: a context window is not a warehouse, and a fluent paragraph is not a query.

The useful question is not “can the model hold our data?” It is “can it run a bounded investigation—select, transform, plot, check—without turning the lake into prompt stuffing?” Teams that learn that loop go home with a method they can use on any model. Teams that only learn the product name will repeat the meeting.

What you should actually believe about Astra

Treat the following as vendor-reported figures from OpenAI’s announcement and independent recaps, not as SyneHQ measurements. Benches are signals. They are not your Monday query.

Signal What it is evidence of What it is not Reported figure
Terminal-Bench 4.0 The model can complete terminal work that includes data analysis, not only git chores That it knows your status enum 57.9% vs 37.3% for GPT-5.6 Sol
Terminal-Bench Science 0.1 It can analyze data, simulate, fit models with code tools That a chart is the business definition 64.6% vs 52.6% for Claude Fable 5.1
MRCR v2 (8-needle, long band) Retrieval in very long inputs can stay high in their harness That a 400-column fact table is a “needle” Recaps cite 96.3% in the 512K–1M band
API envelope How much you can send, and the list price of sending it A reason to send it 1,050,000 context; 128,000 max output; $10 / $50 per 1M input/output tokens

Public recaps of the same launch tables disagree slightly (Terminal-Bench 4.0 is 57.9% in OpenAI’s announcement and 57.7% in some roundups). The charts below use the roundup set that names every compared model. Grouped bars, not stacked: a 72% desktop score plus a 57% terminal score is not 129% of anything. Missing bars mean that recap did not publish that model on that row. Higher is better. Not SyneHQ measurements. Exploit and ARC-AGI-3 harness fights are omitted: one is a different risk register, the other depends on the adapter.

Agentic execution · vendor-reported %. OSWorld 2.0, Terminal-Bench 4.0 (recap 57.7; OpenAI 57.9 vs Sol 37.3), Terminal-Bench Science 0.1. Blank = not in that recap.
Exams · vendor-reported %. FrontierMath Tier 4, GPQA Diamond, Humanity's Last Exam with tools. Astra is not first on HLE.

The takeaway from those two boards: Astra is strong at agentic execution (desktop, terminal, science tools), not a clean win on every exam. OSWorld 2.0 is the computer-use number people will quote (72.6% in the launch comparison). For analysis work, Terminal-Bench and Science are the rows that justify tools-not-paste. A 96% science QA score still does not know your revenue definition.

Two other launch claims matter more for analytics than CAD or browser demos. OpenAI describes Astra as better at staying inside a task, and Codex as able to keep searchable notes across windows instead of only compacting. If those hold in your harness, they help after you have shrunk the problem. They do not replace shrinking.

A high needle score is not the same as joining orders to invoices under an unstated refund rule. The model can retrieve a sentence about “net” and still sum gross. That is how you get a slide that survives until a controller opens the SQL.

The skill: shrink with tools, then reason

This loop is what you take home. Write it on the team wiki. It outlives Astra.

  1. Name the question in business words and in grain. “Why did net revenue drop in August?” is incomplete. Complete: net revenue, order grain, August in company timezone, excluding test accounts, using the finance-owned filter on status.
  2. Select. A SQL statement returns that grain. Time window, status, keys. The model should emit and show this statement. If you cannot paste the SQL into a console and get the same count, you do not have an analysis. You have a vibe.
  3. Transform on a projection. Aggregates, cohorts, residuals, top-N exceptions. Python or SQL. The model sees thousands of cells, not millions of facts. Wide SELECT * into the prompt is both a cost bug and an attention bug.
  4. Inspect artifacts a skeptic can touch. A table of the exception orders. A chart of the daily series next to the prior period. A markdown note: “definition used,” “source freshness unknown,” “join is inner—orphans dropped.”
  5. Stop. A recommendation is not an UPDATE. Exports, schedules, and production writes wait for a person. Fluency is not authority.

Astra’s science and terminal benches are an argument for steps 2–4 in a tool loop. If the model can run code, it should reduce rows. If it can search prior notes, it should search the investigation log, not a summary that dropped the failed join.

This is the same discipline as testing long-context degradation before production and treating reasoning agents as plan, execute, validate. The generation changed. The control surface did not.

Worked example: August net revenue

Suppose the dashboard says net revenue fell 12% month over month. A paste-the-warehouse session typically does this:

  • Dumps orders, order_items, refunds, customers.
  • Lets the model invent WHERE created_at >= … in UTC while the dashboard is company-local.
  • Sums amount and ignores status = 'refunded' because a comment said “net is after refunds” in a different table.

A shrink-then-reason session does this instead.

Plan (visible): Confirm the finance definition; pull August vs July at order grain; list the five order-status values that finance includes; compute the residual by product category; stop if the source has not refreshed since the dashboard job.

Select (illustrative):

SELECT
  date_trunc('day', timezone('America/Los_Angeles', o.created_at)) AS day,
  o.product_category,
  sum(o.amount_cents) FILTER (
    WHERE o.status IN ('paid', 'partially_refunded')
  ) / 100.0 AS net_usd
FROM orders o
WHERE o.is_test IS NOT TRUE
  AND timezone('America/Los_Angeles', o.created_at) >= DATE '2026-07-01'
  AND timezone('America/Los_Angeles', o.created_at) <  DATE '2026-09-01'
GROUP BY 1, 2;

You should disagree with this SQL if it is not your definition. That disagreement is the work. A chat answer that never shows a statement cannot be disagreed with except by mood.

Transform: Compare category residuals. Maybe one SKU’s refunds landed in August for July shipments. Maybe a status value chargeback was added in a migration and is missing from the IN list. Those are findings. “The model thinks demand softened” is not.

Inspect: Keep the daily series, the category table, and a 20-row sample of the new status. Write the caveat: “chargeback not in the signed definition; finance owns the next edit.”

Illustrative order-grain net USD by category. Synthetic. The point is a projection a skeptic can see, not a paste of orders.

Do not: paste the orders table “so Astra can see everything.” At list rates, a million input tokens is already $10 before output, and you still have not constrained grain. The expensive path is also the one that hides the missing status.

Token arithmetic you can do on a napkin

You do not need a FinOps suite to see the shape.

  • Dumping ~1M tokens of CSV at $10 / 1M input: $10 to load noise, plus output, plus retries when the first answer used the wrong column.
  • Sending a 2,000-token schema snippet, a 400-token question, and a 3,000-token aggregate result: cents, and the result is checkable.

Frontier prices are a reason to route work, which the next post in this series covers. They are also a reason not to confuse “the window is large” with “the window is free.” Large windows make oversupply feel virtuous. It is not.

Seven checks before you trust an LLM number

Print this. Use it in review. If a check fails, you do not ship the number. You ship a question.

  1. Grain. Order, line, daily account, invoice—named.
  2. Clock. Timezone and whether created_at or recognized_at.
  3. Population. Test flags, deleted rows, internal SKUs.
  4. Measure. Which column, which status filter, who owns it.
  5. Join. Named, or forbidden. Inner joins drop orphans; say so.
  6. Freshness. When did the source last land relative to the dashboard?
  7. Artifact. SQL + row counts a second person can rerun.

If your current chat UI cannot hold those seven, the model is not your problem. The surface is. Keeping SQL visible was already the rule for natural-language query. A larger window does not repeal it.

What not to do this week

Do not treat 1.05M tokens as a data platform. Position and distractor failures still exist in real documents. Cost grows faster than confidence.

Do not confuse computer-use marketing with warehouse access. Filling a CRM form is not “query production Postgres.” If a model can operate a desktop, the approval boundary gets stricter.

Do not recap cybersecurity benches as analytics news. Different beat, different risk register.

Do not claim a product “runs Astra” unless routing is real. The loop above works with any model that can call SQL and code tools. Astra is the public example of a frontier model aimed at that loop. The loop is the asset.

Where the loop wants to live

Disconnected tools recreate the meeting: dashboard in one tab, SQL in another, chat in a third, the caveat in Slack. The person who was out on Thursday cannot reconstruct Friday’s number.

Kole is built for shrink-then-reason inside Quantum Lab: SQL against a selected connection, Python on the frame, charts and tables as outputs, written context beside the work. Read-only discovery can run; configured consequential proposals wait for review. You can do the same loop in a local notebook. The product question is whether your team will keep the SQL, the note, and the gate when the model is having a good day.

The question-to-action loop still starts at a dashboard signal and still ends in a reviewable next step. Astra is interesting because it may complete more of the middle with fewer dead ends—if you give it queries and notebooks instead of a warehouse-shaped prompt.

If this changed how you will run the next variance review, you already got the learning. If you want that review to happen in one inspectable place, look at Quantum Lab. The follow-up post is when frontier token prices are worth it, and when a cheaper model should run the single governed SELECT.

Bring the question, the work, and the answer into one governed workspace.