
The Surprising Ease of Plain Text Accounting - vincecima
http://www.vincecima.com/2016/06/12/the-surprising-ease-of-plain-text-accounting.html
======
somberi
As a middle-aged, married man, my current view is:

1\. I had kept personal accounts for a while, until I realized my expenses
swayed month-to-month, but within a narrow band (+- 10%). This made the
"insights" less interesting and approximations worked well enough for my use
case. I suspect that this is so, for most people.

For who have not kept personal accounts, what I am describing is similar to
when you got your Fitbit - The first 2-3 weeks are full of glorious insights
and a month goes by and you do not really need a fitbit to tell you how many
steps you walked. Approximation approaches real count. Same for personal
ledgers.

2\. I now focus my efforts on income expansion rather than cost control. Some
of you may say, recording costs is not controlling it. In that case, I find
accounting, even less useful (once I have arrived at approximate cash
outflow). Income expansion, puts me in a different frame, which I find
strangely empowering. Even more so than the satisfaction that comes from
having controlled costs.

~~~
wccrawford
Oddly, this does _not_ end up true for dieting, as I've found out. I dieted,
lost a lot of weight with a prescription pill and then more on Weight
Watchers. I thought I knew what I was doing, and could "count calories"
without actually tracking them.

What I found was that I might know certain things that I eat often, but
anything even a _little_ new ended up being badly estimated. If I want to
continue losing weight, I need to track.

And my estimates went both ways, too. I discovered this one day when I was
_crazy_ hungry, and it turned out I'd massively under-eaten that day (or the
day before? I forget), which can be as bad for dieting as over-eating thanks
to the lowered metabolism and then compensatory over-eating that eventually
happens.

~~~
somberi
A gentle remark - I accumulate calories when I am irresponsible. I stop
accumulating them when I am disciplined. Converse is true with money.

~~~
krolley
This sounds like the same thing, phrased differently. According to the
grandparent, categorising something new into the 'responsible' and
'irresponsible' buckets is hard and not something that generally gets better
with experience.

------
vinceguidry
Accounting for personal finances is a waste of time, in my opinion, if you
plan to be upwardly mobile. Instead of making the most of what you have, just
make more. Spend all the time and resources you need to to make yourself
better. In five years, I've gone from making $30K / year to over $100K.
Accounting will not get you there. Removing all the barriers in the way of
success will.

Businesses need accounting. Humans need nurturing and growth. Don't nurture
your business and account for yourself. Account for the business and nurture
yourself. Your business can't love you back.

~~~
kevindong
This is the most absurd thing I've read in the last couple months. If you're
trying to troll, 10/10.

~~~
vinceguidry
Wasn't trying to troll.

I was serious enough once about personal accounting that I built my own web
app because I thought the standard double-entry system wasn't really suited to
the task. After I got the basic system tweaked to my satisfaction, I used it
for several months.

I started to take it to the next level, but had the curious realization that I
cared more for the process of developing the app than I did for actually
tracking my finances. Eventually I gave it up, and went out and got a better
job where I'm more fulfilled professionally and way better paid. I learned
then that working on the app was substituting for professional fulfillment and
vowed never to let that happen again.

Tracking cash inflows and outflows is an essential business skill. But a
business is a machine, and people are not. Personal productivity does not
respond well to wringing unit economics out of daily activities. If your goal
is to turn yourself into a machine, by all means use a mechanistic approach.
But we are meant to build machines, not to be them.

~~~
freditup
Don't know why people are downvoting you, your comment was grey when I read
it. I see nothing that makes your comment invalid and I think it contributes
to the conversation.

Perhaps it's not the popular opinion, but in a lot of cases I agree with you.
Watching over every penny meticulously can become a much too consuming habit
that produces little net positive result. It's easy (at least for me) to get
caught up in trying to never waste money, and it's really not worth it.

~~~
JaumeGreen
I guess people are downvoting him because of his assurance that instead of
managing finances one simply has to earn more.

For most people earning more is not feasible, at least not while having some
personal live, family matters and depends also on their education, upbringing
and people they know.

Some people work a fuckton of hours for a measly pay, and so they can't get to
earn more, because they have no time to improve themselves or even to go to
interviews.

