Solavel Docs

Payroll Runs

Last updated

A payroll run holds one month of pay for every employee who is payable in that month. For each employee it shows basic salary, allowances, overtime, tips, additional earnings, social security, tax and contribution rules, deductions and advance repayments, any overtime already paid separately, and the final amount left to pay. One person prepares the run and sends it for review. A different person approves it. After approval you record payment and generate payslips.

SolaHR keeps one run per month. Each employee appears in it as one row. Past months are first-class: you can open any month, see which months have no run yet, and generate a draft for a past month from the records saved at the time.

Who uses it: the payroll officer who prepares the month, the finance or HR manager who approves it and records payment, and anyone who needs to print or email salary slips.

Where to find it

  • Sidebar: Payroll & Compensation → Payroll Runs.
  • URL: /payroll. The selected month is kept in the address, for example /payroll?year=2026&month=10.
  • Employee breakdown: click an employee's name in the run to open /payroll/{run}/employee/{employee}.
  • The other items in the Payroll & Compensation group feed the run: Overtime, Advances, Deductions, Tips and Additional Earnings, as do Resignations and End of Service in the Employee Departures group. Payslips are created from it, and Payroll Settings controls how it is calculated.

The menu item appears only when your plan includes payroll and your role has View payroll runs.

Who can do what

Action Permission needed
Open the run, open an employee breakdown, Print All, PDF, print a salary slip View payroll runs
Generate draft, Recalculate draft, Submit for Review Create payroll runs
Approve Payroll, Reject, Cancel Run, Mark Salaries Paid, Confirm Payroll Paid, Reverse Payroll, Close Month Approve payroll runs
Generate Payslips, Email payslips, signed copies Generate payslips
Reopen Reopen closed payroll runs
Payroll Register (CSV) View payroll runs, and data export in your plan
Role What they get on this screen
Owner, SolaHR Administrator Everything.
HR Manager Nothing by default. An owner or SolaHR Administrator can tick payroll actions in the member's Payroll access box on Team access. Payroll access covers the whole organization.
HR Operations Manager (older role) View, create and submit runs. Cannot approve, pay, cancel or reverse.
HR Records Viewer (older role) View only.
Department Manager, Attendance Recorder, HR Viewer No access. Payroll is never part of a scoped role.

Four-eyes rule. The person who submitted a run cannot approve or reject it: "Payroll approval requires a different user from the submitter." Ask another approver. In the Approvals inbox the run then reads "Waiting for another approver".

Screen tour

Header (top-right), shown only when the run's status and your permissions allow:

Button Shown when
Print All and PDF A run exists and is not cancelled. Opens printable salary slips for everyone, or downloads them as one PDF.
Email payslips The run is finalized (Approved, Locked, Closed or Paid) and you can generate payslips. See Documents and printing.
Payroll Register A run exists. Downloads payroll-register-2026-10.csv with one row per employee: employee number and name, base salary, allowances, overtime, variable pay, gross pay, employee insurance, tax withholding, other deductions, advances, overtime already paid, net pay and currency.
Recalculate draft The run is Draft, Rejected or Under Review and the month is not the current one.
Submit for Review Run is Draft or Rejected.
Approve Payroll and Reject Run is Under Review.
Generate Payslips and Confirm Payroll Paid Run is Approved, Locked or Closed (payslips also on Paid).
Close Month The run has employees and your payroll setting allows it. If require approval before payment is on, only Approved or Locked runs can be closed; if it is off, a Draft, Under Review or Rejected run can be closed directly.
Cancel Run Run is Draft, Rejected or Under Review.
Reverse Payroll Run is Paid.
Reopen Run is Closed or Locked and you have the reopen permission.

Period selectors (top-left, each with a label): Year and Month. Next to them a line gives the period ("Period 1 Oct 2026 – 31 Oct 2026") and a hint: "current month: the draft refreshes while you view it", "past month: saved figures are shown as recorded", or "future month".

Notices above the table

