fastapi

fastapi

snapshot fbdc8fb6·da15
calculators v1 · privacy 1.1.0
Window2025-09-05 – 2026-08-26
Timezone
Commits read759
Contributors86
Model calls0

What the evidence shows

8 declared threshold(s) crossed

Thresholds are declared data, not prose. Each finding names its metric and the value that crossed it. None asserts a cause.

critical

Rule: process.review_coverage threshold crossed · value 8.8%
warning

Rule: ai.test_ratio_delta threshold crossed · value -33.9%
warning

Rule: delivery.stale_pr_share threshold crossed · value 40.6%
warning

Rule: people.bus_factor threshold crossed · value 1
warning

Rule: process.direct_push_share threshold crossed · value 32.9%
warning

Rule: temporal.weekend_share threshold crossed · value 24.3%
info

Rule: process.stale_branch_share threshold crossed · value 85.5%
info

Rule: quality.duplication_rate threshold crossed · value 19.4%

Delivery and process

Median time from ready to shipped

12 min
over 91 of 200 pull requests · (lower is generally preferred)
0.15.5
MEASURED46% coverage
Explain

Share of merged changes with a recorded review

8.8%
8 reviewed / 91 merged · (higher is generally preferred)
5.3%11.4%
MEASURED46% coverage
Explain

Slowest tenth of changes take at least

4.1 a contributors
over 91 of 200 pull requests · (lower is generally preferred)
MEASURED46% coverage
Explain

Median wait for the first human review

4.9 h
over 24 of 200 pull requests · (lower is generally preferred)
MEASURED12% coverage
Explain

Releases to the main branch per week

14.95
over 759 of 759 commits · (higher is generally preferred)
PROXY · MED
Explain

Share of changes that needed a fix or revert

0.0%
0 failures / 759 landings · (lower is generally preferred)
PROXY · LOW
Explain

Median time to repair a reverted change

UNAVAILABLE

Unavailable · not collected

Requires: No eligible records in this window.

UnavailableNot zero
What this needs

Changes currently waiting

15
over 15 of 200 pull requests · (lower is generally preferred)
MEASURED8% coverage
Explain

Volume and cadence

Commits

759
over 759 of 759 commits
21148
MEASURED
Explain

Lines of code added

547,191
over 12,566 of 12,849 file changes
MEASURED98% coverage
Explain

Lines of code removed

166,668
over 12,566 of 12,849 file changes
MEASURED98% coverage
Explain

Net change in codebase size

380,523
over 759 of 759 commits
MEASURED
Explain

Days per week with any activity

3.47
over 759 of 759 commits
MEASURED
Explain

Median commit size

39
over 755 of 759 commits
MEASURED99% coverage
Explain

Lines changed per active day

4,056
over 759 of 759 commits
MEASURED
Explain

Share of work that is new capability

30.1%
143 feature / 475 classified
PROXY · MED63% coverage
Explain

Agent and cost

7 of 11 metrics in this section are inferred. Each is marked individually; the tier is a property of how the number was obtained, not a defect.

Commits carrying an AI-tool trace (floor)

≥ 0.4%
3 detected / 759 n · a detectable floor, not a share
0.0%1.9%
INFERRED · MED
Explain

Lines arriving in AI-traced commits (floor)

≥ 0.1%
293 detected_lines / 547,191 total_lines · a detectable floor, not a share
INFERRED · LOW
Explain

Contributors with any AI-traced commit

≥ 3.5%
3 adopters / 86 n · a detectable floor, not a share
INFERRED · MED
Explain

Share of AI traces from the single most-used tool

≥ 33.3%
1 top_tool_commits / 3 total_traces · a detectable floor, not a share
INFERRED · MED
Explain

Rework gap between AI-traced and untraced work

≥ 2.2%
5.5 ai_rate / 3.3 human_rate · a detectable floor, not a share · (lower is generally preferred)
INFERRED · LOW
Explain

Test-ratio gap between AI-traced and untraced work

≥ 54.7%
80.9 ai_rate / 26.2 human_rate · a detectable floor, not a share · (higher is generally preferred)
INFERRED · LOW
Explain

Size gap between AI-traced and untraced commits

≥ -54.4%
18 ai_size / 39.5 human_size · a detectable floor, not a share
INFERRED · LOW99% coverage
Explain

AI tool configuration files present

0
over 1 of 1 repositories
MEASURED
Explain

Quality signals

8 of 12 metrics in this section are proxy. Each is marked individually; the tier is a property of how the number was obtained, not a defect.

Rework rate: new code rewritten within 21 days

3.3%
18,243 reworked_lines / 547,191 added_lines · (lower is generally preferred)
PROXY · MED
Explain

Share of new code that is tests

26.3%
143,762 test_lines / 547,191 total_lines · (higher is generally preferred)
5.2%79.1%
PROXY · MED
Explain

