Skip to content

News & highlights

Route: /dashboard/news
API: /v1/dashboard/news/*

News is the recognition and culture dashboard — separate from BSC score pages. First-time visitors land here by default; returning users keep their last dashboard section.

Story switcher (in-page tabs, not separate sidebar items):

StoryURLPurpose
BSC Passers?story=bsc-passersCycle salary-increase eligibility roll
Birthdays?story=birthdaysCurrent-month celebrants and greeting threads

Last selected story is stored in localStorage. Legacy ?story=passers still opens BSC Passers.

Visibility of the News area and each story can be toggled by level 5 — see Platform & admin § Page visibility.


BSC Passers

Recognizes employees whose Goal band for a completed July–June cycle qualifies them for salary-increase eligibility.

Data source

For BSC 2025, Ascendly scorecard use started after the cycle ended, so monthly recomputation is incomplete. Eligibility comes from an authoritative HR spreadsheet, imported into tbl_bsc_cycle_passers. It must not be recomputed from partial monthly BSC rows.

Import (engineering):

bash
cd api
.venv/Scripts/python scripts/import_bsc_cycle_passers.py \
  --cycle-id 2025 --replace path/to/passers.xlsx

--replace removes cycle employees no longer in the workbook. The script validates headers, Goal ratings, salary-increase remarks, unique employee IDs, and score ranges.

What the UI shows

  • GET /v1/dashboard/news?cycle_id=… returns the curated roll.
  • Spreadsheet decides who is eligible and stores cycle score / remarks.
  • At read time, Ascendly enriches each passer from live employees + org (name, department, cluster, site, manager, photo). Spreadsheet labels are fallback only when the employee cannot be resolved.

Birthdays

  • Celebrants for the current calendar month from live birth_date.
  • Today uses Asia/Manila and is highlighted.
  • Display fields are enriched from live employee and org records.

Greeting threads

  • Each celebrant has a thread keyed by employee ID + birthday year.
  • Any signed-in employee except the celebrant may post up to 5 messages per thread.
  • Reactions: ❤️ 🎉 🙌 👍 😂 — one toggle per emoji per user.
  • Authors can edit or delete their own greetings only (editedAt when edited).
  • Posting a greeting creates an in-app notification linking to that year’s thread (type is not in the admin notification catalog — see Notifications).
  • Today cards expose Greet; other rows use context menu / keyboard menu for Greet / View greetings.
  • Hovering a reaction shows who reacted (names resolved at request time; your own name as “You”).