Re:Plain Text Accounting
by marcrosoft on Sunday May 21, 2023 @12:25PM
(#36022480)
I’ve been using ledger for years. It works great. Just don’t show raw output to tax preparers. They won’t know what to make of it. You have to generate reports they can understand.
Re:Plain Text Accounting
by EvanAnderson on Sunday May 21, 2023 @02:21PM
(#36023450)
I wanted to echo the sentiment re: raw output vs. reports.
I've been using a self-developed double-entry accounting system for my own business. Generating the "big four" financial statements (income statement, balance sheet, statement of owner's equity, and statement of cash flows) in canonical GAAP form, along w/ a schedule of accounts payable and receivable (for converting from accrual to cash basis), has been enough to get our taxes prepared for almost 20 years.
Re:Plain Text Accounting
by iib on Sunday May 21, 2023 @01:08PM
(#36022860)
The meal plan example may be able to go even forward, because I think ledger-cli can also track your calories and macro-nutrients, apart from the ingredients themselves. I meant to do a calorie counting system in ledger-cli for some time, but did not quite get to it.
Re:Plain Text Accounting
by dumpsterlid on Sunday May 21, 2023 @02:16PM
(#36023415)
I am not really sure if ledger-cli has any capacity to create compound units, so that if you say log that you have eaten one potato in ledger-cli, you would also have to manually log the calories and macro-nutrients of that potato unless you had kept a template for that potato's nutritional profile you could copy paste somewhere right? I suppose you might be able to make a "potato" ledger file with its associated nutrient profiles and just load it from a code block every time you eat one. Idk.
Re:Plain Text Accounting
by pmcginn on Sunday May 21, 2023 @02:14PM
(#36023390)
I haven't used ledger-cli much; I ruled it out pretty quickly when I was testing PTA software. For me, I loved the reporting and hledger-add for entering transactions manually. As I learned to automate my input, I started to appreciate beancount's automatic strict enforcement, BQL, and fava web front-end. Then I learned some pandas and was able to replicate most of the hledger reporting I liked with my beancount data and some python scripts.
If I were in your shoes, my only question would be: am I happy with the output? If you are, I'd stick with ledger. If you're not, fava is pretty cool.
Re:Plain Text Accounting
by alwillis on Monday May 22, 2023 @01:30AM
(#36027769)
> I love beancount
I've never used PTA software before, but I just tried beancount and I'm really liking it so far. Just set up my checking and savings accounts. The Vim syntax highlighting sealed the deal.
Looking forward to getting back on top of my finances…
Re:Plain Text Accounting
by awinter-py on Sunday May 21, 2023 @12:32PM
(#36022544)
many many interactive programs would serve their users best with this route -- file format first, UX second
proprietary apps can't afford to because 1) no moat and 2) really hard to get at files on mobile, but this ends up being a superpower for OSS if you can convince users to try your thing
better BYO-format structured document editors would help too
I don't even need to explain the data structure to you, it is self evident. Any number of sophisticated functions can be built into an interpreter of the ledger data, but all of those complex functions never obscure the basic data which can be edited by hand in a plain text editor if desired. Or you can use ledger-mode in emacs and enter transactions through prompts so you don't have to manually structure the whitespace for it to look nice. However complex you desire, you can use ledger in that fashion, that is the strength of its minimalism.
Like I said elsewhere in this thread, I like to use ledger inside codeblocks in org mode (org-babel) in a simplistic application of literate programming. The extremely human readable nature of ledger's data structure is a natural fit for the similarly human readable org format, and in export of an org file into a website, html document, pdf or other media (via pandoc) ledger codeblocks remain human readable, even to someone who has never heard of ledger-cli. This means that an org file tracking a complex project with associated costs at each step (though ledger can track anything with units, including time) can be easily converted into a professional quality document that can be used in any number of contexts.
The professional outward facing document used for conveying information about a project to others can thus originate out of the same org file that is being used to work on the project itself. In other words, your notes are only a step or two away from a presentation in any number of formats.
When you want only the finances from the project file, just tangle it out and treat it like a normal ledger file.
Re:Plain Text Accounting
by massysett on Sunday May 21, 2023 @09:32PM
(#36026425)
I use SQLite. I used plain text for years but grew frustrated because it’s very difficult to edit the data in any structured way. Parsing is also difficult: there are always trade-offs between human readability, ease of parsing, terseness, and extensibility.
Re:Plain Text Accounting
by AlbertCory on Sunday May 21, 2023 @12:54PM
(#36022736)
Wow, two posts about accounting at the very top of the front page! Must be a slow Sunday.
For my (extremely simple) accounting needs for my book writing, I looked at some of the packages, got turned off by the subscriptions, and realized I could do what little I needed just by opening a separate bank account, and doing all the costs & revenue through that. The bank takes care of the storage, and you can download a CSV of the whole year and import that into a spreadsheet. Some massaging and then give it to the accountant.
Obviously for a real business, you need something more, so I'm not saying this would work for everyone.
Re:Plain Text Accounting
by bombcar on Sunday May 21, 2023 @01:28PM
(#36023039)
You can do a simplified budgeting this way - get a debit card and a few credit cards, and use one for food only, one for household expenses only, etc. Now you’re tracked monthly with no hassling with categorization.
Re:Plain Text Accounting
by pmcginn on Sunday May 21, 2023 @02:07PM
(#36023335)
Reading the LWN post about why they chose GnuCash was a great reminder to me of why I chose beancount--all the other financial solutions out there did about 80-90% of what I wanted, but never 100%, and no way to get them to 100% either.
I'm not a programmer, so I had to install and learn a lot of tools along the way, but now there's literally nothing I want to do with my financial data that I can't. It's all just text files, python, git, csv, and json. I haven't encountered a single problem that I wasn't able to solve with just a bit of time and searching through stackoverflow or github.
Re:Plain Text Accounting
by AlbertCory on Sunday May 21, 2023 @02:44PM
(#36023658)
Very true. A lot of these big systems expend effort on basic stuff (storing, displaying, dating, categorizing, summarizing) that's done just as well by other systems.
Also, your accountant doesn't need every transaction; just the categorized totals are good enough. He/she doesn't mind entering a FEW numbers in by hand.
Re:Plain Text Accounting
by statico on Sunday May 21, 2023 @12:58PM
(#36022759)
I’ve been using hledger for a few years. I’ve tried Mint, Personal Capital, PocketSmith, YNAB, RightCapital, Tiller, and none of them ever give me a complete view of expenses because there’s always a problem getting data from one or more banks. All of these hosted tools use Yodlee or Plaid on the backend and there’s always a problem.
The common denominator, however, is CSV. Every service lets you download historical data as CSV, which can be imported by hledger and turned into journal files and then into visual reports.
It’s a bespoke setup and super nerdy and is a bit of a pain, but it’s literally the only solution that works for us.
Re:Plain Text Accounting
by AmpsterMan on Sunday May 21, 2023 @03:12PM
(#36023862)
I'll second hledger (well I use ledger but essentially same thing).
To add on for others, importing the data can be done with CSV, but the software itself has a lot of tools that let you automate your imports so you can categorize expenditures into accounts. This is all done via plain text file formats so it's very easy to get the end result you want using any combination of text processing tools you like.
Re:Plain Text Accounting
by maherbeg on Monday May 22, 2023 @12:36PM
(#36033599)
Same here. I love hledger and have a few scripts to convert downloaded CSVs from various institutions into the appropriate format and dedupe any overlap if necessary. Once a month I download a bunch of statements, run a script and have all of the data available to me.
Re:Plain Text Accounting
by infogulch on Sunday May 21, 2023 @01:25PM
(#36023015)
Double entry accounting is a solid candidate for the most important economic invention of all time.
I've been thinking that there's some similarities between a network of double-entry accounts and joined semi lattices (like CRDTs). Is accounting the first widely used joined semi lattice?
Re:Plain Text Accounting
by revskill on Sunday May 21, 2023 @01:27PM
(#36023032)
So what's next ? There's no documentation on how to actually understand each account, when to use,... accounting principles. Or is this software for accountants ?
Re:Plain Text Accounting
by kaiwen1 on Sunday May 21, 2023 @03:14PM
(#36023877)
I've been using ledger for over decade with a few tiny startup businesses. Once you get the hang of it and setup your own system and workflow, it's a joy to use. The first dollar I spend when kicking off a new business – or even the possibility of one – goes into a new ledger file. Much better than reaching for spreadsheet software or Quickbooks. Zero overhead, instant accounting. Love it.
Re:Plain Text Accounting
by kaba0 on Sunday May 21, 2023 @03:38PM
(#36024091)
I have just started experimenting with hledger, and then beancount this week!
My ideal setup would be YNAB, I really liked that program but unfortunately their current price is too high for me. So my plan for now would be to use beancount as normal (possibly with a telegram bot for entry + imports every week or so, with deduplication), as beancount has good existing tooling and is more strict than (h)ledger, and writing a frontend for budgeting on top, as that is not strictly part of the ledger itself. So that frontend would just make a weekly balance of expense accounts, and each could be mapped to a budget.
Re:Plain Text Accounting
by syngrog66 on Sunday May 21, 2023 @06:37PM
(#36025286)
I bias strongly to text-only, by default.
For something to involve other media or forms it needs to be a strong clear net win. In my own software work I've coined a private term for it: CLIFMO (for CLIs First, Maybe Only.) Its not a novel idea by any means because I know hundreds/thousands of other engineers prefer it too. But I try to be religious about it.
For example, I've been making a new game lately, and the prototype is 100% text-only, and the final shipping version might be too. (NOTE: If curious, see my bio for details: Slartboz, a sci-fi post-apoc IF adventure.)
Re:Plain Text Accounting
by simonmic on Monday May 22, 2023 @02:40PM
(#36035096)
Mine uses hledger-web, on her own files. We also track shared expenses in a google spreadsheet. I import from there to my own PTA journal as an end-of-month adjustment.
Re:Plain Text Accounting
by herewulf on Tuesday May 23, 2023 @12:09AM
(#36039712)
Nice! Thanks for sharing. I'll have to check that out. I'm not great at hacking with Haskell (thus have been leaning toward Beancount), but a decade of running XMonad has convinced me of Haskell's merits.
Re:Plain Text Accounting
by edpichler on Tuesday May 30, 2023 @03:12AM
(#36121979)
Guys, all of this amazing text based accounting software are very interesting to me. Does anyone knows if is there any feature for automatic registering of depreciation? If not, how to do not forget to register and how to keep track of all assets that will depreciate? Separated file?
I've been using a self-developed double-entry accounting system for my own business. Generating the "big four" financial statements (income statement, balance sheet, statement of owner's equity, and statement of cash flows) in canonical GAAP form, along w/ a schedule of accounts payable and receivable (for converting from accrual to cash basis), has been enough to get our taxes prepared for almost 20 years.
If I were in your shoes, my only question would be: am I happy with the output? If you are, I'd stick with ledger. If you're not, fava is pretty cool.
I've never used PTA software before, but I just tried beancount and I'm really liking it so far. Just set up my checking and savings accounts. The Vim syntax highlighting sealed the deal.
Looking forward to getting back on top of my finances…
proprietary apps can't afford to because 1) no moat and 2) really hard to get at files on mobile, but this ends up being a superpower for OSS if you can convince users to try your thing
better BYO-format structured document editors would help too
The part that really sucks is when it’s “Save Image” and that is treated differently when sometimes you just want the file.
Like I said elsewhere in this thread, I like to use ledger inside codeblocks in org mode (org-babel) in a simplistic application of literate programming. The extremely human readable nature of ledger's data structure is a natural fit for the similarly human readable org format, and in export of an org file into a website, html document, pdf or other media (via pandoc) ledger codeblocks remain human readable, even to someone who has never heard of ledger-cli. This means that an org file tracking a complex project with associated costs at each step (though ledger can track anything with units, including time) can be easily converted into a professional quality document that can be used in any number of contexts.
The professional outward facing document used for conveying information about a project to others can thus originate out of the same org file that is being used to work on the project itself. In other words, your notes are only a step or two away from a presentation in any number of formats.
When you want only the finances from the project file, just tangle it out and treat it like a normal ledger file.
However, I've found that I prefer GnuCash with the SQLite backend. This allows me to run checks and analyses on my finances with a shell script.
Yes, you could do this with plain text; that's why plain text is great!
I just prefer the SQLite way.
If there's not, I think I'll add it when I have time because it should be a fairly trivial process to convert to PTA format.
For my (extremely simple) accounting needs for my book writing, I looked at some of the packages, got turned off by the subscriptions, and realized I could do what little I needed just by opening a separate bank account, and doing all the costs & revenue through that. The bank takes care of the storage, and you can download a CSV of the whole year and import that into a spreadsheet. Some massaging and then give it to the accountant.
Obviously for a real business, you need something more, so I'm not saying this would work for everyone.
I'm not a programmer, so I had to install and learn a lot of tools along the way, but now there's literally nothing I want to do with my financial data that I can't. It's all just text files, python, git, csv, and json. I haven't encountered a single problem that I wasn't able to solve with just a bit of time and searching through stackoverflow or github.
Also, your accountant doesn't need every transaction; just the categorized totals are good enough. He/she doesn't mind entering a FEW numbers in by hand.
Or more people are feeling the cost of living squeeze and/or have been laid off and are trying to figure out their finances.
The common denominator, however, is CSV. Every service lets you download historical data as CSV, which can be imported by hledger and turned into journal files and then into visual reports.
It’s a bespoke setup and super nerdy and is a bit of a pain, but it’s literally the only solution that works for us.
To add on for others, importing the data can be done with CSV, but the software itself has a lot of tools that let you automate your imports so you can categorize expenditures into accounts. This is all done via plain text file formats so it's very easy to get the end result you want using any combination of text processing tools you like.
I've been thinking that there's some similarities between a network of double-entry accounts and joined semi lattices (like CRDTs). Is accounting the first widely used joined semi lattice?
[1]: https://www.gnucash.org/docs/v3/C/gnucash-guide/basics-accou...
It's quite likely what you're looking for is missing, but have you seen
https://github.com/plaintextaccounting/plaintextaccounting/w... ?
There's also a bit at
https://hledger.org/cookbook.html#accounting-tasks
My ideal setup would be YNAB, I really liked that program but unfortunately their current price is too high for me. So my plan for now would be to use beancount as normal (possibly with a telegram bot for entry + imports every week or so, with deduplication), as beancount has good existing tooling and is more strict than (h)ledger, and writing a frontend for budgeting on top, as that is not strictly part of the ledger itself. So that frontend would just make a weekly balance of expense accounts, and each could be mapped to a budget.
https://hledger.org/hledger.html#check
The end of the accounting search - https://news.ycombinator.com/item?id=36021197 - May 2023 (129 comments)
For something to involve other media or forms it needs to be a strong clear net win. In my own software work I've coined a private term for it: CLIFMO (for CLIs First, Maybe Only.) Its not a novel idea by any means because I know hundreds/thousands of other engineers prefer it too. But I try to be religious about it.
For example, I've been making a new game lately, and the prototype is 100% text-only, and the final shipping version might be too. (NOTE: If curious, see my bio for details: Slartboz, a sci-fi post-apoc IF adventure.)