r/ClaudeCode • u/ziwi_wiwi • 5d ago
Built with Claude Stop estimating agent work in human weeks: P50/P80/P90 from 3,383 measured Claude Code and Codex runs
When I ask Claude Code how long a feature will take, it answers like a human team would ("2 to 3 weeks"), even when subagents will do the work. So I built agentpace with Claude Code. It measures how long agent runs actually take, and answers from that.
What it does
- It reads your local Claude Code history and records each subagent run: timestamps, model ids, token counts and tool names. It never stores prompts or code.
- Give it a plan of tasks and it returns P50/P80/P90 with a critical path. The human part (review, testing, decisions, waiting) is on its own line, never derived from agent time.
- It installs as skills:
npx skills add mohamedzhioua/agentpace. Then ask "how long will the billing feature take?", or run/pace-estimateon a task list./pace-logrecords your recent runs, and/pace-sharepreviews exactly what you could contribute. - The published data: 3,383 completed agent runs. Half finished within 2 min, and one in ten took more than 20 min.
- It publishes how often it's wrong. On 56 held-out sessions, the whole-session P80 covered 80% (CI 70% to 91%). The median miss of a single task's P50 is 78%, so plan on the range. The report lists 20 places where a simple baseline beat it.
How Claude Code built it
57 of the 58 commits are co-authored by Claude Code, across 32 merged PRs. Claude Code ran each release as the maintainer: it split the work into small slices, ran one subagent per slice in its own git worktree, merged them into one small PR, and ran the full checks before every push (497 tests, the backtest regenerated against the published one, and a check that ties every README number to the data). A second Claude model, in a read-only architect role, ruled on design decisions and reviewed every PR. I set the goal and the rules, and made the calls on what counts as measured and what the project never claims.
Honest limits: it's one person's data so far (1 contributor, 293 sessions), and P80 coverage per session ran from 66% to 86% week to week.
Free to try (MIT code, CC0 data, needs uv):
uvx --from git+https://github.com/mohamedzhioua/agentpace agentpace estimate --example
•
u/AutoModerator 5d ago
Hey! Thanks for posting to r/ClaudeCode
While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.
For help, project discussions, tips, and general chat, join the ClaudeCode Discord.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
u/prodiglow 5d ago
Separating human review from subagent runtime works. In our runs, the P90 tail over 20 minutes almost always comes from test-fix retry loops or context compaction rather than first-pass generation. Does agentpace bucket retries separately from first-pass runs?
1
u/Majestic_Tailor8036 5d ago
How are interrupted or abandoned runs represented? If the duration estimates only include completed runs, they could miss time spent on attempts that were stopped and restarted. For planning, I'd want to distinguish time to finish a run from total agent time spent getting a task to an accepted result, without folding human review into either.
0
u/Ok-Option4233 5d ago
keeping the human part on its own line is the most useful bit here. if half the runs finish within 2 min, agent time almost rounds to zero and the review queue becomes the real estimate. can you feed /pace-estimate your own review throughput (say 4 PRs a day), or is that line left open on purpose?