# Pay Run

<p class="doc-lead">A Pay Run processes an employee's payroll for a period — salary earnings, reimbursements, and deductions — and produces a payslip. When approved, it posts salary expense and payable accounts, settles linked transactions (expense claims, cash advances, production wages, OT), and marks attendance as salary-posted. Net pay = Salary Payables − Deductions + Expenses (+ round off).</p>

<div class="doc-toc">
<p class="doc-toc-title">On this page</p>
<div class="doc-toc-section">
<span class="doc-toc-group-title">Getting started</span>
<div class="doc-toc-links">
<a href="#/payroll/pay-run?id=overview">Overview &amp; List View</a>
<a href="#/payroll/pay-run?id=quick-start">Quick Start</a>
<a href="#/payroll/pay-run?id=import">Import from File</a>
</div>
</div>
<div class="doc-toc-section">
<span class="doc-toc-group-title">Form reference</span>
<div class="doc-toc-links">
<a href="#/payroll/pay-run?id=header-fields">Header Fields</a>
<a href="#/payroll/pay-run?id=payments">Salary Payables (Payments)</a>
<a href="#/payroll/pay-run?id=bonus">Bonus Pay Run</a>
<a href="#/payroll/pay-run?id=expenses">Expenses</a>
<a href="#/payroll/pay-run?id=deductions">Deductions</a>
<a href="#/payroll/pay-run?id=attendance">Attendance Linkage</a>
</div>
</div>
<div class="doc-toc-section">
<span class="doc-toc-group-title">More</span>
<div class="doc-toc-links">
<a href="#/payroll/pay-run?id=actions-status">Actions &amp; Status</a>
<a href="#/payroll/pay-run?id=accounting">Accounting Postings</a>
<a href="#/payroll/pay-run?id=view-tabs">View Tabs &amp; Payslip</a>
<a href="#/payroll/pay-run?id=example">Worked Example</a>
<a href="#/payroll/pay-run?id=best-practices">Best Practices</a>
<a href="#/payroll/pay-run?id=faq">FAQ</a>
<a href="#/payroll/pay-run?id=related">Related &amp; Videos</a>
</div>
</div>
</div>

<hr class="doc-section-divider">

<h2 id="overview">Overview &amp; List View</h2>

Go to <b>Payroll → Payrun</b>. The list shows every pay run with employee, period, totals, balance, and status. Select checkboxes to bulk-download payslip PDFs.

<img src="payroll/images/payrun-list.webp" alt="Payrun List View" loading="lazy">

<b>List columns</b>

| **Column** | **Shows** |
|------------|-----------|
| Id | System reference. |
| Number # | Pay run bill number. |
| Employee | Employee name. |
| Pay Run Type | Regular or Bonus. |
| Month | Payroll month. |
| From / To | Pay period start and end. |
| Process Date | Date used for accounting. |
| Salary Payable | Total payment (earnings) amount. |
| Total | Net payables (payments − deductions + expenses + round). |
| Balance | Amount still owed to the employee (reduced by Payment Out vouchers). |
| Status | Draft, Approved, Closed, or Cancelled. |

<b>Quick filter tabs</b>

| **Tab** | **Shows** |
|---------|-----------|
| Default | All except cancelled. |
| Approved | Status Approved (active, journal posted). |
| Closed | Fully paid (balance zero). |
| Draft | Saved but not approved. |
| Cancelled | Cancelled pay runs. |

<b>Advanced Filters</b>

Id, Employee, Pay Run Type, From, To, Process Date, Branch, Brand, Status, Created Date.

<b>List row actions</b>

| **Action** | **Available when status is** |
|------------|------------------------------|
| Edit | Draft |
| Delete | Draft |
| View | All statuses |

<hr class="doc-section-divider">

<h2 id="quick-start">Quick Start — Create a Pay Run</h2>

<h3>1. Navigate</h3>
Go to <b>Payroll → Payrun</b> and click <b>New</b>.

<img src="payroll/images/payrun-new.webp" alt="New Payrun" loading="lazy">

