← StafFixHR home

People analytics

Decision-grade signal from the data you already capture — no extra setup.

What you see

  • Headcount — active employees right now.
  • Joined / exited (30d, 90d, 12mo) — flow in and out.
  • Attrition — both 12-month rolling and a 90-day annualised projection (faster signal).
  • Headcount trend — 12 monthly snapshots (net of joiners/leavers).
  • Gender mix — uses Employee.gender; surfaces unspecified bucket so you know data quality.
  • Tenure distribution — buckets <1, 1-2, 2-5, 5-10, 10+ years.
  • By department — headcount + average tenure.
  • Span of control — direct reports per active manager. Flag >10 for review.
  • Pay distribution per department — median, min, max, spread (max/min). Spread > 5× highlighted (equity risk).

Methodology notes

  • An employee is "active" when employmentBeginDate ≤ today ≤ employmentEndDate AND employmentStatus = ACTIVE.
  • Attrition uses the average-of-current-and-half-the-leavers approximation (sufficient for SMB sizes).
  • Pay distribution pulls the most recent finalized payslip per employee — capped to 5,000 rows per fetch.
  • No client-side aggregation; numbers are server-computed each load. Add a nightly snapshot if your tenant blows past ~10k employees.

Access

Roles: HR_ADMIN, PAYROLL_ADMIN, BOARD_MEMBER. Other roles get 403.