Monday 7 September 2009

Running a PAYE Scheme with Gnucash

If you're a startup then you're unlikely to want to pay for a commercial accounting package. One option is to use the free Gnucash application, which is an excellent open source, double-entry accounting package. However, trying to run a UK Pay As You Earn (PAYE) scheme for your employees using Gnucash was not, at least for me (!), totally obvious. Here's how I ended up solving this particular problem.

Background


For those not familiar with UK PAYE schemes, the basic idea is that the employer deducts income tax and National Insurance Contributions (NICs, similar to Social Security in other countries) "at source". The result is that an employee's gross salary has these deductions made to it, and they are paid the net salary, thus meaning that most employees do not need to make tax declarations at the end of the financial year. In addition to NICs made by employees, employers also contribute NICs (at a rate of 11% of the gross salary).

Accounts Needed


Gnucash works on the principle that expenses, liabilities, assets and income are all split into different accounts. For keeping track of a PAYE scheme, here are the accounts that I use:
  • Expenses:Payroll Expenses (you probably already have one of these as it's a default Gnucash account). This will keep a running total of only the net salary that you pay employees, i.e. it excludes the income tax that you as an employer deduct from the employee's gross salary, the employee National Insurance Contributions (NICs) that you also deduct, and the employer NICs (extra, on top of gross salary).
  • Expenses:Income Tax, Expenses:Employees' NICs, Expenses:Employer's NICs. These enable you to keep track of how much each of these have cost the company.
  • Liabilities:Income Tax Payable, Liabilities:Employees' NICs Payable, Employer's NICs Payable. These keep a running total of how much of each type of tax the company currently owes HMRC.
Recording an Employee's Hours

Depending on how your scheme is set up, you may pay your employees by the hour, or per week or month. I (mis)use Gnucash's concept of an "Expense Voucher" to record these. When you wish to record the employee's hours, simply create a new voucher ("Business", "Employee", "New Expense Voucher"). Make four entries in the voucher, one each for the income tax, two types of NICs, and of course the net salary. The expense accounts for each of these are those detailed above (i.e. Expenses:Payroll Expenses, Expenses:Income Tax, etc.). The liability account for this will be the default Liabilities:Accounts Payable, as none of these amounts have actually been paid yet. Post the voucher to the accounts ledger in the normal way, with a due date of the end of the month (or whenever you pay your employees).

(Note: in order to calculate the amount of tax and NICs due, you'll either need to calculate it manually, or use the tools on HMRC's Employer CD-ROM.)

Paying an Employee


When the end of the month comes (or whatever period you use), the expenses vouchers will pop up in the bills due dialogue. With "normal" bills, you would "Process Payment", and pay the full amount. Under this scheme, it's a little more complicated: you need to process each voucher four times (sorry!).

The first time you pay the employee their net salary, so enter that number into the amount field of the "Process Payment" dialogue box. The account that the money is transferred from is likely to be your Current Assets:Checking Account, as you'll be giving them actual money on their payday.

The second time you process payment you'll "pay" the income tax. The transfer account should now be your Liabilities:Income Tax Payable account, as you're simply transferring a liability from your general "unpaid bills" account to the specific one for income tax that you owe to HMRC (and pay on a different timescale to your employees: potentially you may only pay HMRC quarterly if you have a small wage bill).

The third and fourth times are used to similarly transfer liability for the employees' and employer's NICs to their respective liability accounts.

You should now have ended up with four entries in your Liabilities:Accounts Payable account, which reduce the balance by the total of the original expense voucher that you used to record the employee's hours.

Paying HMRC


Each month or quarter, you'll need to pay HMRC the NICs and income tax that you have deducted. All this involves is looking at the balance of each of Liabilities:Income Tax Payable, Liabilities:Employer's NICs Payable, and Liabilities:Employees' NICs Payable, and making a transfer from your Current Assets:Checking Account to each of them to zero the balances. Evidently these transfers from your checking account should in reality be going to HMRC.

Note: one thing that caught me out recently was being too efficient, and paying HMRC too early (!). One company I'm involved with makes quarterly returns, i.e. we don't pay NICs/income tax every month. I transferred the amount for the quarter ended July 5th at the end of June. Later I received letters about how they hadn't received the July payment... Turns out that if you pay before the date the quarter ends, they assume that the payment must be for the preivous month... You have been warned!

Conclusion


It's not an ideal system (processing the same voucher four times is a pain!), but it does mean that every number ends up in the correct account. If anyone has any good suggestions on how to make this process better, please comment!

(Note: Having been silent over the summer, mainly down to starting a new job, I'll now hopefully return to a more productive autumn as regards blogging!)