Handling ADP Location Renames
int_people__location_crosswalk is the canonical resolver for all location-name
lookups. It maps raw ADP home_work_location_name values to clean reporting
names, absorbing historical aliases so downstream models stay stable even when
ADP changes its source values.
Scenario 1: ADP changes the raw home_work_location_name value (most common)
ADP occasionally renames a location in its system without any real-world change to the school or office. When that happens:
- Open the
src_people__location_crosswalkGoogle Sheet. - Add a new alias row: set
nameto the new ADP value, setclean_nameto the unchanged existing clean name, and copy all other columns (region, school level, etc.) from the existing row for that location. - No downstream action is needed —
int_people__location_crosswalkabsorbs the rename via alias resolution. All models that join onclean_nameare unaffected.
Verification — run the following query the next day to confirm
home_work_location_reporting_name is unchanged for affected staff:
select
home_work_location_name,
home_work_location_reporting_name,
count(*),
from `teamster-332318.kipptaf_people.int_people__staff_roster`
where home_work_location_name = '<new ADP value>'
group by 1, 2
Scenario 2: The clean/reporting name itself needs to change (rare)
When the school or office is actually renamed and the reporting name must change everywhere:
- Edit
clean_nameinsrc_people__location_crosswalk. Because all alias rows share the sameclean_name, the update propagates atomically to every historical alias. - Edit the five downstream crosswalk sheets in lockstep — each one joins on the clean name via a staging-model alias. Update the value in the noted column; do not rename the column header:
src_coupa__address_name_crosswalk— updateadp_home_work_location_namesrc_coupa__intacct_program_lookup— updateADP_Home_Work_Location_Namesrc_coupa__user_exceptions— updatehome_work_location_namesrc_egencia__traveler_groups_v2— updateadp_home_work_location_name- zendesk
org_lookup— updateADP_Location src_people__campus_crosswalk— updateLocation_Namesrc_google_appsheet__seat_tracker__seats— updateadp_locationvalues manually. This is a free-text AppSheet column not resolved throughint_people__location_crosswalk; joins inint_people__renewal_statuswill silently drop to NULL without this step (tracked by #3728).- Audit any Tableau workbooks that filter on the string literal of the old clean name and update them.
Verification — confirm row-count parity on the affected extracts after the next dbt run:
rpt_coupa__usersrpt_egencia__usersrpt_zendesk__usersrpt_clever__staffrpt_clever__sectionsrpt_illuminate__rolesrpt_tableau__ddi_dashboardrpt_tableau__staff_rosterrpt_gsheets__pm_assignment_roster
What NOT to do
Never edit the raw ADP name column in src_people__location_crosswalk to
track a rename. Changing an existing name value rewrites history and breaks
joins against int_people__staff_roster_history, which retains the original ADP
string. Always add a new alias row instead.