Two steps and a check, about ten minutes. Each step checks itself, and it's safe to come back and re-run any of them.
Attendance belongs to a cycle: 14 Mon–Fri weeks from a start date. The sheet's date columns come from this, so the start date is required.
One workbook handles everything: your site's Intern Performance Dashboard. The sync robot maintains its attendance_raw and scan_log tabs and reads full names from its roster tab; every other tab stays yours.
Joining mid-cycle is fine: tracking starts the day the sheet is connected. Earlier weeks stay blank — nobody gets backfilled “No Show” marks for days before the system existed.
sheet-bridge@bright-crossbar-506114-s5.iam.gserviceaccount.com
What a working link looks like — Chicago's real dashboard:
https://docs.google.com/spreadsheets/d/1FXShJuy--BCDClgML_vwxFfjIBHvF9zzHktP8Ix4eJ0/edit
Yours will have its own long id between /d/ and /edit; anything after /edit can be left off. Chicago: paste your copy of the dashboard, not this one.
The interns come with the sheet: every name on the dashboard's roster tab is created and enrolled automatically when the sync runs. The one thing left is assigning badges on the Roster page — click an intern's badge field and tap the card. From then on every tap lands on the sheet within seconds, the grid rebuilds every 15 minutes, marks staff type over a cell stay put, and holidays stay blank.