Stubbi
Compare
Head-to-head · Updated Nov 3, 2026

ChatGPT vs Claude

The highest-scoring ChatGPT and Claude models, GPT-6 Astra and Claude Opus 5.5, on independent tests for professional work, cost and speed.

Short answer

Claude Opus 5.5 leads on 11 of 13 quality scores, including the overall Intelligence Index.

  • FinanceClaude Opus 5.559.4 vs 57.4
  • Legal workClaude Opus 5.558.0 vs 55.6
  • HealthcareClaude Opus 5.557.9 vs 53.7
  • EngineeringClaude Opus 5.564.6 vs 61.8
  • Strategy & operationsClaude Opus 5.561.4 vs 58.0
  • Coding agentsClaude Opus 5.559.6% vs 59.1%
  • Expert knowledgeClaude Opus 5.561.4% vs 54.7%
  • Fewer made-up answersGPT-6 Astra49.8% vs 50.3%
  • Lower costGPT-6 Astra$5,661 vs $8,910
  • SpeedClaude Opus 5.596 tok/s vs 73 tok/s

Same task, side by side

6 original professional tasks, run Nov 3, 2026. One response per model with default settings and no system prompt, through OpenRouter. Cost includes reasoning tokens and excludes OpenRouter’s 5.5% funding fee.

Legal

Spot the risks in a software contract

Task
You are advising the customer, a 40-person design agency, before it signs this software subscription agreement. List the three biggest risks to the customer in order of importance. For each, explain the risk in one or two sentences and propose replacement wording. Keep the whole answer under 250 words.

Clause:
"In no event shall Provider's aggregate liability arising out of or related to this Agreement exceed the fees paid by Customer in the one (1) month preceding the claim. Provider may modify the Services or these terms at any time by posting notice on its website, and Customer's continued use constitutes acceptance. Customer shall indemnify Provider against all claims arising from Customer Data, including claims caused by Provider's negligence. This Agreement renews automatically for successive twelve (12) month terms unless Customer gives written notice of non-renewal at least ninety (90) days before the end of the then-current term."
GPT-6 Astra19s · $0.026

1. Broad, potentially uncapped customer indemnity

The agency could have to defend and pay claims caused by the Provider’s own negligence, while only the Provider benefits from the liability cap.

Replacement: “Customer shall indemnify Provider only against third-party claims to the extent caused by Customer’s unlawful provision of Customer Data, excluding losses attributable to Provider’s negligence, misconduct, or breach. This obligation is capped at twelve months’ subscription fees. Customer controls the defense; settlements imposing obligations on Provider require Provider’s reasonable consent.”

2. Provider liability capped at one month’s fees

This could leave the agency recovering almost nothing after a serious outage, lost client work, or data breach.

Replacement: “Provider’s aggregate liability shall not exceed the fees paid or payable for twelve months of Services. For breaches of confidentiality or data-security obligations, the cap shall be twice that amount. No cap applies to Provider’s fraud, willful misconduct, or liability that cannot lawfully be limited.”

3. Unilateral changes compounded by renewal lock-in

The Provider can change functionality or contractual protections without meaningful consent, while the 90-day deadline risks trapping the agency in another annual term.

Replacement: “Material changes to these terms require Customer’s express written agreement. Provider shall give 60 days’ advance written notice of materially adverse Service changes; Customer may terminate before implementation and receive a prorated refund of prepaid unused fees. Renewal requires Customer’s written agreement; otherwise, this Agreement expires at the end of the current term.”

Claude Opus 5.59s · $0.017

Top Three Risks to the Customer

1. Indemnity covers Provider's own negligence

The agency must pay Provider's losses for Customer Data claims even when Provider caused them, such as a breach of client files through Provider's poor security. This exposure is uncapped and reverses who bears the fault.

Replacement: "Customer shall indemnify Provider against third-party claims alleging that Customer Data, as provided by Customer, infringes third-party rights, except to the extent caused by Provider's negligence, willful misconduct, or breach of this Agreement."

2. Liability cap of one month's fees

If Provider loses or leaks client work, the agency's recovery is limited to roughly one month's subscription. That is almost no remedy.

Replacement: "Provider's aggregate liability shall not exceed the greater of fees paid in the twelve (12) months preceding the claim or $[X]. This cap shall not apply to Provider's breach of data security or confidentiality obligations, indemnification obligations, gross negligence, or willful misconduct."

3. Unilateral changes by website posting

Provider can change the services or any term, including risks 1 and 2, without direct notice. Continued use then counts as acceptance.

