Additional Earnings (called Variable Pay before October 2026) are one-time or occasional amounts paid on top of an employee's salary for a single payroll month: a sales bonus, a commission, an incentive, a reward, a tip paid through payroll, or an adjustment. They are added to that month's payroll only. They never change the employee's contractual basic salary, and next month's pay starts from the normal salary again.
Use this page to propose an earning, see what it will do to the employee's payroll before you save it, and approve, reject or remove earnings. HR or a team lead usually proposes; a manager or finance approves.
What is new in this version: you choose a Fixed amount or a Percentage of an explicit salary basis, the server always calculates the final money amount, and the form shows a live preview of the employee's payroll from the same engine that runs the real payroll.
Where to find it
- Sidebar: Payroll & Compensation → Additional Earnings. URL:
/variable-pay(the address kept its old name). - Pending earnings also appear in the Approvals inbox under Additional Earnings.
- The old name Variable Pay still appears on a few older confirmation messages and on permission names such as View bonuses & incentives.
The menu item appears when your plan includes the module and your role has View bonuses & incentives.
Permissions
| Action | Permission |
|---|---|
| See the list | View bonuses & incentives |
| Add earning, Delete | Create/edit bonuses & incentives |
| Approve, Reject | Approve/reject bonuses & incentives |
| See payroll figures in the preview | View payroll runs |
| Role | Access |
|---|---|
| Owner, SolaHR Administrator | Everything. |
| HR Operations Manager (older role) | Add, delete, approve, reject, and see the payroll preview. |
| HR Records Viewer (older role) | View only. |
| HR Manager, Department Manager, Attendance Recorder, HR Viewer (scoped) | No access. |
The same person can add and approve an earning; there is no four-eyes rule on this page. Give the add and approve permissions to different roles if you need separation of duties.
Screen tour
The header reads Additional Earnings — "Bonuses, commissions and other one-time earnings paid through payroll. They are added to that month's payroll only and never change the employee's contractual basic salary." Add earning is at the top-right for people who can create them.
| Column | Meaning |
|---|---|
| Employee | Employee name. |
| Type | Bonus, Incentive, Tip, Commission, Reward or Adjustment. Only a label for reports and the payslip; all types are paid the same way. |
| Description | Free text, or —. Printed on the payslip. |
| Amount | The money amount in the payroll currency. A percentage earning also shows its recipe underneath, for example "5% · Basic salary". |
| Effective date | Decides the payroll month. |
| Status | Pending, Approved, Rejected or processed (included in a payroll run). |
| Actions | Approve and Reject for approvers on pending rows; Delete for managers on pending or draft rows. |
20 earnings per page, newest effective date first. Empty state: No records found.
Add an earning
-
Click Add earning. The dialog Add an additional earning opens in two halves: the form on the left, the preview on the right.
-
Fill in the form:
Field Required Rules / defaults Notes Employee Yes A searchable list, "Search by name or employee number." Payroll month (effective date) Yes Defaults to today. The month of this date is the payroll month that pays the earning. Type Yes Default Bonus. Label only. Calculation Yes Fixed amount (default) or Percentage. "Each calculation keeps its own value; switching does not convert one into the other." Amount Yes with Fixed amount More than 0, up to 99,999,999. Shown with the employee's currency beside the box. Percentage Yes with Percentage More than 0. A percentage of the basis below. Percentage of Yes with Percentage Basic salary or Basic salary + fixed allowances. Each choice shows the employee's actual amount for that month. The earning is never part of its own basis. Description No Up to 500 characters. Printed on the payslip. Taxable No Ticked by default. Recorded on the earning and passed to the preview. -
Watch the right side while you type (the preview waits for a short pause):
- Calculated earning, for example
+AED 600.00, with the formula "Basic salary AED 12,000.00 × 5% = AED 600.00" for a percentage. - Salary and payroll for 2026-10: the employee, number and currency, then a table with three columns: Line, Approved now and Estimated after approval. Lines: Basic salary for the month, Fixed allowances, Approved overtime / holiday work, Tips, Approved additional earnings, Gross earnings, Social security (employee), Income tax, Partial month, Unpaid leave, Deductions, Advance installments this month, Total deductions and Estimated net pay. Lines that are zero in both columns are hidden; changed figures are highlighted. "Estimate — final figures come from the payroll run."
- Sources: references of the earnings, overtime, deductions and advances included.
- Pending — not included above: counts of additional earnings, overtime entries and attendance items awaiting approval, and advance requests ("not deducted until disbursed").
- Calculated earning, for example
-
Click Submit for approval. The button stays disabled until the calculation is shown and up to date. You see "Earning submitted for approval." and the earning is Pending.
Notices in the preview
| Notice | Meaning |
|---|---|
| "This month's payroll is already approved or closed. Choose a date in an open month." | The payroll for that month is frozen. Pick a date in an open month. Closed payroll is corrected through payroll adjustments. |
| "This employee is not paid in this month (not employed yet or already settled)." | The employee is not in that run (before the start date, or already settled by end of service). |
| "No salary is set for this employee — payroll figures are incomplete." | Set a salary first. |
| "No salary record covers this month; the current salary is used." | The calculation falls back to the current salary. |
| "Attendance items for this month are still under review." | The estimate may change when those are approved. |
| "You can see the calculated earning; payroll figures need payroll access." | You may calculate but not see payroll totals. |
| "The payroll estimate could not be calculated: message" | The calculation of the estimate failed; you can still save if the calculated earning is shown. |
| "The figures changed since your preview" — "Previewed AED 600.00, now AED 650.00. Review the new calculation and save again." | The salary or settings changed while you had the form open. Nothing was saved. Check the new calculation and submit again. |
How the amount is calculated
The server calculates the amount; the screen only previews it. A fixed amount is rounded to the payroll settings' decimal places and rounding mode. A percentage is taken from the salary the payroll run would use for the chosen month (salary and allowances effective in that month), multiplied by the percentage and rounded the same way. The result is stored with the earning, together with the percentage and the basis, so it does not change later if the salary changes. Saving is refused if:
- the month is closed ("This month's payroll is already approved or closed…"),
- a percentage has no salary to apply to ("The chosen basis has no salary for this month. Set the employee's salary first."),
- the amount works out to zero ("The calculated amount is zero.").
Approve an earning
- On a Pending row click Approve.
- Confirm in the dialog Approve additional earning — "Approve this additional earning so payroll can include it." — with the button Approve earning.
- The status becomes Approved. It is paid when the month's payroll is calculated.
Approval is refused if the month's payroll was approved or closed in the meantime ("This month's payroll is already approved or closed…") or if someone already decided the earning ("This request was already decided."). An earning is approved exactly once, even if two people click at the same time.
You can also approve from the Approvals inbox; it does the same thing.
Reject an earning
- Click Reject on a Pending row.
- In the dialog Reject, optionally type a Rejection reason (up to 500 characters). In the Approvals inbox the reason is required.
- Click Reject. The status becomes Rejected. Rejected earnings are never paid and cannot be deleted from this screen.
Delete an earning
Click Delete on a Pending or draft row and confirm Delete this record?. Approved and processed earnings cannot be deleted.
Statuses and lifecycle
| Status | Meaning | Paid? | Actions |
|---|---|---|---|
| Pending | Waiting for approval. | No | Approve, Reject, Delete |
| Approved | Approved, not yet in a run. | Yes, when the run is calculated | None |
| processed | Included in a payroll run. | Yes | None |
| Rejected | Turned down. | No | None |
If a run that included an earning is recalculated while still a draft, the earning goes back to Approved and is included again. Once the run is approved, it stays processed.
How it is paid
- The run adds every Approved or processed earning whose effective date falls in the month to gross pay.
- On the payslip the amounts appear under Bonuses & Incentives (together with tips), and the printed payslip lists each earning as Type: description.
- An earning approved after the month's run was approved is not paid that month. Give it an effective date in an open month.
- The estimate in the add dialog uses the same payroll engine and rolls back, so adding an earning never changes any run until it is approved and the run is calculated.
Worked example 1: a fixed bonus
Sara Khan (Sales Associate, salary AED 7,000) hit her October target. Layla, the Sales director, clicks Add earning: Employee Sara Khan, Payroll month 20/10/2026, Type Bonus, Fixed amount 1,000, description "Q3 target".
The preview shows Calculated earning +AED 1,000.00, and the table shows Gross earnings at 7,000.00 in Approved now and 8,000.00 in Estimated after approval, with Estimated net pay rising accordingly. Layla clicks Submit for approval: "Earning submitted for approval." Khalid in finance opens Approvals → Additional Earnings, clicks Approve, confirms "Approve — VP-14 (Sara Khan)". The October run adds AED 1,000 to Sara's gross pay.
Worked example 2: a percentage commission and a rejection
Omar Haddad (basic salary AED 12,000, fixed allowances AED 1,500) earns a 5% commission for October, and a reward is proposed for him.
- HR adds Commission, Percentage 5, Percentage of "Basic salary + fixed allowances — AED 13,500.00", effective 31/10/2026. The preview shows
+AED 675.00("Basic salary + fixed allowances AED 13,500.00 × 5% = AED 675.00"). Had they chosen Basic salary, it would be AED 600.00. - While the dialog is open the payroll team changes Omar's allowance. On Submit for approval the server recalculates AED 700.00 and shows "The figures changed since your preview — Previewed AED 675.00, now AED 700.00". Nothing is saved. HR reviews the new figure and submits again.
- HR adds a Reward, Fixed amount 2,000, description "Customer award".
- Khalid approves the commission and rejects the reward with the reason "Pay in Q4 bonus instead".
- On 31 October the October run (Draft) includes the commission; the earning shows processed.
- Omar's payslip print lists Commission under earnings; Bonuses & Incentives shows the AED 700.00 plus any tips.
How it connects
- Payroll Runs: approved earnings are added to gross pay of their month; pending ones are listed as "awaiting approval" in the preview.
- Approvals: pending earnings are one of the request types, and appear in the dashboard card Awaiting your approval.
- Payslips: Bonuses & Incentives.
- Overtime: use an Adjustment for pay that cannot be approved as an overtime record.
- Payroll Settings: the salary structure provides the basis for percentage earnings, and the decimal places and rounding mode round the result.
- End of Service: when someone leaves, the settlement checks flag a bonus or allowance that still needs a decision ("Bonus or allowance needs a decision"), and a percentage earning that must first be calculated in payroll ("Calculate percentage earnings in payroll first").
Confirmations and outcome notices
Approve uses a confirmation dialog; delete uses Delete this record?. A refused action shows the reason in a notice, for example "This request was already decided." If the connection drops you see Status not confirmed; click Check current status before repeating.
Tips and common problems
| Problem | Cause | Fix |
|---|---|---|
| The earning was not paid. | Still Pending, or the month's payroll was approved first. | Approve it; use a date in an open month. |
| Submit for approval is disabled. | No employee or amount yet, the preview is still calculating, or the month is closed. | Fill the form, wait for the calculation, pick an open month. |
| "The chosen basis has no salary for this month." | The employee has no salary on record for the month. | Set the salary on the profile or in Payroll Settings. |
| The preview has no payroll table. | You lack payroll access, or the employee is not paid that month. | Read the notice above the table. |
| The percentage amount does not match my mental maths. | The basis is Basic salary or Basic salary + fixed allowances for that month, not gross pay. | Pick the basis shown next to its amount. |
| Cannot delete. | The earning is already approved or processed. | It stays; correct next month with a deduction. |
| The record is not listed. | Only 20 per page. | Use the page controls. |