Meta — Engineering Performance
Avg. perf / dev / mo (ETV)
+63.3%
0.73 → 1.19
Active contributors
−10.3%
243.0 → 218.0
Growth
+0.4pp
33.0% → 33.4%
Fixes
−2.4pp
15.9% → 13.5%
Meta vs. 500 OSS Performance Index
Per-engineer ETV for Meta plotted against the pooled 500 OSS Performance Index. Both series are 90-day trailing rolling averages scaled to a 30-day month, so the curves sit on the same scale (ETV / dev / mo) and can be compared point-for-point. Latest reading: Meta is 39% below the index (1.18 vs 1.94 ETV/dev/mo). Baseline gap was 12% below.
Monthly reports
Highlights
- Introduced a foundational *Dice paging mechanism* for improved memory management, enabling off-heap storage of graph nodes via `DiceStorage` and `PagableStorage` traits ([10758fa6 · Chris Hopman], [da928e6f · Chris Hopman], [6d219209 · Chris Hopman], [33b119d8 · Chris Hopman], [d42b5885 · Chris Hopman]).
- Enhanced *CI/CD pipelines* with support for private preview builds ([13e83e14 · Sebastian "Sebbie" Silbermann]), improved Playwright trace preservation on all failures ([a35edcfb · Sebastian "Sebbie" Silbermann]), and optimized test execution times through TurboRepo caching ([7c014306 · Sebastian "Sebbie" Silbermann]).
- Delivered key *React and Next.js improvements*, including a new flag to force errors on infinite render loops ([f4e0d4ed · Ruslan Lesiutin]), ensuring `onError` fires only once for `next/image` ([70d98765 · Sebastian "Sebbie" Silbermann]), and fixing SWR blocking issues in Node.js route handlers ([521ae965 · Hendrik Liebau]).
- Significantly improved *developer documentation* and onboarding experience, with a major overhaul of intro docs, removal of outdated files, and new guidelines for LLM development ([commit/04f4ff39], [5781c0e0 · Jakob Degen], [6a745dc4 · Jakob Degen], [89f73f33 · Jakob Degen]).
- Added flexibility to the *Buck2 build system* by allowing single-value definitions for unified constraint rules ([cf92db9e · Chenhao Zuo]) and improved the interactive console's user experience with informative messages for unhandled input ([0b604581 · Chris Hopman]).
Observations
- The *Grow score* increased by 32% (23 this month vs 17 1-month average), indicating a strong focus on new feature development and significant enhancements to existing systems.
- A notable pattern of proactive *build system maintenance* was observed, with multiple commits ([3b6ce1b8 · Ian Childs], [c342c5fd · Ian Childs], [d2f9e229 · Ian Childs], [7a473044 · Ian Childs]) explicitly setting `has_content_based_path = False` across numerous `.bzl` files in preparation for a future `buckconfig` change. This suggests a large-scale, coordinated effort to ensure stability during an upcoming internal system adjustment.
- Several bug fixes and stability improvements were implemented across various components, including `cgroup` test reliability ([166da5c3 · Chenhao Zuo]), `rustdoc` warnings ([c6b541e3 · Chenhao Zuo]), `next/image` event handling ([70d98765 · Sebastian "Sebbie" Silbermann]), and `buck2_client` panic prevention ([318ed68f · Chris Hopman]).
- Rework was observed in the *shared library interface generation* with a revert of a previous action deduplication change ([324673df · Ian Childs]), suggesting that the initial optimization introduced unforeseen issues.
- The team invested heavily in *documentation quality*, with multiple commits dedicated to restructuring, updating, and creating new guidelines, including specific instructions for LLM context consumption ([89f73f33 · Jakob Degen]).
- The *Waste score* remained stable at 4, consistent with the 1-month average, indicating efficient development with minimal reverted or discarded work.
- New test cases were added to reproduce and address specific bugs, such as dep-file cache misses ([eb287ad0 · Ian Childs], [b6d240a6 · Ian Childs]), demonstrating a commitment to identifying and resolving subtle build system issues.
Repositories
Active repositories ranked by average performance per developer per month (over the last 90 days). The chart shows monthly performance composition — each repo as a stacked layer, with the top of the stack representing total org performance per month. Top 9 repos shown; the remainder is aggregated as “Other”.
| Repository | ||||
|---|---|---|---|---|
| pyrefly | 22 | 163 | 2.5 | +71%since Q2 2025 |
| fbthrift | 40 | 206 | 1.7 | +84%since Q2 2025 |
| docusaurus | 1 | 3 | 1.0 | −40%since Q2 2025 |
| fboss | 71 | 179 | 0.8 | +65%since Q2 2025 |
| react-native | 40 | 82 | 0.7 | −40%since Q2 2025 |
| buck2 | 64 | 114 | 0.6 | +50%since Q2 2025 |
| react | 10 | 7 | 0.2 | −48%since Q2 2025 |
| folly | 30 | 16 | 0.2 | +134%since Q2 2025 |
| fresco | 7 | 4 | 0.2 | +61%since Q2 2025 |
| hermes | 4 | 1 | 0.1 | −32%since Q2 2025 |
Company total10 repositories | 218unique devs | 775ETV total | 1.19ETV / dev / mo | +31%since Q2 2025 |
| Performance (ETV) is the sum of every repository above. Active devs at the company level counts unique contributors across all repos, so a contributor working in multiple repos is counted once here but appears in each repo's row (the per-repo column will sum higher). ETV / dev / mo = Company ETV ÷ unique devs ÷ 3 mo. The "Since start" column compares each repo's Q1 2026 quarterly performance to the first quarter it had any activity — for repos that existed in Q2 2025 (when this index began), that's Q2 2025; for younger repos it's the quarter they actually started. The company row uses Q2 2025 as the baseline since the index itself began then. | ||||
Performance Growth vs Active Contributors
Shows how engineering performance scales relative to team growth. Left axis shows total performance score, right axis shows active contributor count. The gap between curves represents productivity gains — more delivered per person, not just more people. Unit: Engineering Throughput Value (ETV).
Cost per Performance Unit
−36%
If performance per engineer grew 56%, each unit of engineering performance now costs approximately 36% less than at the baseline 90-day window (ending 2025-06-29). This is a directional estimate — the exact figure depends on fully-loaded engineer cost, but the direction is unambiguous.
Effective Capacity Added
+123 engineers
At today's productivity, the current 218-person team delivers the performance equivalent of 341 engineers at the baseline 90-day rolling window (ending 2025-06-29). That's roughly 123 engineers worth of capacity added through productivity gains, not hiring.
Performance Composition
Stacked bars show total complexity performance split into Growth (new value), Maintenance (sustaining systems), and Fixes (rework). The yellow line overlays performance per contributor — rising line means each engineer is delivering more, regardless of team size changes. Unit: Engineering Throughput Value (ETV).
CapEx vs OpEx
Monthly CapEx vs OpEx split. CapEx (capitalizable investment) is Growth — new features and capabilities. OpEx (operating expense) is Maintenance plus Fixes — keeping the lights on and reworking what's already shipped. The yellow line is the CapEx share, a quick read on how much of the month went into building new vs sustaining existing. Unit: Engineering Throughput Value (ETV).
Hours per Repository
Trailing 90-day window (64 working days). Org-level capacity is allocated to each repo by its share of org performance, then split CapEx / OpEx by that repo's own Growth vs Maintenance + Fixes mix.
| hermes | 78.2% | 21.8% |
| buck2 | 47.9% | 52.1% |
| react | 40.2% | 59.8% |
| react-native | 38.3% | 61.7% |
| pyrefly | 35.0% | 65.0% |
| fboss | 30.1% | 69.9% |
| fbthrift | 25.9% | 74.1% |
| fresco | 24.8% | 75.2% |
| docusaurus | 22.5% | 77.5% |
| folly | 17.9% | 82.1% |
| Total | 33.4% | 66.6% |
Fix Burden Distribution
Monthly rework volume broken down by who did it. Top contributors carry their named slice; everyone else is rolled into Others. Use this to spot whether fix work is concentrated on a small group (bus-factor risk) or distributed across the team.
Fix authorship over time
Monthly fix activity in this scope, split by who fixed the bug. Darker emerald = the original author fixed their own bug; lighter emerald = someone else cleaned it up. A persistently high 'fixed by another author' share is a signal of bug-debt landing on the team rather than its author. X-axis is fix-time — bugs introduced but not yet detected don't appear.
- Self-fix share
- 21%
- Total bug impact
- 506.4
Quarterly Summary
The raw numbers behind the charts: commits analyzed, active contributors, total performance, performance per developer, and the Growth / Maintenance / Fixes split for each quarter.
| Quarter | ||||||||
|---|---|---|---|---|---|---|---|---|
| Q2'25 | 8,653 | 238 | 544.57 | 0.8 | 35% | 52.4% | 12.5% | — |
| Q3'25 | 8,620 | 245 | 545.85 | 0.7 | 34.8% | 52.9% | 12.2% | 0% |
| Q4'25 | 7,265 | 244 | 484.7 | 0.7 | 35.9% | 49% | 15.1% | −11% |
| Q1'26 | 8,177 | 243 | 715.86 | 1 | 33.7% | 51.4% | 14.9% | +48% |
Top Contributors
Contributors ranked by performance per month (Growth + Maintenance + Fixes), over the last 90 days normalized to a 30-day calendar month.
The best way to measure AI efficiency
SampleA preview of the Navigara engine running on a sample organization. The numbers below are illustrative, not part of the OSS500 benchmark above.
Measure
Score every commit by depth
GitHub commits are weighted by what it took to write them, not by lines of code. The result is ETV per developer per month.
SourceGitHub
Spend
Tie ETV to cost
AI token bills and seat costs are pulled per team and divided by the ETV produced. The result is your true cost per unit of work.
SourceToken usage + finance
Map
Tie work to objectives
Each ETV is mapped to your Jira epics and labels, so you can see what's key-aligned, aligned, or unmapped capacity.
SourceJira
Performance
ETV delivered per developer / month
9.4ETV / dev / month
5.6 below target- Non-AI 5.8
- AI 3.6
AI Efficiency
AI spend per ETV unit delivered
$4.20
$0.60 over target- Cost / ETV $4.20
Objective Alignment
Share of work mapped to key objectives
51%
24 pts below target- Key-aligned 28%
- Aligned 23%