This page explains the full formula Sweldo uses to go from raw attendance data to the final net pay on each employee's payslip. Every number is traceable — nothing is a black box.
Everything in payroll is built on an hourly equivalent (HE) — the amount the employee earns per hour:
For example, an employee on ₱600/day has HE = ₱75/hour.
paid_days = days with a valid clock-out in the period + approved leave days.
Days where the employee clocked in but has no clock-out are excluded until the time log is completed or edited.
Absent days (no clock-in, no approved leave) contribute zero — this is the "no work, no pay" principle.
Daily-rate workers are paid for a full day regardless of when they arrive, so the late portion is deducted. Hourly-rate workers are not double-penalised — their late arrival already means fewer hours clocked, so their base pay is already reduced. Late minutes below the grace period (default: 15 min) are not counted at all.
The 1.25 factor is the standard DOLE overtime premium — 25% above the regular hourly rate. Only approved OT is included. OT requests rejected or still pending are not.
An additional 30% of the hourly rate is paid for hours worked on a rest day (DOLE minimum). Only applies when Rest Day Premium is enabled in Settings and a rest-day shift adjustment is approved.
Night differential covers hours worked between 10 PM and 6 AM. The rate is configurable per employee (default: 10%, DOLE minimum). Night-differential hours are logged separately.
Statutory deductions are based on the employee's monthly salary equivalent and then prorated for the pay period.
The proration factor is period_days ÷ 30
(e.g., a 15-day cutoff uses factor = 0.5).
Rates and caps are maintained in Settings → Statutory Rates. Update them whenever SSS, PhilHealth, or Pag-IBIG releases a new contribution schedule.
For semi-monthly payroll, pay_periods_per_year = 24.
De minimis allowances (rice subsidy, medical, clothing) are subtracted before annualizing — they are non-taxable up to BIR thresholds.
Minimum wage earners always get ₱0 withholding tax regardless of this computation.
The computed value is editable before releasing payroll.
Net pay can never go below ₱0. If total deductions would exceed gross pay (rare, but possible with a large vale), the excess is carried forward — the employee still owes the balance in future periods.
Sweldo accumulates the employee's base_pay across all released payroll runs within the calendar year.
The 13th month is typically added to the December payroll run. It can be entered manually or computed by clicking
the "Compute 13th Month" button in the payroll editor, which reads the year's history automatically.