Payroll is a financial record of wages, net pay, paid vacations, and deductions for an employee.
This section demonstrates how to track payroll using GnuCash
.
Payroll is a financial record of wages, net pay, paid vacations, and deductions for an employee. Basically, anything that relates to giving money or benefits to an employee. Payroll is one of the more complex tasks in accounting, because there are many different accounts, people, and agencies involved in paying salaries.
Payroll is typically accounted for as an expense. Sometimes accountants “store” some payroll expenses in a short term liability account. This is useful for things such as payroll taxes, which may be paid at a different time than the employee. The employee might get paid biweekly, while taxes are paid quarterly. This chapter presents a methodology which expenses payroll immediately for salaries, but stores taxes in liability accounts.
Note | |
---|---|
|
Local tax law must be considered when setting up accounts. Because there are many different ways payroll taxes are handled throughout the world, this section presents a very simple structure. From this, you should be able to adapt your particular payroll deductions setup.
Assume that you must pay 2 taxes, Tax1 and Tax2, and that each has an employee contribution and an employer contribution.
The employee’s salary and these two taxes are expense accounts. The tax components are liability accounts. The tax liability accounts are where you accumulate the taxes withheld for all of your employees. The taxes are later paid to the appropriate government agency.
Simple Payroll Account Layout: -Assets --Checking -Liabilities --Tax1 (short term “storage” account) --Tax2 (short term “storage” account) -Expenses --Salaries --Tax1 --Tax2
Note | |
---|---|
Resist the temptation to create per-employee sub-accounts to track individual salaries. Creating a sub-account for each employee leads to unmanageably large lists of accounts. Imagine the account structure after a few years of employees coming and going. It is much simpler to keep all of your employees’ payroll records within a single account (Expenses:Salaries for example) and use reports to view per-employee information. The Transaction report can be used to sort and total by description or memo (but not by part of them). To report salary transactions for a specific employee where the employee name or code is entered in
the transaction description or memo, use the Find Transaction
assistant (
→
) to select the transactions, and then report on them using
→
. Further formatting or analysis may be done by copying and pasting the report into a
spreadsheet. See Find
Transaction in the |
GnuCash
does not have an integrated payroll system. GnuCash
can track your payroll expenses, but you
need to develop a payroll protocol and perform the calculations outside of GnuCash
, in a
spreadsheet for example. In this section, one such protocol is presented. You can use the
sample protocol as a model.
The first step to the payroll protocol is to create a list of all the possible taxes and deductions for each employee. Each entry should include definitions and formulas for calculating each value. Once the protocol is established it needs to be changed only when payroll laws or tax rates change.
In the proposed scenario, such a list would look like this:
E_GROSS_SALARY - Employee gross salary
E_TAX1 - Employee contribution to tax1 (X% of E_GROSS_SALARY)
E_TAX2 - Employee contribution to tax2 (X% of E_GROSS_SALARY)
C_TAX1 - Company contribution to tax1 (X% of E_GROSS_SALARY)
C_TAX2 - Company contribution to tax2 (X% of E_GROSS_SALARY)
Note | |
---|---|
The employee’s net salary (E_NET_SALARY) is defined as E_GROSS_SALARY - E_TAX1 - E_TAX2 and need not be placed in this list since it is composed of items that already exist. |
Place the actual formulas for calculating each deduction in this list. Sometimes these formulas are quite complex, and sometimes they simply say "look it up in table XYZ of the tax codes".
Notice that you can calculate some interesting values using the above definitions. One such value is the total cost to the company: E_GROSS_SALARY + C_TAX1 + C_TAX2.
When you record payroll in GnuCash
, do so with a single split transaction. This split transaction
populates the appropriate expense and liability accounts. If you need to look the payroll
details at a later time, open the split transaction.
With the deductions list from above, an employee split transaction map can be generated. Each of the
items in the list is mapped to a GnuCash
account.
Table 13.4. Payroll Transaction Map
Account | Increase | Decrease |
---|---|---|
Assets:Checking | E_NET_SALARY | |
Expenses:Salaries | E_GROSS_SALARY | |
Liabilities:Tax1 | E_TAX1 | |
Liabilities:Tax2 | E_TAX2 | |
Expenses:Tax1 | C_TAX1 | |
Liabilities:Tax1 | C_TAX1 | |
Expenses:Tax2 | C_TAX2 | |
Liabilities:Tax2 | C_TAX2 |
Note that the C_TAX1 and C_TAX2 components have entries in the both the liability and expense accounts. The company component of each tax is expensed at the time of payroll, but remains a liability until taxes are due.
Go to the account from which the employee will be paid, for example your Assets:Checking account. Open a split transaction and enter the real values using the Transaction Map above as a guide. Repeat this for all employees.
Tip | |
---|---|
This manual process is tedious, especially if you have a large number of employees. One If payroll transactions do not change significantly every pay period, you can also use the duplicate transaction feature to duplicate each employee’s most recent payroll transaction for the current pay period. If you find you are doing so all the time, read about the Schedule Transactions feature and save even more time! |
The final thing to do is to pay the taxes to the government. The liability accounts have been collecting the taxes for various government agencies, and periodically you need to send a check to the government to pay this charge. To do so, you simply enter a 2 account transaction in (for example) your checking account to pay off the tax liability. The transaction is between the checking account and the liability account, no expense account is involved. The expense accounts are charged at the time the tax liability is recorded.
Using the account setup seen previously, let’s go through an example. Assume that there are 2 employees (E1 and E2) who each earn $1000 per month gross salary. The employee contribution to Tax1 and Tax2 are 10% and 5% respectively. The company contribution to Tax1 and Tax2 are 15% and 10% each on top of the employee’s gross salary.
Starting with $50k in the bank, and before doing any payroll, the account hierarchy looks like this:
The deductions list for employee 1 are:
E_GROSS_SALARY - Employee gross salary - $1000
E_TAX1 - Employee contribution to tax1 - $100 (10% of E_GROSS_SALARY)
E_TAX2 - Employee contribution to tax2 - $50 (5% of E_GROSS_SALARY)
C_TAX1 - Company contribution to tax1 - $150 (15% of E_GROSS_SALARY)
C_TAX2 - Company contribution to tax2 - $100 (10% of E_GROSS_SALARY)
Table 13.5. Payroll Transaction Map for Employee 1
Account | Increase | Decrease |
---|---|---|
Assets:Checking | $850 (E_NET_SALARY) | |
Expenses:Salaries | $1000 (E_GROSS_SALARY) | |
Liabilities:Tax1 | $100 (E_TAX1) | |
Liabilities:Tax2 | $50 (E_TAX2) | |
Expenses:Tax1 | $150 (C_TAX1) | |
Liabilities:Tax1 | $150 (C_TAX1) | |
Expenses:Tax2 | $100 (C_TAX2) | |
Liabilities:Tax2 | $100 (C_TAX2) |
From the checking account, enter the split transaction for employee 1. It should look like this:
Tip | |
---|---|
When paying employees, enter only the employee name in the Description area. If you decide to use
|
Repeat this for the second employee, which leaves the account hierarchy looking like this:
Now, you will enter the company contributions. The Liabilities:Tax1 and Liabilities:Tax2 accounts track how much you must pay to the government for each tax type. When it is time to pay these agencies, you will make a transaction from the checking account to these liability accounts. No expense accounts are involved. The main account will then appear like this: