playwright — Engineering Performance
15 engineers all time · Jan 2025 – Sep 2026 · built 2026-09-30 · GitHub
Performance snapshot
Today's rolling 90-day reading for playwright, compared with the start of the series. Pick a window to move that comparison point.
Avg. perf / dev / mo
+290.9%
1.37 → 5.37 ETV
Active engineers
−50.0%
12.0 → 6.0
Features
+8.0pp
24.6% → 32.6%
vs. Microsoft
0.81x
1.0x → 0.81x · −19% below
playwright vs. Microsoft
Per-engineer ETV for playwright against Microsoft as a whole. Both lines are 90-day rolling averages scaled to a 30-day month, so they share one axis and can be read against each other at any point. Pick a window to zoom the chart to it.
Performance Composition
Each month's output split by type of work: Features (new value), Maintenance (sustaining systems), Tests, Docs, and Fixes (rework). The yellow line is output per engineer, so when it rises each engineer is delivering more, whatever the team size did. Unit: Engineering Throughput Value (ETV).
Engineering capacity
Effective engineers behind playwright, against its pre-AI baseline. Each subject has its own: playwright's is 1.37 ETV / dev / mo, its first reading in Q1 2025. Per-engineer ETV divided by that gives a capacity multiple, and that multiple applied to the engineers active in the trailing 90 days turns it into engineer-equivalents. The line is the real headcount, so the gap between line and area is what the leverage is worth. Because each baseline is its own, every subject opens at 1.0x on its first day: multiples measure improvement and are not comparable between subjects.
Knowledge concentration
How dependent is this repo on a small number of engineers? Higher top-1 share = higher key-person risk.
Pavel Feldman owns 26.0 % of commits.
Behind the numbers
Written summary of the work completed each month.
No monthly reports available yet.
Top engineers
Most impactful commits
Top 10 by ETV in the all-time window.
- 7.2ETVchore: move playwright-mcp into the monorepo (#37286)Pavel Feldman · 90e302ba · 2025-09-04
- 4.6ETVfix(frames): treat elements inside hidden iframes as hidden (#42884)Dmitry Gozman · b7957c51 · 2026-09-24
- 4.2ETVfeat: support AbortSignal on server-side methods (#41141)Simon Knott · eb9eb488 · 2026-06-30
- 3.7ETVchore: move timeout handling to the client (#35988)Dmitry Gozman · 6532d7c7 · 2025-05-20
- 3.7ETVchore: wk_webview experiment (#41010)Pavel Feldman · 25f22d21 · 2026-05-26
- 3.4ETVchore(protocol): make timeout a protocol-level field (#41712) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>Simon Knott · 33173da8 · 2026-07-14
- 3.3ETVchore: export coreBundle (#40057)Pavel Feldman · 72310c75 · 2026-04-06
- 2.4ETVfeat(extension): port Playwright browser extension from playwright-mcp (#40280)Yury Semikhatsky · 7427b1de · 2026-04-17
- 2.3ETVchore: enforce dispatcher API convention for server types (3) (#40035)Pavel Feldman · 99ebd57f · 2026-04-02
- 2.3ETVchore: migrate some dispatchers from CallMetadata to Progress (part 1) (#36429)Dmitry Gozman · a3eff54e · 2025-06-25