Folks HR

Recruit · Onboard · Operate · Pay — User Manual

Version 1.0  |  May 2026  |  MasGen Innovations

13 Modules · 100+ Tables · 400+ Stored Procedures · 80+ Razor Pages
01

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.

SP-driven core

Every read and write goes through a named stored procedure — predictable, auditable, no LINQ in business logic.

RBAC & menu privileges

Roles map to designations; designations to menus; menus to actions. Recruiter, HR-Admin, Line-Manager, Payroll-Officer and Accountant are scoped accordingly.

Blazor WASM UI

.NET Blazor WebAssembly — runs in the browser, works offline-first for candidate-mobile flows, snappy on phone or desktop.

Candidate Mobile

Dedicated touch-first experience for applicants — apply, upload, track, accept — without ever needing the desktop portal.

Modules in this manual

#ModulePurposePhase
1ResumeCV intake, parsing, talent-pool searching.Recruit
2PostReqPosting / requisition raise & approval.Recruit
3CandMobMobile-side candidate experience — apply, upload, track.Recruit
4IntDesInterview Desk — scheduling, panels, feedback.Recruit
5OverseaseRecOverseas Recruitment — country/visa workflow.Recruit
6OnboardingPrcsJoining checklist, document collection, day-1 setup.Onboard
7ERDEmployee Records & Documents — master profile.Onboard
8IndTraingIndustrial / Induction Training — plan, attendance, certification.Onboard
9AttendanceDaily attendance from biometric / mobile / manual sources.Operate
10DutyRoastDuty Roster — shifts, swaps, holidays.Operate
11LeaveMngLeave types, balances, applications, approvals.Operate
12PayRollSalary structure, payslips, bank file, statutory.Pay
13UM LockedLogin, employees, departments, designations, roles, menus, workflow.Platform

The hire-to-retire flow at a glance

CV In
Interview
Offer
Onboard
Attend
Pay

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.

Companion manuals. If you also run travel ops or a stock/POS business, see the Folks BackOffice ERP and Folks Inventory ERP manuals — same MasGen platform, different operational core.
02

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

  1. Open the FE URL. Login with username & password.
  2. JWT issued; redirected to the role's DefaultPath.
  3. Login.Status must be Active — Inactive / Blocked rows are admin-only.
  4. Candidates use a separate mobile portal (Chapter 7) — not this login.

2.2 Roles you'll meet

RoleSeesCannot
SuperAdminAll modules.
HR AdminEmployee records, leave, attendance, all reports.Payroll run, salary structures.
RecruiterResume, PostReq, IntDes, CandMob, OverseaseRec.Payroll, attendance regularization.
Line ManagerTeam's attendance, leave, roster; approves leave.Other teams' data; salary.
Payroll OfficerSalary structure, payroll run, payslip, bank file.Recruitment data, employee CV.
TrainerIndustrial training plans, attendance, certifications.Salary, leave approvals.
Employee Self-ServiceOwn profile, leave application, payslip, attendance.Other employees' data.

2.3 Standard inbox layout

Folks HR — Standard inbox page
New Refresh Export Search…
#Emp CodeNameDepartmentDesignationStatus
1EMP-2026-0042Sarah KhanHRRecruiterActive
2EMP-2026-0043Anil KumarOperationsSite EngineerProbation

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 UploadedFiles hook 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.
03

User Management (UM)

Locked

UM 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

Login ──▶ Users ──▶ UserRoles ──▶ UserRolePrivileges ──▶ SubMenu ──▶ MainMenu │ │ │ └──▶ PagePrivilegeTypes (View / Create / Edit / Delete / Approve) │ └──▶ DefaultPath (where to land after login)

3.2 Tables you may need to know

TablePurpose
LoginUserName / Password / Status / DefaultPathID / LoginTypeID.
EmployeeRegEmployee profile with image & designation. The HR module's master record.
Department / DesignationOrg hierarchy used for roster, payroll, approvals.
UserRolePrivileges(UserRolesID × SubMenuID × PagePrivilegeTypes) — the actual gate.
InternalWorkflow / ExternalWorkflow / WorkflowListenerState-machine engine that powers approvals across modules — leave, posting, offer.
ActivityLogAppend-only audit trail — every Insert/Update/Delete with userid + timestamp.
Locked module. Do not modify UM API/FE/DB code. Any change must be reviewed across all consumer products (HR, Inventory ERP, BackOffice ERP).
04

