Dashboard overview
Ascendly has five live dashboard pages for Balance Scorecard. Each answers a different question; together they cover snapshot, planning, bonus readiness, cycle history, and segment comparison.
| Page | Route | Question |
|---|---|---|
| Balanced Scorecard | /dashboard/bsc | What happened this month? |
| Target Score Report | /dashboard/bsc-target | What do I need on each KPI to reach the next remark? |
| Bonus qualification | /dashboard/bsc-bonus | Who is bonus-ready this month, and which gate is blocking whom? |
| Monthly performance | /dashboard/bsc-performance | How did Total BSC move across the fiscal cycle? |
| Performance comparison | /dashboard/bsc-comparison | How do sites, clusters, or departments compare in the cycle? |
The comparison page is visible only to company-wide roles and multi-site managers. See Performance comparison § Access.
Balanced Scorecard (/dashboard/bsc)
- Time lens: One calendar month (month picker). Options come from
GET /v1/dashboard/bsc/available-months— a union of BigQuery synced months, scorecard entry months (including soft-deleted rows), and Mongo month-report keys (tbl_bsc_month_reports). The current calendar month often appears even with no scorecard submissions because rolling sync writes draft BQ rows and creates a draft month report. See BigQuery dashboard § Month picker. - Content: Total BSC hero, KPM breakdown, KPI detail, contribution charts.
- Additional points: When discretionary boosts apply, KPM hero cards and KPI cells show a + marker; hover explains base score → boost → final. KPM-target boosts raise the KPM total (and Total BSC) without changing individual KPI scores. See User-month calculation § Additional points.
- Bonus qualification: Scope panel shows ⭐ Bonus Qualified (green) or Not Bonus Qualified when the employee is bonus-eligible; hover lists each gate (Goal band, attendance, incidents, red flags, timely weekly submission when cadence applies). Filter and export on Balanced Scorecard and Monthly performance. For a team gate matrix, use Bonus qualification. See User-month calculation § Bonus qualification.
- Export: Export detailed (KPI columns + KPM totals) or Export summary (KPM totals only). Both include Employee ID before name, eligibility labels, and bonus qualification. Detailed export only adds Not Qualified Reason beside Bonus Qualification:
-when qualified, otherwise only the failed gate details (semicolon-separated). - Scope: Self or aggregated team (by access level and filters).
- Self view (one employee): KPI scores and total BSC are computed from live Mongo on every request — including desktop Home and employee web dashboard. Entry deletes and restores reflect immediately.
- Aggregate view (managers, multi-employee): When BigQuery is enabled, reads pre-aggregated user-month rows; scoped resync runs after scorecard delete/restore/purge. See BigQuery dashboard § Read path.
- Operations (level 5): Rolling sync, finalize month, reopen month, async sync jobs (poll progress), per-employee cycle refresh.
- API:
GET /v1/dashboard/bsc/month-snapshot, sync/finalize endpoints,GET /v1/dashboard/bsc/sync-jobs/{job_id}.
See User-month calculation and BigQuery dashboard for compute and sync behavior.
Target Score Report (/dashboard/bsc-target)
- Time lens: Month (planning for that month’s scorecard) or Cycle (planning for remaining fiscal months). Toggle via
Month | Cycle; default is Month. - Month scope: Remark ladder, gap to target band, KPI improvement table, what-if panel, multi-KPI path when one KPI cannot close the gap alone.
- Cycle scope: Running Score (avg through last completed month), required monthly average in remaining months, nearest achievable remark when the selected target is out of reach, timeline strip, Plan [month] links to Month scope for weakest KPI months.
- Scope: One employee at a time (select in scope filter). Scope filters sync with Balanced Scorecard; each page keeps its own time lens.
- Links: When one employee is in scope, Balanced Scorecard and Monthly performance link here with
lens=cycle. - API: Month scope reuses month snapshot + employee KPI breakdowns; Cycle scope uses
GET /v1/dashboard/bsc/performance?cycle_id=+ configurations.
Full section-by-section detail: Target Score Report. Band thresholds: Total score goals.
Bonus qualification (/dashboard/bsc-bonus)
- Time lens: One calendar month (same month picker and available-months source as Balanced Scorecard).
- Audience: Managers scanning a team; employees still see their own row in self scope.
- Content: Summary rate + tiles; matrix with Employee, Qualification, Tenure (SBS labels), BSC Goal (threshold + remark), Total BSC, per-KPM scores, and one column per bonus gate.
- Sort: Clickable headers; default = Total BSC high → low, then name A→Z.
- UX: Sticky Employee + Qualification columns; header freeze; matrix scrolls inside the page shell.
- Data: Reuses
GET /v1/dashboard/bsc/month-snapshot+ scorecard configurations — no separate sync path. - Scope: Same filters and session/URL state as Balanced Scorecard.
- Export: Excel matching the matrix (current sort order).
- Links: Employee name opens Balanced Scorecard for that person when filters allow.
Full section-by-section detail: Bonus qualification. Gate definitions: User-month calculation § Bonus qualification.
Monthly performance (/dashboard/bsc-performance)
- Time lens: Full fiscal BSC cycle (typically 12 months).
- Content: Cycle averages, trend chart, remark distribution, remark table, data health strip.
- Scope: Self or multi-employee (one trend line per person when multiple in scope).
- API:
GET /v1/dashboard/bsc/performance?cycle_id=
Full section-by-section detail: Monthly performance.
Performance comparison (/dashboard/bsc-comparison)
- Time lens: Full fiscal BSC cycle, aggregated by segment.
- Content: Comparison table (cycle avg, snapshot month, vs cycle avg, band mix, coverage), segment trend chart with scope benchmark line, CSV export.
- Scope: Full access pool (with optional scope filters); compare by site, cluster, or department.
- Audience: Access level 5+, or managers spanning 2+ sites with 2+ employees.
- API: Reuses
GET /v1/dashboard/bsc/performance; eligibility viaGET /v1/dashboard/bsc/comparison-access.
Full section-by-section detail: Performance comparison.
Shared behavior
- Scope filters — Cluster, department, site (when the access pool spans multiple sites), and employee filters (when permitted) use the same controls on each page. Balanced Scorecard, Bonus qualification, and Target Score Report share employee scope when you switch between them (session storage + URL). Monthly performance and Performance comparison each keep their own cycle and filter state — changing filters on BSC or Monthly performance does not overwrite comparison filters, and vice versa. Drill-through from comparison still applies segment filters on Monthly performance via the link URL.
- Eligibility filters — BSC Eligible / BSC Ineligible and Bonus Eligible / Bonus Ineligible (multi-select). Options appear only when at least one employee in scope has that label. On Monthly performance and Performance comparison, the bonus filter uses eligibility for the current calendar month. Target Score Report omits eligibility filters (single-employee view).
- Bonus qualification — Bonus Qualified / Not Bonus Qualified filter (multi-select) on Balanced Scorecard, Bonus qualification, and Monthly performance when bonus-eligible employees are in scope. Employee overview badge and CSV export include qualification status; hover shows per-check breakdown. The Bonus qualification page shows each gate as its own column.
- Eligibility display — Employee overview and exports show both eligibility labels with tooltips explaining regularization-date rules. See User-month calculation § Eligibility.
- Remark bands — Goal, Expectation, Standard, Below standard from total score goals and tenure tier.
- Finalized months — When a month is finalized, scorecard entry is locked; dashboards may label that month as Final.
- Evaluation coverage — Monthly performance and comparison use scored / expected coverage (not raw headcount). Mid-cycle hires and employees whose evaluations have not started are classified as not started rather than gaps. See Monthly performance § Data health.
BSC sync jobs (level 5)
Large sync and finalize operations run as background jobs when async=true or when the scope is large enough. The web UI polls job progress and persists the job id per month in session storage.
| Action | API | Notes |
|---|---|---|
| Sync now (full month) | POST /v1/dashboard/bsc/sync?async=true | Recomputes all employees with scorecard entries for the month |
| Scoped sync | Same + employee_ids | When cluster/department/employee filters are active |
| Refresh full month | POST /v1/dashboard/bsc/sync?async=true | UI label when recomputing from live scorecard entries |
| Refresh employee cycle | POST /v1/dashboard/bsc/refresh-employee-cycle | One employee, all months in cycle through anchor month |
| Generate Final Report | POST /v1/dashboard/bsc/finalize | Always background; poll sync-jobs/{job_id} |
| Poll progress | GET /v1/dashboard/bsc/sync-jobs/{job_id} | Status: pending → running → completed | failed |
Draft months are scoped-synced; finalized months require Re-generate Final Report (finalize?regenerate=true) instead of a plain sync.
See BigQuery dashboard § Operational jobs.
Planned enhancements
See the Roadmap for learning overview, deep scorecard data health, and other items not yet scheduled.
