Help & Guide
Everything you need to know about TPS Golf League, from logging in to live scoring.
Quick Navigation
For Players
Getting Started NFC Bag Tags Your Dashboard The Schedule Signing Up Waitlist Prepayment Scoring Leaderboard Results & Payouts Members & Profiles App & Notifications Installing the App Push Notifications SMS Text Commands Games Glossary Milestones Nineteen AI Caddie ModeFor Schedulers & Admins
Admin Guide NFC Player Cards League Email Preview Review Scheduler Guide Weekly Workflow Pairing Strategies Mid-Round Help (SOS)Reference
FAQ & Troubleshooting Quick Reference Card Contact & HelpGetting Started
Welcome to TPS Golf League! There are two ways to log in, and both get you to the same place.
NFC Bag Tag (The Easy Way)
Tap your TPS player card to your phone. On play days, you'll see your personalized "Today's Intel" page with your group, tee time, game rules, weather, and a Lucky Charm message. Your phone will also check you in at the course automatically using GPS. After tee time, tapping goes straight to your scorecard. On off-weeks, you'll land on your dashboard. Your session lasts 7 days.
Google Sign-In
Go to par72.co and tap "Member Login". Sign in with the Google account linked to your TPS membership. If you see "Access Denied," your email might not match what's in the system — just reach out to Ro.
Your Dashboard ("My Card")
Your personal scorebook lives at My Card in the navigation. This page is private — only you can see it, and it only reflects games played within TPS.
You'll also see:
- Career sparkline — a mini chart of your recent scores (tall bars = tougher days, gold = your best)
- Recent results — your last 5 play dates with scores and payouts
- Playing partners — your top 10 most-paired-with players this season
- Milestones — achievements you've earned and progress toward the next ones
- Personal golf stats — birdie rate, GIR %, scrambling %, average putts, and par average broken down by par type, all pulled from your TPS scoring history
- Achievement badges — visual badges for milestones you've hit (first chip-in, streak records, season titles). Tap any badge to see the details
- Your Upcoming Play Dates — tournaments you're signed up for, with course name, date, and tee time at a glance
The Schedule
The schedule page shows every play date for the season. Each tournament card tells you the date, course, game of the day, signup deadline, and any course notes.
Signing Up
- Find the upcoming tournament on the schedule
- Tap "Count Me In"
- Optionally add a note to the scheduler (e.g., "Need a cart" or "Pairing request")
- Tap "Sign Me Up"
You can also sign up for multiple tournaments at once using "Plan Your Season" at the top of the page — check off the dates you want and hit "Save My Season."
Withdrawing
Changed your plans? Tap your "I'm Playing" badge on the tournament card and confirm your withdrawal. Please do this as early as possible so the scheduler can adjust pairings. The scheduler is automatically notified when you withdraw.
Waitlist
Some courses have limited tee times. When a play date fills up, you'll see "Course Full — Join Waitlist" instead of the signup button. Tap it to get in line — you'll see your position (e.g., "#2 on the waitlist"). When a registered player withdraws, the next person on the waitlist is automatically promoted to a confirmed spot. You can cancel your waitlist position anytime.
After Signups Close
Once the signup window closes, you'll see a lock icon and "Signups locked — contact the scheduler." Pairings are posted by Monday before Thursday play. Your group, tee time, and partners will appear right on the tournament card.
Prepayment
Some courses require prepayment (you'll see a badge on the card). Pay Ro via Zelle, cash, or check, then check the "Prepaid" checkbox. Honor system.
Scoring
One scorer per foursome enters scores on their phone during the round. If that's you, here's how it works:
What You Enter
- Strokes — required for every hole (use the +/- stepper)
- Putts — required when the Game of the Day involves putting; optional otherwise. A stepper appears when needed.
- Fairway hit — a toggle that appears on par 4s and par 5s (hidden on par 3s). Required for fairway games.
- Chip-in — check the box if anyone in the group chipped in from off the green
Helpful Features
- GIR glow — the hole card glows green when a player hits the green in regulation (putts ≤ 2 on an appropriate score)
- Wind badge — shows wind direction and speed at the top of the scorecard
- Course map — tap to expand a map of the hole (tee at the bottom, green at the top) with wind overlay
- Auto-save — scores save automatically as you enter them, so you won't lose anything
- Live leaderboard — a strip at the top shows current standings and how many shots back each player is in their flight
Picking Up (Mark an X)
Having a blowup hole? You can pick up and mark an X. When posting to GHIN, the hole will be recorded as a net double bogey — that's par + 2 (double bogey) plus any handicap strokes you receive on that hole based on the stroke index. For example, on a par 4 with no handicap strokes, your max is 6; with 1 stroke, your max is 7. GHIN applies the cap automatically when you post hole-by-hole.
Scorecard Info Tab
Tap the Info tab on the scorecard to pull up quick references without leaving the page:
- Rules cheat sheet — a plain-English summary of today's Game of the Day, including which holes count and how scoring works
- Course info — slope, rating, par, and tee box details for the course you're playing
- Handicap allocation — which holes you're getting strokes on (based on hole handicap rank and your course handicap), so you always know your net position on any hole
Celebration Notifications
When you enter a birdie, eagle, or chip-in, the system automatically sends a push notification to all players on the course — everyone gets to celebrate together.
Leaderboard (Live Scores)
During a round, the leaderboard at /leaderboard (or "Scores" in the nav) updates every 30 seconds with live scoring.
- Filter by flight — tap All, A, B, or C at the top to see just your flight
- Columns — Rank, Player, Thru (holes completed), Gross, Net, Game score, Chip-Ins
- Status dot — green pulse = live updates, gold = final scores posted, red = connection issue
- Chip-in pot — the current pot balance shows at the top when active. If the pot has been carrying for 3+ weeks, you'll see the streak.
Results & Payouts
After each round, full results are posted at the results page (linked from the schedule).
Weekly Pots
Each pot gets $1 per player (~$24/week with 24 players). There are 3 standard pots, plus an optional 4th:
Low Net
Lowest net score (gross minus handicap) in each flight (A, B, C) wins. Tied? Split the pot. This is the primary weekly competition.
Low Gross (optional)
Lowest raw score in each flight — no handicap, pure skill. Enabled per play date by the scheduler. If you won Low Net in your flight, the Low Gross prize goes to the next best player.
Game of the Day
Best score in the weekly game format, by flight. If you already won Low Net or Low Gross in your flight, this prize goes to the next best player.
Chip-In Pot
All flights combined. Split proportionally by chip-in count. If nobody chips in, the entire pot carries to next week.
Members & Profiles
The Members page (The Rolodex) shows every TPS member with their current handicap index. Tap any name to see their full profile.
Profile Tabs
- Profile — handicap, career summary, recent score sparkline
- Stats — detailed GHIN stats: putts, fairways, GIR, scrambling, par averages
- Scores — TPS game day history + GHIN score history (best round highlighted in gold)
- Pairings — who you've played with and how many times, plus "new friends" count
- Season — earnings, milestones earned, and progress bars for upcoming milestones
SMS Text Commands
When you get a text from TPS about an upcoming tournament, you can reply with these quick commands:
You can also text naturally — the system understands casual messages like:
- "I'm in!" or "Count me in" → signs you up
- "Can't make it this week" → withdraws you
- "Need a cart please" → requests a cart
- "What's the course this week?" → gives you tournament info
The system will always confirm what it understood, so you'll know your message went through.
App & Notifications
TPS Golf League is a Progressive Web App (PWA) — that means you can install it on your phone like a real app, and receive push notifications for play date reminders, pairings, and results.
Installing the App
When you visit your dashboard, you'll see a green banner prompting you to install. You can also do it manually, or follow the visual step-by-step guide.
iPhone (Safari)
- Open par72.co in Safari
- Tap the Share button (square with arrow) at the bottom
- Scroll down and tap "Add to Home Screen"
- Tap "Add" — the TPS icon appears on your home screen
Android (Chrome)
Chrome will show an "Install App" button in the banner on your dashboard. Tap it and the app installs automatically. You can also tap the three-dot menu in Chrome and select "Install app" or "Add to Home screen."
Push Notifications
Once the app is installed, you can enable push notifications to get reminders right on your phone — no texts required.
To enable notifications, tap "Enable Notifications" on the dashboard banner. Your browser will ask for permission — tap "Allow." That's it. You can disable them anytime in your phone's notification settings.
Offline Scoring
Golf courses often have spotty cell service. The app caches your scorecard so you can keep entering scores even when you lose connection. Scores save to your phone and sync automatically when you're back online. Look for the sync indicator at the top of the scorecard.
Games Glossary
Each week features a different "Game of the Day" alongside the standard Low Net competition. Here's what each game means:
Milestones & Achievements
TPS tracks your progress through the season and celebrates your achievements. View your milestones on your Dashboard under "Season Story."
Tap-In Achievements
Earned automatically when you check in at the course with your NFC card. Achievement toasts pop up on your Intel page when you unlock a new one.
First Tap
Welcome to the digital age!
Streaks
5 weeks, 10 weeks (Iron Woman), 15 weeks (Unstoppable)
Tap Milestones
50 taps (Half-Century Club), 100 taps (Century Club)
Course Explorer
10 courses, 20 courses (Connoisseur), All courses (Grand Slam)
Early Bird
First to check in, 5 different play dates
Perfect Season
Checked in every week of the season
Season Milestones
Tracked on your Dashboard under "Season Story."
Rounds
5, 10, 15, 20, Full Season (24)
Earnings
First $10, $50 Club, $100 Club
Chip-Ins
First, 5, 10, Multi (2+ in one round), 3-Week Streak
Birdies
First Birdie, Birdie Machine (5), Double-Digit (10)
Eagles
First Eagle
Personal Best
New low net score
Progress bars on your dashboard show how close you are to unlocking the next milestone.
Nineteen (AI Assistant)
Your AI-powered golf assistant lives in the (19) button at the bottom-right of every page. Think of it as a knowledgeable caddie, stat tracker, and rules official rolled into one. It knows your stats, the schedule, course details, game rules, TPS league rules, and the complete USGA Rules of Golf. After each response, you can give a thumbs up or down to help us improve the answers.
How to Use It
Voice or Text
Tap the (19) button to open the conversation panel. Type your question in the text box or tap the mic to use voice. Nineteen responds with text on screen and speaks the answer aloud (tap the mute button to silence voice). You can tap the 🔊 Replay button on her messages to hear her speak again at any time. The conversation scrolls like a text message thread, and your chat history is saved even if you navigate to another page. She remembers your context within a session, so you can ask follow-up questions like "What about at Flatirons?" after asking about hole difficulty. Tap the clear button in the header to start fresh.
Quick-Action Chips
Nineteen knows what page you're on and suggests relevant questions as tappable chips. On the scorecard, you'll see "Game rules?" and "Wind conditions?" On the schedule, "Am I signed up?" and "Who else is playing?" On the leaderboard, "How am I doing?" and "Flight standings?" Just tap a chip to ask that question instantly.
What You Can Ask
19 pulls real-time data about you, the league, and the current round. Here are examples with what to expect:
Your Stats & History
- "How's my season going?" → Your rounds played, scoring average, earnings, rank in your flight, and low round of the season.
- "What's my handicap?" → Your GHIN handicap index plus your course handicap for this week's course (if known).
- "How much have I won?" → Season earnings broken down by Low Net, Game of the Day, and chip-in pot.
- "Who won Low Gross last week?" → 19 checks the "receipts" (past payout snapshots) to settle any 19th hole debates over past tournament winners.
- "Who have I been paired with the most?" → Your recent pairing partners, how often, and when you last played together.
- "How did I do last week?" → Your results from the most recent play date — score, category, and payout.
- "What's my group this week?" → Your group number, groupmates, tee time, and starting hole for the current round.
- "How have I done at Fox Hollow?" → Your scoring history at any course — rounds played, average, best round. If a course has multiple layouts (like Fox Hollow's 3 combos), you get all of them.
- "What badges have I earned?" → Your achievements, check-in streak, total check-ins this season, and how many unique courses you've visited.
- "What's my short game like?" → Deep stats from your GHIN rounds — putting average, fairways hit %, greens in regulation, scrambling, sand saves, and scoring by par 3/4/5.
- "Who's my nemesis?" → Head-to-head analysis — who you score best and worst with when paired together. Ask about a specific partner too: "How do I play with Karen?"
- "What did my lucky charm say?" → Your recent pre-round motivational messages.
- "Who's signed up for next week?" → See who's registered for an upcoming play date and how many spots are taken.
League, Members & Schedule
- "When's the next play date?" → Date, course, and tee time for upcoming play dates.
- "Where are we playing on October 22?" → Looks up the specific date on the schedule.
- "Are we playing in Broomfield this season?" → Searches the schedule by course or club name.
- "Who's leading A flight?" → Top 10 standings in a specific flight.
- "How big is the chip-in pot?" → Current carryover amount and how many weeks it's been building.
- "Tell me about Boulder Country Club" → Course details: par, slope, rating, yardage, prepayment info, and booking notes. Works for any course by name — no active play date required.
- "What's the hardest hole at Broadlands?" → Looks up hole handicap rankings for any course. Follow up with "What about hole 7?" and Nineteen remembers which course you're asking about.
- "Who is [name]?" → Any member's public info: handicap index, flight, rounds played, and season earnings.
- "What's Barb's handicap?" → Looks up any member by name and returns their current handicap and flight.
- League Lore & Gossip → Tell 19 a fun fact (e.g., "Grace hates hole 7"), and she will quietly commit it to League Lore to remember later. She can also pull up gossip on who hasn't chipped in since May.
During a Round
- "What's the game today?" → Full rules for the Game of the Day, including which holes count, scoring method, and any special conditions.
- "Which holes count?" → For partial-round games (Blind 9, Front/Back, Criss-Cross), tells you exactly which holes are in play.
- "Tell me about hole 7" → Par, yardage, handicap rank, and any hole-specific info.
- "How does the wind affect hole 4?" → Calculates plays-like yardage based on current wind speed and direction relative to the hole.
- "Who's here?" → List of players who have checked in at the course.
- "What's the weather?" → Current conditions, wind speed and direction, and forecast.
- "What hole am I near?" → Uses your group's GPS position to identify which hole you're closest to.
- "Are there any local rules here?" → Course-specific local rules (drop zones, OB modifications, cart path restrictions).
Rules & Rulings
19 knows the complete 2023 USGA Rules of Golf (106 rules) plus TPS league rules (tiebreakers, payouts, mutual exclusion, flights, handicap formula, and more). You can ask in plain English, golf slang, or abbreviations. It will cite the rule number and explain your options.
Example Situations
- "My ball is in the water on 14 — what are my options?" → Rule 17.1d: three relief options (stroke and distance, back-on-the-line, lateral), with a recommendation based on the hole layout.
- "I hit it OB. Now what?" → Rule 18.2b: stroke-and-distance penalty, play from where you last hit. Also mentions the model local rule for a 2-stroke lateral option if your league uses it.
- "My ball is plugged in its own pitch mark in the rough" → Rule 16.3b: free relief — mark, lift, drop within one club-length no nearer the hole.
- "Can I move that stake? It's in my way." → Depends on the stake — red/yellow penalty area stakes are movable obstructions; OB stakes (white) are NOT movable.
- "I accidentally moved my ball on the green" → Rule 13.1d: no penalty, replace the ball on its original spot.
- "What happens if I can't find my ball but I know it's in the penalty area?" → Rule 17.1c: if "known or virtually certain," treat it as in the penalty area. No need to go back to the tee.
Rules Best Practices
- Be specific about the situation. "Ball in water" is fine, but "ball in the water on hole 14, right side" gets you better advice because 19 can check the course geometry.
- Use whatever language feels natural. "Dunked it in the drink," "ball is plugged," "I'm OB," "GUR" — 19 understands golf slang and abbreviations.
- Ask about the penalty impact. "If I take a penalty drop on 7, how does that affect my net score?" uses the strategy calculator to show you the real impact — factoring in your handicap strokes on that hole and whether it counts for today's game.
Caddie Mode (On-Course)
When you check in at the course on play day (via NFC tap or GPS), 19 automatically switches to Caddie Mode:
- Text only — no voice input or output (won't go off during someone's backswing)
- Brief answers — max 3 sentences, no chit-chat, straight to the point
- Rules-first — lead with the ruling, then options, then recommendation
- Automatic — you don't have to toggle anything; checking in at the course is the switch
After the round (or on off-days), 19 goes back to its full personality — chatty, witty, and detailed.
Tips & Pitfalls
What Works Great
- Asking about your own stats — 19 knows your full history, handicap, earnings, and pairing patterns.
- Asking about other members — "What's Barb's handicap?" or "Who is Cindy?" pulls up any member's public info.
- Schedule lookups — by date ("Where do we play October 22?"), by location ("Are we going to Flatirons?"), or just "What's next?"
- Rules questions with context — "I'm in a bunker and my ball is against the lip, can I declare unplayable?" gets you a specific, actionable answer.
- Game format questions — especially for games you haven't played before. "How does Skins work?" or "What's Criss-Cross?"
- Asking during the round — Caddie Mode is designed for quick questions between shots.
Watch Out For
- Rate limit: 10 questions per minute. If you hit the limit, just wait 60 seconds. This prevents accidental spam from voice activation.
- Local rules vary: 19 knows the USGA Rules, but your specific course may have local rules that modify them (e.g., drop zones, cart path only holes). If your course has local rules entered in the system, 19 will reference them.
- It's not a rules committee: For official tournament disputes or disqualification-level situations, always defer to the league admin. 19 gives you the best-practice answer, but Ro has the final word.
- Voice in noisy environments: If the wind or background noise makes voice unreliable, switch to typing — just tap the text box instead of the mic.
Quick Comparison: Off-Course vs. On-Course
| Off-Course | Caddie Mode | |
|---|---|---|
| Triggered by | Default (not at course) | GPS check-in at course |
| Voice input | Enabled (tap mic) | Disabled |
| Voice output | Speaks answers aloud | Silent — text only |
| Response style | Conversational, detailed, witty | Max 3 sentences, direct |
| Best for | Stats, history, recaps, exploring | Quick rulings, game questions |
| Visual indicator | (19) button | (19) button + mute badge |
Admin Guide
The admin dashboard (/admin) is where you manage everything behind the scenes — members, courses, games, payments, and league settings. Only users with the admin role can access these pages.
Admin Command Center
The top of /admin is your at-a-glance command center for the league:
- Countdown — days until the next play date, with the course name and tee time.
- Key stats — active members, rounds played this season, total earnings distributed, and current chip-in pot balance.
- Health alerts — surface issues that need your attention before the next round (e.g., missing tee data, members without handicaps, no pairings set).
- Activity feed — a running log of recent signups, withdrawals, score entries, and admin actions — so you can see what's changed without digging through individual pages.
The Pin Sheet
The Pin Sheet (Admin → Pin Sheet) is your dashboard for everything happening with the league website. Think of it like the pin sheet you get at check-in — but for the platform.
- What's on it: New features, bug fixes, things in progress, and items that need your input — all in plain English.
- React to items: Tap 👍 (looks good), 👎 (not sure), ✅ (got it), or 💬 (let's discuss) on any card.
- Reply: Open the "Reply..." section to send a message. You can attach a photo too. Your reply gets saved so Ryan sees it.
- Filter: Tap the stat cards at the top to jump to specific categories — "Need Your Input" shows the items waiting on you.
- Design docs: Some items have a green "Design Doc" link that shows the full plan behind the feature.
Tournament Lifecycle
Every play date follows this workflow, from creation to final payouts:
- Create — Go to Admin → Schedule and tap "New Play Date." Pick the date, course, tee box, and assign a scheduler (the person responsible for pairings that week). You can also assign a co-scheduler if two people are sharing duties.
- Configure — From the scheduler setup page, select the Game of the Day from the games library, add players, set any signup deadline, and choose a pairing strategy.
- Pair — Generate pairings (see Scheduler Guide below). Review the groups, swap players if needed, then finalize.
- Play — On game day, the tournament moves to In Progress. Scorers enter scores from the course via the scorecard.
- Finalize — After the round, go to the review page and tap "Finalize Results." This locks all scores, calculates Low Net + Game of Day winners and chip-in splits, and saves the payout snapshot.
Member Management
Go to Admin → Members to manage the roster.
Adding & Editing Members
Tap "Add Member" to create a new record. Required fields: display name and email (must match their Google account for sign-in). Optional: GHIN number, phone, flight, home address. Set their role (member, scorer, scheduler, or admin) and mark them as active, waitlist, or inactive.
GHIN Handicap Sync
Handicaps are pulled from the GHIN system. Go to Admin → Settings and enter your GHIN credentials. Then use "Sync Handicaps" to bulk-update all members who have a GHIN number on file. Handicaps are also automatically frozen when a tournament is locked for play.
Roles
Four roles control what each person can access: Member (view dashboard, enter own scores), Scorer (enter scores for any group), Scheduler (manage pairings, access the scheduler dashboard), Admin (everything). Assign roles from the member edit form.
Substitute Registry
Go to Admin → Subs to view the substitute list. Subs are ranked by seniority (join date). When a spot opens up, call subs in order from the top of the list. Mark members as subs from the Members page by toggling the "Is Sub" field.
Course Management
Go to Admin → Courses to manage the course rotation.
- Each course belongs to a club (e.g., "Flatirons Golf Course" at "City of Boulder").
- Courses can have multiple tee boxes — each with its own slope, rating, and par. Select the right tee when setting up a play date.
- Toggle "In Rotation" to show or hide courses from the schedule dropdown without deleting them (e.g., when a course is closed for the season).
- Hole data (par, handicap rank, yardage) can be entered per course for accurate net scoring and game calculations.
Games Library
Go to Admin → Games to browse all available game templates. Games are organized by tier:
- Auto-Calculated — the engine scores these automatically (Low Net, Stableford, Blind 9, etc.).
- Template — pre-built games that use the standard scoring primitives.
- Custom — games you create with custom rules and descriptions.
When creating a new game, you pick from 6 building blocks: which holes count, throw-outs, gross vs. net, point maps, stat type, and per-hole awards (CTP, long drive, etc.).
Payment Tracking
Go to Admin → Payments to configure payment methods and track membership fees.
- Set up accepted payment providers (Zelle, Venmo, PayPal, cash) with contact info and optional QR codes.
- The membership fee and weekly pot amount are configured in season settings.
- Payouts are automatically calculated when a tournament is finalized — $1/player/week per pot (Low Net, Low Gross if enabled, Game of Day, Chip-In).
- Scorecard payment toggle — on each group's scorecard, the scheduler or scorer can mark individual players as paid/unpaid for that week. Tap the dollar icon next to a player's name to toggle. The scheduler review page shows a summary of who has paid across all groups, making it easy to track on the spot before groups head out.
NFC Player Cards
Go to Admin → NFC Tags to manage the NTAG216 player cards.
- Generate All creates unique tag URLs for every member who does not have one yet.
- Download Cards PDF generates printable CR80-sized player cards (front + back) for a card printer.
- Export CSV downloads member names, IDs, and tag URLs for mail merge or card programming.
- Scans column shows how many times each card has been tapped (NTAG216 hardware counter).
- Reset zeros the scan counter (use when replacing a card).
- Regenerate creates a new URL for a member (invalidates their old card).
- Clear removes the tag assignment entirely.
When pairings are finalized, the system automatically generates a personalized Lucky Charm message for each player using AI. These appear on the player's Intel page when they tap in on play day.
League Email
Go to Admin → Email to send branded emails to the league — weekly updates, announcements, event reminders, whatever you need.
AI-Powered Drafting (Fastest Way)
- From the Email dashboard, tap "New Campaign."
- Click the "AI Draft" button in the toolbar.
- Describe what you want to say — e.g., "kickoff event April 10 at Todd Creek, 9:30 meeting, practice round at 12:30, RSVP by April 1st."
- The AI writes the email in your voice, filling in league details automatically.
- Review, tweak anything you want, then "Save & Send."
You can also ask Nineteen to draft an email by saying something like "draft an email about Thursday's round" — it'll create a draft you can open in the editor.
Writing Manually
- From the Email dashboard, tap "New Campaign."
- Fill in the Subject Line and optional Preview Text.
- Choose your audience — All Active Members, a specific flight (A/B/C), or a custom hand-picked list.
- Type your email just like you would in Gmail or Apple Mail. Use the toolbar for bold, italic, lists, links, and text color.
- Tap "Preview" to see exactly how recipients will see it (with the TPS header and footer).
- Tap "Save Draft" to save without sending, or "Save & Send" to send immediately.
Editor Tips
- Just type — the editor works like email. No drag-and-drop needed.
- Highlight text and use the toolbar to bold, italicize, or change color.
- Paste links — they'll automatically become clickable in the sent email.
- The TPS logo header and footer are added automatically when you send — you just write the content.
After Sending
- Back on the Email dashboard, tap any sent campaign to see its analytics — open rate, click rate, which links got clicked, and who opened it.
- Open tracking — a tiny invisible pixel tells you who opened the email and when. If someone clicks a link but the pixel didn't load (some email apps block images), it still counts as opened.
- Click tracking — every link in your email is tracked so you can see what members are clicking on and which links get the most engagement.
- Unsubscribes — a one-click unsubscribe link is automatically added to every email. Gmail and Apple Mail also show a native unsubscribe button at the top. Members who unsubscribe won't receive future campaigns.
Ask Nineteen About Your Emails
After sending a campaign, you can ask Nineteen how it did:
- "How did my last email do?" — open rate, click rate, full breakdown
- "Who opened my email?" — list of names
- "Who hasn't read it yet?" — members who haven't opened
- "Which links got clicked?" — top links by click count
League Settings
Go to Admin → Settings to manage integrations and league configuration:
- GHIN Credentials — username and password for automatic handicap syncing.
- Twilio SMS — Account SID, Auth Token, and phone number for two-way text messaging (reminders, signups via text).
- SMS Preferences — enable/disable SMS, set reminder timing, toggle AI-powered natural language replies.
- Weather API — OpenWeather API key for course weather on scoring pages.
- Demo Mode — toggle to show sample data for demonstrations.
- Push Notifications — VAPID keys are configured as secrets. Push messages are sent alongside SMS for tournament reminders, admin broadcasts, and sub-bot offers. Members opt in from their dashboard.
Time Machine
The Time Machine widget (visible on admin pages) lets you travel to any date and see the platform as it appeared that day — useful for debugging tournament states, verifying past results, or testing upcoming play dates. It uses Cloudflare D1's Time Travel feature for safe, read-only snapshots.
Preview Review
When new features are being tested, you may receive a preview link (a temporary version of the site). Preview builds have a few extras to help you give feedback without ever touching GitHub:
- Purple feedback widget — a small purple button appears in the bottom-left corner of every preview page. Tap it to see what changed in this update.
- What Changed — the widget shows a plain-English summary of the changes included in the preview.
- React — tap to share your take: Love it, Needs changes, or Let's discuss.
- Highlighted changes — new or updated elements on the page are outlined with a purple border so you can spot what's different at a glance.
- Ship It — admins can tap "Ship It" to approve the update and merge it to production directly from the preview.
Scheduler Guide
Schedulers are responsible for building the weekly pairings. You need the scheduler or admin role to access these tools. Your hub is the Scheduler page in the navigation. Play dates can have a co-scheduler — both schedulers see the tournament on their dashboard and can generate pairings, finalize, and manage scores. Admins assign co-schedulers from Admin → Schedule.
Your Weekly Workflow
- Check signups — Early in the week, visit your assigned play date's review page to see who has signed up. Note any signup comments (carpool requests, early/late preferences).
- Add/remove players — From the review page, add last-minute signups or remove cancellations. If you need a sub, check the Subs registry for the call order. If there's a waitlist, you'll see an amber card showing who's waiting — tap Promote to move someone up, or Remove to take them off the list.
- Generate pairings — Tap "Generate Pairings" and choose a strategy (see below). The engine builds optimized groups automatically.
- Review & tweak — Look over the groups. You can drag players between groups or swap individuals if needed.
- Finalize pairings — Once you are happy, tap "Finalize." This locks the pairings, makes them visible to members, and automatically generates personalized Lucky Charm messages for each player. Pairings should be posted no later than Monday before the Thursday play date.
- Frost delay (if needed) — If the course calls a delay on game day, tap "Frost Delay" on the review page. Pick 30/60/90 minutes or enter a custom amount. All tee times shift automatically and players get an SMS with their new tee time. You can increase, decrease, or clear the delay as conditions change.
- Print tee sheet — Generate and print the PDF tee sheet from the review page. Bring a paper copy as backup.
Setting Up a Play Date
From Scheduler → Setup (or "New Play Date" on the schedule admin):
- Pick the date, course, and tee box.
- Select the Game of the Day from the library — the engine will score this automatically.
- Add players from the member list. Use the search to find members quickly.
- Set a signup deadline if you want to auto-close registration before pairings are built.
- If editing an existing play date, open it via Actions → Edit Setup on the schedule page.
Pairing Strategies
The pairing engine uses history from 3,840+ past pairings to maximize variety. When you generate pairings, choose one of six strategies:
Balanced
The default. Equal weight on social variety (avoiding repeat pairings) and flight integrity (similar skill levels). Best for most weeks.
Mix It Up
100% social variety. Ignores flights entirely — great for early season or social events when you want maximum new combinations.
Flight Integrity
100% skill grouping. A-flight plays with A-flight, etc. Use this for competitive weeks or when flights matter most.
New Friends
Heavy penalty if players have ever been paired before this season. Use sparingly — it gets harder to satisfy as the season goes on.
Wildcard
Adds a 20% random factor to scoring. Same inputs may produce different groups each time. Fun for a surprise shake-up.
Championship
Pure handicap sort — no social scoring at all. Groups are ordered strictly by skill. Use for season-ending championships.
Time Preferences
After pairings are generated, groups are automatically sorted by member time preferences — early groups go out first, late groups last, and mixed/any groups fill the middle. A group needs 75% agreement to be classified as "early" or "late."
Tee Sheet PDF
From the review page, tap "Tee Sheet" to generate a printable PDF. The tee sheet includes group numbers, player names, handicaps, and tee times. Print a copy for the pro shop and keep one as your backup — always bring paper.
Send Tee Sheet to the Course
From the review page, tap "Email to Course" to send the tee sheet directly to the pro shop — no copy-paste needed. The email uses the course's contact info on file and includes the full group list, tee times, and player count. A confirmation appears once sent.
Per-Flight Tee Boxes
When setting up a play date, you can assign different tee boxes per flight. For example, A-flight plays from the blue tees while B and C flight play from the red tees. Configure this in the tournament setup under Flight Tees. Each flight's course handicap is calculated using its own slope and rating, so the math stays accurate regardless of which tees each group plays.
Group Messaging
Need to tell a specific group something? On the Scheduler Review page, each group card has a speech bubble icon (visible after pairings are finalized). Tap it, type your message, and hit Send. Only the players in that group receive the push notification — no need to text individual phone numbers. Great for “please let the group behind play through” or “weather delay, hold on your tee.”
Mid-Round Help (SOS)
Two ways to get help during a round, both on the scorecard page:
- Call Pro Shop — tap the phone icon in the scorecard header. One tap dials the course directly. No digging for phone numbers when your cart dies on hole 14.
- Flag Down Help — tap the flag icon in the scorecard header. Pick a category (Medical Emergency, Need Ranger, Cart Issue, Slow Play, Other) and the system sends an instant push notification to all schedulers and admins with your group number, current hole, and GPS location. Help is dispatched without a phone call.
The pro shop phone number also appears on your NFC tap page before the round starts, so you always have it handy.
Pairing Heatmap
Go to Scheduler → Pairing Heatmap to see a visual grid of who's been paired together this season. Each cell shows the number of times two players have been in the same group — darker means more pairings. Use this to spot overdue combinations or confirm the engine is mixing things up. Filter by season using the dropdown at the top.
Entering Scores
From the review page, tap "Enter Scores" to open the scoring view. Scorers and schedulers can enter scores for any group. Each group's scorecard shows:
- Hole-by-hole stroke entry for every player in the group.
- Putts — shown when the Game of the Day requires putt data (e.g., putts-based games).
- Fairway hit — toggle per hole (hidden on par 3s, since par 3s have no fairway).
- Chip-ins — mark any chip-ins per hole for the chip-in pot.
- GIR glow — the scorecard automatically highlights greens in regulation.
Finalizing Results
After all scores are entered, go to the review page and tap "Finalize Results." This:
- Locks all scores (no further edits allowed).
- Calculates Low Net winners by flight (A, B, C).
- Calculates Low Gross winners by flight (if enabled for this play date — gross scores, no handicap).
- Calculates Game of the Day winners (mutual exclusion: Low Net → Low Gross → Game of Day — a player can only win one).
- Splits the chip-in pot among players who chipped in (pot carries over if nobody chipped in).
- Saves an immutable payout snapshot for the results page.
FAQ & Troubleshooting
I can't log in
First, try your NFC bag tag — just tap it to your phone. If that doesn't work, try Google sign-in at par72.co. If you see "Access Denied," your email in the system might not match your Google account. Reach out to Ro to get it sorted.
My handicap looks wrong
TPS syncs handicaps from GHIN when tournaments are locked (typically the week of play). If your index looks off, check ghin.com first — that's the source of truth. If GHIN is correct but TPS shows something different, it'll update on the next sync. For the most accurate index, post your scores hole-by-hole via the GHIN app or website — the system automatically applies the net double bogey cap.
I signed up but I'm not on the tee sheet
Pairings are posted by Monday before Thursday play. If you signed up after pairings were generated, you may need to contact the scheduler to be added.
What flight am I in?
Flights (A, B, C) are based on your GHIN handicap index. A-flight is the lowest handicaps, C-flight the highest. Flights are recalculated each week when handicaps are locked for the tournament.
How do I get an NFC player card?
Ro distributes player cards before the season starts. Each card has an NFC chip and QR code linked to your profile. On play days, tapping your card shows your Today's Intel page with your group, game, weather, and a Lucky Charm message. It also checks you in at the course via GPS. If your card isn't working, let Ro know.
What happens if there's a frost delay?
The scheduler sets a frost delay from the review page, which automatically pushes all tee times back. You'll get a text with your new tee time, and an amber "Delayed" banner will appear on the schedule and your dashboard. The delay can be updated or cleared as conditions change — you'll be notified each time.
Can I use this on my phone?
Absolutely — TPS Golf League is a Progressive Web App built mobile-first. Install it from your dashboard banner or manually (see App & Notifications). Once installed, it works like a native app with push notifications, offline scoring, and a home screen icon.
How do I get push notifications?
First, install the app to your home screen (see instructions above). Then tap "Enable Notifications" on your dashboard banner and allow when your browser asks. On iPhone, push requires iOS 16.4+ and the app must be installed first — regular Safari won't receive pushes. You'll get notified about play date reminders, pairings, and results.
I'm not getting notifications
Check these in order: (1) Is the app installed to your home screen? Push won't work in regular Safari on iPhone. (2) Did you tap "Allow" when asked for notification permission? Check your phone's Settings → Notifications → TPS Golf League. (3) On iPhone, you need iOS 16.4 or later. (4) If you dismissed the dashboard banner, it'll reappear in 30 days — or you can clear your browser data to reset it.
What does the scorer need to enter?
Strokes on every hole (required), plus putts and fairway hits when the Game of the Day calls for them. Chip-ins whenever they happen. Everything auto-saves, and the system calculates net scores, game points, and payouts automatically.
How do chip-in payouts work?
The chip-in pot is $1/player/week, pooled across all flights. If you chip in, you split the pot proportionally with anyone else who chipped in. Example: you had 2 chip-ins, someone else had 1 = you get 2/3 of the pot. If nobody chips in, the pot carries to next week.
Can I win both Low Net and Game of the Day?
No — you can only win one scoring pot per play date. The priority is: Low Net → Low Gross → Game of the Day. If you win Low Net in your flight, both the Low Gross and Game of the Day prizes go to the next best players. The chip-in pot is separate — you can always win that.
The scores don't look right
Always compare the paper scorecards with the online scoring to make sure both match. Check with your group's scorer first — they may have entered a number wrong. Scores can be corrected during the round. After the tournament is finalized, contact Ro or the scheduler for corrections.
Quick Reference Card
Log In
Tap your NFC bag tag or go to par72.co → "Member Login" → Google sign-in
Sign Up for a Play Date
Reply YES to the TPS text or visit the Schedule page → "Count Me In"
Withdraw
Reply OUT to the TPS text or visit the Schedule page → tap your "I'm Playing" badge
Check Your Scores
Leaderboard (live) or Results page (final) — both linked from the Schedule
See Your Stats
Tap "My Card" in the navigation for your personal dashboard
SMS Cheat Sheet
YES = sign up | OUT = withdraw | PAID = payment sent | CART = need a cart | WALK = walking
Get Notifications
Install app to home screen → tap "Enable Notifications" on dashboard
Need Help?
Ask Nineteen (AI) via the (19) button or contact Ro at ro@rotroia.com
Contact & Help
Still have questions? We're here for you.
- Ro Troia (League Admin) — ro@rotroia.com
- Nineteen — AI assistant in the app, available to all members
- Schedule page — contact info for the scheduler is on each tournament card