Table of Contents
- Introduction & System Overview
- Login, Roles & Common Page Operations
- User Management (UM) Locked
- Resume / Talent Pool Recruit
- Posting Request (PostReq)
- Posting Approval
- Candidate Mobile (CandMob)
- Interview Desk (IntDes)
- Interview Feedback
- Offer & Acceptance
- Overseas Recruitment Cross-border
- Onboarding Process (OnboardingPrcs) Onboard
- Employee Records & Documents (ERD)
- Industrial Training (IndTraing)
- Probation & Confirmation
- Attendance — Sources & Daily Roll-up Operate
- Attendance Regularization
- Duty Roster (DutyRoast)
- Roster Swaps, Holidays & Variance
- Leave Management — Master & Balances
- Leave Application Flow
- Payroll — Salary Structure Pay
- Payroll — Allowances & Deductions
- Payroll Run & Payslip Generation
- Bank Disbursement & Statutory Outputs
- Reports
- Dashboards & Analytics
- Status & Notification Reference
- Troubleshooting
- Glossary
Introduction & System Overview
Folks HR is the human-resources side of the Folks suite. It runs the full hire-to-retire employee journey — from a candidate's first résumé upload to a confirmed employee's monthly payslip — on a single SQL-Server-backed engine. Thirteen modules organised into four phases: Recruit · Onboard · Operate · Pay.
Every read and write goes through a named stored procedure — predictable, auditable, no LINQ in business logic.
Roles map to designations; designations to menus; menus to actions. Recruiter, HR-Admin, Line-Manager, Payroll-Officer and Accountant are scoped accordingly.
.NET Blazor WebAssembly — runs in the browser, works offline-first for candidate-mobile flows, snappy on phone or desktop.
Dedicated touch-first experience for applicants — apply, upload, track, accept — without ever needing the desktop portal.
Modules in this manual
| # | Module | Purpose | Phase |
|---|---|---|---|
| 1 | Resume | CV intake, parsing, talent-pool searching. | Recruit |
| 2 | PostReq | Posting / requisition raise & approval. | Recruit |
| 3 | CandMob | Mobile-side candidate experience — apply, upload, track. | Recruit |
| 4 | IntDes | Interview Desk — scheduling, panels, feedback. | Recruit |
| 5 | OverseaseRec | Overseas Recruitment — country/visa workflow. | Recruit |
| 6 | OnboardingPrcs | Joining checklist, document collection, day-1 setup. | Onboard |
| 7 | ERD | Employee Records & Documents — master profile. | Onboard |
| 8 | IndTraing | Industrial / Induction Training — plan, attendance, certification. | Onboard |
| 9 | Attendance | Daily attendance from biometric / mobile / manual sources. | Operate |
| 10 | DutyRoast | Duty Roster — shifts, swaps, holidays. | Operate |
| 11 | LeaveMng | Leave types, balances, applications, approvals. | Operate |
| 12 | PayRoll | Salary structure, payslips, bank file, statutory. | Pay |
| 13 | UM Locked | Login, employees, departments, designations, roles, menus, workflow. | Platform |
The hire-to-retire flow at a glance
Database
The engine runs against Folkshr_V1 (production) or FolksHR_MasGen_V1 (development). Connection strings live in appsettings.json; the system will refuse to start if the SQL login or the DB is unreachable.
Login, Roles & Common Page Operations
Authentication and page conventions follow the standard MasGen pattern. This chapter focuses on the roles you'll meet in HR and the conventions you'll see on every screen.
2.1 Logging in
- Open the FE URL. Login with username & password.
- JWT issued; redirected to the role's DefaultPath.
- Login.Status must be
Active— Inactive / Blocked rows are admin-only. - Candidates use a separate mobile portal (Chapter 7) — not this login.
2.2 Roles you'll meet
| Role | Sees | Cannot |
|---|---|---|
| SuperAdmin | All modules. | — |
| HR Admin | Employee records, leave, attendance, all reports. | Payroll run, salary structures. |
| Recruiter | Resume, PostReq, IntDes, CandMob, OverseaseRec. | Payroll, attendance regularization. |
| Line Manager | Team's attendance, leave, roster; approves leave. | Other teams' data; salary. |
| Payroll Officer | Salary structure, payroll run, payslip, bank file. | Recruitment data, employee CV. |
| Trainer | Industrial training plans, attendance, certifications. | Salary, leave approvals. |
| Employee Self-Service | Own profile, leave application, payslip, attendance. | Other employees' data. |
2.3 Standard inbox layout
| # | Emp Code | Name | Department | Designation | Status |
|---|---|---|---|---|---|
| 1 | EMP-2026-0042 | Sarah Khan | HR | Recruiter | Active |
| 2 | EMP-2026-0043 | Anil Kumar | Operations | Site Engineer | Probation |
2.4 Common conventions
- Codes are auto-generated. Leave Employee Code, Posting Code, etc. blank when adding — the SP fills them in.
- IsActive / Status flag. Most rows soft-delete via status, never physically remove.
- UserID stamping. CreatedBy / ModifiedBy are filled from the JWT.
- Document attachments. Use the
UploadedFileshook on the API; never store binary in the entity table. - Inbox-driven workflow. Approvals (leave, posting, offer, attendance regularization) are routed through the workflow listener and surface in the approver's inbox.
User Management (UM)
LockedUM is shared across all Folks products (HR, Inventory ERP, BackOffice ERP). Treat this chapter as a reference. Modifying UM affects every consuming app.
3.1 Login & RBAC chain
3.2 Tables you may need to know
| Table | Purpose |
|---|---|
Login | UserName / Password / Status / DefaultPathID / LoginTypeID. |
EmployeeReg | Employee profile with image & designation. The HR module's master record. |
Department / Designation | Org hierarchy used for roster, payroll, approvals. |
UserRolePrivileges | (UserRolesID × SubMenuID × PagePrivilegeTypes) — the actual gate. |
InternalWorkflow / ExternalWorkflow / WorkflowListener | State-machine engine that powers approvals across modules — leave, posting, offer. |
ActivityLog | Append-only audit trail — every Insert/Update/Delete with userid + timestamp. |
Resume / Talent Pool
RecruitThe Resume module is the hopper. Every CV that enters the organisation — recruiter-uploaded, candidate-self-uploaded, agency-fed, or job-portal-imported — lands as a Resume row, gets parsed, scored, tagged, and becomes searchable in the Talent Pool.
4.1 Sub-modules
- Resume Upload — single or bulk PDF/DOCX intake.
- Resume Search — by skill, location, experience, language, certifications.
- Tagging — manual + auto tags from parsing.
- Scoring — fit-score against an open posting.
- Talent Pool segments — saved searches that auto-refresh as new CVs arrive.
4.2 Key tables
| Table | Purpose |
|---|---|
Resume | Header — candidate name, contact, source, current status. |
ResumeFile | The uploaded artefact (path, size, MIME, parse status). |
ResumeSkill | Per-skill row with proficiency & years. |
ResumeEducation / ResumeExperience | Career history rows. |
ResumeTag | Manual + auto tags. |
TalentPoolSegment | Saved-search filter shape. |
4.3 The intake flow
- Recruiter clicks Resume → Upload; multi-file picker accepts PDF, DOCX, RTF.
- SP
Resume_Insertcreates the header; the file lands inUploadedFiles/Resume/. - Background parser extracts skills, education, experience into the child tables.
- Auto-tagger applies tags from skill list + language.
- Recruiter reviews on Resume → Detail and adjusts manually if needed.
4.4 Search
The Talent Pool search supports compound filters: skill AND/OR, min experience, language, location, availability, last updated within. Each filter combination can be saved as a Segment and auto-refreshes as new CVs arrive.
ResumeID.Posting Request (PostReq)
A Posting is an open vacancy. The Posting Request is the formal raise — by HR or a department manager — that asks for the position to be filled.
5.1 Posting fields
| Field | Note |
|---|---|
| Posting Code | Auto-generated. |
| Department / Designation | From UM masters. |
| Headcount | How many openings on this posting. |
| Location / Site | Project site or branch. |
| Contract Type | Permanent / Fixed-term / Daily-rated / Overseas. |
| Salary Range | Min/max for the role. |
| Required Skills | Multi-select from skill master. |
| JD (Job Description) | Long text — appears on candidate-mobile postings. |
| Status | Draft → Submitted → Approved → Open → Filled → Closed. |
| Open Until | Auto-close date. |
5.2 Raising a request
- Open PostReq → New Posting.
- Fill the fields. Pre-load skills from a Designation template if available.
- Save as Draft, or click Submit for Approval to push it into the next chapter's flow.
5.3 What happens on submit
- Status flips Draft → Submitted.
- Approver inbox lights up via the workflow listener.
- The posting is not yet visible to candidates — only after Approve.
Posting Approval
Postings are approved by HR Head (and optionally Finance, if salary-range is over a threshold). The same Workflow Listener engine used elsewhere in the suite drives this.
6.1 The approval inbox
| Column | Source |
|---|---|
| Posting Code | PostReq.PostingCode |
| Department / Designation | UM masters |
| Headcount | PostReq.Headcount |
| Salary Range | PostReq.SalaryMin / SalaryMax |
| Raised By / On | From ActivityLog |
| Aging (hours) | Now − SubmittedAt |
| Status | Submitted |
6.2 Approver actions
- Approve — Status → Approved → Open. Posting becomes visible to candidates on Candidate Mobile.
- Send Back — with comment. Returns to raiser as Draft.
- Reject — Status → Cancelled. Cannot be re-opened (raise a new request instead).
6.3 Auto-close
When the headcount is reached or OpenUntil elapses, the posting moves to Filled or Closed. Closed postings remain in the master for reporting.
Candidate Mobile (CandMob)
The Candidate Mobile module is the public-facing, touch-first experience for applicants. It runs on the same Blazor WASM framework but uses a different layout, separate authentication (candidate accounts, not employee logins), and exposes only the candidate-relevant data.
7.1 What candidates can do
- Self-register and verify mobile + email.
- Browse approved Postings (filtered by location, designation, contract type).
- Apply to a posting — auto-creates a Resume row tied to the application.
- Upload CV, certificates, ID/passport scans, profile photo.
- Track interview status (Scheduled / Done / Awaiting Feedback / Selected / Rejected).
- Accept / decline an offer letter from within the app.
7.2 Architecture note
CandMob shares the same database but uses its own Login type (LoginTypeID = Candidate) so the same UM RBAC engine cleanly separates employee privileges from candidate privileges. There is no overlap between the candidate menu tree and the employee menu tree.
7.3 Key tables (additional to Resume)
| Table | Purpose |
|---|---|
CandidateLogin | Candidate's mobile login (separate from employee Login). |
Application | Links Resume × Posting + status timeline. |
CandidateDocument | Uploaded files (passport, certificate, photo). |
OfferLetter | Generated offer + acceptance status. |
Interview Desk (IntDes)
The Interview Desk is where shortlisted candidates are scheduled, interviewed and dispositioned. Recruiters book slots, panels record feedback, and the disposition feeds the offer flow.
8.1 The interview lifecycle
8.2 Scheduling an interview
- Pick the candidate from the Application list.
- Select Interview Type — Phone / In-person / Video / Panel.
- Pick panel members (employees marked InterviewerEligible).
- Slot date/time + room/link.
- Save — candidate sees the booking in CandMob; panel members get inbox notification.
8.3 Multiple rounds
A single Application can carry many InterviewRound rows. Each round has its own panel, type, and feedback. The candidate's overall disposition rolls up from the last round.
Interview Feedback
Feedback is structured. Each panellist completes a feedback form right after the round; results are visible to the recruiter only after every panellist has submitted (to avoid bias).
9.1 The feedback form
| Section | Type |
|---|---|
| Technical Skills | 1–5 rating |
| Communication | 1–5 rating |
| Cultural Fit | 1–5 rating |
| Strengths | Free text |
| Concerns | Free text |
| Recommendation | Hire / Hold / No Hire |
| Salary Suggestion | Optional numeric |
9.2 Aggregation
Once all feedback rows for the round are submitted, the recruiter sees the consolidated view. The recommendation column is shown as a histogram. The recruiter decides Selected / Rejected / Next-round, and the Application status updates.
Offer & Acceptance
A Selected candidate becomes a candidate for an Offer. Offers are generated, approved, sent to the candidate (via CandMob + email), and acceptance is captured back in the system.
10.1 Generating an offer
- From the consolidated feedback, click Generate Offer.
- Pick salary structure (or use the posting's salary range).
- Add allowances, joining bonus (if any), notice period, joining date.
- Save as Draft → Submit for HR Head approval.
10.2 Offer approval
The same Workflow Listener pattern. Approvers see Offer Code, candidate name, total CTC, joining date and the recruiter's recommendation. They approve, send back, or reject.
10.3 Sending to candidate
Approved offers generate a PDF and push to the candidate's mobile inbox. The candidate has OfferValidityDays (default 7) to accept.
10.4 Acceptance
- Accepted — Application status flips to Hired; Onboarding row auto-creates.
- Counter-offered — candidate proposes adjustments; back to recruiter.
- Declined — Application closed; Resume goes back to Talent Pool.
- Lapsed — no response by validity; same as Declined.
Overseas Recruitment (OverseaseRec)
Cross-borderOverseas hires need extra steps — country selection, visa coordination, mobilisation, and per-country compliance. The OverseaseRec module overlays these onto the standard recruitment flow.
11.1 What changes vs domestic
| Aspect | Domestic | Overseas |
|---|---|---|
| Posting | Local site | Country + project site |
| Visa | — | Mandatory; per-country type |
| Mobilisation | — | Flight, accommodation, ground-transfer pre-arranged |
| Contract | Permanent / Fixed-term | Fixed-term per visa duration |
| Currency | Local | Often USD/EUR + local-allowance |
| Statutory | Local PF/Tax | Per-country split — handled by Payroll |
11.2 The overseas flow
11.3 Key tables
| Table | Purpose |
|---|---|
OverseasPosting | Posting + country + visa-type fields. |
VisaApplication | Per-candidate visa workflow with status timeline. |
Mobilisation | Flight, hotel, ground transfer assignments. |
Demobilisation | End-of-contract repatriation. |
CountryComplianceProfile | Per-country settings used by Payroll. |
Onboarding Process (OnboardingPrcs)
OnboardOnce an offer is accepted, an Onboarding row is auto-created. This is the joiner's checklist of everything that must happen before Day 1 (and a few things on Day 1 itself).
12.1 The standard checklist
- Document collection — ID, passport, education, experience, photo.
- Background verification (BGV) launch.
- IT account creation — email, AD, role assignment.
- Employee ID card issue.
- Biometric enrolment (for Attendance).
- Insurance enrolment.
- Induction training booking (Industrial Training, Chapter 14).
- Day-1 buddy assignment + welcome pack.
- Contract sign-off.
12.2 Configurable templates
Different roles need different checklists. OnboardingTemplate defines reusable checklists per Designation × Country × Contract Type. New onboardings auto-clone from the matching template.
12.3 Status flow
| Status | Meaning |
|---|---|
| Initiated | Auto-created on offer acceptance. |
| In Progress | Some checklist items done. |
| Day-1 Ready | All pre-joining items complete. |
| Joined | Employee Code allocated; status flips to Active. |
| No-Show | Did not join by deadline; offer voided. |
EmployeeReg row that the rest of the platform consumes.Employee Records & Documents (ERD)
ERD is the master record for every active employee. It pulls from EmployeeReg (created at joining) and adds the deeper detail — family, addresses, nominees, documents, qualifications, certifications, prior experience.
13.1 The ERD page tree
- Personal — name, DOB, gender, marital, nationality, photo.
- Identity — passport, national ID, driving licence, PAN/SSN.
- Contact & Address — current + permanent + emergency contact.
- Family / Dependants — for insurance + leave.
- Education — degree, institution, year.
- Experience — prior employers, designations, dates.
- Certifications — issuing body, expiry date, renewal reminder.
- Documents — every uploaded artefact, with revisioning.
- Bank & Tax — for Payroll's bank file + statutory.
- History — designation/department/salary changes over time.
13.2 Employee Self-Service view
Employees see a read-only version of their own ERD via the Self-Service portal, plus an "Edit and Submit" path for fields they're allowed to change (contact, emergency contact, dependants). Changes flow through HR-Admin approval.
13.3 Document expiry watch
The system watches for expiring passports, visas, certifications and licences and surfaces them in the HR-Admin inbox 30 / 60 / 90 days ahead. Configurable per document type.
Industrial Training (IndTraing)
Industrial Training covers induction, ongoing refresher, and certification-bearing technical training. It owns programs, schedules, attendance, assessment and certification.
14.1 Program structure
| Entity | Holds |
|---|---|
TrainingProgram | Title, hours, target audience, recurrence. |
TrainingSession | Specific occurrence — date, location, trainer. |
TrainingEnrolment | Per-employee × Session row. |
TrainingAttendance | Day-by-day presence/absence. |
TrainingAssessment | Scores from quiz / practical. |
TrainingCertificate | Issued certificate; PDF artefact + expiry. |
14.2 The trainer's flow
- Create or pick a Program.
- Schedule a Session — date, room, trainer.
- Enrol participants (manual or auto from a Designation rule).
- Mark daily Attendance during the run.
- Record Assessment scores.
- System generates Certificates for those who pass.
14.3 Induction training
Onboarding (Chapter 12) auto-enrols joiners into the Induction program based on their designation. Day-1 attendance gates Joining → Active.
Probation & Confirmation
New joiners typically have a probation period. The system tracks it, surfaces probation-end reviews, and flips status from Probation to Confirmed.
15.1 Configuration
Per Designation × Contract Type, probation duration is configured (3 / 6 / 12 months default). On Joining, an EmployeeProbation row is created with EndDate = JoiningDate + duration.
15.2 Probation review
- 30 days before EndDate, a Probation Review task lands in the line manager's inbox.
- Manager fills the review form — performance, attendance, behaviour.
- Decision: Confirm / Extend / Terminate.
- HR-Admin approves the decision.
- Status flips on EndDate (or earlier if Terminated).
15.3 What changes at confirmation
- Status: Probation → Confirmed.
- Salary structure may change (some allowances activate post-confirmation).
- Leave accrual rate often increases.
- Insurance dependants become eligible.
Attendance — Sources & Daily Roll-up
OperateThe Attendance module accepts multiple sources, reconciles them into a single daily record per employee, and feeds Payroll, Leave and Roster reports.
16.1 Sources
| Source | Captures | Note |
|---|---|---|
| Biometric Device | InTime / OutTime | Most accurate; primary source where available. |
| Mobile Geo-Punch | InTime / OutTime + lat/long | For field staff & site engineers. |
| Manual Entry | Any field, by HR-Admin | For exceptions; always logs reason + actor. |
| Roster-derived | Expected presence | Used to detect absent vs. on-leave vs. unscheduled. |
| Leave | Approved leave overrides | From LeaveMng — Chapter 21. |
| Holiday Calendar | Public/site holidays | From HolidayCalendar master. |
16.2 Daily roll-up SP
A nightly SP Attendance_Daily_Rollup consolidates all sources into AttendanceDaily — one row per employee per date. Status options:
- Present — InTime + OutTime captured, hours within tolerance.
- Late — InTime > scheduled + grace.
- Half-Day — hours below half-day threshold.
- On Leave — approved leave for that date.
- Holiday — public/site holiday.
- Absent — scheduled but no source & no leave.
- Off — roster off-day; no expectation.
16.3 Attendance dashboard
Attendance Regularization
When an employee's record is wrong (forgot to punch, biometric failure, on-duty travel), they raise a Regularization request. Manager approves, the daily roll-up gets corrected, and the audit trail captures the override.
17.1 Raising a request
- Employee opens Self-Service → Attendance → My Records.
- Picks a date with the wrong status; clicks Regularize.
- Enters the correct InTime / OutTime + reason.
- Submits — request lands in the line manager's inbox.
17.2 Manager action
Manager sees: original record, employee-claimed correction, reason, and supporting evidence (if attached). Approves, sends back, or rejects.
17.3 What happens on approve
SP AttendanceRegularization_Approve updates the matching AttendanceDaily row and writes an AttendanceAdjustmentLog entry capturing the before/after. The Regularization row is marked Approved and remains queryable for audit.
Duty Roster (DutyRoast)
The Duty Roster module plans who works what shift, where, on which days. It is the source of "expected presence" used by Attendance and the basis for shift allowances in Payroll.
18.1 Concepts
- Shift — a named time window (e.g. Day 08:00–17:00, Night 20:00–05:00).
- Shift Pattern — a recurring sequence (e.g. 4-on-2-off).
- Roster — for a Site × Department × Period (week / fortnight / month), the resolved Employee × Date × Shift grid.
- Swap Request — employee-initiated trade with another employee, requires manager approval.
- Holiday Override — site-specific holiday that maps shift to off-day.
18.2 Building a roster
- Pick the Site, Department, Period.
- Pick the default Shift Pattern.
- System materialises the grid with each employee's default shift.
- Adjust manually for known leaves, training days, project deployments.
- Publish — visible to employees on Self-Service; informs Attendance roll-up.
18.3 Coverage check
Before publishing, the system checks minimum coverage per shift (e.g. at least 3 engineers on Day shift). Insufficient coverage shows a red banner and blocks Publish until resolved.
Roster Swaps, Holidays & Variance
19.1 Swap request flow
- Employee A opens Self-Service → Roster; picks a date; clicks Swap.
- Picks Employee B (must be qualified for the same shift).
- Enters reason; submits.
- Employee B sees the request; accepts or declines.
- If B accepts → manager approval inbox.
- On manager Approve → roster is updated; both employees see the new grid.
19.2 Holidays
HolidayCalendar is a per-Site × Year master. When a holiday lands on a rostered shift, the system auto-shifts that day to Off and flags any employee who still worked (likely deserves holiday OT — picked up by Payroll).
19.3 Roster-vs-actual variance
The Variance Report compares what the roster expected vs. what Attendance recorded. Use it to spot:
- Employees frequently absent on rostered days.
- Excessive swaps between specific pairs of employees.
- Shift-allowance mismatches (worked night, claimed day).
Leave Management — Master & Balances
The Leave Management module configures leave types, accrues balances, processes applications, and feeds Attendance and Payroll.
20.1 Leave types
| Type | Accrual | Encashable? | Carry-forward? |
|---|---|---|---|
| Annual Leave (AL) | Monthly accrual | Yes | Yes (with cap) |
| Sick Leave (SL) | Annual entitlement | No | Limited |
| Casual Leave (CL) | Annual entitlement | No | No |
| Maternity | Per-event | — | — |
| Paternity | Per-event | — | — |
| Bereavement | Per-event | — | — |
| Comp-off | Per overtime claim | Configurable | Limited expiry |
| Unpaid (LWP) | — | — | — |
20.2 Accrual
Configurable per Leave Type. Most types are monthly accrual on the 1st; some are annual (lump-sum on Jan 1 or anniversary). The SP Leave_Accrue_Monthly runs nightly on the 1st and credits balances.
20.3 Balances dashboard
Self-Service shows the employee their balance per type — opening, accrued, taken, encashed, current. Managers see their team's balances on the same page filtered by team.
20.4 Year-end processing
- Carry-forward applies (capped at policy max).
- Encashable balances above carry-forward cap auto-encash via Payroll.
- Non-carry-forward balances zero-out.
Leave Application Flow
21.1 Apply
- Employee opens Self-Service → Leave → Apply.
- Picks Leave Type (only types with positive balance + within rules show).
- Picks From / To dates; system computes working days using site holiday calendar + roster.
- Enters reason; optionally attaches medical certificate (mandatory for SL > 2 days).
- Submits — Application moves to Submitted; lands in line manager's inbox.
21.2 Manager approval
- Approve — application status flips to Approved; Attendance overrides for the dates.
- Send back — comment, returns to employee.
- Reject — application closed; balance untouched.
21.3 Multi-level approval
Long leaves (configurable threshold, default >5 days) need second-level approval (HR Head). The Workflow Listener handles the second hop automatically.
21.4 Cancellation
Approved leave can be cancelled by the employee (before start) or by HR-Admin (anytime). Cancellation restores the balance and reverts Attendance to its prior state.
Payroll — Salary Structure
PayPayroll is the most configurable module. Salary structure defines what an employee earns and what is deducted, broken down into components.
22.1 Components
| Component Type | Examples | Computation |
|---|---|---|
| Earning — Fixed | Basic, HRA, Special Allowance | Fixed monthly amount. |
| Earning — Variable | Overtime, Shift Allowance, Incentive | Computed from Attendance / Roster / claim. |
| Earning — Reimbursement | Travel, Mobile, Internet | Submitted as claim with bills. |
| Deduction — Statutory | PF, ESI, Tax | Computed per country compliance profile. |
| Deduction — Loan/Advance | Salary advance, Education loan | EMI from EmployeeLoan. |
| Deduction — Other | Insurance premium, Canteen, Transport | Per-employee or per-policy. |
22.2 Structure assignment
- Template — per Designation × Country × Contract Type.
- Override — per-employee tweak (e.g. retention bonus).
- Effective dating — every change carries a from-date; the run uses the structure effective on the run date.
22.3 Master tables
SalaryComponent— master list (code, name, type, taxable flag).SalaryStructureTemplate+...Component— reusable structure.EmployeeSalaryStructure+...Component— per-employee live structure with effective dates.EmployeeLoan+...Schedule— loan ledger feeding deductions.
Payroll — Allowances & Deductions
23.1 Variable earnings
| Earning | Source | Formula |
|---|---|---|
| Overtime | Attendance hours over scheduled | OT hours × hourly rate × OT factor (1.5×, 2×). |
| Shift Allowance | Roster shift code | Per-shift fixed amount × days. |
| Incentive | Manager-entered claim | Approved amount. |
| Holiday-worked | Attendance on rostered Off + Holiday flag | Day rate × holiday factor. |
23.2 Statutory deductions
Driven by CountryComplianceProfile. The profile tells the engine which slabs to apply (income tax brackets), which percentages (PF, ESI, social-security), and which caps. Updating the profile mid-year is allowed — the run uses the profile effective on the run date.
23.3 Loan management
Loans are issued via the HR-Admin Loan page. Each loan has principal, interest, EMI, tenure. Payroll deducts the EMI per run until tenure ends. Early settlement is supported.
23.4 Reimbursements
Employees submit reimbursement claims (travel, mobile, internet) with supporting bills. Manager approves, finance verifies, and the approved amount is added to the next Payroll run as a tax-free or taxable line per policy.
Payroll Run & Payslip Generation
The Payroll Run is the monthly compute. It pulls Attendance, Leave, Roster, Loans, Reimbursements, applies the Salary Structure, runs Statutory, and produces Payslips.
24.1 The run pipeline
24.2 Pre-run checklist
- Attendance cut-off date locked.
- Pending leave applications resolved.
- Pending attendance regularizations processed.
- Reimbursement claims approved or deferred.
- Loan adjustments verified.
- New joiners and exits effective for the period flagged.
24.3 The compute
- Open Payroll → Run → New Run; pick Period (month/year) and Group (typically Country × Designation Band).
- Click Compute. The SP
Payroll_Compute_Runcreates aPayrollRunheader and per-employeePayrollRunLinerows with all components. - Review on the Review screen — outliers (very high/low) are flagged.
- Drill into any line to see the breakdown: every earning, every deduction, taxable, net.
- Click Approve. SP
Payroll_Approve_Runlocks the run and generates Payslips.
24.4 Payslip
One PDF per employee, generated server-side. Layout includes: header (period, employee, designation), earnings table, deductions table, net pay, year-to-date summary, and (optionally) leave balance summary. Payslips are emailed and also visible in Self-Service.
Bank Disbursement & Statutory Outputs
25.1 Bank file
From the approved Payroll Run, generate a Bank Disbursement File in the format required by your bank (commonly NEFT/RTGS/ACH CSV, but configurable). The file is downloadable, signed, and uploaded to the bank portal manually or via an integration.
| Column | Source |
|---|---|
| EmployeeCode | EmployeeReg |
| BankAccountNo / IFSC | EmployeeBankInfo |
| Net Amount | PayrollRunLine.NetPay |
| Reference | PayrollRunCode + EmployeeCode |
25.2 Statutory outputs
- PF Return — per-employee PF + employer PF, in the country's required format.
- ESI Return — Social-security challan format.
- Income Tax — Withholding statement / TDS file.
- Form-16 / Annual Tax Statement — generated annually for each employee.
25.3 Reconciliation
Once the bank confirms disbursement, the Reconcile screen marks each employee's payment as Settled and clears it. Failed payments stay as Pending with a reason for HR/Finance to fix.
Reports
| Report | Question it answers |
|---|---|
| Headcount | How many active / probation / overseas / contract employees by department/site as of a date? |
| Recruitment Funnel | For each Posting: applied / shortlisted / interviewed / offered / hired counts and conversion %. |
| Source-of-Hire | Where do hires come from — referral, portal, agency, walk-in? |
| Time-to-Hire | Days from posting open to candidate joined — by designation. |
| Attendance Roll-up | Per-employee monthly Present / Absent / Late / Half-day / Leave / Off. |
| Late-arrival Trend | Repeat late-arrivers by department. |
| Leave Balance | Per-employee balance per leave type as of a date. |
| Leave Liability | Encashable balance × salary — financial liability. |
| Roster Variance | Roster expected vs Attendance actual. |
| Payroll Cost | Per-month total cost by department / site / project. |
| Salary Band Distribution | Histogram across designations. |
| Probation End Watch | Probationers with end date within next 30 days. |
| Document Expiry | Passports, visas, certifications expiring within next 90 days. |
| Training Coverage | Per-program enrolment and certification rate. |
| Attrition | Exits per month, by reason and by tenure band. |
Dashboards & Analytics
Three persona dashboards land on login depending on role.
27.1 HR Admin dashboard
- Headcount KPI tile + last-30-day trend.
- Open Postings count, oldest open, candidates pending interview.
- Today's Present / Late / Absent / Leave breakdown.
- Pending approvals (Postings, Offers, Leave, Regularization).
- Document expiries within 30 days.
27.2 Recruiter dashboard
- My open Postings + applications-per-posting.
- Today's interviews + this-week pipeline.
- My funnel — last 30/60/90 days.
27.3 Line Manager dashboard
- Team count + today's attendance.
- Pending Leave + Regularization approvals.
- Team Roster preview for the next 7 days.
- Roster Variance summary for the past month.
Status & Notification Reference
| Entity | Statuses |
|---|---|
| Resume | Uploaded Parsed Tagged Open Hired Withdrawn |
| Posting | Draft Submitted Approved Open Filled Closed Cancelled |
| Application | Applied Shortlisted Interviewed Offered Hired Rejected |
| Interview Round | Scheduled Done Awaiting Feedback Feedback Received |
| Offer | Draft Submitted Approved Sent Accepted Declined Lapsed |
| Visa Application | Initiated Documents Submitted Under Review Issued Stamped Rejected |
| Onboarding | Initiated In Progress Day-1 Ready Joined No-Show |
| Employee | Probation Confirmed On Leave Suspended Resigned Terminated |
| Attendance Daily | Present Late Half-Day On Leave Holiday Absent Off |
| Leave Application | Submitted Approved Rejected Cancelled |
| Payroll Run | Computed Under Review Approved Disbursed Reconciled |
28.1 Notifications you'll see in the Inbox
- Posting submitted for approval.
- Interview scheduled / feedback due.
- Offer ready for approval.
- Leave application submitted (manager).
- Attendance regularization request.
- Probation review due (line manager + HR).
- Document expiring within 30 days (HR-Admin + employee).
- Payroll run ready for review.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Resume search returns nothing | Parsing failed; tags weren't applied. | Open the Resume; click Re-parse; or add tags manually. |
| Posting not visible to candidates | Status is not Approved/Open. | Check approval inbox; approve. |
| Candidate cannot apply | Required documents not on profile. | Candidate uploads via CandMob; the Apply button enables. |
| Interview feedback not visible | Not all panellists submitted. | Wait for all panellists; or HR-Admin can override. |
| Offer not generated | Application not in Selected status. | Recruiter completes the disposition first. |
| Visa stuck in Documents Submitted | External processing delay. | Update status manually with reference number; chase external party. |
| Onboarding cannot complete | Checklist items pending. | Open the Onboarding row; resolve each pending item. |
| Attendance shows Absent for present employee | Source not captured (biometric down, no mobile-punch). | Raise Attendance Regularization with evidence. |
| Roster Publish blocked | Coverage check failed. | Adjust assignments to meet minimum coverage. |
| Leave balance wrong | Accrual not posted; or leave-type rule changed mid-period. | Run Leave_Accrue_Monthly manually for the missing month; verify rules. |
| Payroll Run misses an employee | Active status not set on the run date; or salary structure not effective. | Verify EmployeeReg.Status and EmployeeSalaryStructure.EffectiveFrom. |
| Bank file rejects rows | Bank account / IFSC missing or invalid. | Update EmployeeBankInfo; regenerate file. |
| Payslip PDF blank | Template missing for that locale or language. | Verify PayslipTemplate config; fall back to default. |
Glossary
| Term | Meaning |
|---|---|
| Resume | Top-of-funnel candidate CV record. |
| Talent Pool | Searchable corpus of all CVs ever uploaded. |
| PostReq | Posting Request — the formal raise of a vacancy. |
| Posting | An open vacancy candidates can apply to. |
| Application | Resume × Posting linkage with status timeline. |
| CandMob | Candidate Mobile — the touch-first applicant experience. |
| IntDes | Interview Desk — scheduling, panels, feedback. |
| Round | One iteration of an interview (an Application can have many). |
| Disposition | The outcome decision from a round (Selected / Rejected / Next). |
| Offer | Formal offer letter + acceptance status. |
| OverseaseRec | Overseas Recruitment — country, visa, mobilisation overlay. |
| Visa Application | Candidate's visa workflow row. |
| Mobilisation / Demobilisation | Pre-arranged flight + accommodation + transfer for arrival / repatriation. |
| Onboarding | Joining checklist that turns an offer-accepted candidate into an active employee. |
| ERD | Employee Records & Documents — master profile. |
| BGV | Background Verification. |
| Probation | Initial period during which the employee can be confirmed, extended or terminated. |
| Roster | Per-Site × Period grid of Employee × Date × Shift. |
| Shift / Shift Pattern | Named time window / recurring sequence. |
| Swap | Employee-initiated trade of rostered shifts. |
| Regularization | Employee's request to correct an attendance record. |
| Comp-off | Compensatory off granted for working a non-working day. |
| LWP | Leave Without Pay. |
| CTC | Cost To Company — total annual cost of an employee. |
| Payroll Run | Monthly compute of payslip lines for a Group. |
| Bank File | Disbursement file uploaded to the bank to credit salaries. |
| Statutory | Legally mandated deductions (PF, ESI, Tax, Social Security). |
| Self-Service | Employee portal for own profile, leave, payslip, attendance. |
| Workflow Listener | UM-side engine that propagates approvals across modules. |
| SP-driven | Architecture rule — every read & write through a stored procedure. |