Payroll GL Reconciliation
将薪资处理器报告(Gusto、ADP、Paychex、Rippling)与总账日记帐分录进行核对 QuickBooks Online、Xero 或其他会计软件中。自动从工资单创建日记帐分录 摘要、验证工资/税收/福利分配以更正总账科目、检测差异和标记 月末结算前的差异。生成可供审计的调节工作底稿。 使用场合:将工资登记簿与总账进行核对,将工资处理器导出映射到会计科目表, 创建工资日记帐分录、验证员工福利扣除或准备工资工作底稿。 不适用于:工资单处理或运行工资单(使用您的工资单平台)、报税(W-2、941)、 链上工资单(使用链上工资单)、人力资源入职或福利登记。
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install totalclaw:samledger67-dotcom~payroll-gl-reconciliationcURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Asamledger67-dotcom~payroll-gl-reconciliation/file -o payroll-gl-reconciliation.mdGit 仓库获取源码
git clone https://github.com/openclaw/skills/commit/cce2556cdea9ef4f33f24d599271097c08d2a63a## 概述(中文)
将薪资处理器报告(Gusto、ADP、Paychex、Rippling)与总账日记帐分录进行核对
QuickBooks Online、Xero 或其他会计软件中。自动从工资单创建日记帐分录
摘要、验证工资/税收/福利分配以更正总账科目、检测差异和标记
月末结算前的差异。生成可供审计的调节工作底稿。
使用场合:将工资登记簿与总账进行核对,将工资处理器导出映射到会计科目表,
创建工资日记帐分录、验证员工福利扣除或准备工资工作底稿。
不适用于:工资单处理或运行工资单(使用您的工资单平台)、报税(W-2、941)、
链上工资单(使用链上工资单)、人力资源入职或福利登记。
## 原文
# Payroll GL Reconciliation Skill
Reconcile payroll processor reports to general ledger journal entries. Automate journal entry creation, validate account mappings, detect variances, and produce audit-ready workpapers — all from raw payroll exports.
---
## When to Use This Skill
**Trigger phrases:**
- "Reconcile payroll to the GL"
- "Create journal entries for payroll"
- "Payroll didn't hit the right accounts"
- "Map Gusto export to QuickBooks"
- "Check payroll entries for month-end close"
- "Payroll reconciliation workpaper"
- "Validate payroll tax liabilities"
**NOT for:**
- Running or processing payroll — use Gusto, ADP, or Paychex directly
- Filing 941/940/W-2 — use a tax compliance workflow
- On-chain payroll disbursement — use on-chain-payroll skill (PTIN-backed, not here)
- Benefits enrollment or HR workflows — out of scope
- Actual QuickBooks data entry — use `qbo-automation` for live API writes
---
## Payroll GL Reconciliation Overview
Every payroll run produces three categories of GL impact:
```
1. GROSS WAGES EXPENSE (Debit)
├── Regular wages
├── Overtime wages
├── Bonus / commissions
└── PTO / sick pay
2. EMPLOYER PAYROLL TAXES EXPENSE (Debit)
├── Employer FICA (Social Security 6.2%)
├── Employer Medicare (1.45%)
├── Federal Unemployment (FUTA 0.6%)
└── State Unemployment (SUTA — rate varies by state)
3. LIABILITY ACCOUNTS (Credit)
├── Net pay payable (cash out → employee bank accounts)
├── Employee FICA withheld
├── Employee Medicare withheld
├── Federal income tax withheld
├── State income tax withheld
├── Employee benefits deductions (health, dental, 401k)
└── Employer benefits contributions (401k match, HSA)
```
**The fundamental check:**
```
Total Debits = Gross Wages + Employer Taxes + Employer Benefits
Total Credits = Net Pay + All Withholdings + All Liabilities
Debits must equal Credits. If not, there's an error.
```
---
## Standard Chart of Accounts Mapping
### Expense Accounts (Debits)
| Payroll Line Item | GL Account | Account Type |
|---|---|---|
| Regular wages | 6100 – Salaries & Wages Expense | Expense |
| Overtime pay | 6100 – Salaries & Wages Expense | Expense |
| Bonus / commissions | 6110 – Bonus Expense | Expense |
| Employer FICA | 6200 – Payroll Tax Expense | Expense |
| Employer Medicare | 6200 – Payroll Tax Expense | Expense |
| FUTA | 6210 – Federal Unemployment Tax Expense | Expense |
| SUTA | 6220 – State Unemployment Tax Expense | Expense |
| Employer 401(k) match | 6300 – Employee Benefits Expense | Expense |
| Employer health premium | 6310 – Health Insurance Expense | Expense |
| Employer HSA contribution | 6320 – HSA Contribution Expense | Expense |
### Liability Accounts (Credits)
| Payroll Line Item | GL Account | Account Type |
|---|---|---|
| Net pay to employees | 2000 – Net Payroll Payable | Current Liability |
| Employee FICA withheld | 2100 – FICA Payable | Current Liability |
| Employee Medicare withheld | 2110 – Medicare Payable | Current Liability |
| Federal income tax withheld | 2120 – Federal Withholding Payable | Current Liability |
| State income tax withheld | 2130 – State Withholding Payable | Current Liability |
| Employee 401(k) deduction | 2200 – 401(k) Payable | Current Liability |
| Employee health deduction | 2210 – Health Insurance Payable | Current Liability |
| Employer FICA (matching) | 2100 – FICA Payable | Current Liability |
| Employer Medicare (matching) | 2110 – Medicare Payable | Current Liability |
> **Note:** When taxes are remitted to the IRS/state, debit the liability account and credit cash.
---
## Department / Cost Center Allocation
For multi-department businesses, allocate wages by department:
```
6100 – Wages Expense (Engineering) [Debit] $45,000
6100 – Wages Expense (Sales) [Debit] $30,000
6100 – Wages Expense (G&A) [Debit] $25,000
```
**Allocation methods:**
1. **Direct mapping** — each employee assigned a department in payroll system
2. **Headcount ratio** — allocate shared costs proportionally
3. **Time tracking** — allocate based on logged hours per project/department
4. **Revenue ratio** — allocate shared overhead by revenue contribution
---
## Processor-Specific Export Formats
### Gusto
Gusto provides a "Payroll Journal" CSV export under Reports → Journal Entries.
```python
import csv
from dataclasses import dataclass
from typing import List
@dataclass
class GustoPayrollLine:
pay_date: str
employee_name: str
department: str
gross_wages: float
employee_fica: float
employee_medicare: float
federal_withholding: float
state_withholding: float
employee_401k: float
employee_health: float
net_pay: float
employer_fica: float
employer_medicare: float
futa: float
suta: float
employer_401k: float
employer_health: float
def parse_gusto_export(filepath: str) -> List[GustoPayrollLine]:
"""
Parse Gusto payroll journal CSV into structured records.
Gusto columns (may vary by plan):
'Check Date', 'Employee Name', 'Department', 'Gross Pay',
'Employee OASDI', 'Employee Medicare', 'Federal WH', 'State WH',
'401k Employee', 'Medical Employee', 'Net Pay',
'Employer OASDI', 'Employer Medicare', 'FUTA', 'SUTA',
'401k Employer', 'Medical Employer'
"""
lines = []
with open(filepath, 'r') as f:
reader = csv.DictReader(f)
for row in reader:
lines.append(GustoPayrollLine(
pay_date=row.get('Check Date', ''),
employee_name=row.get('Employee Name', ''),
department=row.get('Department', 'General'),
gross_wages=float(row.get('Gross Pay', 0) or 0),
employee_fica=float(row.get('Employee OASDI', 0) or 0),
employee_medicare=float(row.get('Employee Medicare', 0) or 0),
federal_withholding=float(row.get('Federal WH', 0) or 0),
state_withholding=float(row.get('State WH', 0) or 0),
employee_401k=float(row.get('401k Employee', 0) or 0),
employee_health=float(row.get('Medical Employee', 0) or 0),
net_pay=float(row.get('Net Pay', 0) or 0),
employer_fica=float(row.get('Employer OASDI', 0) or 0),
employer_medicare=float(row.get('Employer Medicare', 0) or 0),
futa=float(row.get('FUTA', 0) or 0),
suta=float(row.get('SUTA', 0) or 0),
employer_401k=float(row.get('401k Employer', 0) or 0),
employer_health=float(row.get('Medical Employer', 0) or 0),
))
return lines
```
### ADP
ADP exports vary by product (RUN, Workforce Now, TotalSource). Request the "Payroll Register" + "Tax Summary" reports.
```python
def parse_adp_register(filepath: str) -> dict:
"""
Parse ADP payroll register. ADP uses fixed-width or pipe-delimited format.
Key ADP column names:
'Employee Name', 'Reg Hours', 'Reg Earn', 'OT Earn', 'Gross',
'FIT', 'SIT', 'SS EE', 'MED EE', 'SS ER', 'MED ER',
'401K EE', '401K ER', 'Medical EE', 'Medical ER',
'Net Pay', 'FUTA', 'SUI'
"""
# ADP format detection
with open(filepath, 'r') as f:
header = f.readline()
delimiter = '|' if '|' in header else ','
# ... parse with detected delimiter
pass
```
### Paychex
```python
def parse_paychex_summary(filepath: str) -> dict:
"""
Paychex Payroll Summary Report.
Download from: My Paychex → Reports → Payroll Summary
Key sections in Paychex report:
- 'Earnings' block: Regular, Overtime, Bonus
- 'Employee Deductions' block: FIT, SIT, FICA,