Notice Meaning
Some past months have no payroll run "Employees were employed in these months but no payroll was calculated. Open a month to review and generate its draft." One chip per month; click to open it.
No payroll run for month yet With Generate draft for month and "n employees are payable in this period." Without permission: "Ask a user who can create payroll to generate it."
This month cannot be generated yet A future month whose previous month is not finalized: "Finalize the payroll for month year before generating this month." with a button to open the previous month.
This payroll run was cancelled With Start a new draft ("This payroll run was cancelled. Generating it again starts a fresh draft; the cancelled figures stay in the audit log.").
n attendance items in this month still need review "Approved items are added to this draft automatically. Anything still pending will not be included; if it is approved after the payroll is finalized, it is added to the next open payroll as an adjustment." with Review attendance.
n employees are payable but not in this run Someone became payable after the draft was last calculated. Use Recalculate draft; on a finalized run the message tells you to reopen it.
n employees are not paid in this run Leavers: "left on date; the final settlement already pays this month's salary (amount), so it is not paid again here", "left on date; pay the leaving month through End of service (no final settlement recorded yet)", or "no longer active but has no leaving date; record the status change date to include earlier months".
n employees are paid up to their leaving date "last working day date; paid pro rata up to that day".
Check these points before approving Calculation warnings: "Payroll settings were changed on date, after this period. The current settings were used because earlier settings are not stored.", "No salary record covers this period for name; the current salary was used.", "An advance of amount is due this month for an employee who is not in this run; it was not deducted."

Summary tiles: Employee Count, Base Salaries, Total Overtime, Deductions, Final Net.

Payroll Status card: the status badge, "Calculated date time", "Settings in force since date", Submitted and Approved times, a rejection reason if any, and, when approval before payment is required, "Your payroll settings require review and approval before payment, so the month is finalized by approving it, not by closing it directly."

Employee table:

Column Meaning
(checkbox) Shown to approvers. Tick unpaid rows to record them as paid. Paid rows can't be ticked.
Employees Name (link to the breakdown) and employee number.
Due days Days paid this month: the Work days/month setting (30 by default), fewer in an employee's first or leaving month.
Basic salary The full monthly salary for the period, from the salary record effective then. A first-month or leaving-month reduction is in the deductions column.
Overtime total Weekday plus holiday overtime pay.
Overtime already paid Overtime that was paid separately before payroll (see Overtime). It stays in earnings but is subtracted from what remains to pay.
Hours/days deduction Everything deducted except social security and advances: first-month or leaving-month reduction, unpaid leave, tax and contribution rules, and deductions.
Advances deduction Advance repayments taken this month.
Net salary The remaining amount to pay: gross pay minus social security, minus deductions, minus advances, minus overtime already paid.
Status Paid or Pending for that employee.
Document Print and PDF for the salary slip; for finalized runs also the state of the issued payslip (not issued, emailed, acknowledged) and signed-copy buttons.

Mark Salaries Paid appears under the table once you tick at least one row.

The draft refreshes while you look at it

For the current month the page keeps the draft up to date: opening it, an employee breakdown or Print All recalculates a Draft, Rejected or Under Review run. A job also prepares the current month's draft every night at 23:55; it creates and refreshes the draft only and never submits, approves, closes or pays anything.

Several screens may ask for the same recalculation at once. One does the work and the others wait for it, so you never see a failed page; if a calculation is still running after a short wait, the saved figures are shown. Pressing Recalculate draft during a running calculation waits for it, or shows a retryable "calculation in progress" message.

Past months are shown as saved. Viewing never recalculates them. Use Generate draft for month (past month without a run) or Recalculate draft (past month with an editable run) when you intend to calculate it. Recalculation stops when the run is Approved, Locked, Closed, Paid or Cancelled; figures after that are final.

Rules for each month

Month you select What happens
The current month The draft is created or refreshed.
A past month with no run An explicit Generate draft creates it from the saved employee, salary, attendance and advance records. Settings are those in force at the end of that month, if recorded.
A past month with a run Saved figures are shown; Recalculate draft if the run is still editable.
A future month Only after the previous month's run is finalized.
A month whose run is Approved, Locked, Closed, Paid or Cancelled Figures are fixed.