Replacement: "Provider may not materially reduce the Services during a term. Changes to these terms require thirty (30) days' written notice to Customer by email. If a change is adverse, Customer may terminate without penalty and receive a pro-rata refund of prepaid fees."

Also negotiate: Shorten the 90-day non-renewal notice to 30 days, and require Provider to send a renewal reminder.

What a strong answer includes. The clause contains four customer risks: a one-month liability cap, unilateral changes by website notice, an indemnity that covers the provider’s own negligence, and a 90-day auto-renewal notice window. Strong answers prioritize the liability cap and the negligence indemnity and give usable replacement wording.

Finance

Calculate margins and brief a board

Task
Harbor Lane Coffee Co. (a fictional company) reported these figures. Calculate year-over-year revenue growth, gross margin and operating margin for both quarters, operating margin for Q3 2026 excluding the one-time charge, and revenue per store for both quarters. Then write four bullet points summarizing the quarter for the board. Show your figures to one decimal place.

Q3 2026: revenue $4.82M; cost of goods sold $1.98M; operating expenses $2.31M, which include a one-time lease termination charge of $0.21M; 38 stores at quarter end.
Q3 2025: revenue $4.10M; cost of goods sold $1.56M; operating expenses $2.02M; 33 stores at quarter end.
GPT-6 Astra16s · $0.045

Calculated results

MetricQ3 2026Q3 2025
Year-over-year revenue growth17.6%Not calculable¹
Gross margin58.9%62.0%
Operating margin11.0%12.7%
Operating margin excluding the one-time charge15.4%—
Revenue per quarter-end store$126,842.1$124,242.4

¹ Q3 2024 revenue was not provided.

Calculations (financial amounts in millions, except revenue per store):

  • Revenue growth: (4.82 ÷ 4.10 - 1) × 100 = 17.6%.
  • Gross margin: (Revenue - COGS) ÷ Revenue, giving 58.9% for 2026 and 62.0% for 2025.
  • Operating margin: (Revenue - COGS - Operating expenses) ÷ Revenue, giving 11.0% for 2026 and 12.7% for 2025.
  • Adjusted Q3 2026 operating margin: [4.82 - 1.98 - (2.31 - 0.21)] ÷ 4.82 × 100 = 15.4%.
  • Revenue per store: $4,820,000 ÷ 38 = $126,842.1; $4,100,000 ÷ 33 = $124,242.4.

Board summary

  • Revenue increased 17.6% year over year, while the quarter-end store count grew 15.2%, from 33 to 38.
  • Gross margin declined 3.0 percentage points to 58.9%, as cost of goods sold grew faster than revenue.
  • Reported operating margin fell to 11.0% from 12.7%. Excluding the one-time lease termination charge, Q3 2026 operating margin was 15.4%, or 2.7 percentage points above Q3 2025’s reported margin.
  • Revenue per quarter-end store increased 2.1% to $126,842.1. This is a network-level productivity measure, not same-store sales growth, and does not account for store opening dates.

Percentage-point changes are calculated using unrounded margins.

Claude Opus 5.512s · $0.030

Harbor Lane Coffee Co.: Q3 2026 vs. Q3 2025

Calculations

MetricQ3 2026Q3 2025Change
Revenue$4.82M$4.10M+17.6% YoY
Gross profit$2.84M$2.54M+$0.30M
Gross margin58.9%62.0%−3.1 pts
Operating income (reported)$0.53M$0.52M+$0.01M
Operating margin (reported)11.0%12.7%−1.7 pts
Operating income (excl. $0.21M charge)$0.74Mn/an/a
Operating margin (excl. charge)15.4%12.7%+2.7 pts
Revenue per store$126.8K$124.2K+2.1%

Workings

  • Revenue growth: ($4.82M − $4.10M) ÷ $4.10M = 17.6%
  • Gross margin: ($4.82M − $1.98M) ÷ $4.82M = 58.9%; ($4.10M − $1.56M) ÷ $4.10M = 62.0%
  • Operating margin: ($2.84M − $2.31M) ÷ $4.82M = 11.0%; ($2.54M − $2.02M) ÷ $4.10M = 12.7%
  • Adjusted operating margin: ($0.53M + $0.21M) ÷ $4.82M = 15.4%
  • Revenue per store: $4.82M ÷ 38 = $126.8K; $4.10M ÷ 33 = $124.2K

Note: Revenue per store uses quarter-end store counts. If stores opened during the quarter, an average store count would give a more accurate (likely higher) per-store figure for Q3 2026.

