Wildlight Athletics · Day 1–2 foundation

Roster & passport link sheet

Every enrolled athlete's slug, passport URL, family PIN and parent phone number, generated for David to hand off. Guardian contacts are in from Jess/David — ready to text out.

Enrolled roster

AthleteAgeGenderParent phonePINStatus
{{ r.name }}{{ r.age }}{{ r.gender }}{{ r.phone }}{{ r.pin }}{{ r.status }}

Passport URL pattern: wildlight.app/student/<slug> — slugs are generated per athlete and not repeated here for space; see the live tool for the full slug/URL list.

The same thing in Elsa's Google Sheet

Sheet tab Athletes. Elsa types columns A–C only; D, E and F fill themselves.

ColHeaderWhat goes in it
Afirst_nameTyped by Elsa
Blast_nameTyped by Elsa
Cbirth_yearTyped by Elsa — drives the age group, not a peer comparison
Dslug=LOWER(A2)&"-"&LOWER(LEFT(B2,1))&"-"&LEFT(LOWER(DEC2HEX(RANDBETWEEN(46656,1679615))),4)Name, initial and a 4-character code so no link is guessable.
Epassport_url="https://wildlight.app/student/"&D2The cell Elsa copies into a text message.
Ffamily_pin=TEXT(RANDBETWEEN(1000,9999),"0000")Entered once per phone, then remembered.
Gsent_onDate Elsa texted the link — how you know who's actually onboarded
Duplicate names
The 4-character code makes collisions effectively impossible. Flag exact duplicates in column D anyway.
If a link gets out
Re-roll that one slug. The old URL stops resolving immediately; no other athlete is affected.

The PIN screen is live in the passport prototype — try 2468 there.