For these kind of people, that is the majority, some time of personal
accounting will be easy and will bear lots of fruits, while they wouldn't be
able to improve their jobs in the near future.

~~~
Nimitz14
I didn't read it as "one simply has to earn more".

He's saying it's better to work on things that will lead to one earning more
money, rather spending time monitoring how much one is spending. The first
leads to an improved state, the second is just for ensuring one's state does
not worsen. With one your increasing your 'cap', with the other you're just
maximizing given a 'cap' (cap meaning the amount of money you can work with).

~~~
bloat
Its not an either or proposition though. It's frankly ridiculous to propose
that I could give up actively managing my finances and use that extra time (an
hour a week maybe) to significantly increase my income.

------
chj
Seriously, spreadsheets are born for these tasks.

I tried but didn't like accounting apps because they force you to do too much
work and just aren't that easy to find the functions I need. In the end I
designed an excel file tailored to my needs (and it's giving me more fun than
writing code), which gives monthly view of my financial activities, with
support for currency conversion. So at the end of every month I would spend
about half an hour logging all the numbers and get a nice overview. I can also
put in spending and earning projections so I can easily see how I will be at
the end of year.

~~~
austinjp
Indeed. Only last week I imported a year's bank statement (one single file
downloaded manually) into Google Sheets (worked perfectly first time). Then I
spent an hour scanning it by eye and constructing dirt-simple regexes to
extract outgoings into categories. As a check I compared total outgoings vs
total regex-extracted outgoings; it was out by £400 for the whole year, which
I can tolerate.

It told me exactly what to needed to know: I spend a surprising amount on
eating out, and a surprisingly small amount on holidays. Budget for the year:
spend 50% less on eating out.

Two hours work total. Not perfect, but a piece of cake, and very valuable.

~~~
4ndr3vv
Devils Advocate: Ah! but now you have a budget, you need to track it to make
sure you're sticking to it - how do you know if you're spending 50% less on
eating out this month if the data arn't there in-front of you to check?

~~~
lm2s
I felt like the parent comment didn't meant 50% exactly, just an
approximation. So, if it were me, I'd just keep that in mind when deciding to
go out to eat.. After 1 or 2 months it's easy to see if I'm on track to the
~50% or not and adjust accordingly.

------
ams6110
A few years ago I volunteered to be treasurer of a small non-profit. They had
been keeping their books on paper. I looked at QuickBooks, and it frankly
baffled me. Being an old hand at command line and plain-text computing, I
found ledger and immediately loved it. I used the emacs ledger mode to manage
the ledger file. I kept the ledger file version controlled in mercurial, so I
could easily see diffs between various points in time which was sometimes
helpful.

When I turned the books over to the next treasurer, I helped him import into
QuickBooks, which he was already familiar with. That's the one shortcoming of
the tool, that you are unlikely to find anyone else (e.g. professional
accountants) who's willing to work with it.

------
kovrik
These accounting apps never worked for me. I think I'm missing something, but
how do you actually use them?

Do you really put every cent you spend into it? How is it possible? How do you
remember all that. for example, during a weekend trip?

Next step: ok, assume we put every cent spent into the app. How does it help?

Even more: I already have all my transactions listed in my bank's mobile app.
How to use it?

~~~
c22
I track every cent. I used to just carry a small notebook with me and write in
it every time I bought something. Now I share a budget with my girlfriend
though so we keep a notebook at the house to track things. I just keep
receipts in my wallet then every few days I take them out, record the amounts,
and throw them away.

~~~
gbajson
1\. What's the point of it? 2\. How much hours/week does it cost?

~~~
infinite8s
The main point of accounting is planning for the future. If you know how much
money flow you have over given time periods then you can plan ahead for large
upcoming purchases, or possibly paying yourself if you wish to bootstrap a
business, etc.

------
preek
We are actually using this in our company and couldn't be happier. We're using
Emacs ledger-mode and git to keep track of everything.

Ledger is also tied into our billing system. A couple of shell scripts and
Latex easily beats everything that I have seen in the last 10 years in the
market. That is, of course, a subjective statement and is meant to be such.