<h3>2. Fill header</h3>
<ul>
<li><b>Pay Run Type</b> — Regular (one per employee per overlapping period) or Bonus (multiple allowed).</li>
<li><b>Year, Month, Period</b> — payroll cycle dates.</li>
<li><b>Employee</b> — on Regular, selecting an employee triggers salary calculation. On Bonus, lines are entered manually (or kept from Clone); changing employee does not clear them.</li>
<li><b>Process Date</b> — accounting date (defaults to period end).</li>
<li><b>Working Days, Holiday OT Days, LOP Days, Paid Leaves</b> — Regular only. Auto-filled from attendance when <a href="#/payroll/payroll-settings-config">Consider Attendance</a> is enabled. Hidden on Bonus. Use <b>Refetch</b> to recalculate on Regular.</li>
<li><b>Leave Salary Days / Extra Payable Days</b> — Regular only, when enabled in payroll settings. Hidden on Bonus.</li>
</ul>

<h3>3. Review auto-pulled lines</h3>
After the employee and period are set on a <b>Regular</b> pay run, the system loads:
<ul>
<li><b>Salary Payables</b> — calculated from <a href="#/payroll/salary-configuration">Salary Configuration</a></li>
<li><b>Expenses</b> — approved <a href="#/payroll/expense-claim">Expense Claims</a></li>
<li><b>Deductions</b> — <a href="#/payroll/cash-advance-voucher">Cash Advance Vouchers</a>, <a href="#/payroll/deduction-on-expense">Deduction on Expense</a>, and LOP lines</li>
</ul>
On a <b>Bonus</b> pay run, salary and expenses are not auto-pulled. Add payment lines yourself (amount only, or rate × days). See <a href="#/payroll/pay-run?id=bonus">Bonus Pay Run</a>.

<h3>4. Save or approve</h3>
<ul>
<li><b>Save</b> — keeps status Draft.</li>
<li><b>Save And Approve</b> — approves in one step (posts journal, settles linked documents).</li>
</ul>

<hr class="doc-section-divider">

<h2 id="import">Import from File</h2>

Bulk-create pay runs from a CSV or Excel file. Open <b>Import</b> from the pay-run list.

<ul>
<li>Set <b>Year, Month, Period</b>, and optional <b>Process Date</b>.</li>
<li>Upload <b>.csv, .xlsx, or .xls</b> (max 10 MB).</li>
<li>Column headers must match <a href="#/payroll/pay-run-import-mapping">Pay Run Import Mapping</a> or built-in aliases (Employee Code, LOP, Workdays, Paid Leaves, etc.).</li>
<li><b>Dry run</b> — validate only, nothing saved.</li>
<li><b>Save and approve each row</b> — creates and approves pay runs in one step.</li>
<li>Advanced: pay run type, branch, brand, pay method.</li>
</ul>

Cash-advance deduction columns are distributed across pending vouchers (oldest first). See <a href="#/payroll/pay-run-import-mapping">Pay Run Import Mapping</a> for column setup.

<hr class="doc-section-divider">

<h2 id="header-fields">Header Fields Reference</h2>

| **Field** | **Description** |
|-----------|-----------------|
| Pay Run Type * | Regular or Bonus. Regular auto-calculates salary from configuration and attendance. Bonus is manual (festival / ad-hoc); attendance and expense sections are hidden. |
| Year / Month * | Payroll period month. |
| Period (From / To) * | Exact pay-cycle dates. |
| Employee * | Employee receiving payroll. On Regular, changing employee recalculates salary lines. On Bonus, changing employee does not clear payment lines (so Clone can keep amounts). |
| Pay Run Number | Bill reference (auto-generated if configured). |
| Process Date * | Journal date. |
| Working Days | Regular only. Days used for salary divisor (working-days basis). Auto from attendance. Hidden on Bonus. |
| Holiday OT Days | Regular only. Holiday overtime days in period. Hidden on Bonus. |
| LOP Days | Regular only. Loss-of-pay days. Auto from attendance absent/unpaid leave. Hidden on Bonus. |
| Paid Leaves | Regular only. Paid leave days credited from <a href="#/hr/leave-allowance">Leave Allowance</a>. Hidden on Bonus. |
| Leave Salary Days | Regular only. Days to encash as leave salary (payment category 8). Hidden on Bonus. |
| Extra Payable Days | Regular only. Special payable days (default extra-pay category). Hidden on Bonus. |
| Branch / Brand | Optional tagging. Brand appears on the payslip view and PDF when set. |
| Notes | Printed on payslip. |
| Internal Notes | Internal only; not printed. |