Resume / Talent Pool

Recruit

The 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

TablePurpose
ResumeHeader — candidate name, contact, source, current status.
ResumeFileThe uploaded artefact (path, size, MIME, parse status).
ResumeSkillPer-skill row with proficiency & years.
ResumeEducation / ResumeExperienceCareer history rows.
ResumeTagManual + auto tags.
TalentPoolSegmentSaved-search filter shape.

4.3 The intake flow

  1. Recruiter clicks Resume → Upload; multi-file picker accepts PDF, DOCX, RTF.
  2. SP Resume_Insert creates the header; the file lands in UploadedFiles/Resume/.
  3. Background parser extracts skills, education, experience into the child tables.
  4. Auto-tagger applies tags from skill list + language.
  5. 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.

The Resume module is the recruiter's top-of-funnel. Everything downstream — PostReq, IntDes, CandMob, Offer — points back to the Resume's ResumeID.
05

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

FieldNote
Posting CodeAuto-generated.
Department / DesignationFrom UM masters.
HeadcountHow many openings on this posting.
Location / SiteProject site or branch.
Contract TypePermanent / Fixed-term / Daily-rated / Overseas.
Salary RangeMin/max for the role.
Required SkillsMulti-select from skill master.
JD (Job Description)Long text — appears on candidate-mobile postings.
StatusDraft → Submitted → Approved → Open → Filled → Closed.
Open UntilAuto-close date.

5.2 Raising a request

  1. Open PostReq → New Posting.
  2. Fill the fields. Pre-load skills from a Designation template if available.
  3. 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.
06

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

ColumnSource
Posting CodePostReq.PostingCode
Department / DesignationUM masters
HeadcountPostReq.Headcount
Salary RangePostReq.SalaryMin / SalaryMax
Raised By / OnFrom ActivityLog
Aging (hours)Now − SubmittedAt
StatusSubmitted

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.

07

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)

TablePurpose
CandidateLoginCandidate's mobile login (separate from employee Login).
ApplicationLinks Resume × Posting + status timeline.
CandidateDocumentUploaded files (passport, certificate, photo).
OfferLetterGenerated offer + acceptance status.
Candidates never see the employee portal — and vice versa. The split-login design is intentional and security-relevant.
08

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

Shortlist
Schedule
Conduct
Feedback
Selected
Rejected

8.2 Scheduling an interview

  1. Pick the candidate from the Application list.
  2. Select Interview Type — Phone / In-person / Video / Panel.
  3. Pick panel members (employees marked InterviewerEligible).
  4. Slot date/time + room/link.
  5. 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.

09

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

SectionType
Technical Skills1–5 rating
Communication1–5 rating
Cultural Fit1–5 rating
StrengthsFree text
ConcernsFree text
RecommendationHire / Hold / No Hire
Salary SuggestionOptional 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.

