# ChatGPT vs Claude, round 1 of 3 (suite v1, run Nov 1, 2026)

Tested by The Agentic Weekly team. Write-up: https://theagenticweekly.com/compare/chatgpt-vs-claude#we-ran-it

**What was tested:** the consumer chat apps (claude.ai and chatgpt.com) on paid plans with default settings. This is not a test of Claude Code, the Codex CLI, Cursor or the APIs.

| | ChatGPT | Claude |
|---|---|---|
| App, plan (as shown) | chatgpt.com, Pro | claude.ai, Pro |
| Model label (as shown) | GPT-6, Thinking effort Medium (default) | Sonnet 5.5, Medium effort (default) |
| Chat mode | Temporary chat, "Unpersonalized" (ignores memory and custom instructions) | Incognito chat |
| Tasks passed (13 tasks, 1 attempt each) | **11 / 13** | **12 / 13** |
| Mean partial score | 0.973 | 0.993 |
| Median seconds (polled, approximate) | 17 | 27.5 |

Difference in pass rate (ChatGPT minus Claude): -0.077, bootstrap 95% CI over tasks [-0.308, 0.154]. **The interval includes zero, so this round is a tie.** Runs: Nov 1, 2026, 2:41 to 3:14 PM America/Chicago.

## Misses
- ChatGPT, T05 refactor: 5 of 6 checks. `_member_shipping` nests blocks 3 deep; the prompt allows at most 2.
- ChatGPT, T13 predict-output: 9 of 11 checks. Line 6 is wrong (`[2]` instead of `[]`), and line 5 has 4 spaces where Python prints 3 (see the note below).
- Claude, T12 instruction-following: 10 of 11 checks. The word "desk" appears 2 times; the prompt required 3.

## Disclosures
- **Second sends (ChatGPT T01 and T09).** T01: the first reply was garbled by the app's Copy button and the temporary chat could not be reopened, so the prompt was sent once more in a fresh chat. T09: the first reply was lost when the tab navigated away before capture (operator error). In both cases the first reply was not read or used. Claude needed no second sends.
- **Reconstructed captures (ChatGPT T01, T02, T05, T06, T10).** ChatGPT's whole-reply Copy button returned truncated code with the line breaks missing. For these five, the code was re-copied with the code block's own "Copy code" button and merged with the reply's prose. The raw whole-reply copy is kept next to each one as `run1.turncopy_raw.txt`. Four of the five passed. T05 failed on nesting depth. That code came from the block's own Copy code button, which keeps indentation, but the truncated whole-reply copy is too short to cross-check it.
- **T13 whitespace.** ChatGPT's T13 line 5 reads `ye tg yke    4` (4 spaces); Python prints `ye tg yke   4` (3 spaces). We checked whether this could be a copy artifact. We can't prove it either way, because the temporary chat can't be reopened. But the capture has no tabs or non-breaking spaces, the copy problems we saw elsewhere were truncation of long code (never added spaces), and the Claude copy of the same line has the correct 3 spaces. **The result doesn't depend on it:** with line 5 corrected, T13 still fails on line 6 (10 of 11 checks). We count it as a miss either way.
- **T11 (release notes)** is counted on its 15 automatic checks only. The blind rubric score isn't done yet.
- **Times** were measured by polling the page, so most are upper bounds. They aren't a speed comparison.
- This is round 1 of 3. Rounds 2 and 3 repeat every task in fresh chats.

## Re-run the grading
```
python3 harness/run_all.py runs results
```
Each `tasks/Txx-*/` folder has the verbatim `prompt.txt`, the grader `grade.py`, our `reference/` solution and `EXPECTED.md`. Raw replies are in `runs/<app>/<task>/run1.md`, with timing and settings in `run1.meta.json`.