Salary calculation uses <a href="#/payroll/payroll-settings-config">Payroll Settings</a>. Day-count formulas are documented there.

<hr class="doc-section-divider">

<h2 id="payments">Salary Payables (Payments)</h2>

Earnings that <b>increase</b> net pay.

| **Line source** | **Payment category** | **Auto-pulled?** | **Conditions** |
|-----------------|---------------------|------------------|------------------|
| <a href="#/payroll/salary-configuration">Salary Configuration</a> | Basic, HRA, allowances, etc. | Calculated | Prorated by settings + day counts |
| LOP (deduction style only) | — | Calculated | Shown as earning at full amount; LOP appears in Deductions |
| <a href="#/payroll/overtime-entry">Overtime Entry</a> | Overtime (7) | Yes | Approved OT in period |
| Attendance OT hours | Overtime (7) | Calculated | Hours × OT rate from salary config |
| <a href="#/payroll/additional-payment">Additional Payment</a> lines | Line category | Yes | Line status Approved |
| <a href="#/payroll/production-wage">Production Wage</a> | Wages Payable (6) | Yes | Approved wages in period (aggregated) |
| Leave salary / Extra payable | Leave Salary (8) / extra category | Manual header | Days × daily rate |

<b>Payment line columns (Regular)</b>

| **Column** | **Description** |
|------------|-----------------|
| Sl No. | Line number. |
| Title | Payment category (earning type). |
| Reference | Linked source transaction when the line was auto-pulled (OT, additional payment, etc.). |
| Amount | Calculated or entered amount. |
| Date | Source transaction date when auto-pulled. |
| Rate Info | Display text from salary calculation (for example 5000/month or 200/day). Shown next to the category on the payslip. |
| Notes | Calculation notes (present days, paid leave split-up when enabled). |

<hr class="doc-section-divider">

<h2 id="bonus">Bonus Pay Run</h2>

Use <b>Pay Run Type = Bonus</b> for festival, incentive, or other ad-hoc payouts. Several bonus runs can exist for the same employee in the same period. Regular salary auto-fetch, attendance day counts, and expense reimbursements are not used.

<b>Payment lines</b> are entered by hand. Each line can use either mode:

<ul>
<li><b>Rate × days</b> — select a payment category, enter <b>Rate</b> and <b>No of Days</b>. Amount is calculated as Rate × No of Days and locked while both values are set.</li>
<li><b>Amount only</b> — leave Rate and No of Days empty and type <b>Amount</b>.</li>
</ul>

You can mix both modes on the same bonus pay run (for example one lump-sum line and one daily-rate line).

<b>Payment line columns (Bonus)</b>

| **Column** | **Description** |
|------------|-----------------|
| Sl No. | Line number. |
| Title | Payment category (for example a bonus or allowance category). |
| Rate | Daily (or unit) rate. Optional; used with No of Days. |
| No of Days | Number of days. Optional; used with Rate. |
| Amount | Rate × No of Days when both are entered; otherwise typed manually. |
| Notes | Remarks. |

Reference, Date, and Rate Info are hidden on Bonus. Changing the employee on a Bonus pay run does not clear payment lines.

<b>Clone</b> is available on the Bonus payslip view only (not on Regular). Clone opens a new Bonus pay run with the same payment lines (including rate and days) so you can pick another employee or period without re-entering amounts.

<b>Bonus slip</b> (view and PDF) is titled Bonus Slip. Earnings show <b>Rate</b> and <b>Days</b> when a line used rate × days; lump-sum lines leave those cells blank. Attendance rows and reimbursements are omitted.

Deductions can still be added manually on a Bonus run if you need to recover an advance or similar amount.

<hr class="doc-section-divider">

<h2 id="expenses">Expenses (Reimbursements)</h2>

Reimbursements that <b>increase</b> net pay. The Expenses section is hidden on <b>Bonus</b> pay runs.

| **Line source** | **Auto-pulled?** | **Conditions** |
|-----------------|------------------|------------------|
| <a href="#/payroll/expense-claim">Expense Claim</a> | Suggested | Employee, status Approved |
| <a href="#/accounts/expense-entry">Account Expense</a> (pay mode Payrun) | Yes | Approved, `payRunEmployeeId` set |

