Almost there
The staff panel isn't connected to the database yet. Add your Supabase Project URL and anon key to config.js, then upload the site again. The README explains each step.
Staff sign in
For Ballhockey.com league staff only.
Set a new password
Welcome to the League Ratings staff panel. Choose a password to finish setting up your login.
Enter your code
Open your authenticator app and enter the 6-digit code for League Ratings.
Lost or replaced your phone? Ask an admin to reset your two-step sign-in.
Set up two-step sign-in
The league requires two-step sign-in for the staff panel. It takes about a minute.
No staff access
You're signed in, but this login isn't on the staff list. Ask an admin to add you, then sign in again.
Welcome back
To do
Team alerts
Staff only. Not shown on the public site.Season overviewSeason at a glance, key dates, teams by division and recent activity
Season at a glance
Key dates
Teams by division
Recent activity
Site visitors
Analytics & Insights
New players to rate
Players reps added to rosters by name. They count at the division's provisional rating until you rate them. Rating them here updates every roster and waiting submission they're on.
Rating votes
Put a player to the staff. Everyone gives the rating they think is right, without seeing the others first; then an admin makes it final. Nothing changes on the ratings list until then. Every new appeal opens a vote here too; it's settled when the appeal is resolved.
| Player | Rating |
|---|
| Team | Division | Players | Total / cap | Status | Public |
|---|
Team logins
Team reps sign in at ballhockeyleagueratings.com/team with their email and a password, instead of using the team link. One login can hold several teams, for reps who run more than one. Team links keep working either way.
| Team rep | Teams | Sign-in |
|---|
| Submitted | Team | Division | Team rep | Players | Total / cap | Status |
|---|
Teams not on the Cap Tracker yet
Teams on the ballhockey.com schedule this season that haven't had a roster approved here. Pick teams, check the message, and send.
| Team | First game | Rep email |
|---|
These schedule teams are already on the Cap Tracker under another name, so they're left off the list. Undo if one was linked by mistake.
Email the selected teams
These fill in for each team: {team} {division} {first_game} {deadline} {link}
Preview for the first selected team
| Date | Move | Team | Public |
|---|
Insights
How people use the public ratings site.
Visits over time
Most searched players
Searches that narrowed to one player.
Top searches
What people typed in the search box.
Most added to rosters
Rated players added in the roster builder or from the list.
Most checked as spares
Players looked up in the spare checker.
Searches with no results
Often players who aren't on the list yet.
New players typed in
Names added as new players in the builder or spare checker.
Team names
| Team | Division | Players | Total / cap | Last |
|---|
Busiest times of day
Visits by hour, Eastern time.
Where visitors came from
The site that linked them here.
Devices
Share of visits.
Tabs opened
Visits that opened each tab.
Videos played
Times each video was opened.
Everything here is anonymous: no names, emails or IP addresses are stored for visitors. Visits from browsers signed in to this staff panel aren't counted, and neither are browsers with Do Not Track or Global Privacy Control turned on. A visitor is one browser; a visit is one sitting. Times are Eastern.
Key dates
These drive the countdown strip at the top of the public site. The next upcoming date with "Countdown" on gets the clock; the rest are listed beside it in sort order. Leave the date empty and fill "Show as" for approximate dates like "Mid–late Nov".
Appeals come in from the "Appeal a rating" form on the public site. Each one opens a staff vote.
| Received | Player | Rating | Status | Staff vote |
|---|
League office
Reports on score sheets, teams and divisions, updated every night from game results.
Changing seasons
- Archive the current ratings (Archive tab) so this season is saved.
- Import the new ratings spreadsheet (Import tab).
- Key dates: replace this season's dates with the new ones.
- Season wording and divisions below: update anything that changed.
Season wording
Divisions, caps & ceilings
Leave Cap, Ceiling or Threshold empty for "none". Target avg is optional text; leave it empty to work it out from the cap. Every saved change goes into the activity log and shows on the public site right away: caps pop-up, roster builder, spare checker, FAQ and math page.
| Division | League | Cap | Ceiling | Avg threshold | New player min | Max roster | Target avg | Order | Show |
|---|
Archive the current ratings
Saves a permanent copy of every player and rating on the list right now, plus the season wording, divisions and key dates. Do this at the end of each season, before importing new ratings. It doesn't change anything on the live site.
Archived seasons
Import a ratings spreadsheet
Upload an .xlsx or .csv with the columns First Name, Last Name, Position (Forward/Defense or Goalie) and Rating (1–7). You'll see exactly what will change before anything is saved, and every change goes into the activity log. If a name and position appear twice, the higher rating is used.
Nothing is changed until you press Apply.
Staff
Checking sign-in accounts…
| Name | Role | Last active | Two-step | Appeal emails | Daily email |
|---|
Invite a staff member
They'll get an email with a link to set their own password and sign in. No passwords are sent by email.