Who is in the run. Employees who started on or before the end of the month and are active are included. A person who leaves is paid in full for every month before the leaving month. In the leaving month they are paid pro rata up to their last working day, unless an End of Service final settlement for that month already pays salary, in which case the month is left to the settlement so it is neither missed nor paid twice. The leaving date is the last working day of the End of Service case, else the date of the status change, else the employee's end date.

How each employee is calculated

Defaults come from Payroll Settings (also editable under Settings → Payroll Defaults): 30 work days per month, 8 work hours per day, weekday overtime ×1.25, holiday overtime ×1.50. A run uses the settings that were in force at the end of its month (SolaHR keeps dated versions of the settings); the current month uses the current settings.

  1. Monthly salary: the salary and fixed allowances on the compensation record that was effective in the period; if no record covers it, the current salary, flagged in the warnings. A weekly amount is converted as ×52÷12, biweekly as ×26÷12, annual as ÷12.
  2. Daily rate = monthly salary ÷ work days per month. Hourly rate = daily rate ÷ work hours per day.
  3. First month: if the employee started after the 1st, due days = work days − (start day − 1). The unpaid part (salary − daily rate × due days) is added to deductions. Starting on the 11th gives 20 due days.
  4. Leaving month: due days are counted up to the last working day, the rest is a reduction.
  5. Overtime = weekday hours × hourly rate × weekday multiplier + holiday hours × hourly rate × holiday multiplier, for overtime that is Approved or Processed. Overtime that was paid separately uses the amount paid.
  6. Attendance decisions approved in the Attendance review are added once: late, early-leave and absence amounts as deductions, attendance overtime as approved overtime. For a finalized month they appear as labelled "Adjustment" lines in the next open run.
  7. Gross pay = basic salary + allowances + overtime + tips + approved additional earnings of the month.
  8. Social security: employee % and employer % from the employee's compliance profile, applied to the basic salary. The employee share is deducted. The employer share is recorded as an employer contribution and not deducted.
  9. Tax and contribution rules from Payroll Settings whose Jurisdiction matches the employee's Work country are applied. The employee share is deducted.
  10. Unpaid leave: approved leave of an unpaid type inside the month × daily rate, per calendar day.
  11. Deductions from Deductions dated in the month.
  12. Advances come last: a same-month advance is taken in full, a long-term advance by its monthly installment (never more than what is left). An advance whose repayment month has no run yet is deducted when that draft is generated; a repayment month already finalized is never changed (see Advances).
  13. Overtime already paid is subtracted from what remains to pay.

Final net = gross pay − employee social security − (first-month or leaving-month reduction + unpaid leave + tax and contribution rules + deductions + attendance deductions) − advances − overtime already paid.

Other currencies. If an employee's salary structure is in another currency, every amount is converted to the payroll currency using the locked exchange rate effective on the first day of the month (see Payroll Settings). If there is no rate, the run fails to calculate for that employee.

The employee breakdown

Click an employee's name. The page Employee salary details shows tiles, Employee information, Basic salary calculation, Social security deduction, Overtime calculation and Final net salary with tips, deductions, advances and the already-paid overtime. Print salary slip (top-right) opens a printable slip. Return to payroll run goes back. The labels show the default 30-day, 8-hour rules; if you changed them, trust the run table and the payslip.

Run the monthly payroll

1. Prepare the inputs

Before the month is approved, check:

2. Open or generate the run

  1. Go to Payroll & Compensation → Payroll Runs and choose the Year and Month.
  2. For the current month the run appears as Draft. For another month click Generate draft for month and confirm Generate payroll.

3. Submit for review

  1. Check the tiles and the notices, and open any employee whose figures look wrong. Fix the source data; click Recalculate draft (past months) or reopen the page.
  2. Click Submit for Review and confirm. If attendance items for the month are still pending, a dialog Attendance items still pending asks you to Review attendance or Continue without them; your choice is written to the audit log, and anything approved later lands in the next open payroll as an adjustment.