~~~
coryking
It sounds like you are try to build your own home-brew accounting system. That
is absolutely insane. How do you ship this off to your accountant during tax
season? How do you deal with accrual-based accounting concepts like invoices,
accounts recevable, accounts payable, long term and short term debt, assets,
etc?

Do you even know what accrual based accounting is and why you want to use it?

~~~
db48x
Ledger easily handles accounts receivable/payable, though it doesn't actually
generate the invoices for you. Personally, I use org-mode for time tracking
and invoice generation (invoices aren't even PDFs ATM, though I have had
clients that insisted on them), then I add a corresponding transaction in a
ledger file when I send the invoice or receive a payment.

------
cyberferret
This is basically the old EMACS/Vim vs Sublime/Atom debate that developers
have battled for years, moved across to the accounting world, isn't it?

Having been involved in accounting system implementation for > 30 years, I
understand that people are usually used to doing things one way and find it
hard to adapt to change, but even after all my years in the industry, command
line accounting fills me with unease - and this is coming from someone who
still loves working in the DOS prompt!

I am sure for a simple expense/budget ledger it will work OK, but when it
comes to recurring journals, multiple reconciliation accounts, inter company
transfers, control account tracing etc., give me a nice GUI any day...

~~~
db48x
Storing the data in a simple text format doesn't stop you from using graphics
to understand it. What it does do is let you use tools you already know (your
favorite text editor, version-control system, command shell, etc) for editing,
queries, backups, graphs, and so on. These are all tools that you've already
learned how to use, and which you use every day for other tasks involving
text.

Whereas with some slick GUI you're probably trapped in that vendor's
proprietary file format.

On the other hand, it's pretty obvious that plain-text files don't scale to a
multinational, with hundreds of accountants of various types all trying to
work with the same files. Even with proper use of Git I bet that would get old
fast. You would instead want a real database, with a schema, and some data
validation and some programs/webpages to smooth out the data entry and
querying and whatnot. All of that can be done without any kind of lock-in to
one data format, or one particular vendor's tools, but it's way too much
overhead for a small business, let alone a single person.

~~~
cyberferret
I understand the speed of the command line when it comes to entering data, and
honestly, I've never even considered using something like Git to handle
accounting data, but I think it sounds like a neat concept (after all, who of
us wishes we could completely undo a set of journals that were accidentally
entered into the wrong period).

But my experience is mainly in medium to large businesses with multiple users
working on the information in real time, and with strict audit policies around
them. I would imagine that would be a nightmare to try and handle using a
distributed version control repository, let alone having situations such as
one user uncommit their nefarious journals funnelling payments into their own
bank account etc. I can imagine the face of the auditors having to run
commands like `git compare` on the ledgers to trace transaction history... :)

~~~
adrianratnapala
I imagine the biggest difficulty in these situations is dealing with other
people: just like LaTeX might be better for certain kinds of documents, but
the world still wants MS Word.

But if we look narrowly at functionality, it seems that plain-text and git
might be _better_ for strict audit situations.

In a Git history every thing you do has to has a "paper trail" in the form of
a hash chain (admittedly using an outdated hash function). People can only
"uncommit their nefarious <anything>" is along as those transactions never
found their way to someone else' hard disk.

