<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Maki Vlach</title>
    <description>The latest articles on DEV Community by Maki Vlach (@maki_vlach_289e052694eb2e).</description>
    <link>https://dev.to/maki_vlach_289e052694eb2e</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4076772%2F6a12c93f-aef9-415c-8c69-6786cd900f2b.jpeg</url>
      <title>DEV Community: Maki Vlach</title>
      <link>https://dev.to/maki_vlach_289e052694eb2e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/maki_vlach_289e052694eb2e"/>
    <language>en</language>
    <item>
      <title>We measured the "AI review tax" across 5,388 repos. The median repo doesn't pay one.</title>
      <dc:creator>Maki Vlach</dc:creator>
      <pubDate>Thu, 13 Aug 2026 20:30:56 +0000</pubDate>
      <link>https://dev.to/maki_vlach_289e052694eb2e/we-measured-the-ai-review-tax-across-5388-repos-the-median-repo-doesnt-pay-one-1bc1</link>
      <guid>https://dev.to/maki_vlach_289e052694eb2e/we-measured-the-ai-review-tax-across-5388-repos-the-median-repo-doesnt-pay-one-1bc1</guid>
      <description>&lt;p&gt;The claim you hear from one side is that AI-written code is a review burden everywhere. The claim from the other is that it's free velocity. We read 5,388 public repositories — 444,225 merged pull requests — and both sides are wrong in an interesting way: &lt;strong&gt;the median repo pays no review tax at all, and a quarter pay a real one&lt;/strong&gt;. Where the cost lands says more about the repo than about the tools — and which kind of repo yours is turns out to be measurable.&lt;/p&gt;

&lt;p&gt;Disclosure up front: I built the scanner this data comes from, and I sell a paid version to teams. That's also why the headline is against my interest — a review tax that landed on everyone would be a better sales pitch. It's just not what the data says, and the data is re-checkable by anyone (see "Check us" below).&lt;/p&gt;

&lt;h2&gt;
  
  
  What we measured
&lt;/h2&gt;

&lt;p&gt;For every repo, the last 100 merged PRs, divided into PRs carrying agent authorship and the rest of the same repo. Attribution is commit-level marks only — &lt;code&gt;Co-authored-by&lt;/code&gt; trailers naming a known agent, agent commit identities, agent bot accounts. Nothing is inferred from diff shape, code style, or timing; that would be guessing dressed as measurement.&lt;/p&gt;

&lt;p&gt;Because the comparison stays inside each repository — same reviewers, same conventions, same era — a multiple above 1× means the attributed side took more review; below 1×, less.&lt;/p&gt;

&lt;h2&gt;
  
  
  The headline numbers
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;(Full population, backfill complete 2026-08-06.)&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Of 1,228 repos with a readable time-to-merge comparison: 71% at or below 1×, 29% above. Median 0.47× — attributed work merges in about half the time. The 25th percentile is 0.17×. The 75th crosses 1.18× — the quartile that pays, genuinely pays.&lt;/li&gt;
&lt;li&gt;56% of all repos read (3,018 of 5,388) show zero detectable agent authorship. Median detected share across the 2,353 attributed repos with enough PRs to compare: 2.9% — a floor by construction, and stated as one.&lt;/li&gt;
&lt;li&gt;15% of attributed repos are agent-native (20%+ of merged work carries attribution).&lt;/li&gt;
&lt;li&gt;Review rounds — the measure everyone reaches for — stay unreadable even at this scale: 19 of 2,353 attributed repos request changes often enough to carry a ratio. That is a finding about how review actually works (friction rarely surfaces as "changes requested"), and we publish it instead of papering over it with a fabricated median.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Who pays it
&lt;/h2&gt;

&lt;p&gt;By language, median time-to-merge multiple: TypeScript 0.43× (442 repos), Python 0.54× (361), Go 0.54× (302), &lt;strong&gt;Rust 0.70× (237)&lt;/strong&gt; — the slowest-relative of the big five.&lt;/p&gt;

&lt;p&gt;By project size the spread is flatter than expected: 50k+ stars 0.43×, 10k–20k 0.39×, 5k–10k 0.51×. &lt;strong&gt;Size predicts far less than language does&lt;/strong&gt;. The full cuts, with segments below the sample floor withheld rather than estimated, are on the &lt;a href="https://forge.ambera.app/review-tax-index" rel="noopener noreferrer"&gt;live page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this does not say
&lt;/h2&gt;

&lt;p&gt;Three limitations are load-bearing, and reading the numbers without them produces wrong conclusions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The detected share is a floor&lt;/strong&gt;. Inline-completion work is invisible to repository artifacts, so "the rest" contains AI-assisted code. That narrows every gap here rather than widening it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The detectable set skews agentic&lt;/strong&gt;. Tools that stamp attribution are disproportionately the agentic ones — read every multiple as "work delegated to a coding agent," not "AI code."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Causation is not on offer&lt;/strong&gt;. Teams hand agents the work that was already hardest to review, so a higher multiple is consistent with both "agents produce harder-to-review code" and "agents get pointed at harder problems." This measurement cannot separate those, and we don't claim it can.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The sample self-selects twice, too: 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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check us
&lt;/h2&gt;

&lt;p&gt;Every repo in the Index is public; every report is a permanent link anyone can re-read; the aggregate recomputes live from the same rows. The full method, signal by signal, including everything it can't see: &lt;a href="https://forge.ambera.app/methodology" rel="noopener noreferrer"&gt;forge.ambera.app/methodology&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can place your own repo against this population at &lt;a href="https://forge.ambera.app/review-tax-index" rel="noopener noreferrer"&gt;forge.ambera.app/review-tax-index&lt;/a&gt; — public repositories only, nothing installed, no account. For a private repo there's a &lt;a href="https://forge.ambera.app/scan" rel="noopener noreferrer"&gt;local CLI&lt;/a&gt; that reads via your own &lt;code&gt;gh&lt;/code&gt; auth and sends nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The cadence
&lt;/h2&gt;

&lt;p&gt;The Index republishes quarterly. Repos already read keep their history, so the next edition carries trend lines: not just where the tax lands, but where it's moving.&lt;/p&gt;

&lt;p&gt;If your team's numbers look different from the population's, I'd genuinely like to hear about it — that disagreement is more informative than agreement.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>programming</category>
      <category>datascience</category>
    </item>
  </channel>
</rss>
