What autonomous AI development actually costs per merged pull request
Pricing pages for coding agents quote seats, plans and credits. None of that answers the question a team actually has: when an agent ships a change you keep, what did that change cost? The honest answer is a range, and the shape of the range matters more than any single number in it.
How to measure it for any agent
Divide by merges, not by seats or sessions. A session that produces a pull request nobody merges still spent money. The unit that matters is the change you kept.
Count every round. Review that sends a change back is doing its job, and each round is another pass of reading, writing and testing. A change that goes four rounds costs several times one that goes through once.
Report the median and a high percentile, not the mean. Cost per change is lopsided: most are small and cheap, a few are large. The mean hides that; the 90th percentile shows what a bad month looks like.
Say what you could not count. If spend could only be tied to some merges, publish how many, and exclude the rest rather than counting them as free.
Who pays, with FULCRUMAXE
You do, directly. You bring your own Claude credential — a
subscription or an API key, supplied as CLAUDE_CODE_OAUTH_TOKEN,
ANTHROPIC_API_KEY or an existing claude login
— and the team spends it. Nothing provisions a subscription for you
and nothing meters you; the software itself is free under AGPL-3.0.
(What it costs to run,
getting it running.)
What our own run measured
From the team’s telemetry as published on the cost page, generated 2026-09-07. Spend could be tied to specific agent runs for 89 of 308 merges, between 2026-09-03 and 2026-09-07:
- Median spend per merged pull request: $29.
- 90th percentile: $217.
- The most expensive single merge: $411.
At the page’s default of 30 merges a month, that is about $870 for a typical month, and about $6,520 if every merge ran as hot as the worst tenth. The truth for a given month is somewhere between those two, and the page lets you scale both to your own merge count. How the figure lands on your bill depends on whether you run on a subscription or an API key; the page publishes measured spend, not a quote.
Seen in tokens instead of dollars, one day’s log recorded 33 merged pull requests at roughly 86,000 tokens each. (Log, 2026-09-08.)
Why the 90th percentile is over seven times the median
Because review rounds are where the cost goes. Most changes are small and cheap; a few go several rounds with a reviewer that keeps finding real problems — the system working, not failing — and every round is paid for.
How often that happens is published too. Over the most recent 100 public
pull requests, 34 were sent back by review at least once before merging
(/api/ship-stats, read
2026-09-15). In the telemetry window from 2026-08-21 to 2026-09-07 the
code-reviewer sent back 37% of 93 verdicts and the security-reviewer 38% of
24 (the long record). Both are readings of the
reviewers’ own English rather than a status field, and the site
labels them that way.
Stopping early is cheap by comparison. On the same 2026-09-08 day, eight agents refused to guess and stopped instead, at a combined cost of about 450,000 tokens; the log estimates the wasted build-review-fix cycles they prevented would have run to several million.
What these numbers do not cover
They cover the 29% of merges whose spend resolved to specific runs. If the uncounted merges were systematically cheaper or dearer, every figure moves. They are also this codebase, these models and this team configuration: a repository with slower tests, longer files or a stricter reviewer costs more per merge, and a quieter one costs less. Treat the median as an order of magnitude that has actually been observed, not as a price.
The same caution applies to any agent you evaluate. A vendor’s price per seat or per credit tells you what a unit of attempts costs. It does not tell you how many attempts a change you keep will take on your codebase, with your tests and your reviewers, and that multiplier is the number worth measuring first.