The Ancestry_MatchProfile table holds the personal profile details for each matched person on A* — their name, the name of whoever manages their test, their gender, and their profile photo. There is one row per matched person, keyed on matchGuid alone.
matchProfile, adminProfile, photoUrl, and gender) from it. Those values now arrive from a separate per-match endpoint, /discoveryui-matches/cluster/api/profileData/{kit}, and the client stores them here. Because a person’s name and photo describe them — not the kit that happens to be viewing them — the row is keyed on matchGuid alone rather than on the testGuid + matchGuid pair used elsewhere. See the FAQ on A* match names for the user-facing side of this change.The new columns replace fields that previously lived on Ancestry_matchGroups:
matchName replaces matchGroups.matchTestDisplayNamemanagedName replaces matchGroups.matchTestAdminDisplayNamephotoUrl replaces matchGroups.userPhotoCOALESCE the new profile columns with the legacy matchGroups columns — for example coalesce(mp.matchName, mg.matchTestDisplayName) for the name, and coalesce(mp.photoUrl, mg.userPhoto) for the photo — so databases gathered before the split, and matches whose profile data has not yet been fetched, still resolve a usable value.| Column | Type | Source | Description |
|---|---|---|---|
| Id | int (PK) | Auto | Auto-incrementing primary key |
| matchGuid | string | Profile Data endpoint | The matched person’s GUID. Unique — one row per matched person. Uppercased on write. |
| matchUcdmid | string | Profile Data endpoint | The matched person’s user ID (UCDM id) |
| matchName | string | Profile Data endpoint | Match’s display name. Replaces matchGroups.matchTestDisplayName. |
| managedUcdmid | string | Profile Data endpoint | User ID of the account that manages the match’s test |
| managedName | string | Profile Data endpoint | Display name of the account that manages the match’s test. Replaces matchGroups.matchTestAdminDisplayName. |
| displayGender | string | Profile Data endpoint | Match’s gender as reported by A* |
| photoUrl | string | Profile Data endpoint | URL to the match’s profile photo. Replaces matchGroups.userPhoto. |
| created_date | string | App | When the row was first created. Set on first insert and preserved on later refreshes. |
During an A* gather, the match-list pages no longer carry profile details. Instead the browser also calls the profile-data endpoint, /discoveryui-matches/cluster/api/profileData/{kit}, which returns a JSON object keyed by matchGuid — one entry per match on the page. The client’s response handler walks each entry and upserts a row here, copying matchUcdmid, matchName, managedUcdmid, managedName, displayGender, and photoUrl straight from the payload. Match GUIDs are uppercased before storage so they join cleanly against Ancestry_matchGroups.
Writes go through an upsert that is keyed on matchGuid:
Id is reused and the record is replaced in place — the table never accumulates duplicate rows for the same person.matchGuid are skipped.matchGuid; report queries COALESCE this table’s profile columns over the legacy matchGroups columns.