The status becomes Under Review and the run appears in Approvals.

4. Approve or reject (a different person)

  • Approve: click Approve Payroll and confirm. The same pending-attendance question appears if relevant. The status becomes Locked and the figures are final.
  • Reject: click Reject, enter the Rejection reason (required) and Confirm. The status becomes Rejected. The preparer fixes the data and submits again.

5. Generate payslips

Click Generate Payslips and confirm. One payslip per employee is created or refreshed, numbered like PS-202610-00001. See Payslips. Generate payslips after you have recorded the payments you want them to show.

6. Record payment

Only after the bank transfer or cash payment has happened:

  • Some employees: tick their rows, click Mark Salaries Paid and confirm. When the last unpaid row is marked, the run becomes Paid automatically if your payroll setting "close automatically when all are paid" is on.
  • Everyone: click Confirm Payroll Paid. Every row becomes Paid and the run becomes Paid.

Payment can be recorded only on an Approved, Locked or Closed run. When the run becomes Paid and your plan includes the accounting connection, SolaHR queues an accounting event with the month's totals, including the separate overtime-payment clearing amount.

Cancel, reverse and reopen

  • Cancel Run (Draft, Rejected or Under Review): enter a Cancel reason and Confirm. The status becomes Cancelled and its deductions are released. The month can be restarted as a fresh draft with Start a new draft; the cancelled figures stay in the audit log.
  • Reverse Payroll (Paid only, once per run): enter a Reversal reason. SolaHR records a reversal correction for the full net amount and, with the accounting connection, a reversing event. The run itself stays Paid.
  • Reopen (Closed or Locked runs, users with the reopen permission) returns the run to an editable state under the existing controls.

Every submit, approval, rejection, payment, cancellation and reversal is written to the audit log with the user, time and reason.

Statuses and lifecycle

Status Meaning Recalculates? What you can do
Draft Created, still being prepared. Current month: while viewed. Other months: on request. Submit for Review, Cancel Run.
Under Review Waiting for a second person. Same. Approve Payroll, Reject, Cancel Run.
Rejected Sent back with a reason. Same. Fix data, Submit again, Cancel Run.
Approved Approved but not locked. Rare. No. Generate Payslips, Confirm Payroll Paid, Close Month.
Locked Approved. Figures are final. No. Generate Payslips, Mark Salaries Paid, Confirm Payroll Paid, Reopen.
Closed Closed month. No. Same, and Reopen.
Paid Payment recorded for everyone. No. Print, Reverse Payroll (once).
Cancelled Abandoned. No. Start a new draft.

The next month can be generated once this month is finalized.

Worked example 1: a past month and the leaver

On 12 October 2026 Noura Al Zaabi (payroll officer at Al Noor Trading LLC) opens Payroll Runs. The notice Some past months have no payroll run lists August 2026: the company only started using SolaHR payroll in September. She clicks August 2026: "No payroll run for August 2026 yet" and "38 employees are payable in this period." She clicks Generate draft for August 2026. The warnings say "Payroll settings were changed on 5 Oct 2026, after this period. The current settings were used because earlier settings are not stored." She checks the settings are the same and moves on.

In September, Ahmed Saleh left on 20 September and has an End of Service case whose settlement pays his September salary. The September run lists him under "1 employees are not paid in this run: left on 20 Sep 2026; the final settlement already pays this month's salary (AED 4,000.00)". Nothing is paid twice.

Worked example 2: October 2026 from start to paid

Settings: currency AED, 30 days, 8 hours, ×1.25 / ×1.50.

Omar Haddad, salary AED 12,000, work country AE, no insurance %, no tax rules for AE.

