# How should player-data APIs and integrations be compared?


**Test identity, meaning and update behaviour—not merely whether an import succeeds.** Wyscout’s public API documentation exposes supplier-specific identifiers such as `wyId`, player and competition resources, pagination and error responses. That documentation provides an integration starting point, not evidence that the club’s existing records will join correctly. ([apidocs.wyscout.com](https://apidocs.wyscout.com/?utm_source=openai))

An integration provider’s advertised imports should receive the same scrutiny. ScoutDecision, for example, advertises imports from Wyscout and Statsbomb; this review did not test field-level preservation or the permissions required for a club’s proposed implementation. ([scoutdecision.com](https://www.scoutdecision.com/))

### What belongs in a Player Data Joinability Check?

The following is our proposed acceptance checklist.

| Test | Sample challenge | Record separately |
|---|---|---|
| Player identity | Similar names, diacritics, name changes and multiple team records | Correct matches, incorrect matches and unresolved records |
| Temporal identity | Transfer or loan during the reporting period | Historical club assignment versus current-club metadata |
| Match identity | Different time zones, competition aliases and replayed fixtures | Wrong joins, duplicate fixtures and unmapped matches |
| Event meaning | Apparently similar metrics from different suppliers | Definition differences and transformations applied |
| Coordinates and clocks | Different pitch conventions, periods and video offsets | Transformation rules and synchronisation exceptions |
| Data corrections | Re-import an updated match | Changed records, correction timestamps and reproducibility |
| API operations | Pagination, rate limits and interrupted downloads | Retry behaviour, incomplete extracts and alerting |
| Exit portability | Export reports and relationship tables | Preserved identifiers, provenance, links and permissions |

Do not optimise the join rate alone. An incorrectly matched player is different from an explicitly unresolved record. Set a separate tolerance for false matches and require human adjudication for ambiguous identities.

Use a fresh sample for acceptance after fixing the first batch. Otherwise the test may establish only that the supplier or developer repaired the examples already shown to them.
