Setup Guide
Heatsheet runs your gym competition end to end: a public race page that takes sign-ups, heats seeded from those sign-ups, and a live leaderboard your whole room can watch. Scores live in a Google Sheet you own. This page takes you from signing up to race day, top to bottom.
1Your Race
Signing up creates your first race. It has a public page and can take sign-ups before you have scored anything.
- Sign up and give us the gym name, the race name, its date, and your divisions. That is the whole form.
- You land in admin with the race already made. Its page is live: share the link, print the QR code, open registration.
- Running more than one? Add the next from Add Race in admin.
2Your Scoring Sheet
Results come from a Google Sheet you own. We build it for you, or you can bring your own.
- In admin, hit Create it for me. Google asks permission the first time, then the sheet appears in your own Drive with one tab per division, already shared so the leaderboard can read it.
- Type your athletes and their times into the tabs. The board keeps up on its own.
- Already have a sheet you like? Use I already have a sheet and paste its URL instead. Share it two ways: Anyone with the link, Viewer so the leaderboard can read it, and add
heat-seeder@heat-sheet-seeder.iam.gserviceaccount.comas an Editor so Heatsheet can write heats and chip times. Your admin tells you if either is missing. - Each division tab needs three columns:
Number,Name,Total Time. Anything else is ignored, and your header row can sit on any row. - Format
Total Timeas a Duration.H:MM:SS,MM:SS:CC,MM:SS.CC, andMM:SSall work, but stick to one format per tab since Heatsheet reads the format once per column. A blank time means still on course and stays off the leaderboard. TypeDNForDNSto show someone unranked. - Keep a tab off the public board by starting its name with
*(like*Notes).
Full column details are on the Sheet Setup page.
3Heat Sheets (Optional)
This is the part that saves you the most time. Heatsheet pulls your registrants, from Eventbrite, a CSV, or the Heatsheet form, and builds your heat grid so you're not seeding by hand.
It reads who signed up, then places athletes into your grid by the performance level and race experience they entered at registration. Your strongest athletes land in the early heats. Doubles teams share a lane.
- Build your heat grid in a tab on the same sheet. One block per division: the top row is the division name, then
Time, thenLane 1,Lane 2, and across. Under it, list your heats, one start time per row in the Time column. Leave the lane cells empty. Heatsheet fills them. - Not sure on the layout? If we built your sheet, the
Heat Scheduletab is already in it, already in the right shape. Bringing your own? Match that tab's format. - In your race (on create, or from Edit), check Enable heat sheet, pick where your registrations come from, and name your heat tab. Eventbrite wants the Event ID (the number in your event's URL), CSV wants a paste, and the Heatsheet form needs nothing at all.
- Click Build heats. Heatsheet backs up the tab first, then fills the lanes. Run it again any time to refresh after new signups, and you get a fresh backup every run.
- Match your division names. The names in your heat tab should line up with your division names from wherever registrations come from. Matching is loose on spelling and capitalization, so close counts.
- Out of room? If a division has more athletes than your heats and lanes hold, Heatsheet tells you exactly how many heats to add.
4What People See
Once your race is live, here's what shows up for athletes and spectators.
- Registration form: athletes sign up on your race page. Name, division, performance level, and a partner name when the division is doubles. They get a confirmation, you get an email, and the entries feed your heat seeder. It closes on race morning.
- Race page: your live leaderboard, updating as you enter times. A Heat schedule button appears when heats are on.
- Athlete profile: every athlete gets a page with their results and their next heat (division, heat number, start time, lane). It works before the race too, so people can look up where they need to be.
- Broadcast view: a full-screen leaderboard built for the big screen at your venue.
- Social podium graphics: after the event, export branded PNGs by division for Instagram feed and story (Standard plan and up).
5Social Podium Graphics (After the Event)
When results are final, export Instagram-ready podium graphics - no more screenshotting a spreadsheet. Available on Standard, Large, and Annual plans.
- From admin, open your race and click the download icon next to Edit, or go to
/race/your-slug/export. - Pick a division. Run the export once per division you want to post.
- Choose depth: top 3 (podium), top 5, or top 10.
- Select formats: visual podium blocks (1080×1440), ranked list for Instagram feed (1080×1440), and/or story (1080×1920).
- Click Generate ZIP. PNGs use your event theme colors and are ready to post.
6Good to Know
- Heats read straight from the sheet, so edits to your heat tab show up on their own.
- Your checkboxes control which divisions are public. New tabs always appear unchecked, so you never publish something half-built by accident.
- Re-run Build heats whenever your Eventbrite numbers change.
- Use the
*prefix to keep working tabs (registration, judging, notes) off the public board.
Keep reading
The setup steps live here. Race day craft lives on the blog: how to run a Hyrox sim at your gym, how to build heat sheets, and how to time and score.
If You Get Stuck
Something not behaving? Email support@heatsheet.app and we'll sort it out.