Step Calculation AED
Daily rate 12,000 ÷ 30 400.00
Hourly rate 400 ÷ 8 50.00
Basic salary full month 12,000.00
Weekday overtime (approved) 10 h × 50 × 1.25 625.00
Holiday overtime 4 h × 50 × 1.50 300.00
Tips one tip 200.00
Gross pay 13,125.00
Late deduction approved in attendance review 2 hours × 50 −100.00
Long-term advance installment −1,000.00
Overtime already paid separately the 10 h weekday overtime was paid on 18 Oct −625.00
Net salary (remaining to pay) 11,400.00

On 18 October Khalid had paid Omar's weekday overtime (AED 625.00) in cash with Pay overtime; the receipt shows the amount, and on payroll the column Overtime already paid shows 625.00. Omar still has the overtime in his gross earnings, but the bank transfer is AED 625.00 smaller.

Rania Saleh joined on 11 October with a salary of AED 9,000. Her Due days are 20 and her Basic salary column shows 9,000.00. The unpaid 10 days (9,000 ÷ 30 × 10 = 3,000.00) appear in Hours/days deduction, so her net is 6,000.00.

  1. 25 Oct: Noura opens the October run, checks Omar and Rania, clicks Submit for Review. A dialog says "3 attendance items in this month still need review"; she clicks Review attendance, clears them with her manager, then submits. Status Under Review.
  2. 26 Oct: Khalid (finance manager) opens Approvals, then the run, and clicks Approve Payroll. Status Locked.
  3. 27 Oct: the bank pays 40 employees. Khalid ticks those 40 rows and clicks Mark Salaries Paid. Two rows stay Pending.
  4. Khalid clicks Generate Payslips: PS-202610-00001 to PS-202610-00042; he clicks Email payslips so each employee receives only their own.
  5. 29 Oct: the last two are paid. The run becomes Paid and the accounting event is queued.
  6. 1 Nov: Noura opens November; the run is created as Draft.

How it connects

Screen / app Connection
Attendance review Approved decisions are added to the month's run once, or as an adjustment in the next open run.
Overtime, Timesheets Approved overtime is paid; paid-in-advance overtime is shown as already paid.
Advances Repayments are deducted by repayment month.
Deductions Deductions dated in the month are subtracted and locked once the run is finalized.
Tips, Additional Earnings Added to gross pay.
Leave Approved unpaid leave reduces pay.
Employees Salary, start date, status, work country and insurance % drive the calculation.
Payslips Created from finalized runs.
Documents and printing Print, PDF, email, signed copies and acknowledgments for payslips.
End of Service Leavers: the leaving month is paid pro rata or through the settlement.
Reports The payroll reconciliation report reads every run.
Accounting Paid and reversed runs send events when the connection is in your plan.

Confirmations and outcome notices

Every action on this page asks for confirmation in a dialog that names the month (for example 2026-10). After a successful action you see Updated successfully. If SolaHR refuses an action, the server's own explanation is shown, for example the four-eyes rule or "Your payroll settings require review and approval before payment. Submit the run for review instead of closing it directly." If the connection drops, you see Status not confirmed; click Check current status before trying again, so you don't record a payment twice.

Tips and common problems

Problem Cause Fix
No Generate draft button and an empty page A future month whose previous month isn't finalized, or you lack create permission. Finalize the previous month first, or ask someone with permission.
An employee is missing Not payable (not active, start date after month end, or settled by End of Service) — check the notices. Fix the employee record and Recalculate draft.
"n employees are payable but not in this run" They became payable after the last calculation. Recalculate draft; for a finalized run reopen it first.
Overtime didn't appear Overtime is Pending. Only Approved/Processed overtime is paid. Approve it (Overtime).
The whole run won't calculate A salary structure is in a currency with no exchange rate. Add the rate in Payroll Settings.
"Payroll approval requires a different user from the submitter." You submitted the run yourself. Ask another approver.
A figure is wrong after approval Locked runs don't recalculate. Correct it next month with a deduction or additional earning.
A past month's figures changed after a settings change They did not: past months use the settings in force then. Read the "Settings in force since" line and the warnings.
UAE WPS file SolaHR does not create WPS/SIF files. Use the Payroll Register CSV as the source for your bank's WPS upload.

Related