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.
| Athlete | Age | Gender | Parent phone | PIN | Status |
|---|---|---|---|---|---|
| {{ 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.
Sheet tab Athletes. Elsa types columns A–C only; D, E and F fill themselves.
| Col | Header | What goes in it |
|---|---|---|
| A | first_name | Typed by Elsa |
| B | last_name | Typed by Elsa |
| C | birth_year | Typed by Elsa — drives the age group, not a peer comparison |
| D | slug | =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. |
| E | passport_url | ="https://wildlight.app/student/"&D2The cell Elsa copies into a text message. |
| F | family_pin | =TEXT(RANDBETWEEN(1000,9999),"0000")Entered once per phone, then remembered. |
| G | sent_on | Date Elsa texted the link — how you know who's actually onboarded |
The PIN screen is live in the passport prototype — try 2468 there.