1. The author doesn't understand bookkeeping. 2. The author doesn't somehow believes that emulated teletypes are a good substrate for building user interfaces. 3. The author has spent significant time writing a bookkeeping tool for his business instead of doing something that will move the business forward.
If you're thinking about writing an open source accounting program, spend time mastering GnuCash first. If you feel like you can't do what you need with that and cannot possibly extend it in the way that you need, then write your own.
GnuCash - I could see mistakes everywhere. I don't see how this is much different than what an accountant would do in 1740 england. Why not have it all automated -- with computers??
Maybe it's just me, but I stopped reading here b/c this language struck me as unnecessarily antagonistic. Just some feedback.
It would be different if they were expressing the same sentiment for something like a 3D graphics editor...
This CLI app could be useful to me for a subset of accounting I do. Yes, it won't be able to track VAT accounts. It won't amortize my expenses. But if I needed that for a critical business I'm running, I'd not use a hobby project.
The CLI is useful. Double Entry bookkeeping is useful but as things scale it gets very confusing even for the best of accountants. This program is simple and can give you a solution if you are looking for very simple bookkeeping.
> CLI tools also have the advantage that their developers don't have to waste their time building and maintaining a useless GUI, but can instead use the time to improve the tool itself.
It's fine if you like CLI apps and find it painful maintaining a GUI application, but it's not helpful to write it as a general statement. CLI "GUI" tools also require quite a bit of work and I'd claim that an experienced GUI developer will spend less time on creating a GUI app, than the author had spent to get their CLI "GUI" app display as wanted.
> It made sense in former times as this layout makes it easier to add up the amounts by hand, but not in times of computers.
Double booking keeping isn't just a relic from the past. There are big benefits to it and just because it doesn't fit into simple account keeping, doesn't mean we can just pretend that it's useless, because computers!
In summary you simply should not write your opinions as if they were facts. You can do so if you want, but then you need to be prepared to get some critical feedback.
OP states, in large font, that Transity is "The Future of Plain Text Accounting". If you're going to make a bold statement like that, then people are going to be critical.
It is just "mumbo jumbo" to you because accounting/finance is not your area of expertise.
I'd love a cheat-sheet or plain-English example of how to model the following with GAAP: I'm an individual, I have couple bank accounts, get a salary and occasional invoice, I pay for various stuff, I sometimes use cash. I do not own shares in companies. I want to do budgeting, including some sort of "envelopes" or "virtual accounts" so that I can earmark some money for particular use. I tried to build something like that with Ledger CLI several times now, but I always bounce off the confusion about terminology, and not knowing what goes into "Equity", what into "Liabilities", etc., and why does everything expect me to have "accounts payable" and "receivable"...
Knowing what's the proper, idiomatic representation of such financial system would go a long way towards me understanding what the hell all those terms mean.
I suspect there will be a third stage where I will learn their true value. But I also strongly expect that the value lies in them being a common language that other accountancy uses. If so, then they will never be useful in my own personal accounts.
Personally I don't like the yaml-like syntax. I use beancount myself, and with fava (https://github.com/beancount/fava) as the UI.
I also don't like the yaml format for the simple reason that not all necessary information is in one line. No idea why a transaction can't be written into one line.
Also for people who love plain text, one can checkout the banking format (comes from German banks, so most info is only available in German but here's a summary): https://en.wikipedia.org/wiki/FinTS
Gnucash should also support it, but with my bank it always fails. It's certainly not a format I would use for local storage, but it's a good source of structure and edge cases when one thinks about developing or modifying an existing format.
That's defining a group called the Pacioli Group. One thing that is relatively easy to do with this group is to quickly verify consistency in the transactions. That is something you lose with a single-entry system.
I can keep my ledger in git, I don't need to pay for or even learn to use QuickBooks, I can quickly write a script to import data from basically anywhere, and I can use all the standard tools in my toolbox (grep, diff, python) to visualize and work with the data.
I'm sure mainstream accounting programs add value as the organization grows, but I spent a few minutes playing with Quickbooks and I was ready to just use Excel when I discovered the whole plain text accounting thing. And it's been working well for me.
I've only recently moved to it in fact, previously used tools like YNAB and so on, but this approach seems to be a bit more flexible, especially around managing investments etc
I think you need to have the mindset for it, I've always reconciled my transactions and like to keep an overview of everything, so people saying it's tedious etc doesn't wash with me, in an odd way I sort of enjoy it
> Sub accounts vs. Tags > But what if the expense is part of another category as well, like expenses for your vacation? Well, you'd be at a loss. There is no good way to model this in ledger-likes without getting really hacky.
But that's not true. Ledger has tags. You specify a tag with:
:tagname:
For instance: 6-5-2018 Gave food to Bart Simpson, while on vacation
Expenses:bart 1 orange ; :vacation:
Assets:foodI'm a long time Buxfer user, which also works like this. It's not that I don't understand double entry bookkeeping, I've used GNUCash for a long time before moving away. It is indeed very powerful and flexible, but it always was too much of a chore to maintain and next to impossible to get other family members to contribute.
I'm not sure this "transaction model" would be appropriate for business accounting, but IMHO it works very well for Personal Finance.
Simple recurring transactions is like the one feature I really need from a tool like this.
I had the ideas used in this project in my head, but I've been putting off the work forever now.
I LOVE YOU FOREVER for using transactions as the central operation rather than double entry accounting, and I love you even more for adding the ability to tag transactions. I can not put off work for a web interface instead, which is a lot less work to put off :)
I haven't tried it yet, but it's now high on my list for when I get home from work.
Basically what he was trying to do here was a expense and income administrator with tags. That it's just a part of what bookkeeping and accounting is.
Nice try. But you can't replace what works and what has been done for reliability and confidence since 1400 at least by the masters of trade.
I am not sure that is true. Isn't the world full of examples of quite the opposite? Especially because it's 1400 years old an because it was created for pen an paper work. We have computers now.
e.g. It used to be that companies have a handful of yearly profit/loss accounts and every year they "close the books" by transferring all balance to first profit/loss accounts then to equity. The financial year then starts with 0 profit an 0 loss. Afaik nobody does this anymore. Today you just keep all accounts running (don't "close them) and you generate repots by selecting a date range and let the computer calculate profits and losses for that range.
Besides, most commercial software already hides debit and credit from you. I would risk that most accountant don't know their debits and credits, it's just one of those things you learn at accounting school before you start working in the industry.
I agree one should not write an accounting system without understanding the full details and history of the domain, but I disagree that 1400 year history proves anything. In fact even after reading through the Pacioli Group article I still don't see the advantages. It's only advantage is that it makes it harder to make a mistake on paper.
I don't know where you got this idea from. I got an impression the author knows a few things about accounting.
Now a days I use a smartphone app called walnut, which mines your SMSes for transaction data and builds up a ledger by itself, without the need for interfacing with banks directly, because in my country atleast all banks provide SMS trails for transactions.
https://play.google.com/store/apps/details?id=org.gnucash.an...
Now I want to see someone take, say, Tiffany & Co's latest 10-Q⁽¹⁾ and run it through this.
__________
If you are interested, drop me an email, I would love to discuss more about fintech (I run a fintech startup)
Math predates computers, let's just stop using that too!
Double entry is not that complicated and computers or not, it just works.
hledger makes some strong assumptions (IIRC) about your accounts being in assets, liabilities, income, equity, expenses. But I may be thinking of beancount for that. If I'm remembering correctly, hledger will let you do whatever you want, but some of their built in reports (like balance sheet) assume liabilities and assets as top-level accounts.
However, ledger allows you to do things like:
personal:expenses:...
personal:assets:...
club:expenses:...
wife:expenses:...
And you can specify what the prefix should be for all transactions in a region like: apply account personal
2018/06/05 Gym
Expenses:Gym 54.00 USD
Assets:Checking
end apply account
So everything in there is now in my personal set of accounts, eliding the prefix (which can become cumbersome). If you use this† as an example, putting things into separate code blocks via org-mode makes it trivial to conduct accounting for multiple entities.Query: Does Transity allow for money to come from or go to multiple places? Suppose I'm traveling for work and need a more detailed accounting of my spending (they don't reimburse alcohol, perhaps):
2018/06/05 Place with good cocktails ; 50 USD is on me
Work:Expenses:Travel:Food 20.00 USD
Work:Expenses:Travel:Drinks 50.00 USD
Liabilities:Work:CC
(with a note that I have to cover that 50 USD when paying off the card next month). I do this sort of thing just on regular shopping. I may spend a bunch of money at the store that's gifts for my girlfriend along with clothes for me. I like to know how much I've spent so I'll split it (this is more a personal curiosity thing, along with trying to stick to a budget).I don't want to have to enter a from/to pair that's redundant (repeating the same from) for things I split like this.
Additionally, there's no need for this "perspective" aspect. If I move money to an account, its balance goes up. If I move money from it it goes down. If I am managing my girlfriend's accounts in ledger (or she is, but it's pushed into a common household file):
2018/06/05 GF ; lunch last week
Jared:Assets:Cash 10.00 USD
GF:Assets:Cash
In the report hers looks like it went down, mine like it went up. There's no need for me (if I'm managing multiple entities) to bother treating that 10 USD like it came from my income account. It is income, but it came from the GF's cash account. The income account is really only needed when you don't control or track the accounts money comes from. Your job, a gift from an uncle, lottery winnings, etc.Same thing with a business. If I own my own LLC and "pay" myself a salary out of it (I'm assuming I also pay out my health insurance or something in this, I don't know, I don't do payroll), let's say:
2018/06/05 Paycheck
Jared:Assets:Checking 2000.00 USD
Jared:Expenses:HealthInsurance 100.00 USD
JSLCC:Expenses:PayrollStuffs 200.00 USD
JSLLC:Assets:Checking
In all the reports, everything looks right. It's done, no need to worry about perspectives.† https://orgmode.org/worg/org-tutorials/weaving-a-budget.html