No soccer dataset is complete. What varies is whether the gaps are acknowledged, and the method used to fill them shapes conclusions more than the choice of model does.
Gaps are rarely random
Missing tracking data usually reflects a venue without the system installed, and those venues correlate with league level, budget and region.
That means the missing rows describe a different population from the present ones. Dropping them is not neutral; it quietly narrows the dataset to well-resourced competitions.
Statistical methods for handling gaps assume something about why the value is absent, and getting that assumption wrong is the origin of most downstream error.
Deleting rows is a decision, not a default
Removing every record with a gap is the most common approach because it requires no thought. It also discards the players most affected by patchy coverage.
In player evaluation this systematically favors athletes in well-covered leagues, since they are the only ones who survive the filter with complete records.
The bias is invisible in the output, because the resulting table looks clean and complete. Cleanliness is what makes the approach dangerous.
Filling with an average flattens the thing being measured
Substituting a column average keeps the row and destroys the variation the analysis is trying to detect, pulling every incomplete player toward the middle.
Any measure of spread computed afterward is understated, because a substantial share of the values are now identical by construction.
The effect compounds when several fields are filled this way, producing a synthetic average player who did not exist and now appears repeatedly.
Model-based filling preserves structure and adds risk
A better approach predicts the missing value from the fields that are present, since soccer statistics are strongly related to one another.
This retains realistic variation, but the filled value now contains the model's assumptions, and analyzing it afterward partly measures those assumptions.
Generating several plausible fills and running the analysis on each shows how much the conclusion depends on the gaps, which is the honest version of the technique.
The absence itself carries information
A player with no tracking data is telling you something about where they play, and that fact is often more useful than any imputed number.
Recording presence as its own field lets a model use it directly rather than pretending the underlying value was observed.
Analysts who publish which fields were filled and how make their work checkable. Those who do not are asking readers to trust a step that materially shaped the result.