| **Column** | **Description** |
|------------|-----------------|
| Sl No. | Line number. |
| Expense Id | Linked expense claim or account expense. |
| Expense / Expense Account | Category or GL account. |
| Amount | Reimbursement amount. |
| Date | Transaction date. |
| Notes | Remarks. |

<hr class="doc-section-divider">

<h2 id="deductions">Deductions</h2>

Amounts that <b>decrease</b> net pay.

| **Line source** | **Deduction category** | **Auto-pulled?** | **Amount** |
|-----------------|------------------------|------------------|------------|
| <a href="#/payroll/cash-advance-voucher">Cash Advance Voucher</a> | Cash Advance (1) | Yes | min(balance, paymentAmount) |
| <a href="#/payroll/deduction-on-expense">Deduction on Expense</a> | Deduction on Expense (2) | Yes | Full remaining balance |
| LOP (deduction style) | Loss of Pay (3) | Calculated | Per salary settings |
| Manual deduction | Any category | Manual | Entered amount |

| **Column** | **Description** |
|------------|-----------------|
| Sl No. | Line number. |
| Deduction Category | Deduction type. |
| Amount | Deduction amount. |
| Date | Deduction date. |
| Notes | Remarks (e.g. voucher reference). |

<hr class="doc-section-divider">

<h2 id="attendance">Attendance Linkage</h2>

When <b>Consider Attendance in Salary Calculation</b> is enabled, a <b>Regular</b> pay run calls the attendance engine for the employee and period. Attendance fields are hidden on <b>Bonus</b> pay runs and are not used in bonus calculation.

<b>What is auto-computed:</b>

| **Pay-run field** | **Attendance source** |
|-------------------|----------------------|
| Working Days | Period days − holidays − holiday OT days |
| LOP Days | Absent + unpaid leave + (optional) holidays in LOP stretch |
| Paid Leaves | <a href="#/hr/leave-allowance">Leave Allowance</a> used dates |
| Holiday OT / OT hours | Attendance status and OT hours |
| Salary components | Prorated per <a href="#/payroll/payroll-settings-config">Payroll Settings</a> |

<b>On approve:</b> attendance rows in the period are marked <b>salary posted</b>. Cancel reverses this flag.

<b>Attendance statuses:</b>

| **Status** | **Meaning** |
|------------|-------------|
| Present | Counted as working |
| Leave (paid/unpaid) | Paid leave from allowance; unpaid adds to LOP |
| Absent | LOP |
| Holiday | Paid day (unless inside LOP and setting off) |
| Holiday OT | OT earnings; reduces working-day count |
| Partial absent | Fractional LOP (0.25 / 0.5 / 0.75) |

When attendance is disabled, enter day counts manually. Holidays come from the <a href="#/hr/holiday">Holiday</a> master and weekend configuration.

<hr class="doc-section-divider">

<h2 id="actions-status">Actions &amp; Status</h2>

<h3>View toolbar actions</h3>

| **Action** | **Description** | **Available when status is** |
|------------|-----------------|------------------------------|
| Approve | Posts journal; settles linked transactions; marks attendance salary-posted. | Draft |
| Edit | Opens for editing. | Draft |
| Delete | Permanently removes. | Draft |
| Clone | Opens a new Bonus pay run with the same payment lines (rate, days, and amounts). | Bonus pay runs only |
| Print | Prints payslip layout. | All |
| PDF | Downloads payslip as PDF (single pay run) or ZIP (bulk from list). Includes Brand when set on the pay run. | All |
| Payment Out | Creates <a href="#/accounts/payment-voucher">Payment Voucher</a> to pay the employee; reduces balance. | Approved |
| Cancel | Reverses journal; reopens linked transactions; reverts attendance posting. | Approved, Closed |
| Master Update | Updates selected header fields without reopening lines. | Approved, Closed |
| Add/Update Note | Adds or edits notes. | All |

<h3>Statuses</h3>

| **Status** | **Description** |
|------------|-----------------|
| Draft | Saved, not approved. Editable. No journal. |
| Approved | Journal posted. Balance = amount owed to employee. |
| Closed | Fully paid (balance = 0). |
| Cancelled | Reversed. Linked documents reopened. |