Anti-bias. Panellists do not see each other's feedback before they submit. Once all are in, the recruiter consolidates.
10

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

  1. From the consolidated feedback, click Generate Offer.
  2. Pick salary structure (or use the posting's salary range).
  3. Add allowances, joining bonus (if any), notice period, joining date.
  4. 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.
11

Overseas Recruitment (OverseaseRec)

Cross-border

Overseas 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

AspectDomesticOverseas
PostingLocal siteCountry + project site
VisaMandatory; per-country type
MobilisationFlight, accommodation, ground-transfer pre-arranged
ContractPermanent / Fixed-termFixed-term per visa duration
CurrencyLocalOften USD/EUR + local-allowance
StatutoryLocal PF/TaxPer-country split — handled by Payroll

11.2 The overseas flow

Overseas Posting ──▶ Application ──▶ Interview ──▶ Selected │ ▼ Visa Application Initiated │ ▼ Visa Issued + Joining Date Set │ ▼ Mobilisation (flight, hotel, transfer) │ ▼ On-site Onboarding

11.3 Key tables

TablePurpose
OverseasPostingPosting + country + visa-type fields.
VisaApplicationPer-candidate visa workflow with status timeline.
MobilisationFlight, hotel, ground transfer assignments.
DemobilisationEnd-of-contract repatriation.
CountryComplianceProfilePer-country settings used by Payroll.
Visa Application carries its own status flow (Initiated → Documents Submitted → Under Review → Issued → Stamped → Used). Mobilisation cannot start until Issued.
12

Onboarding Process (OnboardingPrcs)

Onboard

Once 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

StatusMeaning
InitiatedAuto-created on offer acceptance.
In ProgressSome checklist items done.
Day-1 ReadyAll pre-joining items complete.
JoinedEmployee Code allocated; status flips to Active.
No-ShowDid not join by deadline; offer voided.
Joining triggers Employee Code allocation. The same SP that flips Onboarding to Joined also creates the EmployeeReg row that the rest of the platform consumes.
13

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.

14

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

EntityHolds
TrainingProgramTitle, hours, target audience, recurrence.
TrainingSessionSpecific occurrence — date, location, trainer.
TrainingEnrolmentPer-employee × Session row.
TrainingAttendanceDay-by-day presence/absence.
TrainingAssessmentScores from quiz / practical.
TrainingCertificateIssued certificate; PDF artefact + expiry.

14.2 The trainer's flow

  1. Create or pick a Program.
  2. Schedule a Session — date, room, trainer.
  3. Enrol participants (manual or auto from a Designation rule).
  4. Mark daily Attendance during the run.
  5. Record Assessment scores.
  6. 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.

Compliance tip. Some certifications expire — the system reminds 30 days ahead and blocks shift-roster placement on certain roles if an expiry passes (e.g. forklift, height-work).
15

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

  1. 30 days before EndDate, a Probation Review task lands in the line manager's inbox.
  2. Manager fills the review form — performance, attendance, behaviour.
  3. Decision: Confirm / Extend / Terminate.
  4. HR-Admin approves the decision.
  5. Status flips on EndDate (or earlier if Terminated).

15.3 What changes at confirmation

  • Status: ProbationConfirmed.
  • Salary structure may change (some allowances activate post-confirmation).
  • Leave accrual rate often increases.
  • Insurance dependants become eligible.
16

Attendance — Sources & Daily Roll-up

Operate

The Attendance module accepts multiple sources, reconciles them into a single daily record per employee, and feeds Payroll, Leave and Roster reports.

16.1 Sources

SourceCapturesNote
Biometric DeviceInTime / OutTimeMost accurate; primary source where available.
Mobile Geo-PunchInTime / OutTime + lat/longFor field staff & site engineers.
Manual EntryAny field, by HR-AdminFor exceptions; always logs reason + actor.
Roster-derivedExpected presenceUsed to detect absent vs. on-leave vs. unscheduled.
LeaveApproved leave overridesFrom LeaveMng — Chapter 21.
Holiday CalendarPublic/site holidaysFrom 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 — Daily Dashboard
Present
412
On Leave
23
Late
14
Absent
7
17

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

  1. Employee opens Self-Service → Attendance → My Records.
  2. Picks a date with the wrong status; clicks Regularize.
  3. Enters the correct InTime / OutTime + reason.
  4. 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.

Regularizations are visible to Payroll. If an attendance row is regularized after the cut-off date, Payroll uses the corrected value but flags the row for explanation.
18

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

  1. Pick the Site, Department, Period.
  2. Pick the default Shift Pattern.
  3. System materialises the grid with each employee's default shift.
  4. Adjust manually for known leaves, training days, project deployments.
  5. 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.

19

Roster Swaps, Holidays & Variance

19.1 Swap request flow

  1. Employee A opens Self-Service → Roster; picks a date; clicks Swap.
  2. Picks Employee B (must be qualified for the same shift).
  3. Enters reason; submits.
  4. Employee B sees the request; accepts or declines.
  5. If B accepts → manager approval inbox.
  6. 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).
20

Leave Management — Master & Balances

The Leave Management module configures leave types, accrues balances, processes applications, and feeds Attendance and Payroll.

