In short: I asked whether a file with one dominant contributor needs fewer fixes later, once size and activity are already in the model. In all five, it did not help. Telling the model who owns a file never improved its guesses about which files get fixed. The projects did not even agree on a direction. In four of them, files with one heavy contributor were slightly more likely to get fixed later. In the fifth, they were slightly less likely. The five-percent minor-contributor rule could not be tested at all. Too few files had the 21 touches it needs, and those that did mostly shared one outcome. Commit history is a loose stand-in for who understands the code.

Does a file with one clear owner need fewer fixes later than a file many people edit? In five open-source repositories, I could not show that it does.

What ownership is supposed to measure

The idea is about knowledge. A file with one main author probably has someone who understands its design. A file changed by many occasional contributors may have nobody who does. Those contributors can break assumptions only the main author knew about, and bugs follow. Peter Naur called this knowledge the theory of a program. The person who holds it can predict what a change will break, explain why the code looks the way it does, and tell when someone else's change is wrong. That theory lives in people's heads, not in the code.

Nobody can measure that directly, so research measures what Git records: who changed which file. Bird and colleagues did this for compiled Windows binaries at Microsoft. Binaries with many contributors below five percent of the changes had more failures. It is easy to read that as a rule about source files and new contributors. The study measured neither. Later studies moved the threshold, the unit of analysis, and the outcome. So I treated ownership as a hypothesis to test per repository, not as a ready-made risk score.

The stand-in is loose. Two commits in two years make someone the only editor without making them an expert. A reviewer can know a file well and never appear as its author. A formatting commit counts the same as a redesign. Fritz and colleagues tried to close part of this gap. Their degree-of-knowledge model also weighs how recently and how often a developer worked with the code. I used the plain Git version, because that is what the rule everyone repeats is based on.

The link to architecture runs through Conway's law. Ownership shows which people actually work on which parts of the system. A file that many occasional contributors must edit can point to a tangled boundary or a shared hub. It is a people signal that sometimes exposes a structural problem.

How I tested it

Each repository ran through the same four steps.

  1. Split the history. Ownership comes from the preceding 24-calendar-month training window. The final six calendar months are an untouched holdout.
  2. Count touches. A touch is one non-merge commit by one contributor to one file. Bots are removed first, and duplicate email addresses are merged.
  3. Summarise ownership per file. The dominant share is the largest share of touches held by one person. Contributors with at least five percent of a file's touches are major, and the rest are minor. The effective-owner count says how evenly the touches are spread.
  4. Predict the holdout. For each file, did it appear in a likely-fix commit during those six months? That is the outcome the models try to predict.
Diagram defining dominant-share, major-owner, minor-owner, and effective-owner measures from historical commit touches.
Scroll chart for full detail. Four summaries of the same touch history. None of them says who understands the file.

Then two models per repository. Each one is a logistic regression: feed it a file's numbers and it returns the probability that the file gets fixed in the holdout. The baseline used only things already known to predict fixes. Those were log LOC, log training touches, prior likely-fix count, lexical complexity, file age, and total contributors. The second model added the dominant share. Both models used files with at least 5 training touches.

If ownership matters, the second model should push the files that later got fixed higher up the list than the baseline does. The gap between them is the result. I report it as a change in PR-AUC, with a bootstrap interval. PR-AUC scores the sort order, not any yes-or-no call. A perfect sort scores one. A random sort scores about the share of files that later needed a fix, which is the prevalence column below. The reported coefficient is standardized: one unit represents one training-set standard deviation in dominant share.

The five-percent rule needs its own model, with the count of minor contributors as the predictor. A contributor with a single touch cannot fall below five percent until the file has at least twenty-one touches, so that model only used files with at least 21 touches. Few files clear that bar. Of the files analysed, webpack has 47 that do, vite 29, prettier 8, eslint 5, and rollup none.

Worked example: how the ranking score is computed

This uses real rows from the published webpack file map. Sort all 251 webpack files in the analysis by their largest one-person share, most spread out first, because that is the order the hypothesis expects to fail more often. Then read down the list. Precision is the share of rows so far that later needed a fix. Recall is the share of all such files found so far. Here are the first eight rows.

filelargest one-person sharetouchesneeded a fixprecision so farrecall so far
lib/json/JsonModulesPlugin.js0.2867no0.0000.000
lib/RuntimeGlobals.js0.2867yes0.5000.007
lib/WebpackOptionsApply.js0.28945yes0.6670.015
lib/DefinePlugin.js0.29627yes0.7500.022
lib/util/internalSerializables.js0.30010yes0.8000.029
lib/ModuleGraph.js0.33321no0.6670.029
lib/EnvironmentPlugin.js0.3336no0.5710.029
lib/ExternalsPlugin.js0.3339yes0.6250.036

The score is the area under the precision-recall curve those two columns trace, across all 251 rows. Ranking by spread-out ownership alone gives 0.593. Ranking the other way, most concentrated first, gives 0.492. A random order averages 0.546, the share of these files that later needed a fix. So ownership on its own sorts barely better than chance, and the direction the literature suggests is the better of the two. I computed all three numbers with the same function the analysis uses.

The models in the post are stricter than this. Each repository is scored on several walk-forward folds, and the two models are compared inside each fold. The per-fold gaps are then averaged, weighted by how many files each fold holds. The interval comes from 1000 bootstrap resamples per repository, drawn with a fixed seed of 17 so the numbers reproduce. Each resample redraws the holdout files with replacement, recomputes both areas, and keeps the gap. The interval in the table above is the 2.5th and 97.5th percentile of those 1000 gaps. An interval that spans zero means resampling the same files can flip the sign.

What five repositories showed

Repository comparison of dominant-share coefficients and bootstrap PR-AUC difference intervals for webpack, ESLint, Prettier, Rollup, and Vite.
Scroll chart for full detail. The dominant-share coefficient and the change in ranking quality after adding it, per repository. Every interval crosses zero.
repositoryeligibleprevalencebaseline PR-AUCaugmented PR-AUCdeltaintervaldominant shareminor count
webpack2510.5458170.7980370.797751-0.000286-0.001366 to 0.0007750.036088insufficient
eslint290.2068970.3597030.352201-0.007503-0.117022 to 0.0534800.276285insufficient
prettier950.2105260.5495150.5565240.007009-0.038076 to 0.055654-0.378312insufficient
rollup470.0851060.5083330.507258-0.001075-0.005926 to 00.043860insufficient
vite790.6962030.8100680.794585-0.015483-0.038445 to 0.0064200.452714insufficient