Board Summary

  • Strong top-line growth: Revenue rose 17.6% year over year to $4.82M. Most of the growth came from expansion to 38 stores from 33, and revenue per store also edged up 2.1% to $126.8K.
  • Gross margin compression needs attention: Gross margin fell 3.1 points to 58.9% because cost of goods sold grew 26.9%, well ahead of revenue. Management should identify whether input costs, product mix, or new-store inefficiencies are the cause.
  • Underlying profitability improved despite the reported dip: Reported operating margin declined to 11.0% from 12.7%, driven by a one-time $0.21M lease termination charge. Excluding the charge, operating margin rose to 15.4%, and operating expenses grew only 4.0%, showing good overhead leverage.
  • Outlook: Operating income was roughly flat on a reported basis ($0.53M vs. $0.52M) but up about 42% excluding the charge. The key priority is restoring gross margin so that store expansion translates fully into profit growth.

What a strong answer includes. Correct figures: revenue growth 17.6%; gross margin 58.9% (Q3 2026) vs 62.0% (Q3 2025); operating margin 11.0% vs 12.7%; Q3 2026 operating margin excluding the charge 15.4%; revenue per store about $126.8K vs $124.2K.

Healthcare

Rewrite discharge instructions in plain language

Task
Rewrite these hospital discharge instructions for a patient who reads at about a sixth-grade level. Keep every medicine, dose, timing and warning sign. Use short sentences and headings. Stay under 200 words. Do not add medical advice that is not in the original.

"Patient may resume a regular diet as tolerated. Take amoxicillin-clavulanate 875 mg PO BID x 7 days with food; complete the full course. Acetaminophen 650 mg PO q6h PRN pain; do not exceed 3,000 mg/24h. Avoid NSAIDs for 7 days. Keep incision clean and dry; may shower after 48 hours, no tub baths for 2 weeks. Return to the ED or call the surgical clinic for T > 101°F (38.3°C), increasing erythema or purulent drainage at the incision site, persistent vomiting, or abdominal pain uncontrolled by medication. Follow-up with Dr. Patel in surgical clinic in 10–14 days."
GPT-6 Astra9s · $0.018

Food

Eat your usual foods as you are able.

Medicines

  • Amoxicillin-clavulanate: Take 875 mg by mouth twice a day for 7 days. Take it with food. Finish all 7 days.
  • Acetaminophen: Take 650 mg by mouth every 6 hours as needed for pain. Do not take more than 3,000 mg in 24 hours.
  • Do not take NSAIDs (a type of pain medicine) for 7 days.

Care for Your Cut

Keep your surgery cut clean and dry. You may shower after 48 hours. Do not take tub baths for 2 weeks.

When to Get Help

Go to the emergency room or call the surgery clinic if you have:

  • A fever above 101°F (38.3°C).
  • More redness or pus coming from your surgery cut.
  • Vomiting that does not stop.
  • Belly pain that medicine does not control.

Follow-Up Visit

See Dr. Patel in the surgery clinic in 10–14 days.

Claude Opus 5.516s · $0.039

Going Home After Surgery

Eating

You can go back to your normal foods. Eat what your stomach can handle.

Your Medicines

1. Amoxicillin-clavulanate (antibiotic)

  • Take 875 mg by mouth.
  • Take it 2 times a day for 7 days.
  • Take it with food.
  • Take every pill, even if you feel better.

2. Acetaminophen (Tylenol) for pain

  • Take 650 mg by mouth every 6 hours if you need it for pain.
  • Do not take more than 3,000 mg in 24 hours.

3. No NSAIDs for 7 days

  • NSAIDs are pain medicines like ibuprofen (Advil, Motrin) and naproxen (Aleve).

Caring for Your Cut (Incision)

  • Keep it clean and dry.
  • You may shower after 48 hours (2 days).
  • Do not take a bath in a tub for 2 weeks.

When to Get Help

Go to the emergency room or call the surgery clinic if you have:

  • A fever over 101°F (38.3°C)
  • Redness around your cut that keeps getting worse
  • Pus coming from your cut
  • Throwing up that will not stop
  • Belly pain that your medicine does not help

Your Next Visit

See Dr. Patel at the surgery clinic in 10 to 14 days.

What a strong answer includes. A complete answer keeps: the antibiotic twice a day with food for 7 days and finishing it; acetaminophen 650 mg every 6 hours as needed with a 3,000 mg daily maximum; no NSAIDs such as ibuprofen for 7 days; showering after 48 hours and no baths for 2 weeks; all four warning signs (fever over 101°F, spreading redness or pus, ongoing vomiting, uncontrolled belly pain); and the 10–14 day follow-up.

Business writing

Push back on a price increase