Share of code changes that updated tests too

39.3%
123 coupled / 313 code_commits · (higher is generally preferred)
PROXY · MED41% coverage
Explain

Share of all changes landing in the busiest 10 files

8.9%
10 top_n / 63,470 top_changes · (lower is generally preferred)
MEASURED
Explain

Share of changes too large to review properly

11.5%
23 large / 200 n · (lower is generally preferred)
PROXY · MED
Explain

Share of functions long enough to be hard to follow

5.0%
251 long / 4,978 n · (lower is generally preferred)
PROXY · MED
Explain

Deepest nesting in the worst tenth of functions

4
over 4,978 of 4,978 functions measured · (lower is generally preferred)
PROXY · MED
Explain

Share of code that is copy-pasted

55.8%
54,519 duplicated_lines / 97,778 scanned_lines · (lower is generally preferred)
PROXY · MED
Explain

People

Active contributors

86
over 86 of 86 commit authors
322
MEASURED
Explain

Bus factor: people holding half the code

2
over 86 of 86 contributors · (higher is generally preferred)
MEASURED
Explain

Share of the code written by one person

43.0%
306,838 top_lines / 713,859 total_lines · (lower is generally preferred)
MEASURED
Explain

Share of work from people new to this codebase

49.0%
350,037 newcomer_lines / 713,859 total_lines
MEASURED
Explain

Share of files only one person has ever touched

38.6%
1,514 single_owner / 3,925 files · (lower is generally preferred)
MEASURED
Explain

Share of contributors still active in the last 90 days

10.5%
9 recent / 86 total · (higher is generally preferred)
MEASURED
Explain

Commits per month

Counts · observed intervals only
0501001502001482025-092025-112026-012026-032026-052026-0712 of 12 intervals observed

Share of merges with a review

Rate · gaps are never bridged
0.0%25.0%50.0%75.0%100.0%No eligible records11.4%2025-092025-112026-012026-032026-052026-072 of 12 intervals observedNo eligible records: 2025-09 to 2026-06

Commits with an AI trace (floor)

A detectable floor · only tools that left a trace are counted
0.0%25.0%50.0%75.0%100.0%1.9%2025-092025-112026-012026-032026-052026-0712 of 12 intervals observed

Proportion and completeness

Numerator and denominator always adjacent

Merged changes carrying a review

8.8%8 / 91 no review record0100%REVIEWED

Collection completeness

45.5%91 of 200 readcovered · uncovered · target: none

Evidence and verification

33 measured · 17 proxy · 7 inferred

Each state is carried three times over: in words, in a pattern or stroke, and in placement. Any single channel can fail without losing the meaning: print, colour vision, or a high-contrast mode.

Measured · solid

Counted directly from a source record.

Proxy · 45° hatch

An estimator standing in for the thing itself. Always carries a caveat.

Inferred · stipple

Derived from detectable traces only. Reads as a floor, never a share.

Partial · 135° hatch

Opposite orientation to proxy, so the two never read as one another.

Unavailable · blank

A stated reason and the capability required. Never a zero.

Suppressed · absent

No value, no plotted position, no tooltip, no cell in any download.

Derivation · process.review_coverage

Formula8 merged pull requests with a review / 91 merged = 8.8%
Samplen = 91 of population 200 pull requests · 45.5% coverage
Excluded109 · pull requests not merged (open or closed unmerged)
AssumptionOnly GitHub review records count. Approval given in a plain comment, over chat, or in person is invisible, so a team with a different review habit will score unfairly low — verify against the listed examples before treating a low number as a finding.
Strongest evidenceRank 1: 1936.0 lines merged unreviewed.

Coverage and limitations

Repositories collected6
Repositories failed0
Lines excluded as generated555,383
Pull request collection truncated6 repository(-ies). Every pull-request metric inherits that ceiling.

Every metric