Adding ownership did not reliably improve the ranking anywhere. Prettier's ranking improved slightly, and the other four got slightly worse, with Vite dropping the most. Every interval crosses zero, so none of these changes is distinguishable from noise. The dominant-share coefficient also changes sign. It is negative in Prettier and positive in the other four, and strongest in Vite. Concentrated ownership did not point the same way across repositories.

The five-percent model could not be fitted in any repository. Either too few files had twenty-one touches, or the ones that did almost all shared the same outcome. This is the five-percent problem in practice. The rule needs long file histories, and most files in these projects do not have them.

So the hypothesis was not supported here. Five repositories cannot show that ownership is useless, but they do show that its effect did not carry over from one project to the next. One likely reading is that commit history is too loose a stand-in for knowledge. That would be a problem with the measurement, not proof that knowledge is unimportant.

I reran the analysis with the choices changed. Ownership can come from commit touches or from blamed lines, which record who last touched the code that survived. Switching between them changes the coefficient and the ranking delta. Neither one tells you who understands the file. I also tried training windows of 12 and 36 months, a 3-month holdout, touch thresholds of 10 and 40, and minor cutoffs from two to fifty percent. Each change moved the numbers, and some flipped the sign. Many of these variants had too little data to fit a stable model at all. The exact values are in the disclosure below.

Privacy-safe file ownership map showing each file's dominant contribution share, effective-owner count, and later likely-fix outcome.
Scroll chart for full detail. The file map keeps paths and touch shapes but leaves contributor identities out.
Sensitivity comparison of dominant-share coefficients and PR-AUC deltas across training windows and touch thresholds in five repositories.
Scroll chart for full detail. Changing the training window or the touch threshold changes the result.

All five repositories are JavaScript or TypeScript projects. Commit counts stand in for effort and email addresses for people, and both are rough. Commit subjects stand in for repairs. The audit found 26 of 28 reviewed positive subjects were repairs. That is 92.9% apparent subject-line precision (0.928571), not defect-label precision. The remaining 2 subjects were not repairs. The design measures an association after controls. It cannot show that concentrated contribution causes defects.

What I would do with the signal

I would use it as a review queue, not a score. A concentrated file may be carefully maintained, or it may depend on one person. A diffuse file may be shared well, or it may lack a clear decision maker. Before a risky change, ask the contributors what the history leaves out. Do not rank people, change staffing, or assign blame from these measures.

Every number in this post, and the runs behind it

This table exists for auditing, not for reading. Every value is bound to the checked-in result file, and a build check fails if any of them drifts. Each repository holds its headline run plus the sensitivity runs: training windows of 12, 24 and 36 months, holdouts of 3 and 6 months, touch thresholds of 10, 21 and 40, commit and blame ownership, identity cleaning variants, and minor cutoffs from two to fifty percent. A dash means that run had too little data to fit, not zero.