Task
Write an email from Maya Chen, operations manager at a 12-location dental group, to Jordan at BrightSmile Supply. BrightSmile has announced an 18% price increase starting next month. Maya wants to keep the relationship but cannot accept the full increase. Propose two concrete alternatives and ask for a call this week. Be warm and firm. Keep it under 150 words, including a subject line.
GPT-6 Astra7s · $0.0095

Subject: Finding a workable path on next month’s pricing

Hi Jordan,

We value our relationship with BrightSmile and want to continue working together across our 12 dental locations. However, the announced 18% increase starting next month is beyond what our operating budget can absorb.

Could we explore one of these alternatives?

  • Cap the increase at 6% for the next 12 months in exchange for a one-year purchasing commitment.
  • Phase in the increase: 6% next month, 6% after six months, and the remaining 6% after 12 months, with no additional increases during that period.

We’re committed to finding a solution that works for both teams, but we can’t accept the full increase next month.

Are you available for a call this week to discuss?

Best,

Maya Chen

Operations Manager

Claude Opus 5.59s · $0.021

Subject: Finding a workable path on the new pricing

Hi Jordan,

Thanks for the advance notice on the 18% increase. BrightSmile has been a dependable partner for all 12 of our locations, and I want to keep it that way. That said, we can't absorb the full increase in our current budget.

Two options I'd like to discuss:

  1. Phased increase: 6% next month, with any further adjustment revisited at our review in six months.
  2. Longer commitment: a two-year agreement with consolidated monthly ordering across all locations, in exchange for capping the increase at 8%.

I'm open to other ideas that get us to a similar place. Do you have 30 minutes Thursday or Friday for a call? I'd like to settle this before the new pricing takes effect.

Best,

Maya Chen

Operations Manager, [Dental Group Name]

What a strong answer includes. Look for a clear subject line, a firm statement that 18% is not acceptable, two specific alternatives (for example a smaller or phased increase, a longer contract or volume commitment), a request for a call this week, and a length under 150 words.

Coding

Fix a bug in a Python function

Task
This function returns the wrong answer. Explain the bug in one or two sentences, give a corrected version, and add two short test cases.

def average_order_value(orders):
    """Return the average order total, ignoring refunded orders."""
    total = 0
    for order in orders:
        if order["status"] != "refunded":
            total += order["total"]
    return total / len(orders)
GPT-6 Astra5s · $0.014

The function excludes refunded orders from the total but still counts them in the divisor, making the average too low. Divide by the number of non-refunded orders instead, returning 0 when none remain (including an empty input).

def average_order_value(orders):
    """Return the average non-refunded order total, or 0 if none."""
    total = 0
    count = 0
    for order in orders:
        if order["status"] != "refunded":
            total += order["total"]
            count += 1
    return total / count if count else 0
assert average_order_value([
    {"status": "paid", "total": 20},
    {"status": "paid", "total": 40},
    {"status": "refunded", "total": 90},
]) == 30

assert average_order_value([
    {"status": "refunded", "total": 50},
]) == 0
Claude Opus 5.55s · $0.0092

Bug: The sum skips refunded orders, but the division uses len(orders), which still counts them. That drags the average down whenever any order is refunded, and it raises ZeroDivisionError on an empty list.

Corrected version:

def average_order_value(orders):
    """Return the average order total, ignoring refunded orders."""
    total = 0
    count = 0
    for order in orders:
        if order["status"] != "refunded":
            total += order["total"]
            count += 1
    if count == 0:
        return 0.0  # no valid orders; adjust (e.g., return None) if preferred
    return total / count

Test cases:

def test_ignores_refunded_orders():
    orders = [
        {"status": "completed", "total": 100},
        {"status": "refunded",  "total": 50},
        {"status": "completed", "total": 200},
    ]
    assert average_order_value(orders) == 150  # buggy version returns 100

def test_all_refunded_or_empty():
    assert average_order_value([]) == 0.0
    assert average_order_value([{"status": "refunded", "total": 80}]) == 0.0

What a strong answer includes. The function divides by every order, including refunded ones, so the average is too low. A complete fix counts only non-refunded orders and handles an empty list or all-refunded orders without dividing by zero.

Spreadsheets

Write a spreadsheet formula

Task
In Excel, column A has order dates, column B has the sales region and column C has revenue, with headers in row 1 and data in rows 2–5000. Write one formula that returns total revenue for the "West" region in the third quarter of 2026 (July 1 through September 30). Briefly explain how it works.
GPT-6 Astra3s · $0.0069
=SUMIFS(C2:C5000,B2:B5000,"West",A2:A5000,">="&DATE(2026,7,1),A2:A5000,"<"&DATE(2026,10,1))

