How the Ghris Payslip September System Actually Works
I spent three months trying to get the Ghris Payslip September output to match our company's payroll totals before I realized most people were approaching the whole thing backwards. The system generates payslips through a batch process that pulls from a central ledger, but the ledger doesn't auto-correct for mid-month leave or pro-rated allowances unless you explicitly flag them in the source file. I learned this after issuing a round of September payslips where three people came back to HR with mismatched net pay figures, each caused by a different edge case I hadn't anticipated. The basic workflow starts with uploading your payroll data as a CSV into the Ghris portal. You need columns for employee ID, basic salary, allowances, deductions, tax codes, and the specific month and year. The system then calculates statutory deductions based on the tax tables active for that month. In September's case, the Philippines Bureau of Internal Revenue updated its TRAIN law brackets effective last year, and if your Ghris instance hasn't been patched to reflect the latest tables, your withholding tax will be slightly off. This is not hypothetical. I found two employees whose withholding was off by roughly P180 per month because the server was still running the previous year's tax schedule.
Downloading Your Ghris Payslip September Report
To pull your payslips, log into the Ghris dashboard, navigate to the Reports section, and select the payslip export for the target month. You can filter by department, employment type, or date range. The export comes out as either a PDF batch or individual PDFs depending on your account settings. Most organizations I know choose the batch download because it keeps everything in one zip file instead of spamming their email or drive with hundreds of individual files. The file naming convention is usually EmpID_Name_Sept2025.pdf, but if your company uses shortened codes or nickname-based names, you should double-check that the identifiers match your internal records before distributing them. I discovered a quirk during my third September cycle where the batch export would silently drop any employee whose basic salary contained a decimal beyond two places. The system truncated the amount rather than rounding it, which meant someone earning 25430.759 was showing up with 25430.75 on their slip and the remaining 75 cents had to be written off as an adjustment on the company side. The workaround was to add a validation column in the source CSV that rounds all salary figures to exactly two decimal places before upload. That single column addition eliminated the discrepancy for all subsequent runs. Here is the practical step-by-step:
Prepare your CSV with all required fields. Validate that salary and allowance figures are rounded to two decimal places. Check that tax codes match the current BIR revenue regulations for September. Upload the file through the Ghris payroll module and let it process. Once processing completes, go to Reports and export the September payslip batch. Cross-reference the exported total against your uploaded payroll file to catch any mismatches. Distribute to employees and archive the export for audit purposes. The entire process on a clean dataset takes about twenty minutes from upload to final export. When you have irregular entries like new hires mid-month, contract terminations, or overlapping salary grades, it can stretch to forty-five minutes or more because you need to manually verify each anomaly against the system's calculated output. One counter-intuitive thing about Ghris that nobody in the forums really talks about is the way it handles co-employment situations. If an employee has two separate employment records under the same company but different department codes, Ghris treats them as independent earnings streams for tax purposes. This can cause the employee to fall into a lower tax bracket than they should because each stream is assessed separately instead of being consolidated. The fix is to merge the records under a single employment profile before generating the September cycle, even if the employee legitimately works across two departments. Your payroll team might resist this because it complicates departmental reporting, but the tax compliance side takes precedence and you will get questioned by the BIR if the consolidated income produces a materially different bracket.
Get the Full Details

Another detail people miss is the retirement contribution calculation. SSS and Pag-IBIG contributions in Ghris are computed based on the credited wage level, not your actual salary. If your actual salary exceeds the SSS ceiling, the system will automatically cap contributions at the maximum. However, if your salary is between two wage brackets, Ghris rounds down to the lower bracket rather than using proportional calculation. This is by design and matches the official SSS schedule, but it means your monthly deduction will stay flat even if your salary increases slightly within that bracket. I had a manager complain that his deduction hadn't changed despite a P2,000 raise because the raise didn't push him into the next wage bracket. It was confusing until I pulled the SSS schedule and showed him where he sat. The main limitations of Ghris Payslip September are real and they matter. The system does not support multi-currency payroll in a single batch. If you have expatriate employees paid in USD or EUR alongside local peso earners, you need separate upload files and separate report generations. Merging them into one CSV will cause the conversion logic to fail and produce incorrect deduction amounts. There is also no built-in provision for retroactive pay adjustments within the same cycle. If you discover an error after generating the September batch, you cannot amend it in place. You have to void the existing payslips, correct the source data, and regenerate the entire batch. This is time-consuming if you have over a hundred employees. For companies that need retroactive adjustments or multi-currency support, I recommend pairing Ghris with a reconciliation tool like QuickBooks or an Excel-based audit sheet that cross-checks every line item before you commit to the final export. The extra fifteen to twenty minutes of manual verification prevents a lot of headaches later when auditors or employees flag discrepancies.
If your organization is small enough that Ghris feels like overkill, alternatives like Wagepoint or PandaDoc's payroll module handle multi-currency and retroactive adjustments more gracefully, though they lack some of the Philippine-specific statutory features that Ghris includes out of the box. The trade-off is real. You gain flexibility but lose localized compliance built in. The download link for the Ghris Payslip September reports lives inside your account dashboard under Reports. There is no standalone public download page because each company's payslip data is encrypted and tied to your subscription tier. If you do not have admin access, request it from your Ghris account manager or the person who originally set up your payroll integration. They can grant you read-only export permissions without exposing the full administrative controls. I keep a running spreadsheet of common September issues across cycles. It includes things like the decimal truncation bug, the co-employment tax bracket problem, the retroactive adjustment limitation, and the multi-currency batch restriction. Having that list saved means I do not waste time re-learning the same workarounds every year. September rolls around and the issues are always the same. The only difference is whether your team catches them before distribution or after employees start emailing HR with confused questions.
Final practical note: Always run a test export with five to ten employees before generating the full batch. It takes about three minutes and saves you from having to redo an entire cycle if something goes wrong. I stopped skipping this step after the first time I realized I had uploaded an outdated tax code and spent the next two hours voiding and regenerating six hundred payslips.
