Sales manager · Team Maverick

Rankings

The sales-floor board — a standalone 1920×1080 leaderboard served straight from the API and cast onto the floor TVs. It is not part of this app and keeps its own arena palette; this page is the reference for what it shows and how it behaves.

Route /api/rankings/board Open the live board
Standings load live. The board pulls them from /api/rankings/data, and the 18 Aug 2026 capture was serialized as served — before that fetch resolved. The wall, the ticker, the score bug, the pipeline chips and the sync label were all still empty. Every figure below is therefore shown as —, which is the board’s own rendering for a null value. No rep, team or deal number on this page has been invented to fill a gap.

Divisions

Six columns on the wall, left to right — the three-letter chip is the abbreviation the DIVISION RACE panel uses
Ice
Column 1 · awaiting live data
Your division
MTD / goal
REPS — Active / goal
Team Maverick · 31 active reps · Blake Woodruff
Fire
Column 2 · awaiting live data
MTD / goal
REPS — Active / goal
Teams and rosters arrive with the feed
Steel
Column 3 · awaiting live data
MTD / goal
REPS — Active / goal
Teams and rosters arrive with the feed
Galaxy
Column 4 · awaiting live data
MTD / goal
REPS — Active / goal
Teams and rosters arrive with the feed
Sparta
Column 5 · awaiting live data
MTD / goal
REPS — Active / goal
Teams and rosters arrive with the feed
Olympus
Column 6 · awaiting live data
MTD / goal
REPS — Active / goal
Teams and rosters arrive with the feed

On the board

Eight regions, top to bottom

Layout

A fixed 1920×1080 stage, scaled and letterboxed to whatever screen it lands on; below 700px it unstacks into a single scrolling column with the goal panel first

FLOOR WIRE
The top band. Approvals, major deals, big days and on-fire streaks scroll left as one woven marquee, with the TENURE key pinned to the right.
38px
Top bar
The month championship lockup on the left, the LIGHTNING vs THUNDER score bug centred, and the control cluster on the right over a row of pipeline chips.
86px
The wall
Six division roster columns, ICE through OLYMPUS, each a stack of team blocks that auto-pages through its roster so a long division still gets screen time.
6 columns
COMPANY GOAL
Achieved over goal in one enormous number, a bar with a hatched shortfall band and a PACE marker, then DEALS TO GO, ACHIEVED and MONTH GONE over /DAY ACTUAL, /DAY NEEDED and LIFT.
3 tiles
TOP 20 MANAGERS
RK · TEAM · MTD · GOAL · WK, each row railed in its team’s division colour.
20 rows
TOP 15 REPS
The same rank chips and division rail, with the rep’s volume under the name and the deal count on the right.
15 rows
DIVISION RACE
Six bars ordered by MTD, labelled with the three-letter abbreviations and read as MTD/GL.
6 rows
Rep card
Any rep row opens it: seven stat tiles over a thirteen-column deal log, ending in a TOTALS row.
on demand

Standings

Six division rosters — teams, reps, MTD and previous-month counts

No standings in this capture

Rows are built entirely in the browser from the live feed, and the capture caught the page before that feed arrived. Nothing was lost here — there was nothing in the markup to lose.

When a filter empties a division the board says so in its own words — “NO 1ST / 2ND / 3RD-MONTH REPS HERE”, “NO NEW-MANAGER TEAMS HERE” or “NO VETERAN-MANAGER TEAMS HERE”.

Controls

Top right of the board, above the pipeline chips

Filters and search

The board’s four controls, in its own wording — each one persists its choice and re-renders the board in place

On the board these filter the wall in place. Here they are inert — there are no standings to filter, and the month select is disabled because the board itself hides it until the feed offers two or more months. SEARCH REP… is pointed at this app’s command palette instead, which searches pages, reps and actions; the board’s own dropdown matches on rep, team or manager name and shows at most eight hits.

Header readouts

Everything the top bar reports comes from the same payload, so all of it is a placeholder here

LIVE
Pipeline chips
APPR —PEND —RCVD —DECL —
LIGHTNING Conference MTD
THUNDER Conference MTD
DEALS TO GO Company goal
ACHIEVED Percent of goal
MONTH GONE Percent of month
/DAY NEEDED Run rate to close

