# The median open-source repo pays no "AI review tax" (data from 5,388 repos)

> Source: <https://forge.ambera.app/review-tax-index>
> Published: 2026-08-13 10:44:44+00:00

The Index

# The Review Tax 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](/methodology). Place your own repo against this population: [/scan](/scan).