<b>Regular pay run rule:</b> only one active or closed regular pay run per employee for an overlapping period. Bonus pay runs are exempt.

<hr class="doc-section-divider">

<h2 id="accounting">Accounting Postings</h2>

Journal is created on <b>Approve</b> (transaction type Pay Run, date = Process Date, employee as party).

<h3>Payments (earnings)</h3>
For each payment line:
<ul>
<li><b>DR</b> payment category expense account (e.g. EXP13 Salary for Basic; EXP27 for Wages Payable)</li>
<li><b>CR</b> account 57 Salary Payable — on employee sub-ledger</li>
</ul>

<h3>Expenses (reimbursements)</h3>
<ul>
<li><b>DR</b> expense account (category EXP or account 62 for linked account expense)</li>
<li><b>CR</b> account 57 Salary Payable for expense total</li>
</ul>

<h3>Deductions</h3>
For each deduction line:
<ul>
<li><b>DR</b> account 57 Salary Payable</li>
<li><b>CR</b> deduction category credit account (14 Short-Term Loans for cash advance / expense recovery; EXP13 for LOP)</li>
</ul>

<b>Cancel</b> reverses all journal lines. <b>Payment Out</b> (payment voucher) pays the employee and reduces pay-run balance separately.

<hr class="doc-section-divider">

<h2 id="view-tabs">View Tabs &amp; Payslip</h2>

<img src="payroll/images/payrun-view.webp" alt="Payrun View" loading="lazy">

When you open a pay run, the view shows employee details, period, and earnings. A <b>Regular</b> payslip also shows day counts, expenses (reimbursements), and attendance-related rows when those settings are on. A <b>Bonus</b> slip is titled Bonus Slip: attendance and reimbursements are omitted, and earning lines show <b>Rate</b> and <b>Days</b> when the line was entered as rate × days.

The employee header includes code, name, department, designation, date of joining, and optional identifiers (Emirates ID, Labor Card ID, PAN Number). When a <b>Brand</b> is set on the pay run, <b>Brand</b> is shown in the employee details block on screen and on the payslip PDF.

Footer totals:

| **Field** | **Description** |
|-----------|-----------------|
| Salary Payables | Sum of payment lines. |
| Total Expenses | Sum of expense lines. |
| Total Deductions | Sum of deduction lines. |
| Round off | Client-entered rounding adjustment. |
| Total Payables | Net amount (payments − deductions + expenses + round). |
| Balance | Remaining after Payment Out vouchers. |
| PDC Balance | Post-dated cheque balance if applicable. |

<b>Summary tab</b> (expand icon): shows <a href="#/payroll/reports/payroll-transaction-summary">linked transactions</a> — payment vouchers, expense claims, production wages, OT entries, cash advances.

Optional payslip fields (Standard Work Days, Present Days, Salary Days, etc.) appear when configured in <a href="#/payroll/payroll-settings-config">Pay Run View</a> settings.

<hr class="doc-section-divider">

<h2 id="example">Worked Example — March Pay Run</h2>

<p><b>Employee:</b> Driver Raj, Basic ₹25,000, HRA ₹8,000. Period 1–31 Mar. Attendance: 26 working days, 2 LOP, 1 paid leave. Approved fuel expense claim ₹1,200. Traffic-fine recovery ₹800 (deduction on expense, balance ₹800).</p>

<b>Payments</b>
<ul>
<li>Basic (pro-rata, working days): ₹23,000</li>
<li>HRA: ₹7,360</li>
</ul>

<b>Expenses</b>
<ul>
<li>Fuel expense claim: ₹1,200</li>
</ul>

<b>Deductions</b>
<ul>
<li>Deduction on expense (traffic fine): ₹800</li>
</ul>

<b>Net pay</b> = 30,360 − 800 + 1,200 = <b>₹30,760</b>

On approve: expense claim closed; deduction-on-expense balance → 0; journal posted; attendance marked salary-posted.

<hr class="doc-section-divider">

<h2 id="best-practices">Best Practices</h2>