The sync label reads SYNCED {TIME}, and switches to SYNCED {MON D} · {TIME} when the last good sync was not today in America/Chicago — a time-only label would hide day-level staleness on a TV nobody is watching. The header line under the logo counts divisions, teams and active reps, where active means a rep with at least one deal this month; it was still showing its static fallback, SALES FLOOR · 6 DIVISIONS · 39 TEAMS · 566 REPS, when the capture was taken.

How the board works

Behaviour read out of the board’s own script

Data, refresh and filters

One endpoint, a self-healing refresh loop and three filters — all of it running unattended on a screen with no keyboard

Fetches /api/rankings/data
Kicked off in the first inline script with cache: no-store so it is already in flight while the page parses; the board waits on it at load. A past month is a one-off fetch of the same endpoint with a month parameter.
GET
Re-fetches every 5 minutes
A 20-second tick drives a 5-minute cadence plus 0–30 seconds of per-tab jitter, so a wall of TVs does not all reload on the same second. Between 00:00 and 05:00 America/Chicago it drops to once an hour.
5 min
Re-renders in place
The refresh tears down every tracked timer and listener and rebuilds the DOM rather than reloading — a reload would drop the TV out of fullscreen.
never reloads
Waits its turn
A refresh is skipped while a rep card, a celebration or the search dropdown is open — unless it is more than 10 minutes overdue, in which case freshness wins.
busy guard
Hard-reloads only when it must
A new ETag on the page itself, 24 hours of uptime, six consecutive failed fetches (about 30 minutes), or a failed first fetch. Reloads are deferred while fullscreen is engaged, up to a 30-minute cap.
4 triggers
Dead-man switch
A separate 5-minute interval reloads the page outright if the board never signalled that it came alive within 15 minutes, so a wedged tab cannot sit dead on a TV.
15 min
Manager cohort
ALL MGRS, NEW MGRS or OLD MGRS, persisted as board-cohort. The select is hidden entirely — and the cohort forced back to all — until the new-manager roster sheet has synced.
3 options
NEW REPS toggle
Narrows the wall rosters and the TOP 15 REPS rail to first-, second- and third-month reps. The company goal, the conference race, the division race and the manager rail stay full-floor, so a filtered view keeps its context.
board-reps
Month select
Only revealed when the feed offers two or more months. Picking a past month fetches once and pauses the live loop; returning to the current month resumes it. The select is disabled during the fetch and snaps back if it fails.
2+ months
Vested tick
Reps and managers listed as vested carry a verified tick on their row, labelled “Vested for residuals”.
residuals
LIVE chip
The pulsing red LIVE chip is static markup, not data-driven. It says the layout is live; it says nothing about whether the last fetch succeeded — the SYNCED label is the one to read for that.
always on
When the feed is down
The body is replaced with “Board data unavailable” over the error message and “— retrying shortly”, and the page reloads itself after 60 seconds.
60s retry
Five keys of local state, and a janitor that deletes anything else under the board’s prefixes on boot, so no forgotten data lingers on a shared TV: board-themeboard-cohortboard-soundboard-celebratedboard-reps

Board design language

A spec, not data — the board keeps its own dark arena palette and this page deliberately does not borrow it

Medals and tenure

Rank chips on the manager and rep rails; tenure on every wall row

Rank medals
First place · gold
#F5C044
Second place · silver
#C9D2DE
Third place · bronze
#D0894C
Tenure tiers
1ST MO · first month
#FFD54D · light #A87A0E
2ND MO · second month
#3DD9E8 · light #0B7E91
3RD MO · third month
#43D986 · light #128A52

Fourth place and below drop the chip entirely and render the number in the board’s dim ink. Tenure paints the rep row’s left border and name, the TENURE key on the floor wire and the pill on the rep card; the three tier colours are the only ones the board re-mixes for its own light theme, because the dark values are too bright on white.

Division colours

One hue per division, carried on a custom property

Ice ICE#52A7F0
Fire FIR#FF6B4A
Steel STL#A8BACC
Galaxy GXY#9C7BFF
Sparta SPA#E84C5D
Olympus OLY#F0B94A

Each division’s hue is set once per column and reused by the column header rule, the team header wash, the left rail on manager and rep rows, the dot on the division race and the glow around an open rep card. The division cards at the top of this page use the same values, applied the same way.