Bonus qualification dashboard
Route: /dashboard/bsc-bonus
Audience: Managers scanning a team; employees still see their own row in self scope
The Bonus qualification page answers: Who is bonus-ready this month, and which gate is blocking whom?
It complements the other BSC dashboards:
| Page | Route | Question | Time lens |
|---|---|---|---|
| Balanced Scorecard | /dashboard/bsc | What happened this month? | Single month |
| Target Score Report | /dashboard/bsc-target | What do I need to reach the next remark? | Forward / planning |
| Bonus qualification | /dashboard/bsc-bonus | Who is bonus-ready, and which gate failed? | Single month |
| Monthly performance | /dashboard/bsc-performance | How did scores move through the cycle? | Full cycle (12 mo) |
| Performance comparison | /dashboard/bsc-comparison | How do segments compare in the cycle? | Full cycle (aggregated) |
Gate definitions and payout rules: User-month calculation § Bonus qualification.
Controls
- Month picker — Same calendar month and available-months source as Balanced Scorecard.
- Scope filters — Cluster, department, site (when the access pool spans multiple sites), employee, BSC Eligible / Bonus Eligible, and Bonus Qualified / Not Qualified (when those labels are present).
- Filter persistence — Shares month + scope session/URL state with Balanced Scorecard and Target Score Report (Month lens). Switching among those pages keeps your filters.
- Sync — Level-5 users can sync / finalize from the float panel (same month-report controls as Balanced Scorecard). Draft vs final labels apply to synced data.
Page sections (top to bottom)
Qualification summary
One panel above the matrix:
- Qualification rate —
%and count of qualified employees in the current filtered scope, plus a stacked bar (qualified vs not qualified). - Tiles — In scope · Qualified · Not qualified.
Counts respect the same scope filters as the table (not a separate query).
Team matrix
One row per employee in scope. Column order:
| Column | Meaning |
|---|---|
| Employee | Name + employee ID; opens Balanced Scorecard for that person when you can filter employees |
| Qualification | Qualified / Not qualified (hover = full gate breakdown) |
| Tenure | SBS labels — Newbie / Advance / Intermediate / Tenured — as of last day of the selected month (same buckets as SBS entries) |
| BSC Goal | Goal-band minimum threshold for level + years-employed tier, plus current remark badge |
| Total BSC | Weighted total for the month |
| Per-KPM scores | One column per KPM from scorecard metrics config (includes discretionary additional-points boosts when applied) |
| Gate columns | Pass / Fail / — for: Bonus eligible · Goal band · No attendance issues · No incidents · Red flags · Timely weekly submission |
Sticky columns: Employee and Qualification stay fixed on the left while you scroll horizontally. The header row stays fixed while you scroll vertically. The page shell is sized so only the matrix scrolls, not the whole dashboard body.
Hover: Gate cells and Qualification show the same breakdown detail as Balanced Scorecard export / Scope panel.
Sorting
Click any column header to sort (indicator: ↕ inactive · ↑ ascending · ↓ descending).
| Column type | First click |
|---|---|
| Total BSC, KPM scores, BSC Goal | Highest first |
| Qualification, gate columns | Fail / Not qualified first |
| Employee, Tenure | A→Z / lower tenure first |
Default sort: Total BSC high → low, then employee name A→Z as tie-breaker.
Export uses the current sort order.
Data sources
No dedicated bonus API. The page reuses:
| Source | Provides |
|---|---|
GET /v1/dashboard/bsc/month-snapshot | Employees, totals, eligibility, qualification + breakdown |
GET /v1/scorecard/configurations?year=&month= | KPM columns, total-score goals (Goal threshold / remark) |
Client-side only:
- SBS tenure from
hire_dateas of month-end - Goal threshold and remark from total-score goals +
years_employed/ level - Per-KPM totals via the same weighted helpers as Balanced Scorecard
When BigQuery is enabled, aggregate/manager views read pre-aggregated user-month rows (same as Balanced Scorecard aggregate). Self view still uses live Mongo for that employee’s other BSC surfaces; this matrix follows the month-snapshot path for whoever is in scope. See BigQuery dashboard § Read path.
Export
Export downloads an Excel workbook matching the matrix: Employee ID, Name, Bonus Qualification, Tenure, Goal threshold, Remark, Total BSC, each KPM, then each gate (Pass / Fail / blank).
Related
- Dashboard overview — how all five pages relate
- User-month calculation § Bonus qualification — the six gates
- Total score goals — Goal / Expectation / Standard bands
- Scorecard § Weekly locking — timely weekly submission cadence