------
noufalibrahim
This article mirrors much of my own experiences with using ledger. I wrote
about my setup here
[http://nibrahim.net.in/2015/11/07/ledger_and_personal_financ...](http://nibrahim.net.in/2015/11/07/ledger_and_personal_finance.html)

------
steve_taylor
Slight correction, if I may. Interest is piqued, not peaked.

------
wesm
On plain text accounting, you should check out Beancount (I am unaffiliated,
but know the author):
[http://furius.ca/beancount/](http://furius.ca/beancount/)

~~~
SwellJoe
Is there a comparison somewhere to help someone decide between ledger,
hledger, and beancount? I can't determine from the website what sets it apart
(or even how it really works...ledger and hledger both have lots of
screenshots, examples, etc.

Oh, nevermind. The ledger website includes it in their list of "ports to other
languages". Beancount is a Python implementation of the same basic system.

~~~
LVB
This extensive thread has some in-depth discussion of the subtler differences:
[https://groups.google.com/d/msg/ledger-
cli/__yuMVjrOH0/mgBYL...](https://groups.google.com/d/msg/ledger-
cli/__yuMVjrOH0/mgBYLfMUm0YJ)

------
aklemm
I'm right on the verge of going with the new YNAB (first serious attempt to
organize finances and budget outside my wife's use of Mint), but maybe I'll
give Ledger a shot first.

~~~
DontGiveTwoFlux
The power of ynab isn't the tool, but the philosophy. The UI works well
because it changes how you think of your budget. I'm a little disappointed the
author didn't comment on how ledger compares with the budgeting side, as
tracking expenses is only half (or less) of the battle. I'd recommend ynab
because it forces you to plan instead of react. I think as far as software
goes, that's the fundamental advantage- you think differently. It's kind of
like how editing in vim you start to think in terms of verb-object.

I'm stuck on ynab4 for as long as possible, but you can try out the nYNAB (the
SaaS offering) for free for a little more than a month. If you get it, be sure
to watch the instructional videos.

~~~
ams6110
ledger can do budgeting: [http://www.ledger-
cli.org/3.0/doc/ledger3.html#Budgeting](http://www.ledger-
cli.org/3.0/doc/ledger3.html#Budgeting)

~~~
adrianratnapala
That help section on budgeting only talks about periodic transactions. Is
there also some notion of "estimated future, one-off, transaction"? I suppose
you could implement that using ordinary transactions.

It's just that after fighting with gnucash, I got the impressions that
budgeting and accounting are very different things and that I should not try
to use the same tool for both jobs.

~~~
db48x
Yea, I thought that was a pretty incomplete part of the documentation when I
looked through it recently. I haven't done any budgeting in ledger, but the
section on virtual accounts seemed like it presented a better way to do a
budget: [http://ledger-cli.org/3.0/doc/ledger3.html#Introduction-
to-L...](http://ledger-cli.org/3.0/doc/ledger3.html#Introduction-to-Ledger).

------
kilroy123
I might try this out. Right now, I'm using a combo of mint and my own google
spreadsheet. Mint.com with the mojito plugin for chrome:

[https://chrome.google.com/webstore/detail/mojito-mint-
with-a...](https://chrome.google.com/webstore/detail/mojito-mint-with-a-
kick/akfnkdbpccapkganipclkhgppknhjlee?hl=en)

The mojito google spreadsheets look amazing, but I couldn't get things to
work, and ran into a lot of errors.

The plethora of budget tracking software is frustrating. It seems no one tool
is a clear winner. To me, this still looks painful. Mint is closest there,
IMO. However, it's pretty much abandonware at this point.

------
dade_
I still remember cringing the day I finally had to move my parents business
off CA Simply Accounting for DOS. There was definately a learning curve for
the text based app but it took far fewer steps to actually input the data and
print off cheques, etc. 15 years of accounting easily fit on a 1.44MB floppy
disk. Now, it's a monster database with a terrible UI. In subsequent years
Simply has become anything but simple and I cringe at the thought of giving in
and moving to the cloud. Ledger doesn't look like a great fit for business
though, and accountants want data from accounting packages they know. Quite a
racket.

------
Chickenosaurus
Related mini Show HN: Accounting is a small Java double-entry bookkeeping
component.

Accounting is supposed to be integrated in applications that can make use of
an accounting feature. It is not a stand-alone application. Accounting makes
as few assumptions as possible about the used technologies which enables it to
be used very flexibly. On the other hand, this means you will likely have to
write glue code to integrate accounting into your application landscape.

Check out accounting on GitHub: [https://github.com/Nick-
Triller/accounting](https://github.com/Nick-Triller/accounting)

------
Pamar
Here is a short dscription of how I do this:
[https://news.ycombinator.com/item?id=12085755](https://news.ycombinator.com/item?id=12085755)

(It also works for repeating or future expenses - I often "initialize" future
files with stuff like rent or an average monthly expense for stuff like
groceries, then I update it with receipts I have collected on the last few
days)

------
rosstex
I love the use of asciinema in this. It's handy for me all the time when I
want to show a friend something.

------
arvinsim
I am using Spacemacs so I like the idea of using plain text files. But until
there is way to input new transactions via my smartphone easily, I will
probably stick with classic YNAB for the foreseeable future. Otherwise, I
might have to learn Android programming to create my own app to do so.

~~~
NoGravitas
You could keep your ledger on Nextcloud, and tell the Android app to keep it
available offline. Then edit in an Android text editor. Obviously a fancy
Android app that reads/writes the text files would be great, though.

------
annnnd
> I had tried similar services before (Mint, Buxfer, PocketSmith, etc) and
> never found the sacrifice of privacy worth it. ... > With YNAB 4 now
> unsupported, I started looking for alternatives. Would I finally surrender
> to Intuit and start using Quicken? Was a Google Docs spreadsheet enough to
> get me through?

So OP has privacy concerns with accounting services, but not with Google?
Interesting.

------
dbrgn
Just found this:
[http://plaintextaccounting.org/](http://plaintextaccounting.org/)

------
graeme
Can anyone comment on experiences with Quicken? I had been planning to set up
accounting with Xero, but I don't like cloud services for something that
requires focus. It can be more difficult to concentrate on something in the
browser.

Quicken is the only desktop app that works for Canada and Quebec, I think. How
is it?

I'm on Mac, but I can run it on a VM.

------
joelx
Since September 2009, I have maintained a Google sheet outlining my net worth.
Twice a month, I add a new column then list the balances of my bank accounts
and credit cards and brokerages. Very easy to maintain and useful. I can see
changes in my net worth at a glance over the last seven years.

------
CorvusCrypto
So what is this sacrifice of privacy the author mentions? I mean is this a
legitimate statement? While I can sympathize with the author's mindset this
seems like a loaded statement based on nothing. If I'm wrong and Mint is
leaking my info like a sieve please tell me now.

~~~
kevindong
I do feel _slightly_ uneasy when I use Mint. Primarily because Mint is
essentially just a web scraper. They take the account credentials you give
them (and presumably encrypt them) and periodically login your bank's web
portal, scrape the .html file that contains all of your transactions, works
some magic to parse through it, and then displays all of your transactions.

I'm not entirely sure if Mint sells your financial information (i.e., what you
spend money on, how much you have, etc.) to outside companies (namely,
financial institutions). But, they for sure analyze your transactions to show
you paid "recommendations" of what financial products you should use. I've
browsed through some of their recommendations before. The majority of them are
middling or good, but a significant portion (<15%) are incredible awful.

~~~
CorvusCrypto
All financial institutions sell your information, electronic or not. In my
company we use services that allow us to pull tax data on every resident in
the state (of CA) and we get their social, phone numbers, owned/rented
properties, outstanding loans, etc. While I totally get the uneasiness of
giving info to a third party, we all do that anyway in the analog world as
well.

and yes, this means Mint probably sells your info, though they cover it in the
privacy statement they have. [guess not actually (see reply from georgeglue1)]

EDIT: If your first statement is true, that tbh is a bit more of an alarming
thing to know... oO

~~~
sukilot
The data you describe is a standard credit report and public records, not
personal consumption data.

~~~
CorvusCrypto
This is very true. Keeping this in mind it's easier yet to get into why
someone would want to shy away from 3rd party online services.

------
bakhy
the repeated usage of the phrase "my net worth" stings. i presume it's just a
turn of phrase and does not really mean much, but it's ugly. you're worth more
than any dollar amount! ;)

------
smichael
hledger author and plain text accounting fan here! Thanks for this nice blog
post and interesting discussion. There are some great questions raised here,
perhaps I can steal them for a FAQ ? Here are some answers:

Isn't personal accounting a waste of time ?

People have very different needs and practise personal accounting for many
different reasons. There is of course a point of diminishing returns; tailor
your accounting practices to your needs. Needs change over time. Some of us
would benefit from doing more (or better) accounting, some less (I would guess
this second group is smaller).

In [The Millionaire Next
Door]([https://en.wikipedia.org/wiki/The_Millionaire_Next_Door](https://en.wikipedia.org/wiki/The_Millionaire_Next_Door))
(highly recommended), one research finding was that above-average wealth
accumulators spend more time on financial planning, which for many of us
requires accounting as a foundation. "Minimal time dedicated to financial
planning is a leading indicator of a UAW [Under Accumulator of Wealth]".

Isn't a command-line tool too limited for real-world accounting needs ?

"I am sure for a simple expense/budget ledger it will work OK, but when it
comes to recurring journals, multiple reconciliation accounts, inter company
transfers, control account tracing etc., give me a nice GUI any day..."

Understandable. The current plain text accounting tools provide a very generic
double entry accounting system with which you can model such things, and
script them.

There are a number of generic GUIs available (hledger has curses and web
interfaces, and there are web/curses/GTK interfaces for Ledger and beancount).
But there are not yet a lot of rich task-specific GUIs. There's no reason they
can't be built, though.

Isn't a plain text format too limited for large organizations ?

"it's pretty obvious that plain-text files don't scale to a multinational,
with hundreds of accountants of various types all trying to work with the same
files. Even with proper use of Git I bet that would get old fast. You would
instead want a real database, with a schema, and some data validation and some
programs/webpages to smooth out the data entry and querying and whatnot."

I'm not sure. Current plain text accounting tools can do some schema
definition and data validation, and will do more in future. The plain text
storage format is open, human-readable, future-proof (useful even without the
software), scales smoothly from simple to complex needs, and taps a huge
ecosystem of highly useful tooling, such as version control systems. And,
despite the name, there's no reason these tools can't support other kinds of
storage, such as a database. (hledger has four storage formats and is designed
to accept more).

Do you really enter every little transaction ?

Yes! Many folks in our community do it. Mahatma Gandhi reconciled to the penny
every night. J.D. Rockefeller was famous for his ledgers.

It's not required. I started doing it as a temporary learning exercise, and
still like it. It makes troubleshooting and reconciling easier.

How is that possible ?

Practice, and a process/toolset that suits you. Some folks import most of the
data from their banks, so little manual data entry is required. A few prefer
to manually enter everything, for the increased awareness and insight.
"Manual" data entry is usually assisted in some way: interactive console tools
(hledger add and similar), web-based tools (hledger-web and similar), GUI
tools (ledgerhelpers), smart editors (eg emacs & ledger-mode), recurring
transaction scripts. I currently use a mixture of bank CSV import and rapid
copy/paste in emacs. I spend 15 minutes a day on average, and for me that's
currently a good investment.

How do I use the transaction data in my bank's web or mobile app ?

If you can export it as CSV, you can import it and run queries against it.
There are also some tools for converting OFX, QIF etc.

So I've got a huge list of transactions recorded, duplicating my bank
statements. How does that help ?

Accounting is modelling flows of money (or other value). Such a model
aggregates information from many sources, in one trusted place. With it you
can efficiently generate reports, forecast things (cashflow!), answer
questions, try experiments.

Some people need a very simple model, others benefit from a more detailed one,
and we don't know up front what we might need in future. The most fundamental
accounting data is a simple list of transactions (the journal). Once you have
captured this, you can mine it for anything you may want later on.

Plain text accounting provides nice open data format(s), tools and practices
for doing this, and could be a good foundation for more powerful tools.

Where can I see a comparison of hledger, Ledger, beancount, and the rest ?

Glad you asked!
[http://plaintextaccounting.org](http://plaintextaccounting.org) gives an
overview of these tools and practices. In particular see "Ledger-likes" and
"comparisons" under "read more". hledger's FAQ discusses differences from
Ledger. Beancount docs probably do too.

How do you do budgeting ?

Some notes are
[here]([http://plaintextaccounting.org/#budgeting](http://plaintextaccounting.org/#budgeting)).
I emulate YNAB-ish envelope budgetting (see third link).

Double entry accounting ? Where are the debits and credits ?

Most (not all) plain text accounting implementations use signed amounts
instead of debits and credits. This makes them "double entry light" perhaps,
but it has been a rather successful simplification, intuitive to most
newcomers.

~~~
vincecima
Great additional info, thanks!

------
tdkl
Cool. Now add those on fly on a mobile device. YNAB app does it in couple
taps.

Also YNAB 4 won't just suddenly stop working.

~~~
lfowles
As a YNAB user, I would be concerned that the mobile app cloud sync would stop
working in the future and not get updated.

~~~
tdkl
The only cloud sync in YNAB 4 is the one via Dropbox, where it shares the
budget file with the desktop app. So the only issue is the DB API being
updated.

