---
title: "Comment by Kartik N V J K on \"What 3,383 coding-agent runs taught me about estimating agent work\" | Hashnode"
description: "Publishing the 21 places a simple baseline beat you, and generating that list so you cannot quietly trim it, is the practice most measurement writeups skip. The"
url: "https://hashnode.com/posts/what-3-383-coding-agent-runs-taught-me-about-estimating-agent-work/6af0f84698809b0a1bcc2696/comment/6af354ebbdc37ae99b8394be"
---

[Discussion](https://hashnode.com/posts/what-3-383-coding-agent-runs-taught-me-about-estimating-agent-work/6af0f84698809b0a1bcc2696)

Comment [What 3,383 coding-agent runs taught me about estimating agent work](https://hashnode.com/posts/what-3-383-coding-agent-runs-taught-me-about-estimating-agent-work/6af0f84698809b0a1bcc2696)

[Kartik N V J K](https://hashnode.com/@kartik-nvj)

[3d ago](https://hashnode.com/posts/what-3-383-coding-agent-runs-taught-me-about-estimating-agent-work/6af0f84698809b0a1bcc2696/comment/6af354ebbdc37ae99b8394be)

Publishing the 21 places a simple baseline beat you, and generating that list so you cannot quietly trim it, is the practice most measurement writeups skip. The harness split stood out too, since 0.4% incomplete on claude-code against 16.1% on codex is a wider gap than I expected for runs feeding the same fit. Do the codex incompletes cluster on a task kind, or is it mostly harness plumbing like timeouts?

[3d ago](https://hashnode.com/posts/what-3-383-coding-agent-runs-taught-me-about-estimating-agent-work/6af0f84698809b0a1bcc2696/comment/6af354ebbdc37ae99b8394be#reply-6af388bdcd079651d3d457d5)

Thanks. A few things the data can and can't say here.

The incompletes don't feed the fit. All 47 not-completed runs are left out of it, and Codex is scored on its own, never in the headline.

The two rates don't count the same event. A Codex run is one whole turn, and it counts as failed when Codex's own turn-complete event carries an error; an interrupted turn would count as unknown, not failed. Of the 34, 33 are failed and 1 is unknown. A Claude Code run is one subagent, failed only on a refusal or when it ends on a tool error with no clean stop; its 13 are 3 failed and 10 unknown. So part of the gap is what each harness reports at the end of a run.

Task kind: they can't cluster on one, because Codex rows have no kind. The kind comes from the Claude Code subagent's type, and a Codex turn has none, so every published Codex row is "other". That's a real gap for Codex.

Timeouts or plumbing: the error text is never copied (only allowlisted fields leave a transcript), so the rows can't tell a timeout from a usage limit or a dropped connection. What they do show: some failed turns ended within seconds with no tool call, which looks like plumbing, while others ran for a minute or more with tool calls before the error. That split isn't in the generated report yet, so I'll add it there, where its counts get checked like every other number.
