The median open-source repo pays no "AI review tax" (data from 5,388 repos) An analysis of 5,388 open-source repositories and 444,225 merged pull requests by The Review Tax Index found that the median repository pays no 'AI review tax,' with 56% showing no detectable agent authorship and a median time-to-merge ratio of 0.5x for attributed work versus the rest of the same repository. Only 29% of comparable repositories pay more review time on attributed work, while 71% pay the same or less, and the median detected AI-attributed share across attributed repositories is 3%. 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 .