webpack · 183 values
repositoryvariantclaimvalue
webpacktraining twelvelabel12-month training
webpacktraining twelvegrouptraining window
webpacktraining twelvestatusok
webpacktraining twelvereason—
webpacktraining twelvecoefficient0.444691
webpacktraining twelvepr auc delta0.001916
webpacktraining twelvebaseline pr auc0.880047
webpacktraining twelveaugmented pr auc0.881963
webpacktraining twelveeligible files129
webpacktraining twelveminor eligible files13
webpacktraining twelveprevalence0.697674
webpacktraining twelveminor count availableyes
webpacktraining twenty-fourlabel24-month training
webpacktraining twenty-fourgrouptraining window
webpacktraining twenty-fourstatusok
webpacktraining twenty-fourreason—
webpacktraining twenty-fourcoefficient0.036088
webpacktraining twenty-fourpr auc delta-0.000286
webpacktraining twenty-fourbaseline pr auc0.798037
webpacktraining twenty-fouraugmented pr auc0.797751
webpacktraining twenty-foureligible files251
webpacktraining twenty-fourminor eligible files47
webpacktraining twenty-fourprevalence0.545817
webpacktraining twenty-fourminor count availableyes
webpacktraining thirty-sixlabel36-month training
webpacktraining thirty-sixgrouptraining window
webpacktraining thirty-sixstatusok
webpacktraining thirty-sixreason—
webpacktraining thirty-sixcoefficient0.188997
webpacktraining thirty-sixpr auc delta-0.004112
webpacktraining thirty-sixbaseline pr auc0.771134
webpacktraining thirty-sixaugmented pr auc0.767022
webpacktraining thirty-sixeligible files307
webpacktraining thirty-sixminor eligible files58
webpacktraining thirty-sixprevalence0.504886
webpacktraining thirty-sixminor count availableyes
webpacktouches tenlabel10 touches
webpacktouches tengrouptouch threshold
webpacktouches tenstatusok
webpacktouches tenreason—
webpacktouches tencoefficient-0.286604
webpacktouches tenpr auc delta0.002155
webpacktouches tenbaseline pr auc0.895003
webpacktouches tenaugmented pr auc0.897157
webpacktouches teneligible files120
webpacktouches tenminor eligible files120
webpacktouches tenprevalence0.716667
webpacktouches tenminor count availableyes
webpacktouches twenty-onelabel21 touches
webpacktouches twenty-onegrouptouch threshold
webpacktouches twenty-onestatusinsufficient
webpacktouches twenty-onereasontraining minority class 1 is below 8 fitted parameters
webpacktouches twenty-onecoefficient—
webpacktouches twenty-onepr auc delta—
webpacktouches twenty-onebaseline pr auc—
webpacktouches twenty-oneaugmented pr auc—
webpacktouches twenty-oneeligible files47
webpacktouches twenty-oneminor eligible files47
webpacktouches twenty-oneprevalence0.914894
webpacktouches twenty-oneminor count availableyes
webpacktouches fortylabel40 touches
webpacktouches fortygrouptouch threshold
webpacktouches fortystatusinsufficient
webpacktouches fortyreasontraining rows lack both classes
webpacktouches fortycoefficient—
webpacktouches fortypr auc delta—
webpacktouches fortybaseline pr auc—
webpacktouches fortyaugmented pr auc—
webpacktouches fortyeligible files12
webpacktouches fortyminor eligible files12
webpacktouches fortyprevalence1
webpacktouches fortyminor count availableyes
webpackholdout sixlabel6-month holdout
webpackholdout sixgroupholdout
webpackholdout sixstatusok
webpackholdout sixreason—
webpackholdout sixcoefficient0.036088
webpackholdout sixpr auc delta-0.000286
webpackholdout sixbaseline pr auc0.798037
webpackholdout sixaugmented pr auc0.797751
webpackholdout sixeligible files251
webpackholdout sixminor eligible files47
webpackholdout sixprevalence0.545817
webpackholdout sixminor count availableyes
webpackholdout threelabel3-month holdout
webpackholdout threegroupholdout
webpackholdout threestatusok
webpackholdout threereason—
webpackholdout threecoefficient0.088617
webpackholdout threepr auc delta0.000673
webpackholdout threebaseline pr auc0.718330
webpackholdout threeaugmented pr auc0.719003
webpackholdout threeeligible files255
webpackholdout threeminor eligible files43
webpackholdout threeprevalence0.423529
webpackholdout threeminor count availableyes
webpackcommitlabelcommit ownership
webpackcommitgroupownership source
webpackcommitstatusok
webpackcommitreason—
webpackcommitcoefficient0.036088
webpackcommitpr auc delta-0.000286
webpackcommitbaseline pr auc0.798037
webpackcommitaugmented pr auc0.797751
webpackcommiteligible files251
webpackcommitminor eligible files47
webpackcommitprevalence0.545817
webpackcommitminor count availableyes
webpacklinelabelline ownership
webpacklinegroupownership source
webpacklinestatusok
webpacklinereason—
webpacklinecoefficient0.043366
webpacklinepr auc delta-0.000817
webpacklinebaseline pr auc0.798037
webpacklineaugmented pr auc0.797220
webpacklineeligible files251
webpacklineminor eligible files47
webpacklineprevalence0.545817
webpacklineminor count availableyes
webpackbotslabelinclude bots
webpackbotsgroupdata cleaning
webpackbotsstatusok
webpackbotsreason—
webpackbotscoefficient0.036088
webpackbotspr auc delta-0.000286
webpackbotsbaseline pr auc0.798037
webpackbotsaugmented pr auc0.797751
webpackbotseligible files251
webpackbotsminor eligible files47
webpackbotsprevalence0.545817
webpackbotsminor count availableyes
webpackmailmaplabelwithout mailmap
webpackmailmapgroupdata cleaning
webpackmailmapstatusok
webpackmailmapreason—
webpackmailmapcoefficient0.036088
webpackmailmappr auc delta-0.000286
webpackmailmapbaseline pr auc0.798037
webpackmailmapaugmented pr auc0.797751
webpackmailmapeligible files251
webpackmailmapminor eligible files47
webpackmailmapprevalence0.545817
webpackmailmapminor count availableyes
webpacklikely fixlabellikely-fix commits
webpacklikely fixgroupoutcome
webpacklikely fixstatusok
webpacklikely fixreason—
webpacklikely fixcoefficient0.036088
webpacklikely fixpr auc delta-0.000286
webpacklikely fixbaseline pr auc0.798037
webpacklikely fixaugmented pr auc0.797751
webpacklikely fixeligible files251
webpacklikely fixminor eligible files47
webpacklikely fixprevalence0.545817
webpacklikely fixminor count availableyes
webpackall changelabelall changes
webpackall changegroupoutcome
webpackall changestatusok
webpackall changereason—
webpackall changecoefficient-0.075075
webpackall changepr auc delta0.000282
webpackall changebaseline pr auc0.957857
webpackall changeaugmented pr auc0.958139
webpackall changeeligible files251
webpackall changeminor eligible files47
webpackall changeprevalence0.888446
webpackall changeminor count availableyes
webpackminor cutoff two percentavailableyes
webpackminor cutoff two percentstatusinsufficient
webpackminor cutoff two percentreasontraining minority class 1 is below 8 fitted parameters
webpackminor cutoff five percentavailableyes
webpackminor cutoff five percentstatusinsufficient
webpackminor cutoff five percentreasontraining minority class 1 is below 8 fitted parameters
webpackminor cutoff ten percentavailableyes
webpackminor cutoff ten percentstatusinsufficient
webpackminor cutoff ten percentreasontraining minority class 1 is below 8 fitted parameters
webpackminor cutoff twenty percentavailableyes
webpackminor cutoff twenty percentstatusinsufficient
webpackminor cutoff twenty percentreasontraining minority class 1 is below 8 fitted parameters
webpackminor cutoff fifty percentavailableyes
webpackminor cutoff fifty percentstatusinsufficient
webpackminor cutoff fifty percentreasontraining minority class 1 is below 8 fitted parameters
eslint · 183 values
repositoryvariantclaimvalue
eslinttraining twelvelabel12-month training
eslinttraining twelvegrouptraining window
eslinttraining twelvestatusinsufficient
eslinttraining twelvereasontraining rows 32 are below 40 required for 8 fitted parameters
eslinttraining twelvecoefficient—
eslinttraining twelvepr auc delta—
eslinttraining twelvebaseline pr auc—
eslinttraining twelveaugmented pr auc—
eslinttraining twelveeligible files17
eslinttraining twelveminor eligible files1
eslinttraining twelveprevalence0.294118
eslinttraining twelveminor count availableyes
eslinttraining twenty-fourlabel24-month training
eslinttraining twenty-fourgrouptraining window
eslinttraining twenty-fourstatusok
eslinttraining twenty-fourreason—
eslinttraining twenty-fourcoefficient0.276285
eslinttraining twenty-fourpr auc delta-0.007503
eslinttraining twenty-fourbaseline pr auc0.359703
eslinttraining twenty-fouraugmented pr auc0.352201
eslinttraining twenty-foureligible files29
eslinttraining twenty-fourminor eligible files5
eslinttraining twenty-fourprevalence0.206897
eslinttraining twenty-fourminor count availableyes
eslinttraining thirty-sixlabel36-month training
eslinttraining thirty-sixgrouptraining window
eslinttraining thirty-sixstatusok
eslinttraining thirty-sixreason—
eslinttraining thirty-sixcoefficient0.328153
eslinttraining thirty-sixpr auc delta-0.002282
eslinttraining thirty-sixbaseline pr auc0.283631
eslinttraining thirty-sixaugmented pr auc0.281349
eslinttraining thirty-sixeligible files112
eslinttraining thirty-sixminor eligible files7
eslinttraining thirty-sixprevalence0.133929
eslinttraining thirty-sixminor count availableyes
eslinttouches tenlabel10 touches
eslinttouches tengrouptouch threshold
eslinttouches tenstatusinsufficient
eslinttouches tenreasontraining rows 26 are below 40 required for 8 fitted parameters
eslinttouches tencoefficient—
eslinttouches tenpr auc delta—
eslinttouches tenbaseline pr auc—
eslinttouches tenaugmented pr auc—
eslinttouches teneligible files12
eslinttouches tenminor eligible files12
eslinttouches tenprevalence0.333333
eslinttouches tenminor count availableyes
eslinttouches twenty-onelabel21 touches
eslinttouches twenty-onegrouptouch threshold
eslinttouches twenty-onestatusinsufficient
eslinttouches twenty-onereasontraining rows 11 are below 40 required for 8 fitted parameters
eslinttouches twenty-onecoefficient—
eslinttouches twenty-onepr auc delta—
eslinttouches twenty-onebaseline pr auc—
eslinttouches twenty-oneaugmented pr auc—
eslinttouches twenty-oneeligible files5
eslinttouches twenty-oneminor eligible files5
eslinttouches twenty-oneprevalence0.400000
eslinttouches twenty-oneminor count availableyes
eslinttouches fortylabel40 touches
eslinttouches fortygrouptouch threshold
eslinttouches fortystatusinsufficient
eslinttouches fortyreasontraining rows lack both classes
eslinttouches fortycoefficient—
eslinttouches fortypr auc delta—
eslinttouches fortybaseline pr auc—
eslinttouches fortyaugmented pr auc—
eslinttouches fortyeligible files2
eslinttouches fortyminor eligible files2
eslinttouches fortyprevalence0.500000
eslinttouches fortyminor count availableyes
eslintholdout sixlabel6-month holdout
eslintholdout sixgroupholdout
eslintholdout sixstatusok
eslintholdout sixreason—
eslintholdout sixcoefficient0.276285
eslintholdout sixpr auc delta-0.007503
eslintholdout sixbaseline pr auc0.359703
eslintholdout sixaugmented pr auc0.352201
eslintholdout sixeligible files29
eslintholdout sixminor eligible files5
eslintholdout sixprevalence0.206897
eslintholdout sixminor count availableyes
eslintholdout threelabel3-month holdout
eslintholdout threegroupholdout
eslintholdout threestatusok
eslintholdout threereason—
eslintholdout threecoefficient0.681578
eslintholdout threepr auc delta0.133548
eslintholdout threebaseline pr auc0.304721
eslintholdout threeaugmented pr auc0.438268
eslintholdout threeeligible files30
eslintholdout threeminor eligible files5
eslintholdout threeprevalence0.166667
eslintholdout threeminor count availableyes
eslintcommitlabelcommit ownership
eslintcommitgroupownership source
eslintcommitstatusok
eslintcommitreason—
eslintcommitcoefficient0.276285
eslintcommitpr auc delta-0.007503
eslintcommitbaseline pr auc0.359703
eslintcommitaugmented pr auc0.352201
eslintcommiteligible files29
eslintcommitminor eligible files5
eslintcommitprevalence0.206897
eslintcommitminor count availableyes
eslintlinelabelline ownership
eslintlinegroupownership source
eslintlinestatusok
eslintlinereason—
eslintlinecoefficient0.067121
eslintlinepr auc delta0.010504
eslintlinebaseline pr auc0.359703
eslintlineaugmented pr auc0.370208
eslintlineeligible files29
eslintlineminor eligible files5
eslintlineprevalence0.206897
eslintlineminor count availableyes
eslintbotslabelinclude bots
eslintbotsgroupdata cleaning
eslintbotsstatusok
eslintbotsreason—
eslintbotscoefficient0.276285
eslintbotspr auc delta-0.007503
eslintbotsbaseline pr auc0.359703
eslintbotsaugmented pr auc0.352201
eslintbotseligible files29
eslintbotsminor eligible files5
eslintbotsprevalence0.206897
eslintbotsminor count availableyes
eslintmailmaplabelwithout mailmap
eslintmailmapgroupdata cleaning
eslintmailmapstatusok
eslintmailmapreason—
eslintmailmapcoefficient0.276285
eslintmailmappr auc delta-0.007503
eslintmailmapbaseline pr auc0.359703
eslintmailmapaugmented pr auc0.352201
eslintmailmapeligible files29
eslintmailmapminor eligible files5
eslintmailmapprevalence0.206897
eslintmailmapminor count availableyes
eslintlikely fixlabellikely-fix commits
eslintlikely fixgroupoutcome
eslintlikely fixstatusok
eslintlikely fixreason—
eslintlikely fixcoefficient0.276285
eslintlikely fixpr auc delta-0.007503
eslintlikely fixbaseline pr auc0.359703
eslintlikely fixaugmented pr auc0.352201
eslintlikely fixeligible files29
eslintlikely fixminor eligible files5
eslintlikely fixprevalence0.206897
eslintlikely fixminor count availableyes
eslintall changelabelall changes
eslintall changegroupoutcome
eslintall changestatusok
eslintall changereason—
eslintall changecoefficient0.159696
eslintall changepr auc delta-0.001277
eslintall changebaseline pr auc0.724452
eslintall changeaugmented pr auc0.723175
eslintall changeeligible files29
eslintall changeminor eligible files5
eslintall changeprevalence0.517241
eslintall changeminor count availableyes
eslintminor cutoff two percentavailableyes
eslintminor cutoff two percentstatusinsufficient
eslintminor cutoff two percentreasontraining rows 11 are below 40 required for 8 fitted parameters
eslintminor cutoff five percentavailableyes
eslintminor cutoff five percentstatusinsufficient
eslintminor cutoff five percentreasontraining rows 11 are below 40 required for 8 fitted parameters
eslintminor cutoff ten percentavailableyes
eslintminor cutoff ten percentstatusinsufficient
eslintminor cutoff ten percentreasontraining rows 11 are below 40 required for 8 fitted parameters
eslintminor cutoff twenty percentavailableyes
eslintminor cutoff twenty percentstatusinsufficient
eslintminor cutoff twenty percentreasontraining rows 11 are below 40 required for 8 fitted parameters
eslintminor cutoff fifty percentavailableyes
eslintminor cutoff fifty percentstatusinsufficient
eslintminor cutoff fifty percentreasontraining rows 11 are below 40 required for 8 fitted parameters
prettier · 183 values
repositoryvariantclaimvalue
prettiertraining twelvelabel12-month training
prettiertraining twelvegrouptraining window
prettiertraining twelvestatusok
prettiertraining twelvereason—
prettiertraining twelvecoefficient-0.056489
prettiertraining twelvepr auc delta0.003159
prettiertraining twelvebaseline pr auc0.557423
prettiertraining twelveaugmented pr auc0.560582
prettiertraining twelveeligible files74
prettiertraining twelveminor eligible files2
prettiertraining twelveprevalence0.229730
prettiertraining twelveminor count availableyes
prettiertraining twenty-fourlabel24-month training
prettiertraining twenty-fourgrouptraining window
prettiertraining twenty-fourstatusok
prettiertraining twenty-fourreason—
prettiertraining twenty-fourcoefficient-0.378312
prettiertraining twenty-fourpr auc delta0.007009
prettiertraining twenty-fourbaseline pr auc0.549515
prettiertraining twenty-fouraugmented pr auc0.556524
prettiertraining twenty-foureligible files95
prettiertraining twenty-fourminor eligible files8
prettiertraining twenty-fourprevalence0.210526
prettiertraining twenty-fourminor count availableyes
prettiertraining thirty-sixlabel36-month training
prettiertraining thirty-sixgrouptraining window
prettiertraining thirty-sixstatusok
prettiertraining thirty-sixreason—
prettiertraining thirty-sixcoefficient0.184680
prettiertraining thirty-sixpr auc delta-0.046072
prettiertraining thirty-sixbaseline pr auc0.527554
prettiertraining thirty-sixaugmented pr auc0.481482
prettiertraining thirty-sixeligible files147
prettiertraining thirty-sixminor eligible files26
prettiertraining thirty-sixprevalence0.163265
prettiertraining thirty-sixminor count availableyes
prettiertouches tenlabel10 touches
prettiertouches tengrouptouch threshold
prettiertouches tenstatusok
prettiertouches tenreason—
prettiertouches tencoefficient-0.392087
prettiertouches tenpr auc delta0.023285
prettiertouches tenbaseline pr auc0.562882
prettiertouches tenaugmented pr auc0.586167
prettiertouches teneligible files47
prettiertouches tenminor eligible files47
prettiertouches tenprevalence0.255319
prettiertouches tenminor count availableyes
prettiertouches twenty-onelabel21 touches
prettiertouches twenty-onegrouptouch threshold
prettiertouches twenty-onestatusinsufficient
prettiertouches twenty-onereasontraining rows 12 are below 40 required for 8 fitted parameters
prettiertouches twenty-onecoefficient—
prettiertouches twenty-onepr auc delta—
prettiertouches twenty-onebaseline pr auc—
prettiertouches twenty-oneaugmented pr auc—
prettiertouches twenty-oneeligible files8
prettiertouches twenty-oneminor eligible files8
prettiertouches twenty-oneprevalence0.250000
prettiertouches twenty-oneminor count availableyes
prettiertouches fortylabel40 touches
prettiertouches fortygrouptouch threshold
prettiertouches fortystatusinsufficient
prettiertouches fortyreasontraining rows lack both classes
prettiertouches fortycoefficient—
prettiertouches fortypr auc delta—
prettiertouches fortybaseline pr auc—
prettiertouches fortyaugmented pr auc—
prettiertouches fortyeligible files1
prettiertouches fortyminor eligible files1
prettiertouches fortyprevalence1
prettiertouches fortyminor count availableyes
prettierholdout sixlabel6-month holdout
prettierholdout sixgroupholdout
prettierholdout sixstatusok
prettierholdout sixreason—
prettierholdout sixcoefficient-0.378312
prettierholdout sixpr auc delta0.007009
prettierholdout sixbaseline pr auc0.549515
prettierholdout sixaugmented pr auc0.556524
prettierholdout sixeligible files95
prettierholdout sixminor eligible files8
prettierholdout sixprevalence0.210526
prettierholdout sixminor count availableyes
prettierholdout threelabel3-month holdout
prettierholdout threegroupholdout
prettierholdout threestatusok
prettierholdout threereason—
prettierholdout threecoefficient0.230570
prettierholdout threepr auc delta0.000223
prettierholdout threebaseline pr auc0.540332
prettierholdout threeaugmented pr auc0.540555
prettierholdout threeeligible files122
prettierholdout threeminor eligible files13
prettierholdout threeprevalence0.163934
prettierholdout threeminor count availableyes
prettiercommitlabelcommit ownership
prettiercommitgroupownership source
prettiercommitstatusok
prettiercommitreason—
prettiercommitcoefficient-0.378312
prettiercommitpr auc delta0.007009
prettiercommitbaseline pr auc0.549515
prettiercommitaugmented pr auc0.556524
prettiercommiteligible files95
prettiercommitminor eligible files8
prettiercommitprevalence0.210526
prettiercommitminor count availableyes
prettierlinelabelline ownership
prettierlinegroupownership source
prettierlinestatusok
prettierlinereason—
prettierlinecoefficient-0.381293
prettierlinepr auc delta0.076276
prettierlinebaseline pr auc0.549515
prettierlineaugmented pr auc0.625790
prettierlineeligible files95
prettierlineminor eligible files8
prettierlineprevalence0.210526
prettierlineminor count availableyes
prettierbotslabelinclude bots
prettierbotsgroupdata cleaning
prettierbotsstatusok
prettierbotsreason—
prettierbotscoefficient-0.311133
prettierbotspr auc delta0.024569
prettierbotsbaseline pr auc0.525417
prettierbotsaugmented pr auc0.549986
prettierbotseligible files103
prettierbotsminor eligible files8
prettierbotsprevalence0.213592
prettierbotsminor count availableyes
prettiermailmaplabelwithout mailmap
prettiermailmapgroupdata cleaning
prettiermailmapstatusok
prettiermailmapreason—
prettiermailmapcoefficient-0.378312
prettiermailmappr auc delta0.007009
prettiermailmapbaseline pr auc0.549515
prettiermailmapaugmented pr auc0.556524
prettiermailmapeligible files95
prettiermailmapminor eligible files8
prettiermailmapprevalence0.210526
prettiermailmapminor count availableyes
prettierlikely fixlabellikely-fix commits
prettierlikely fixgroupoutcome
prettierlikely fixstatusok
prettierlikely fixreason—
prettierlikely fixcoefficient-0.378312
prettierlikely fixpr auc delta0.007009
prettierlikely fixbaseline pr auc0.549515
prettierlikely fixaugmented pr auc0.556524
prettierlikely fixeligible files95
prettierlikely fixminor eligible files8
prettierlikely fixprevalence0.210526
prettierlikely fixminor count availableyes
prettierall changelabelall changes
prettierall changegroupoutcome
prettierall changestatusok
prettierall changereason—
prettierall changecoefficient0.180660
prettierall changepr auc delta-0.000948
prettierall changebaseline pr auc0.944800
prettierall changeaugmented pr auc0.943853
prettierall changeeligible files95
prettierall changeminor eligible files8
prettierall changeprevalence0.789474
prettierall changeminor count availableyes
prettierminor cutoff two percentavailableno
prettierminor cutoff two percentstatusunavailable
prettierminor cutoff two percentreasonno observed below-cutoff owner in training or test rows
prettierminor cutoff five percentavailableyes
prettierminor cutoff five percentstatusinsufficient
prettierminor cutoff five percentreasontraining rows 12 are below 40 required for 8 fitted parameters
prettierminor cutoff ten percentavailableyes
prettierminor cutoff ten percentstatusinsufficient
prettierminor cutoff ten percentreasontraining rows 12 are below 40 required for 8 fitted parameters
prettierminor cutoff twenty percentavailableyes
prettierminor cutoff twenty percentstatusinsufficient
prettierminor cutoff twenty percentreasontraining rows 12 are below 40 required for 8 fitted parameters
prettierminor cutoff fifty percentavailableyes
prettierminor cutoff fifty percentstatusinsufficient
prettierminor cutoff fifty percentreasontraining rows 12 are below 40 required for 8 fitted parameters
rollup · 183 values
repositoryvariantclaimvalue
rolluptraining twelvelabel12-month training
rolluptraining twelvegrouptraining window
rolluptraining twelvestatusok
rolluptraining twelvereason—
rolluptraining twelvecoefficient-1.054052
rolluptraining twelvepr auc delta0.040079
rolluptraining twelvebaseline pr auc0.319444
rolluptraining twelveaugmented pr auc0.359524
rolluptraining twelveeligible files9
rolluptraining twelveminor eligible files0
rolluptraining twelveprevalence0.333333
rolluptraining twelveminor count availableno
rolluptraining twenty-fourlabel24-month training
rolluptraining twenty-fourgrouptraining window
rolluptraining twenty-fourstatusok
rolluptraining twenty-fourreason—
rolluptraining twenty-fourcoefficient0.043860
rolluptraining twenty-fourpr auc delta-0.001075
rolluptraining twenty-fourbaseline pr auc0.508333
rolluptraining twenty-fouraugmented pr auc0.507258
rolluptraining twenty-foureligible files47
rolluptraining twenty-fourminor eligible files0
rolluptraining twenty-fourprevalence0.085106
rolluptraining twenty-fourminor count availableyes
rolluptraining thirty-sixlabel36-month training
rolluptraining thirty-sixgrouptraining window
rolluptraining thirty-sixstatusok
rolluptraining thirty-sixreason—
rolluptraining thirty-sixcoefficient0.242093
rolluptraining thirty-sixpr auc delta-0.036574
rolluptraining thirty-sixbaseline pr auc0.445185
rolluptraining thirty-sixaugmented pr auc0.408611
rolluptraining thirty-sixeligible files95
rolluptraining thirty-sixminor eligible files4
rolluptraining thirty-sixprevalence0.073684
rolluptraining thirty-sixminor count availableyes
rolluptouches tenlabel10 touches
rolluptouches tengrouptouch threshold
rolluptouches tenstatusok
rolluptouches tenreason—
rolluptouches tencoefficient0.466261
rolluptouches tenpr auc delta-0.023810
rolluptouches tenbaseline pr auc0.333333
rolluptouches tenaugmented pr auc0.309524
rolluptouches teneligible files11
rolluptouches tenminor eligible files11
rolluptouches tenprevalence0.181818
rolluptouches tenminor count availableyes
rolluptouches twenty-onelabel21 touches
rolluptouches twenty-onegrouptouch threshold
rolluptouches twenty-onestatusinsufficient
rolluptouches twenty-onereasontest rows lack both classes
rolluptouches twenty-onecoefficient—
rolluptouches twenty-onepr auc delta—
rolluptouches twenty-onebaseline pr auc—
rolluptouches twenty-oneaugmented pr auc—
rolluptouches twenty-oneeligible files0
rolluptouches twenty-oneminor eligible files0
rolluptouches twenty-oneprevalence—
rolluptouches twenty-oneminor count availableyes
rolluptouches fortylabel40 touches
rolluptouches fortygrouptouch threshold
rolluptouches fortystatusinsufficient
rolluptouches fortyreasontraining rows lack both classes
rolluptouches fortycoefficient—
rolluptouches fortypr auc delta—
rolluptouches fortybaseline pr auc—
rolluptouches fortyaugmented pr auc—
rolluptouches fortyeligible files0
rolluptouches fortyminor eligible files0
rolluptouches fortyprevalence—
rolluptouches fortyminor count availableno
rollupholdout sixlabel6-month holdout
rollupholdout sixgroupholdout
rollupholdout sixstatusok
rollupholdout sixreason—
rollupholdout sixcoefficient0.043860
rollupholdout sixpr auc delta-0.001075
rollupholdout sixbaseline pr auc0.508333
rollupholdout sixaugmented pr auc0.507258
rollupholdout sixeligible files47
rollupholdout sixminor eligible files0
rollupholdout sixprevalence0.085106
rollupholdout sixminor count availableyes
rollupholdout threelabel3-month holdout
rollupholdout threegroupholdout
rollupholdout threestatusinsufficient
rollupholdout threereasontest rows lack both classes
rollupholdout threecoefficient—
rollupholdout threepr auc delta—
rollupholdout threebaseline pr auc—
rollupholdout threeaugmented pr auc—
rollupholdout threeeligible files42
rollupholdout threeminor eligible files0
rollupholdout threeprevalence0
rollupholdout threeminor count availableno
rollupcommitlabelcommit ownership
rollupcommitgroupownership source
rollupcommitstatusok
rollupcommitreason—
rollupcommitcoefficient0.043860
rollupcommitpr auc delta-0.001075
rollupcommitbaseline pr auc0.508333
rollupcommitaugmented pr auc0.507258
rollupcommiteligible files47
rollupcommitminor eligible files0
rollupcommitprevalence0.085106
rollupcommitminor count availableyes
rolluplinelabelline ownership
rolluplinegroupownership source
rolluplinestatusok
rolluplinereason—
rolluplinecoefficient-0.283960
rolluplinepr auc delta0
rolluplinebaseline pr auc0.508333
rolluplineaugmented pr auc0.508333
rolluplineeligible files47
rolluplineminor eligible files0
rolluplineprevalence0.085106
rolluplineminor count availableyes
rollupbotslabelinclude bots
rollupbotsgroupdata cleaning
rollupbotsstatusok
rollupbotsreason—
rollupbotscoefficient-0.017445
rollupbotspr auc delta-0.002179
rollupbotsbaseline pr auc0.402865
rollupbotsaugmented pr auc0.400686
rollupbotseligible files55
rollupbotsminor eligible files0
rollupbotsprevalence0.109091
rollupbotsminor count availableyes
rollupmailmaplabelwithout mailmap
rollupmailmapgroupdata cleaning
rollupmailmapstatusok
rollupmailmapreason—
rollupmailmapcoefficient0.043860
rollupmailmappr auc delta-0.001075
rollupmailmapbaseline pr auc0.508333
rollupmailmapaugmented pr auc0.507258
rollupmailmapeligible files47
rollupmailmapminor eligible files0
rollupmailmapprevalence0.085106
rollupmailmapminor count availableyes
rolluplikely fixlabellikely-fix commits
rolluplikely fixgroupoutcome
rolluplikely fixstatusok
rolluplikely fixreason—
rolluplikely fixcoefficient0.043860
rolluplikely fixpr auc delta-0.001075
rolluplikely fixbaseline pr auc0.508333
rolluplikely fixaugmented pr auc0.507258
rolluplikely fixeligible files47
rolluplikely fixminor eligible files0
rolluplikely fixprevalence0.085106
rolluplikely fixminor count availableyes
rollupall changelabelall changes
rollupall changegroupoutcome
rollupall changestatusok
rollupall changereason—
rollupall changecoefficient-0.030657
rollupall changepr auc delta0.001164
rollupall changebaseline pr auc0.691039
rollupall changeaugmented pr auc0.692203
rollupall changeeligible files47
rollupall changeminor eligible files0
rollupall changeprevalence0.382979
rollupall changeminor count availableyes
rollupminor cutoff two percentavailableno
rollupminor cutoff two percentstatusunavailable
rollupminor cutoff two percentreasonno observed below-cutoff owner in training or test rows
rollupminor cutoff five percentavailableyes
rollupminor cutoff five percentstatusinsufficient
rollupminor cutoff five percentreasontest rows lack both classes
rollupminor cutoff ten percentavailableyes
rollupminor cutoff ten percentstatusinsufficient
rollupminor cutoff ten percentreasontest rows lack both classes
rollupminor cutoff twenty percentavailableyes
rollupminor cutoff twenty percentstatusinsufficient
rollupminor cutoff twenty percentreasontest rows lack both classes
rollupminor cutoff fifty percentavailableyes
rollupminor cutoff fifty percentstatusinsufficient
rollupminor cutoff fifty percentreasontest rows lack both classes
vite · 183 values
repositoryvariantclaimvalue
vitetraining twelvelabel12-month training
vitetraining twelvegrouptraining window
vitetraining twelvestatusok
vitetraining twelvereason—
vitetraining twelvecoefficient0.532056
vitetraining twelvepr auc delta-0.003540
vitetraining twelvebaseline pr auc0.853439
vitetraining twelveaugmented pr auc0.849899
vitetraining twelveeligible files50
vitetraining twelveminor eligible files15
vitetraining twelveprevalence0.780000
vitetraining twelveminor count availableyes
vitetraining twenty-fourlabel24-month training
vitetraining twenty-fourgrouptraining window
vitetraining twenty-fourstatusok
vitetraining twenty-fourreason—
vitetraining twenty-fourcoefficient0.452714
vitetraining twenty-fourpr auc delta-0.015483
vitetraining twenty-fourbaseline pr auc0.810068
vitetraining twenty-fouraugmented pr auc0.794585
vitetraining twenty-foureligible files79
vitetraining twenty-fourminor eligible files29
vitetraining twenty-fourprevalence0.696203
vitetraining twenty-fourminor count availableyes
vitetraining thirty-sixlabel36-month training
vitetraining thirty-sixgrouptraining window
vitetraining thirty-sixstatusok
vitetraining thirty-sixreason—
vitetraining thirty-sixcoefficient0.191272
vitetraining thirty-sixpr auc delta-0.005634
vitetraining thirty-sixbaseline pr auc0.830090
vitetraining thirty-sixaugmented pr auc0.824457
vitetraining thirty-sixeligible files89
vitetraining thirty-sixminor eligible files43
vitetraining thirty-sixprevalence0.651685
vitetraining thirty-sixminor count availableyes
vitetouches tenlabel10 touches
vitetouches tengrouptouch threshold
vitetouches tenstatusok
vitetouches tenreason—
vitetouches tencoefficient1.121782
vitetouches tenpr auc delta-0.039060
vitetouches tenbaseline pr auc0.840150
vitetouches tenaugmented pr auc0.801090
vitetouches teneligible files54
vitetouches tenminor eligible files54
vitetouches tenprevalence0.777778
vitetouches tenminor count availableyes
vitetouches twenty-onelabel21 touches
vitetouches twenty-onegrouptouch threshold
vitetouches twenty-onestatusinsufficient
vitetouches twenty-onereasontraining minority class 6 is below 8 fitted parameters
vitetouches twenty-onecoefficient—
vitetouches twenty-onepr auc delta—
vitetouches twenty-onebaseline pr auc—
vitetouches twenty-oneaugmented pr auc—
vitetouches twenty-oneeligible files29
vitetouches twenty-oneminor eligible files29
vitetouches twenty-oneprevalence0.862069
vitetouches twenty-oneminor count availableyes
vitetouches fortylabel40 touches
vitetouches fortygrouptouch threshold
vitetouches fortystatusinsufficient
vitetouches fortyreasontraining rows lack both classes
vitetouches fortycoefficient—
vitetouches fortypr auc delta—
vitetouches fortybaseline pr auc—
vitetouches fortyaugmented pr auc—
vitetouches fortyeligible files12
vitetouches fortyminor eligible files12
vitetouches fortyprevalence1
vitetouches fortyminor count availableyes
viteholdout sixlabel6-month holdout
viteholdout sixgroupholdout
viteholdout sixstatusok
viteholdout sixreason—
viteholdout sixcoefficient0.452714
viteholdout sixpr auc delta-0.015483
viteholdout sixbaseline pr auc0.810068
viteholdout sixaugmented pr auc0.794585
viteholdout sixeligible files79
viteholdout sixminor eligible files29
viteholdout sixprevalence0.696203
viteholdout sixminor count availableyes
viteholdout threelabel3-month holdout
viteholdout threegroupholdout
viteholdout threestatusok
viteholdout threereason—
viteholdout threecoefficient0.025438
viteholdout threepr auc delta-0.001333
viteholdout threebaseline pr auc0.756117
viteholdout threeaugmented pr auc0.754784
viteholdout threeeligible files83
viteholdout threeminor eligible files30
viteholdout threeprevalence0.506024
viteholdout threeminor count availableyes
vitecommitlabelcommit ownership
vitecommitgroupownership source
vitecommitstatusok
vitecommitreason—
vitecommitcoefficient0.452714
vitecommitpr auc delta-0.015483
vitecommitbaseline pr auc0.810068
vitecommitaugmented pr auc0.794585
vitecommiteligible files79
vitecommitminor eligible files29
vitecommitprevalence0.696203
vitecommitminor count availableyes
vitelinelabelline ownership
vitelinegroupownership source
vitelinestatusok
vitelinereason—
vitelinecoefficient-0.436127
vitelinepr auc delta0.008867
vitelinebaseline pr auc0.810068
vitelineaugmented pr auc0.818934
vitelineeligible files79
vitelineminor eligible files29
vitelineprevalence0.696203
vitelineminor count availableyes
vitebotslabelinclude bots
vitebotsgroupdata cleaning
vitebotsstatusok
vitebotsreason—
vitebotscoefficient0.534178
vitebotspr auc delta-0.015805
vitebotsbaseline pr auc0.812231
vitebotsaugmented pr auc0.796426
vitebotseligible files80
vitebotsminor eligible files29
vitebotsprevalence0.700000
vitebotsminor count availableyes
vitemailmaplabelwithout mailmap
vitemailmapgroupdata cleaning
vitemailmapstatusok
vitemailmapreason—
vitemailmapcoefficient0.452714
vitemailmappr auc delta-0.015483
vitemailmapbaseline pr auc0.810068
vitemailmapaugmented pr auc0.794585
vitemailmapeligible files79
vitemailmapminor eligible files29
vitemailmapprevalence0.696203
vitemailmapminor count availableyes
vitelikely fixlabellikely-fix commits
vitelikely fixgroupoutcome
vitelikely fixstatusok
vitelikely fixreason—
vitelikely fixcoefficient0.452714
vitelikely fixpr auc delta-0.015483
vitelikely fixbaseline pr auc0.810068
vitelikely fixaugmented pr auc0.794585
vitelikely fixeligible files79
vitelikely fixminor eligible files29
vitelikely fixprevalence0.696203
vitelikely fixminor count availableyes
viteall changelabelall changes
viteall changegroupoutcome
viteall changestatusok
viteall changereason—
viteall changecoefficient-0.051975
viteall changepr auc delta0.001188
viteall changebaseline pr auc0.925557
viteall changeaugmented pr auc0.926745
viteall changeeligible files79
viteall changeminor eligible files29
viteall changeprevalence0.835443
viteall changeminor count availableyes
viteminor cutoff two percentavailableyes
viteminor cutoff two percentstatusinsufficient
viteminor cutoff two percentreasontraining minority class 6 is below 8 fitted parameters
viteminor cutoff five percentavailableyes
viteminor cutoff five percentstatusinsufficient
viteminor cutoff five percentreasontraining minority class 6 is below 8 fitted parameters
viteminor cutoff ten percentavailableyes
viteminor cutoff ten percentstatusinsufficient
viteminor cutoff ten percentreasontraining minority class 6 is below 8 fitted parameters
viteminor cutoff twenty percentavailableyes
viteminor cutoff twenty percentstatusinsufficient
viteminor cutoff twenty percentreasontraining minority class 6 is below 8 fitted parameters
viteminor cutoff fifty percentavailableyes
viteminor cutoff fifty percentstatusinsufficient
viteminor cutoff fifty percentreasontraining minority class 6 is below 8 fitted parameters
analysis-wide totals · 6 values
repositoryvariantclaimvalue
aggregateaggregaterepositories5
aggregateaggregateeligible files501
aggregateaggregateminor eligible files89
aggregateaggregateoutcome files222
aggregateaggregateprimary models ok5
aggregateaggregateminor models ok0

Contribution concentration is worth investigating when it changes a practical question. Here, it did not produce one stable result beyond size and activity.

References