TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Beancount: Double-entry accounting from text files

229 点作者 techtalsky超过 3 年前

22 条评论

raymondh超过 3 年前
Accountant here: Recommend using Beancount with version control on your data so that you can take snapshots at various points in time.<p>The notion behind &quot;accountants don&#x27;t user erasers&quot; is that like a blockchain, you&#x27;re creating a trail of evidence. If all of the data is mutable all of the time, its evidentiary value is low (for example, the IRS gives more weight to &quot;contemporary&quot; evidence than to records constructed or altered after-the-fact).<p>Another reason to freeze, snapshot, or close your books is to not lose the support and detail behind any financial statements you&#x27;ve produced. Imagine getting a business loan based on your Balance Sheet and Income Statement but later being unable to reconstruct how those were produced.<p>Generally, accounting systems use a system of cumulative, immutable journal entries. If a mistake is made, then a reversing or adjusting entry is made.¹<p>There is merit to text based bookkeeping, but don&#x27;t create a world that is so free form and mutable that it loses it meaning and connection with the real world.<p>¹ <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Adjusting_entries" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Adjusting_entries</a>
评论 #30141208 未加载
评论 #30143385 未加载
评论 #30145109 未加载
balves超过 3 年前
I switched to beancount after trying several other things (mint, spreadsheets, gnucash), and I like it quite a bit. It&#x27;s choice to be very strict about things held at cost (like units of stock) is a great differentiation.<p>It&#x27;s VERY hard to accidentally miss capital gains, or get cost basis wrong on something, or have something not balance. Much harder than even ledger-cli, let alone the other alternatives. It feels at times like working with a static type system versus a dynamic type system.<p>And the burden associated with this is not anything more than other tools. Importers have been great. I have 68 asset subaccounts between my spouse and I (if you do double-entry accounting you&#x27;ll know this isn&#x27;t actually that many), and I spend about 1-2 hours a month balancing the books, doing reporting, etc.<p>Finally, it&#x27;s quite easy to get your transactions into a pandas datatable or similar, allowing you to utilize your programming&#x2F;datascience skills to do things that just aren&#x27;t available in other tools. Mint offers nothing here, spreadsheets can do some of it (but the downsides of accuracy), and gnucash requires learning some niche scheme stuff; it feels very &quot;tacked on&quot;.
评论 #30140013 未加载
评论 #30140081 未加载
评论 #30140262 未加载
评论 #30143838 未加载
评论 #30140104 未加载
howeyc超过 3 年前
Part of Plain Text Accounting family: <a href="https:&#x2F;&#x2F;plaintextaccounting.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;plaintextaccounting.org&#x2F;</a><p>I really prefer having complete control of my financial data this way, and reports can be as custom as you&#x27;d like. Better than something like Mint in my opinion.
评论 #30138847 未加载
xupybd超过 3 年前
If you&#x27;re new to plain text accounting there is an amazing guide by Simon Michael &amp; contributors. (Simon Michael is the creator of HLedger)<p><a href="https:&#x2F;&#x2F;plaintextaccounting.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;plaintextaccounting.org&#x2F;</a><p>Previous discussions here: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=28420797" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=28420797</a>
bobjordan超过 3 年前
Fava is a nice GUI that&#x27;s built on top of beancount, see <a href="https:&#x2F;&#x2F;github.com&#x2F;beancount&#x2F;fava" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;beancount&#x2F;fava</a>
评论 #30141026 未加载
onislandtime超过 3 年前
With no background in accounting, I was impressed with the Beancount documentation. Very well written and a great way to learn accounting. I am looking for a solution to track my investments but I find it a bit overwhelming to get started with Beancount from scratch. Is there a tool to convert brokerage data into Beancount data from scratch?
评论 #30150230 未加载
nuclearnice3超过 3 年前
Jan 12 thread &quot;Plain Text Accounting&quot; <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=25745615" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=25745615</a>
rguiscard超过 3 年前
You can plot your monthly or yearly spending with Jupyter like this:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;isabekov&#x2F;beancount-multiperiod-reports" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;isabekov&#x2F;beancount-multiperiod-reports</a>
评论 #30146359 未加载
user3939382超过 3 年前
This reminds me of ledger: <a href="https:&#x2F;&#x2F;www.ledger-cli.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.ledger-cli.org&#x2F;</a><p>* Turns out they address the comparison: <a href="https:&#x2F;&#x2F;beancount.github.io&#x2F;docs&#x2F;a_comparison_of_beancount_and_ledger_hledger.html" rel="nofollow">https:&#x2F;&#x2F;beancount.github.io&#x2F;docs&#x2F;a_comparison_of_beancount_a...</a>
评论 #30139797 未加载
评论 #30141292 未加载
darcys22超过 3 年前
Shameless self plug: ive been building a similar open source command line accounting system<p><a href="https:&#x2F;&#x2F;github.com&#x2F;darcys22&#x2F;godbledger" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;darcys22&#x2F;godbledger</a><p>Its heavily inspired by both ledger and beancount but my biggest issue with them is that text files arnt great for double entry bookkeeping. Having a relational database is the better option which is what GoDBLedger has.<p>After a certain point a business cant keep track of its transactions in text files because there are simply too many of them, so these systems really only scale to personal finance levels (few hundred transactions maybe thousand transactions).<p>In addition building plugins that can import your whole text file into a sql system so you can query them is redundant. Just have it in a relational database to start with.
评论 #30140545 未加载
评论 #30141840 未加载
评论 #30140644 未加载
评论 #30146217 未加载
评论 #30150291 未加载
_benj超过 3 年前
Switched to beancount from ledger a few months ago and I’m really enjoying the strict syntax of beancount. The cool thing though is that I really didn’t lose any of my reporting flows that I had with (h)ledger… I just made scripts that convert the beancount journal on the fly, run whatever I was used to with hledger, and then delete the temporary file.<p>I feel like I’m getting the best of both worlds :)
评论 #30140289 未加载
scottwick超过 3 年前
I just recently started using Beancount for tracking my personal finances and I really like it so far. I&#x27;ve written some custom importers to parse CSVs from various financial institutions and auto-categorize some of the expenses, income, etc. based on regex matching on the transaction description from the CSV.<p>I&#x27;m able to auto-categorize many of the transactions this way but there will always be some to which I need to manually apply categories. For example, entering &quot;Expenses:Restaurants&quot; for a restaurant I&#x27;ve never been to and thus don&#x27;t have a corresponding matching rule. I also occasionally add new matching rules and then re-run the importer to generate a new ledger with the new auto-categorizations.<p>Once I edit the ledger file though I can&#x27;t rerun the importer or else I&#x27;ll lose my manually entered labels. Do I just add those one-off entries to the matching rules? Or is there a better way to handle this? Would be curious to hear how others are approaching auto-labeling expenses, etc.
bingohbangoh超过 3 年前
Out of curiosity: has anybody used this to do business accounting?<p>I am intrigued by these ultra simple setups. However, most accountants -- the people who will ultimately help you once your business is sufficiently complex -- will use Quickbooks or some other established software.
评论 #30140953 未加载
评论 #30139325 未加载
评论 #30139378 未加载
评论 #30142452 未加载
评论 #30139289 未加载
rthomas6超过 3 年前
I use this. I set up Fava served over my home network so my wife can look at the budget. There is an android app called Cone that lets you add entries. I sync between phone and PC with Syncthing. It all works really well.
评论 #30150354 未加载
2pEXgD0fZ5cF超过 3 年前
Beancount and the concept of plaintext accounting look really interesting.<p>Any recommendations for guides or short books to get into accounting for personal&#x2F;individual finance as a total beginner?
评论 #30150388 未加载
djhworld超过 3 年前
Been a beancount user since 2018, great piece of software. Gets even better if combine it with auxilliary tools like Fava for visualisation and &quot;beancount-mode&quot; for emacs.
raspyberr超过 3 年前
Does anyone know if there&#x27;s a good app I can use for plaintext accounting on my phone? I&#x27;d love to be able to use syncthing to sync the ledger on my PC and phone. It&#x27;d really help me stop collecting receipts so I can bulk put them in when I get home.
评论 #30139350 未加载
评论 #30148092 未加载
评论 #30145299 未加载
评论 #30150854 未加载
评论 #30139463 未加载
clircle超过 3 年前
Any married people have advice on how to track finances? I used bean count or ledger when i was single, but the manual system kind of breaks down when you have a family .
评论 #30139836 未加载
评论 #30140402 未加载
评论 #30139767 未加载
评论 #30139598 未加载
评论 #30139749 未加载
评论 #30139394 未加载
评论 #30140278 未加载
评论 #30141218 未加载
评论 #30139233 未加载
评论 #30148186 未加载
评论 #30139375 未加载
评论 #30143553 未加载
评论 #30139461 未加载
awinter-py超过 3 年前
ah yes the masculine urge to use C++ and bazel in a python text processing codebase
评论 #30143569 未加载
erichocean超过 3 年前
@dang It would be nice if, like the &quot;(2018)&quot; or whatever put after older entries, we could put &quot;(GPLv2)&quot;, &quot;(MIT)&quot;, etc. after links to github.com (they have an API to get license information).<p>Thanks.
jonathanoliver超过 3 年前
My company and I have been using Beancount since 2017 for all financial records. My company has about 60 employees and there are three individuals working in&#x2F;on the financials regularly. Beancount (plaintext accounting) was the only solution that worked for us. We have many hundreds of thousands of transactions. We do both cash basis accounting (personal) and accrual accounting (company). We use Sublime Text with the Beancount plugin along with Git for version control.<p>In the beginning we--like virtually anyone else doing accounting--used QuickBooks. As we grew QuickBooks was less and less of a solution because of the issues we had with multi-user collaboration along with historical&#x2F;rollback change tracking, e.g. knowing who made what change where and when. In other words, we started to outgrow QB. Further, there were lots of accounting needs we had where QB continued to fall short and get in the way.<p>We started to look around at various proprietary and open-source systems which were either locally installed or cloud hosted. Local installations came with problems surrounding collaboration and OS compatibility (Mac&#x2F;Linux&#x2F;Windows users) while cloud-hosted ones had issues around durability or longevity of the underlying company and sub-par data entry latency.<p>Further, we had additional needs including strong tracking of cost basis, alternate currencies, the concept of &quot;lots&quot; (FIFO&#x2F;LIFO&#x2F;cost averaging) of stock sales, short&#x2F;long capital gain&#x2F;loss, along with cost of goods sold, among other things. Finally, we wanted to get away from all paper records entirely meaning that any paper receipts would be scanned and tracked alongside the corresponding transaction which helped with collaboration because it made researching a transaction easier. (The receipt tracking we did via a customer document meta tag along with an associated ID attached to that tag residing in each transaction.)<p>As a software development company, we aren&#x27;t afraid of a little bit of code and so the idea of a simple, plaintext accounting system with version control really appealed to us. The strongest contender that fit the model of our specific requirements was Beancount among all of the ledger-based derivatives. We&#x27;ve been very pleased with our results.<p>For our taxes, we do an HTML export of the financials using &quot;bean-bake&quot; and our CPA can navigate our financials without trouble. We use Fava (a Beancount web GUI) for various reports.<p>One place where Beancount really shines is the ability to edit multiple transactions at a time. Because it&#x27;s just simple text files, you can easily use the &quot;multiple cursors&quot; option to make bulk edits or you can do simple search&#x2F;replace. Because of Git-based checkpoints, there&#x27;s no worry that we&#x27;re going to break someone else while experimenting with an idea of how to express a given concept or the meaning of a set of transactions in the financial records.<p>That said, one place where Beancount still needs some polish is on the reporting side. Even with Fava, getting reports has never been as easy as QB. It often takes a little bit of Beancount SQL (SQL-like) querying to get the data you want. For getting loans and other things where paper-based reports are required this can require a bit of extra time.<p>Another weak point (at first) was for transaction import. This was soon overcome as we wrote some code that uses OFXTools to bring in all the credit card and banking transactions and to write them to the appropriate text files and then we go back through and categorize.<p>One last thing to mention is that, while the core business logic for Beancount is sound and far more capable than any other accounting program we have experienced, I can see how the choice of Python (or more specifically parsing of large text files with Python) can start to be problematic in terms of performance and delay. We&#x27;re seeing the slowdown a little but it&#x27;s not terribly inconvenient and doesn&#x27;t interrupt the workflow. It&#x27;s more akin to the compile time for a small application, e.g. 2+ seconds. I could see file-based checksum&#x2F;caching into an internal binary&#x2F;proprietary format helping quite a bit--kind of like those annoying little python .pyc files that show up when you execute Python.
评论 #30161328 未加载
throwaway180118超过 3 年前
Is there a good way to use Beancount to handle inventory stock levels in&#x2F;out?