20.1 Leave types

TypeAccrualEncashable?Carry-forward?
Annual Leave (AL)Monthly accrualYesYes (with cap)
Sick Leave (SL)Annual entitlementNoLimited
Casual Leave (CL)Annual entitlementNoNo
MaternityPer-event
PaternityPer-event
BereavementPer-event
Comp-offPer overtime claimConfigurableLimited 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.
21

Leave Application Flow

21.1 Apply

  1. Employee opens Self-Service → Leave → Apply.
  2. Picks Leave Type (only types with positive balance + within rules show).
  3. Picks From / To dates; system computes working days using site holiday calendar + roster.
  4. Enters reason; optionally attaches medical certificate (mandatory for SL > 2 days).
  5. 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.

Half-day leave. Half-day options are first-half / second-half. The Attendance roll-up uses the existing punch + leave together to compute the daily status.
22

Payroll — Salary Structure

Pay

Payroll is the most configurable module. Salary structure defines what an employee earns and what is deducted, broken down into components.

22.1 Components

Component TypeExamplesComputation
Earning — FixedBasic, HRA, Special AllowanceFixed monthly amount.
Earning — VariableOvertime, Shift Allowance, IncentiveComputed from Attendance / Roster / claim.
Earning — ReimbursementTravel, Mobile, InternetSubmitted as claim with bills.
Deduction — StatutoryPF, ESI, TaxComputed per country compliance profile.
Deduction — Loan/AdvanceSalary advance, Education loanEMI from EmployeeLoan.
Deduction — OtherInsurance premium, Canteen, TransportPer-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.
23

Payroll — Allowances & Deductions

23.1 Variable earnings

EarningSourceFormula
OvertimeAttendance hours over scheduledOT hours × hourly rate × OT factor (1.5×, 2×).
Shift AllowanceRoster shift codePer-shift fixed amount × days.
IncentiveManager-entered claimApproved amount.
Holiday-workedAttendance on rostered Off + Holiday flagDay 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.

The deduction order matters — statutory before loan, loan before voluntary — and is configurable. The default order matches most jurisdictions.
24

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

Cut-off
Compute
Review
Approve
Disburse
Payslip

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

  1. Open Payroll → Run → New Run; pick Period (month/year) and Group (typically Country × Designation Band).
  2. Click Compute. The SP Payroll_Compute_Run creates a PayrollRun header and per-employee PayrollRunLine rows with all components.
  3. Review on the Review screen — outliers (very high/low) are flagged.
  4. Drill into any line to see the breakdown: every earning, every deduction, taxable, net.
  5. Click Approve. SP Payroll_Approve_Run locks 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.

25

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.

ColumnSource
EmployeeCodeEmployeeReg
BankAccountNo / IFSCEmployeeBankInfo
Net AmountPayrollRunLine.NetPay
ReferencePayrollRunCode + 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.

26

Reports

ReportQuestion it answers
HeadcountHow many active / probation / overseas / contract employees by department/site as of a date?
Recruitment FunnelFor each Posting: applied / shortlisted / interviewed / offered / hired counts and conversion %.
Source-of-HireWhere do hires come from — referral, portal, agency, walk-in?
Time-to-HireDays from posting open to candidate joined — by designation.
Attendance Roll-upPer-employee monthly Present / Absent / Late / Half-day / Leave / Off.
Late-arrival TrendRepeat late-arrivers by department.
Leave BalancePer-employee balance per leave type as of a date.
Leave LiabilityEncashable balance × salary — financial liability.
Roster VarianceRoster expected vs Attendance actual.
Payroll CostPer-month total cost by department / site / project.
Salary Band DistributionHistogram across designations.
Probation End WatchProbationers with end date within next 30 days.
Document ExpiryPassports, visas, certifications expiring within next 90 days.
Training CoveragePer-program enrolment and certification rate.
AttritionExits per month, by reason and by tenure band.
27

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.
28

Status & Notification Reference

