Before starting the import process, confirm these are complete:
You need two reports from the Sports Affinity Association site. Both come from the same page — you just select a different report from the dropdown.
This is your primary data source — player names, DOB, gender, parent contacts, addresses, and team assignments.
Select "Excel" from the format dropdown
Click Export to download the file
The file downloads as playerUpload.xlsx
playmetrics_import.pyThis report shows actual birth certificate upload and verification dates per player — the definitive source for who has a BC on file.
This report is accessed from a different location than Report 1:
To capture returning players who may have sat out a season, you can include prior years' data. The import tool will merge them, deduplicate by player name + DOB, and keep the most recent contact information.
Why bother? A player who played in 2024 but skipped 2025 still has a valid birth certificate on file. If they come back for 2026, importing them means they won't have to re-upload their BC.
The standalone Python tool handles all data transformation automatically — phone formatting, ZIP code truncation, gender mapping, BC status determination, age filtering, and the file split.
Three files in a playmetrics_output/ folder:
| File | What It Is | What To Do With It |
|---|---|---|
playmetrics_bc_verified_YYYYMMDD.csv | Players with BC on file | Send to PlayMetrics (success@playmetrics.com). They import and flag as verified. |
playmetrics_non_verified_YYYYMMDD.csv | Players without BC | Import yourself in PM admin. These players will be prompted to upload during registration. |
playmetrics_all_players_YYYYMMDD.csv | Combined reference copy | Do not import. For your records only. |
| PlayMetrics Column | Source (SA playerUpload) | Transformation |
|---|---|---|
| player_first_name | PlayerFirstName | None — already split |
| player_last_name | PlayerLastName | None — already split |
| gender | Gender | None — already M/F |
| birth_date | DOB | None — already MM/DD/YYYY |
| parent1_email | FatherEmailAddress | None (Father = Parent1, not gendered) |
| parent1_first_name | FatherFirstName | None — already split |
| parent1_last_name | FatherLastName | None — already split |
| parent1_mobile_number | FatherCellPhone | (XXX) XXX-XXXX → XXX-XXX-XXXX |
| parent2_email | MotherEmailAddress | None (Mother = Parent2) |
| parent2_first_name | MotherFirstName | None — already split |
| parent2_last_name | MotherLastName | None — already split |
| parent2_mobile_number | MotherCellPhone | (XXX) XXX-XXXX → XXX-XXX-XXXX |
| street | Address1 | None |
| city | City | None |
| state | State | None |
| zip | ZIPCode | 91607-3715 → 91607 (truncate +4) |
| team | — | Always blank — SA has prior season teams that don't exist in PM. Teams built fresh after registration. |
Open the CSV files in Excel or a text editor and spot-check before submitting.
PlayMetrics must import the BC-verified file on their end — you cannot do this yourself. They flag these players as BC-verified in the system so returning families skip the BC upload during registration.
playmetrics_bc_verified_YYYYMMDD.csv fileIf the tool produced a non-verified CSV (players without a BC on file), import these yourself in PlayMetrics admin.
playmetrics_non_verified_YYYYMMDD.csv fileAfter both imports are complete, spot-check records in PlayMetrics.
After players are imported, set up the League-based BC verification workflow. This lets you view and verify birth certificates through the league structure. (Steps confirmed working by Krista Skinner, Region 18.)
Imported players sit in the system waiting. When you're ready, send invitations prompting families to verify their PlayMetrics account.
With data imported and invites sent, you can open registration for new and returning families.
| File | SA Report Name | What It Provides |
|---|---|---|
| playerUpload.xlsx | "Player Detail | upload format" | All player data: names, DOB, gender, parent1/2 contacts, addresses, teams. Primary data source. |
| Player_Photo_BC_Info.xlsx | "Player Photo BC Info" | Birth certificate upload and verification dates per player. Definitive BC status — if either date exists, player has BC on file. |
| Report | Use For Import? | Notes |
|---|---|---|
| Player Detail | upload format | ✅ Required | Pre-split names, M/F gender, parent2 data, addresses. Best source for PM import. |
| Player Photo BC Info | ✅ Required | BC upload dates and verification dates per player. Found under Reports menu (not Players/Admins). Definitive BC source. |
| Player - Detail | No | Basic player info without parent2 or addresses. |
| Address to Excel Format | No | Mailing labels format. |
| Application Forms (PDF) | No | Individual player application forms as PDF. |
| Labels variants | No | Avery label formats. |
| Guide | Why It's Relevant |
|---|---|
| Migration Status Dashboard | Data import is a pre-launch step tracked in the master project dashboard. The import must complete before registration opens — see the full sequencing there. |
| Website Migration Guide | After import, we send invites to imported families, then send the SC email blast to everyone else. The website guide has the email templates, assets, and two-track communication plan. |
| Volunteer Compliance Guide | Player import and volunteer import are separate processes. This guide covers importing returning coaches and non-coach volunteers as Team Staff, plus the compliance pipeline that follows. |
| Terminology Guide | The import CSV uses PM column names that differ from SC. This guide maps the terminology so field mapping makes sense. |
| Game Scheduling Guide | After import and team formation, Ben builds the game schedule. If we import team-assigned players (post-draft), they come in with team names attached — feeding directly into scheduling. |