Will's avatar

⬅️ See more posts

Reporting business accounts using Ledger

17 April 2021 (4 minute read)

🔮 This post is also available via Gemini.

100daystooffload finance technology ledger

💯 100 Days to Offload

This article is one of a series of posts I have written for the 100 Days to Offload challenge. Disclaimer: The challenge focuses on writing frequency rather than quality, and so posts may not always be fully planned out!

View other posts in this series.

As is the case with many countries, all businesses in the UK must report the state of their financial accounts to the relevant inland revenue service at their year-end (in the UK, this is HMRC).

This is also the case if you are a freelancer or sole-trader (or if you’ve made other untaxed income - e.g. from investments). In these cases, this is called your Self Assessment. Self Assessments are pretty straight forward, and can usually be completed online by the indiviual themself - as long as they have kept good accounts and know their numbers.

However, the required year-end business accounts are different and are more complex in order to account for all the different types of operating models and variety of business types. There are also various rules for businesses of different sizes and if you don’t know what you’re doing you may end up paying too much or too little tax.

As such, it is generally advisable to appoint an accountant to help you at your year-end (even if you’re making a loss!). It gives you peace of mind and also saves you time.

My business year-end passed recently. Historically I’ve used Xero to track business finances - since it is a good one-stop shop for issuing invoices, getting paid, tracking bills and finances, and automatically reconciling against your bank. It’s a great tool for small businesses as it helps you make sure everything is correctly accounted for, and it allows your accountant to easily get the information they need in order to make their reports for your business to HMRC.

However, it is a paid-for service, and if you’ve paused trading at least temporarily - like me - or if you’re going through a financial dry patch, it feels a waste to pay for something that you’re not using.

About a year ago I got quite heavily into plain-text accounting - it feels logical and in-control. I was using it for some of my personal finances and so I thought I’d also switch business bookkeeping to the Ledger approach too.

I exported my Xero accounts into a new Ledger file and paused my Xero subscription. Every month I would run through my bank statement/invoices/bills, and update the ledger and reconcile against the business bank account. As such, when it came round to year-end, I had a full set of books for the relevant tax period.

This is where I worried a little. The lady who normally files my accounts had access to my Xero and can run everything from there (many small business accountants in the UK recommend and sometimes only work with Xero). I didn’t want to have to look for and begin working with a new accountant, and so I looked to see if I could get Ledger to output balance sheets and P&Ls in a similar way to Xero.

The Ledger tool offers a number of reporting mechanisms. The most useful are perhaps the balance and register commands, which respectively show the balance across your accounts and a transaction log.

After running a few of these simple Ledger commands, I had the files I needed: a balance sheet (covering all accounts), a profit & loss account (essentially a balance sheet covering income and expense accounts), and a transaction register. Examples describing how I generated these are shown below (in this case assuming a year-end of 31st December).

Balance sheet: To generate the balance sheet I used ledger balance -b 2020/01/01 -e 2021/01/01, which outputs something along the lines of:

          £-XXXX.XX   Assets
           £XXXX.XX    Bank 1
          £-XXXX.XX    Bank 2
           £XXXX.XX   Equity:Shareholder:Dividends
           £XXXX.XX   Expenses
             £XXX.XX    Advertising
              £XX.XX    Compliance
              £XX.XX    Domains
             £XXX.XX    Hosting
             £XXX.XX    Services
             £XXX.XX      Accounting
               £X.XX      Banking
              £XX.XX      Legal
             £XXX.XX    Software
            £XXXX.XX    Tax:Corporation
            £-XXX.XX  Income:Sales:Product
--------------------
                   0

Profit & loss account: The rough “P&L” was generated with ledger balance -b 2020/01/01 -e 2021/01/01 income expenses:

           £XXXX.XX   Expenses
             £XXX.XX    Advertising
              £XX.XX    Compliance
              £XX.XX    Domains
             £XXX.XX    Hosting
             £XXX.XX    Services
             £XXX.XX      Accounting
               £X.XX      Banking
              £XX.XX      Legal
             £XXX.XX    Software
            £XXXX.XX    Tax:Corporation
            £-XXX.XX  Income:Sales:Product
--------------------
            £XXXX.XX

(Where the final line indicates the overall balance between income and expenses).

Transaction log: The register was generated using ledger register -b 2020/01/01 -e 2021/01/01. I won’t include a sample below, as a transaction log is mostly obvious. I also generated it in CSV format in case this made it easier for the accountant at all: ledger csv -b 2020/01/01 -e 2021/01/01.

I placed the outputs from these commands into separate files and sent them to the accountant, who was then able to submit the company accounts without needing Xero. This was a great experience, as it gives me confidence in the end-to-end functionality of Ledger (and other similar command-line accounting tools). Writing and keeping books using plain-text files is quicker than Xero (which can be quite clunky), and now I can also easily get the information out the other end too. And it’s free!

✉️ You can reply to this post via email.

📲 Subscribe to updates

If you would like to read more posts like this, then you can subscribe via RSS.