The Index
The claim you will hear is that AI-written code costs more review everywhere. The data says something more useful: the cost is a split β it lands hard on some repositories and not at all on others. This page measures where.
Repositories read
5,388
Merged PRs analyzed
444,225
Zero attribution
56%
no detectable agent authorship at all
Agent-native repos
15%
of attributed repos, 20%+ of merged work carries attribution
The split #
The measures run over the 2,353 repositories with detectable attribution and at least 10 analyzed PRs β a review-cost ratio needs an attributed side to exist. Within each, attributed work is measured against the rest of the same repository β same reviewers, same conventions, same era. A multiple above 1x means the attributed side took more; below means it took less.
Time to merge, attributed / rest
354
repos above 1x
874
at or below 1x
0.5x
median
29% of comparable repos pay more review on attributed work; 71% pay the same or less. Middle half of the population: 0.2x to 1.2x.
Review rounds, attributed / rest
6
repos above 1x
13
at or below 1x
0.6x
median
32% of comparable repos pay more review on attributed work; 68% pay the same or less. Middle half of the population: 0.2x to 1.2x.
Where the tax lands #
Median detected share across the attributed repositories is 3% β and that is a floor, not a share: attribution comes only from marks a tool leaves on a commit, so inline-completion work is invisible by construction. Across the full population the median is zero β most repositories read carry no attribution at all.
By primary language
| Segment | Repos | Median detected share | Time to merge | Review rounds |
|---|---|---|---|---|
| TypeScript | 442 | 3% | 0.4x | β |
| Python | 361 | 4% | 0.5x | β |
| Go | 302 | 3% | 0.5x | β |
| Rust | 237 | 2% | 0.7x | β |
| JavaScript | 217 | 2% | 0.4x | β |
| C++ | 170 | 3% | 0.4x | β |
| Java | 131 | 2% | 0.3x | β |
| C# | 129 | 6% | 0.3x | β |
| C | 98 | 2% | 0.4x | β |
| PHP | 87 | 2% | 0.3x | β |
| Swift | 68 | 3% | 0.5x | β |
| Kotlin | 53 | 2% | 0.4x | β |
| Ruby | 49 | 3% | 0.5x | β |
A dash means the segment has too few comparable repos for that measure to publish β a median over a handful of ratios is noise wearing a number.
By project size
| Segment | Repos | Median detected share | Time to merge | Review rounds |
|---|---|---|---|---|
| 50k+ stars | 238 | 4% | 0.4x | β |
| 20k-50k stars | 624 | 3% | 0.5x | β |
| 10k-20k stars | 688 | 3% | 0.4x | β |
| 5k-10k stars | 775 | 3% | 0.5x | β |
| 2k-5k stars | 26 | 1% | β | β |
A dash means the segment has too few comparable repos for that measure to publish β a median over a handful of ratios is noise wearing a number.
How to read this #
- Attributed vs rest, never AI vs human. The comparison group contains AI-assisted work that leaves no trace, which narrows every gap shown here rather than widening it.
- The sample self-selects twice. These are repositories someone chose to scan plus a curated backfill of well-known projects β a population of repos people care about, not a random sample of software.
- Withheld beats invented. Repos below 10 analyzed PRs do not count; segments below 12 comparable repos publish no median.
The Index republishes quarterly. Repos already read keep their history, so future editions carry trend lines β not just where the tax lands, but where it is moving.
Full method and every limitation: /methodology. Place your own repo against this population: /scan.