A short article about a parsing decision that affects roughly one row in six.
What the page shows
In a doubles row, the team label is rendered short — something like Roger-Vas where the real string is two full surnames. The column is narrow and the site abbreviates to fit.
What is actually in the markup
The complete names are present in an attribute on the same element, which is how the site shows the full string on hover. Reading from there costs nothing extra: it arrives in the same response as the visible text, so this is a parsing choice rather than an additional request.
How much of the data this is
17.4% of all rows. Doubles is not a corner of this dataset — with ATP doubles and WTA doubles both included, it is a sixth of everything.
Why a truncated name is worse than a missing one
Because it looks like a name. A null fails loudly at the first join; Roger-Vas joins to nothing and produces an empty result that looks like a player with no matches. Nothing raises an error, and the row count is right.
It is the same failure shape as the moving day boundary: plausible output, no error, wrong answer.