EntityStatuses
ResumeUploaded Parsed Tagged Open Hired Withdrawn
PostingDraft Submitted Approved Open Filled Closed Cancelled
ApplicationApplied Shortlisted Interviewed Offered Hired Rejected
Interview RoundScheduled Done Awaiting Feedback Feedback Received
OfferDraft Submitted Approved Sent Accepted Declined Lapsed
Visa ApplicationInitiated Documents Submitted Under Review Issued Stamped Rejected
OnboardingInitiated In Progress Day-1 Ready Joined No-Show
EmployeeProbation Confirmed On Leave Suspended Resigned Terminated
Attendance DailyPresent Late Half-Day On Leave Holiday Absent Off
Leave ApplicationSubmitted Approved Rejected Cancelled
Payroll RunComputed 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.
29

Troubleshooting

SymptomLikely causeFix
Resume search returns nothingParsing failed; tags weren't applied.Open the Resume; click Re-parse; or add tags manually.
Posting not visible to candidatesStatus is not Approved/Open.Check approval inbox; approve.
Candidate cannot applyRequired documents not on profile.Candidate uploads via CandMob; the Apply button enables.
Interview feedback not visibleNot all panellists submitted.Wait for all panellists; or HR-Admin can override.
Offer not generatedApplication not in Selected status.Recruiter completes the disposition first.
Visa stuck in Documents SubmittedExternal processing delay.Update status manually with reference number; chase external party.
Onboarding cannot completeChecklist items pending.Open the Onboarding row; resolve each pending item.
Attendance shows Absent for present employeeSource not captured (biometric down, no mobile-punch).Raise Attendance Regularization with evidence.
Roster Publish blockedCoverage check failed.Adjust assignments to meet minimum coverage.
Leave balance wrongAccrual not posted; or leave-type rule changed mid-period.Run Leave_Accrue_Monthly manually for the missing month; verify rules.
Payroll Run misses an employeeActive status not set on the run date; or salary structure not effective.Verify EmployeeReg.Status and EmployeeSalaryStructure.EffectiveFrom.
Bank file rejects rowsBank account / IFSC missing or invalid.Update EmployeeBankInfo; regenerate file.
Payslip PDF blankTemplate missing for that locale or language.Verify PayslipTemplate config; fall back to default.
The ActivityLog records every Insert/Update/Delete with userid + timestamp — the first stop for diagnosis.
30

Glossary

TermMeaning
ResumeTop-of-funnel candidate CV record.
Talent PoolSearchable corpus of all CVs ever uploaded.
PostReqPosting Request — the formal raise of a vacancy.
PostingAn open vacancy candidates can apply to.
ApplicationResume × Posting linkage with status timeline.
CandMobCandidate Mobile — the touch-first applicant experience.
IntDesInterview Desk — scheduling, panels, feedback.
RoundOne iteration of an interview (an Application can have many).
DispositionThe outcome decision from a round (Selected / Rejected / Next).
OfferFormal offer letter + acceptance status.
OverseaseRecOverseas Recruitment — country, visa, mobilisation overlay.
Visa ApplicationCandidate's visa workflow row.
Mobilisation / DemobilisationPre-arranged flight + accommodation + transfer for arrival / repatriation.
OnboardingJoining checklist that turns an offer-accepted candidate into an active employee.
ERDEmployee Records & Documents — master profile.
BGVBackground Verification.
ProbationInitial period during which the employee can be confirmed, extended or terminated.
RosterPer-Site × Period grid of Employee × Date × Shift.
Shift / Shift PatternNamed time window / recurring sequence.
SwapEmployee-initiated trade of rostered shifts.
RegularizationEmployee's request to correct an attendance record.
Comp-offCompensatory off granted for working a non-working day.
LWPLeave Without Pay.
CTCCost To Company — total annual cost of an employee.
Payroll RunMonthly compute of payslip lines for a Group.
Bank FileDisbursement file uploaded to the bank to credit salaries.
StatutoryLegally mandated deductions (PF, ESI, Tax, Social Security).
Self-ServiceEmployee portal for own profile, leave, payslip, attendance.
Workflow ListenerUM-side engine that propagates approvals across modules.
SP-drivenArchitecture rule — every read & write through a stored procedure.
End of Manual. Now apply it — head to the Exercise Workbook for 15 hands-on labs.