<ul>
<li>Complete <a href="#/hr/daily-attendance">Daily Attendance</a> and approve <a href="#/hr/leave-request">Leave Requests</a> before running payroll.</li>
<li>Use <b>Refetch</b> on day-count fields after attendance corrections.</li>
<li>Review auto-pulled deductions (cash advances, expense recoveries) before approving.</li>
<li>Use <b>Payment Out</b> to pay employees and close balance; do not leave approved pay runs with open balance indefinitely.</li>
<li>For festival or ad-hoc payouts, use <b>Bonus</b> pay run type. Enter Rate and No of Days, or a lump-sum Amount. Use <b>Clone</b> from a Bonus slip to reuse the same lines for another employee.</li>
<li>For bulk payroll, set up <a href="#/payroll/pay-run-import-mapping">Import Mapping</a> first, then use Import from File.</li>
</ul>

<hr class="doc-section-divider">

<h2 id="faq">FAQ</h2>

<b>What is the difference between Regular and Bonus pay runs?</b><br>
Regular enforces one active/closed pay run per employee per period and auto-calculates salary from configuration and attendance. Bonus allows multiple runs (for example festival bonus) for the same period. Bonus lines are entered manually: type an amount, or enter Rate and No of Days to calculate Amount. Clone is available on Bonus slips only. Changing employee on Bonus does not clear payment lines.

<b>How do I enter a daily-rate bonus?</b><br>
Set Pay Run Type to Bonus, add a payment line, choose a payment category, enter Rate and No of Days. Amount = Rate × No of Days. Leave Rate and No of Days empty to type Amount only.

<b>Can I clone a regular payslip?</b><br>
No. Clone is shown only on Bonus pay run view so you can copy bonus lines to another employee or period.

<b>Can I edit a pay run after approval?</b><br>
No. Cancel and recreate, or use Master Update for limited header fields.

<b>Why is my expense claim not appearing?</b><br>
The claim must be Approved for the same employee. After pay-run approve it moves to Closed.

<b>How is net pay calculated?</b><br>
Total Payables = Salary Payables − Total Deductions + Total Expenses + Round off.

<b>What does Refetch do on a draft pay run?</b><br>
Recalculates salary lines, attendance day counts, and auto-pulled deductions, expenses, production wages, overtime, and additional payments from current masters and open documents.

<b>What is Payment Out?</b><br>
Creates a <a href="#/accounts/payment-voucher">Payment Voucher</a> against the pay run to settle the employee balance. Balance on the pay run decreases by the payment amount.

<b>Can I import pay runs from Excel?</b><br>
Yes. Use Import on the pay run list with mappings from <a href="#/payroll/pay-run-import-mapping">Pay Run Import Mapping</a>. Supports dry run validation before save.

<b>Why can't I approve — duplicate pay run for period?</b><br>
Regular pay runs allow one active or closed run per employee per period. Use Bonus type for festival or ad-hoc runs in the same month.

<b>What happens when I cancel an approved pay run?</b><br>
Payroll journals reverse, linked expense claims and production wages reopen, cash advance and deduction balances restore, and additional payment lines return to Approved.

<b>Does approving a pay run post to accounts?</b><br>
Yes. Wages payable and component accounts post on approve. Payment Out creates the bank/cash settlement voucher separately.

<b>Why is attendance not pulling into my pay run?</b><br>
Enable <b>Consider Attendance in Salary Calculation</b> on <a href="#/payroll/payroll-settings">Payroll Settings</a> and ensure daily attendance exists for the pay period.

<hr class="doc-section-divider">

<h2 id="related">Related Topics &amp; Videos</h2>

<ul>
<li><a href="#/payroll/pay-run-dashboard">Pay Run Dashboard</a></li>
<li><a href="#/payroll/payroll-settings-config">Payroll Settings (calculation)</a></li>
<li><a href="#/payroll/salary-configuration">Salary Configuration</a></li>
<li><a href="#/payroll/pay-run-import-mapping">Pay Run Import Mapping</a></li>
<li><a href="#/payroll/reports/employee-wise-payrun-report">Employee Wise Payrun Report</a></li>
<li><a href="#/payroll/reports/leave-salary-report">Leave Salary Report</a></li>
<li><a href="#/accounts/payment-voucher">Payment Voucher</a> — Payment Out settlement</li>
</ul>

<b>Video — Pay Run overview</b>
<iframe width="560" height="315" src="https://www.youtube.com/embed/BVshLPF8BwE?si=rJjvbNYi8swNIHI0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