SUMIFS totals revenue in column C where the region is West and the order date is on or after July 1, 2026, but before October 1, 2026. The exclusive October 1 cutoff includes all of September 30, even if dates contain times.

Claude Opus 5.57s · $0.014

Formula

=SUMIFS(C2:C5000, B2:B5000, "West", A2:A5000, ">="&DATE(2026,7,1), A2:A5000, "<"&DATE(2026,10,1))

How it works

SUMIFS adds values from one range only for rows that meet all of the listed conditions:

  1. C2:C5000 is the range to sum (revenue).
  2. B2:B5000, "West" keeps only rows where the region is West. The match is not case-sensitive.
  3. A2:A5000, ">="&DATE(2026,7,1) keeps only dates on or after July 1, 2026. The & joins the operator >= to the date value. DATE makes the formula work regardless of regional date formats.
  4. A2:A5000, "<"&DATE(2026,10,1) keeps only dates before October 1, 2026.

Using "before October 1" instead of "on or before September 30" means any Sept 30 entries that include a time (e.g., 9/30/2026 3:45 PM) are still counted.

Notes

  • Column A must contain real Excel dates, not text that looks like dates. Otherwise the date conditions won't match.
  • Region values with extra spaces (e.g., "West ") won't match "West".
  • To make the formula reusable, you could put the region and dates in cells and reference them, e.g., B2:B5000, F1, A2:A5000, ">="&F2.

What a strong answer includes. One correct answer: =SUMIFS(C2:C5000,B2:B5000,"West",A2:A5000,">="&DATE(2026,7,1),A2:A5000,"<"&DATE(2026,10,1)). Ending before October 1 also counts orders timestamped later on September 30; "<=" September 30 works only when dates have no time. DATE() avoids regional date-format problems that typed dates such as "7/1/2026" can cause.

Scores, cost and speed

ChatGPT vs Claude: scores, cost and speed reported by Artificial Analysis
MeasureGPT-6 Astra (Max)Claude Opus 5.5 (Max, Default Fallback)
Overall
Intelligence IndexCombined score across nine evaluations56.9Leads: 58.4
Professional work
Finance & accounting57.4Leads: 59.4
Legal55.6Leads: 58.0
Healthcare & medical53.7Leads: 57.9
Engineering61.8Leads: 64.6
Strategy & operations58.0Leads: 61.4
Economics58.3Leads: 62.3
Specific tests
Terminal-Bench 4.0Agentic coding tasks59.1%Leads: 59.6%
FrontierCode 2.0Hard programming problems42.4%Leads: 46.4%
Humanity’s Last ExamExpert-level questions54.7%Leads: 61.4%
HealthBenchHealth conversations graded by physicians’ rubricsLeads: 58.2%57.0%
GDPval-AAKnowledge-work deliverables, Elo1584Leads: 1866
Hallucination rateAA-Omniscience; lower is betterLeads: 49.8%50.3%
Cost & speed
Input priceUS$ per 1M tokens$10Leads: $4
Output priceUS$ per 1M tokens$50Leads: $20
Cost to run the indexUS$, includes reasoning tokensLeads: $5,661$8,910
Output speedMedian tokens per second73 tok/sLeads: 96 tok/s
Context windowTokens1M1M

Scores, prices and speeds: Artificial Analysis, independently measured, checked Nov 3, 2026. Model names include the tested reasoning setting. Stubbi has not rerun these evaluations. Consumer apps such as ChatGPT, Claude and Gemini may use other models and add features like search and memory.

All measured ChatGPT and Claude models

Model and settingReleasedIndexPrice in / out
Claude Opus 5.5 (Max, Default Fallback)AnthropicSep 202658.4$4 / $20
GPT-6 Astra (Max)OpenAISep 202656.9$10 / $50
GPT-6.1 Sol (Max)OpenAISep 202654.5$2 / $10
Claude Sonnet 5.5 (Max, Default Fallback)AnthropicSep 202654.2$2 / $10
GPT-6.1 Terra (Max)OpenAIOct 202651.0$1 / $5
Claude Fable 5.1 (Max, Default Fallback)AnthropicSep 202649.0$10 / $50
Claude Haiku 5.5 (Max)AnthropicOct 202636.2$0.10 / $0.50
GPT-6 Luna (Max)OpenAISep 202627.8$0.10 / $0.50

Test them on your own work

Public scores can’t show how each model handles your documents, clients or standards. Tell us the task, and we’ll consider a side-by-side comparison with the outputs you can judge.