All metrics in this scope
MetricIdentifierValueEvidence kindConfidenceCoverageState
Median time from ready to shippeddelivery.lead_time_p5012 minmeasuredhigh46%Observed
Slowest tenth of changes take at leastdelivery.lead_time_p904.1 a contributorsmeasuredhigh46%Observed
Median wait for the first human reviewdelivery.time_to_first_review_p504.9 hmeasuredhigh12%Observed
Releases to the main branch per weekdelivery.deploy_frequency_per_week14.95proxymedium100%Observed
Share of changes that needed a fix or revertdelivery.change_failure_rate0.0%proxylow100%Observed
Median time to repair a reverted changedelivery.mttr_hoursproxylowUnavailable
Changes currently waitingdelivery.wip_open_prs15measuredhigh8%Observed
Share of open changes stalled over 30 daysdelivery.stale_pr_share6.7%measuredhigh8%Observed
Commitsvelocity.commits_total759measuredhigh100%Observed
Lines of code addedvelocity.lines_added547,191measuredhigh98%Observed
Lines of code removedvelocity.lines_removed166,668measuredhigh98%Observed
Net change in codebase sizevelocity.net_lines380,523measuredhigh100%Observed
Days per week with any activityvelocity.active_days_per_week3.47measuredhigh100%Observed
Median commit sizevelocity.commit_size_p5039measuredhigh99%Observed
Lines changed per active dayvelocity.lines_per_active_day4,056measuredhigh100%Observed
Share of work that is new capabilityvelocity.feature_work_share30.1%proxymedium63%Observed
Share of commits that are trivialvelocity.trivial_commit_share29.1%proxymedium100%Observed
Rework rate: new code rewritten within 21 daysquality.rework_rate3.3%proxymedium100%Observed
Share of new code that is testsquality.test_line_ratio26.3%proxymedium100%Observed
Share of code changes that updated tests tooquality.test_coupling_rate39.3%proxymedium41%Observed
Share of all changes landing in the busiest 10 filesquality.hotspot_concentration8.9%measuredhigh100%Observed
Share of changes too large to review properlyquality.large_change_share11.5%proxymedium100%Observed
Share of functions long enough to be hard to followquality.long_function_share5.0%proxymedium100%Observed
Deepest nesting in the worst tenth of functionsquality.max_nesting_p904proxymedium100%Observed
Share of code that is copy-pastedquality.duplication_rate55.8%proxymedium100%Observed
Share of lines that are commentsquality.comment_density8.4%proxymedium100%Observed
Commits carrying an AI-tool trace (floor)ai.detected_commit_share0.4%inferredmedium100%Observed
Lines arriving in AI-traced commits (floor)ai.detected_line_share0.1%inferredlow100%Observed
Contributors with any AI-traced commitai.adopter_share3.5%inferredmedium100%Observed
Share of AI traces from the single most-used toolai.tool_concentration33.3%inferredmedium100%Observed
Rework gap between AI-traced and untraced workai.rework_delta2.2%inferredlow100%Observed
Test-ratio gap between AI-traced and untraced workai.test_ratio_delta54.7%inferredlow100%Observed
Size gap between AI-traced and untraced commitsai.commit_size_delta-54.4%inferredlow99%Observed
AI tool configuration files presentai.config_artifact_count0measuredhigh100%Observed
Share of AI suggestions actually acceptedai.native_acceptance_ratemeasuredhighUnavailable
Lines accepted from AI suggestions (measured)ai.native_lines_acceptedmeasuredhighUnavailable
How far the commit-trace floor understates measured AI useai.floor_understatementmeasuredmediumUnavailable
Active contributorspeople.active_contributors86measuredhigh100%Observed
Bus factor: people holding half the codepeople.bus_factor2measuredhigh100%Observed
Share of the code written by one personpeople.top_contributor_share43.0%measuredhigh100%Observed
Share of work from people new to this codebasepeople.newcomer_share49.0%measuredhigh100%Observed
Share of files only one person has ever touchedpeople.knowledge_silo_share38.6%measuredhigh100%Observed
Share of contributors still active in the last 90 dayspeople.contributor_retention10.5%measuredhigh100%Observed
Share of merged changes with a recorded reviewprocess.review_coverage8.8%measuredhigh46%Observed
Share of changes merged by their own authorprocess.self_merge_share57.1%measuredhigh46%Observed
Median change sizeprocess.pr_size_p5029measuredhigh98%Observed
Share of reviews done by one personprocess.reviewer_load_top_share32.5%measuredhigh100%Observed
Share of work that bypassed pull requestsprocess.direct_push_share92.4%proxymedium100%Observed
Share of branches abandoned over 90 daysprocess.stale_branch_share72.7%measuredhigh100%Observed
Branchesprocess.branch_count22measuredhigh100%Observed
Share of work saved outside working hourstemporal.after_hours_share36.0%proxymedium100%Observed
Share of work saved at weekendstemporal.weekend_share22.0%proxymedium100%Observed
Busiest hour of the daytemporal.peak_hour10:00–11:00 localmeasuredhigh100%Observed
How bursty the work pattern istemporal.burstiness2.68xproxylow100%Observed
Share of automated checks that failedci.failure_rate30.7%measuredhigh96%Observed
Median time for automated checks to finishci.duration_p50_minutes0.6 minmeasuredhigh100%Observed
Automated check runs per weekci.runs_per_week3.78measuredhigh96%Observed

Provenance. Computed from fastapi, window [2025-09-05, 2026-08-26). 0 language-model calls. 555,383 lines excluded as generated before any metric was computed.

Redaction 1 · privacy policy 1.1.0.

No contributor is named, ranked or ordered anywhere in this document. That capability does not exist in the system that produced it.