Univo
Univo · HRMS module

Lifecycle Ledger

What the HR module can actually do today, verified page-by-page against the running code and organized the way an employee walks it — from requisition to retirement.

Verified against univo-be + univo-fe sourceMethod every page and its matching controller read directly, not inferredScope 12 lifecycle stages + ESS/MSS
01

Recruitment

Built

Job openings, candidates, interviews, selection — the full pipeline exists and is wired end to end.

  • Job Requisitions — open a requisition against an org unit and designation, set the opening count, track status (Open / On Hold / Closed).
  • Jobs — publish a posting against a requisition with a location and employment type; mark it Open or Closed.
  • Candidates — log applicants per posting, capture source and resume link, move them through Applied → Screening → Interviewing → Offered → Hired → Rejected.
  • Interviews — schedule a round against an internal employee as interviewer, record a Pass / Fail / Pending outcome and free-text feedback.
  • Offers — draft an offer with salary, joining date and expiry date; track it Draft → Sent → Accepted / Declined / Withdrawn.

Gap — there’s no automatic hand-off from an accepted offer to a new Employee record; HR still creates that manually in Hiring.

02

Hiring

Partial

Offer letter, employee creation, joining details.

  • Employee creation — code, name, email, designation, reporting manager, employment type and date of joining captured at intake.
  • Login provisioning — generate a username and one-time password for a new hire, or reset it later from their record.

Gap — no offer-letter document generation or e-signature, and no link back to the requisition/offer that triggered the hire.

03

Onboarding

Partial

Documents, bank/PF/ESI details, onboarding tasks.

  • Employee Documents — upload, download and delete files (ID proof, contracts, and similar) against an employee, tagged by document type.
  • Statutory & banking fields — PAN, masked Aadhaar, UAN, ESI number, bank account + IFSC, and an emergency contact all exist on the employee record, but only PAN and UAN appear on the quick-create form today; the rest need a direct API call until a fuller edit form exists.

Gap — no onboarding task checklist or workflow (asset issuance, policy acknowledgment, and so on).

04

Employee Management

Built

Profile, department, designation, location, documents — the most complete stage in the module.

  • Employees — a searchable directory showing designation, org unit, manager and status; every field editable.
  • Employee profile page — a per-employee view of core details, access/credential status, and direct reports.
  • Reporting line — reassign a manager, view an employee's direct reports, or browse the whole company as a lazily-loaded org chart.
  • Org Structure — a company → branch → department tree, each level independently creatable, editable and deletable.
  • Designations & Grades — each designation links to exactly one grade; grade level 1 is the most senior.
  • Locations — a master list of physical offices, referenced by job postings and (once extended) employee assignment.
05

Attendance & Leave

Built

Attendance, shifts, holidays, leave requests — including approvals.

  • Attendance — mark Present / Absent / Half-day / On-leave per employee per date, with remarks.
  • Shifts — define named shifts with start/end time and a grace period.
  • Roster — assign an employee to a shift for an effective date range.
  • Attendance Regularization — an employee requests a corrected status for a past date; pending requests can be approved or rejected.
  • Overtime — log extra hours worked with a reason; pending entries can be approved or rejected.
  • Leave — apply for Annual / Sick / Unpaid / Other leave over a date range; pending requests can be approved or rejected, including directly from the Dashboard.
  • Holidays — maintain the company holiday calendar, optionally recurring every year.
06

Payroll

Built

Salary calculation, deductions, payslips — component-based, not a flat structure.

  • Salary Components — define named Earning/Deduction components, each Flat or a Percentage-of-Basic, flagged taxable, basic, and active.
  • Salary Structures — assemble an employee's pay from those components with an effective date; gross pay, deductions and net pay resolve automatically.
  • Payroll Runs — open a run for a given month/year, then process it.
  • Payslips — generated per employee per run, viewable by run or drilled into per employee, with the full component breakdown.
07

Benefits & Compliance

Partial

PF, ESI, TDS, PT, statutory compliance.

  • Tax Config — the API supports creating and updating per-financial-year tax configuration, but no page renders it.

Gap — the /finance/tax-config sidebar link has no matching route, so this is currently unreachable from the UI. And no PF, ESI or professional-tax calculation exists — the ESI number captured at onboarding is only an identifier, not a computed contribution.

08

Performance

Not built

Goals, appraisals, reviews, ratings.

No controller, page, or data model exists for this stage in either repository yet.

09

Career

Not built

Promotion, increment, transfers, career progression.

Reassigning a manager, or editing an employee's designation and grade, is possible via the existing Employee Management APIs — but there's no dedicated promotion/increment/transfer workflow, approval trail, or career-history record.

10

Exit

Not built

Resignation, notice period, clearance.

An employee's status can be flipped to Inactive or Terminated, but there's no resignation capture, notice-period tracking, or clearance checklist.

11

Full & Final

Not built

Pending salary, leave encashment, deductions, settlement.

No settlement calculation exists yet.

12

Retirement

Not built

Retirement processing and applicable benefits/documents.

No retirement-specific processing exists; this would likely reuse Exit and Full & Final once those are built.

–

Employee & Manager Self-Service

Minimal

Cuts across every stage above rather than being one itself — today it's the thinnest layer in the module.

  • My Details — a signed-in user can see their own username, tenant, role and timezone (read-only).
  • Inline manager approvals — a manager acts on Leave, Overtime and Regularization requests directly from those pages, and pending leave also surfaces as a Dashboard widget.

Gap — no dedicated self-service portal: an employee can’t see their own payslips, attendance history or leave balance in one place, and there’s no manager-scoped “my team” view distinct from the full admin tables.

Worth flagging

The in-app Help Center is out of date

/help still lists Recruitment, employee documents, and login-credential generation under its Roadmap tab — all three are live in the code as of this review. Its Docs tab is also missing Shifts, Roster, Regularization, and Overtime entirely. This ledger reflects the code directly; the in-app page doesn’t yet.

Payroll is already component-based

Earlier planning notes described Salary Structure as a flat basic/HRA/allowances model. That’s no longer accurate — Salary Components and component-based Salary Structures are both live, ahead of where prior scope discussions assumed the module stood.

Lifecycle Ledger · compiled from univo-be and univo-fe source