1
0
Files
plaintextaccounting/index.html
Simon Michael ff99279b06 gui answer
2016-02-17 12:11:18 -08:00

289 lines
19 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Basic Page Needs
-->
<meta charset="utf-8">
<title>Plain Text Accounting, a guide to Ledger and friends</title>
<meta name="description" content="">
<meta name="author" content="">
<!-- Mobile Specific Metas
-->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- FONT
-->
<link href="//fonts.googleapis.com/css?family=Raleway:400,300,600" rel="stylesheet" type="text/css">
<!-- CSS
-->
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/skeleton.css">
<link rel="stylesheet" href="css/site.css">
<!-- Favicon
-->
<link rel="icon" type="image/png" href="images/favicon.png">
</head>
<body>
<!-- Primary Page Layout
-->
<div class="container">
<!-- CSS: http://getskeleton.com -->
<!-- markdown: http://pandoc.org/README.html -->
<div class="row" style="padding-top: 15%">
<h1 style="text-align:center; margin-bottom:5%;">
Plain Text Accounting
</h1>
<div class="three columns">
<h3 id="accounting">accounting</h3>
<p><strong><a href="https://en.wikipedia.org/wiki/Accounting">accounting</a></strong> is tracking the flow of valuable commodities, such as money or time. It clarifies activity, priorities, obligations, opportunities. It can <strong><a href="http://podcastle.org/2009/10/09/pc-miniature-38-accounting-for-dragons">reduce stress</a></strong> and even be enjoyable.</p>
<p><strong><a href="https://en.wikipedia.org/wiki/Double-entry_bookkeeping_system">double-entry bookkeeping</a></strong> is a process for doing this reliably. For every movement of value (a <strong><a href="https://en.wikipedia.org/wiki/Financial_transaction">transaction</a></strong>), both the source and destination are recorded. Simple arithmetic invariants help prevent errors.</p>
<p>In traditional double-entry bookkeeping, value at any point in time is tracked in various <strong><a href="https://en.wikipedia.org/wiki/Account_(accountancy)">accounts</a></strong>, classified as <strong><a href="https://en.wikipedia.org/wiki/Asset">asset</a></strong> (owned), <strong><a href="https://en.wikipedia.org/wiki/Liability_(financial_accounting)">liability</a></strong> (owed) or <strong><a href="https://en.wikipedia.org/wiki/Equity_(finance)">equity</a></strong> (invested). Two more classifications track changes during some period: <strong><a href="https://en.wikipedia.org/wiki/Revenue">revenues</a></strong> (inflows) and <strong><a href="https://en.wikipedia.org/wiki/Expense">expenses</a></strong> (outflows).</p>
<p>Transactions consist of <strong><a href="https://en.wikipedia.org/wiki/Debits_and_credits">debits</a></strong> (increases to asset or expense accounts, or decreases to liability or equity accounts) or <strong><a href="https://en.wikipedia.org/wiki/Debits_and_credits">credits</a></strong> (decreases to asset or expense accounts, or increases to liability or equity accounts).</p>
</div>
<div class="four columns">
<h3 id="with-text">… with text</h3>
<p><strong><a href="#ledger-likes">Ledger</a></strong> and the other <strong><a href="#ledger-likes">Ledger-likes</a></strong> inspired by it are minimalist software tools for efficient double-entry-style accounting. <!-- **[double-entry-style](https://news.ycombinator.com/item?id=10512418)** accounting. --> This site introduces them and their way of doing things.</p>
<p>Accounting data is valuable; we want to know that it will be accessible for ever - even without software. We want to know when it changes, and revision-control it. We want to search and manipulate it efficiently. So, we store it as human-readable <strong><a href="http://ledger-cli.org/3.0/doc/ledger3.html#The-Most-Basic-Entry">plain</a> <a href="http://hledger.org/manual.html#journal">text</a></strong>.</p>
<p>We simplify debits and credits by using <strong><a href="http://ledger-cli.org/3.0/doc/ledger3.html#Stating-where-money-goes">signed numbers</a></strong> instead - positive for inflows to an account, negative for outflows from an account.</p>
<p>We define arbitrary <strong><a href="http://ledger-cli.org/3.0/doc/ledger3.html#Structuring-your-Accounts">account</a> <a href="http://hledger.org/manual.html#account-names">hierarchy</a></strong> to suit our needs. This scales smoothly from simple to complex scenarios, and from high-level overview to fine detail.</p>
<p>Ledger-likes are, at least in part, <strong><a href="http://ledger-cli.org/3.0/doc/ledger3.html#Basic-Usage">command-line</a> <a href="http://hledger.org/manual.html#usage">tools</a></strong>. This makes them efficient to use and very <strong><a href="#related-tools">scriptable</a></strong> and flexible.</p>
<p>Ledger-likes also, at their core, tend towards <strong><a href="https://en.wikipedia.org/wiki/Function_(mathematics)">functional operation</a></strong>: they read the input data without changing it, and output a report. This simple model makes them easy to understand and rely on.</p>
</div>
<div class="four columns">
<h3 id="questions">questions ?</h3>
<p><strong>is there no graphical user interface ? Must I use the command line ?</strong><br />
Not entirely! A bit. Decreasingly. &quot;Plain Text Accounting&quot; is a broad description, referring mainly to the data format. <strong><a href="#ui-console">GUIs</a></strong> are appearing.</p>
<p><strong>who is this for ?</strong><br />
Techies, power users, and do-it-yourself-ers, for now. If you need a rich GUI providing lots of structure, you may prefer to use something else.</p>
<p><strong>who is using it, and how ?</strong><br />
See <strong><a href="https://github.com/ledger/ledger/wiki/Who&#39;s-using-ledger%3F">Who's using Ledger?</a></strong> for some stories.</p>
<p><strong>what are the alternatives ?</strong><br />
FOSS tools like GNUCash, Grisbi, KMyMoney. Proprietary tools like Quicken/Quickbooks, You Need A Budget. Online tools like Xero, FreeAgent. (There are <strong><a href="https://en.wikipedia.org/wiki/Comparison_of_accounting_software">many</a></strong>). Spreadsheets. Paper accounting. A bookkeeper.</p>
<p><strong>why is this better than QuickBooks ?</strong><br />
Your data remains accessible. No yearly fees. Free software you can fix and port. Cross platform. Scriptable. Efficient.</p>
<p><strong>how do I communicate with my accountant ?</strong><br />
Clean up text reports by hand, print them as PDF, export CSV reports to a spreadsheet..</p>
<p><strong>what if my accountant only uses QuickBooks ?</strong><br />
You'll need a new accountant, or a duplicate set of books in QuickBooks, or to pioneer *ledger -&gt; QuickBooks exporting.</p>
<p><strong>can I use this to do my taxes ?</strong><br />
You can use this to track and report the data needed for tax reporting. Fill out and submit tax forms with another tool, or by hand.</p>
</div>
</div>
<div class="row">
<div class="seven columns">
<h3 id="ledger-likes">Ledger-likes</h3>
<!-- http://pandoc.org/README.html#tables -->
<table>
<tbody>
<tr class="odd">
<td align="left"></td>
<td align="right">Code, committers</td>
<td align="left">Mail list</td>
<td align="right">IRC, size</td>
</tr>
<tr class="even">
<td align="left"><a href="http://ledger-cli.org">Ledger</a></td>
<td align="right"><a href="https://github.com/ledger/ledger">C++</a> 101 <!-- ([openhub](https://www.openhub.net/p/ledger)) --></td>
<td align="left"><a href="http://list.ledger-cli.org/">ledger-cli</a> <!-- ([gmane](http://dir.gmane.org/gmane.comp.finance.ledger.general)) --></td>
<td align="right"><a href="http://webchat.freenode.net/?channels=ledger&amp;randomnick=1">#ledger</a> 70</td>
</tr>
<tr class="odd">
<td align="left"><a href="http://hledger.org">hledger</a></td>
<td align="right"><a href="http://code.hledger.org">Haskell</a> 30 <!-- ([openhub](https://www.openhub.net/p/hledger)) --></td>
<td align="left"><a href="http://list.hledger.org/">hledger</a> <!-- ([gmane](http://dir.gmane.org/gmane.comp.finance.ledger.hledger)) --></td>
<td align="right"><a href="http://webchat.freenode.net/?channels=hledger&amp;randomnick=1">#hledger</a> 20</td>
</tr>
<tr class="even">
<td align="left"><a href="http://furius.ca/beancount">Beancount</a></td>
<td align="right"><a href="http://bitbucket.org/blais/beancount/">Python</a> 8 <!-- ([openhub](https://www.openhub.net/p/beancount)) --></td>
<td align="left"><a href="https://groups.google.com/forum/#!forum/beancount">beancount</a> <!-- ([gmane](http://dir.gmane.org/gmane.comp.finance.beancount)) --></td>
<td align="right"><a href="http://webchat.freenode.net/?channels=beancount&amp;randomnick=1">#beancount</a> 1</td>
</tr>
<tr class="odd">
<td align="left">Abandon</td>
<td align="right"><a href="https://github.com/hrj/abandon">Scala</a> 5 <!-- ([openhub](https://www.openhub.net/p/abandon)) --></td>
<td align="left"></td>
</tr>
<tr class="even">
<td align="left">Ledger in Go</td>
<td align="right"><a href="https://github.com/howeyc/ledger">Go</a> 2</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr class="header">
<th align="left">Inactive:</th>
<th align="left"></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td align="left">cl-ledger</td>
<td align="left"><a href="https://github.com/ledger/cl-ledger">Common Lisp</a></td>
</tr>
<tr class="even">
<td align="left">ledger.pl</td>
<td align="left"><a href="https://github.com/dimonf/ledger.pl">Perl</a></td>
</tr>
<tr class="odd">
<td align="left"><a href="http://massysett.github.io/penny/">Penny</a></td>
<td align="left"><a href="https://github.com/massysett/penny">Haskell</a></td>
</tr>
<tr class="even">
<td align="left"><a href="http://hackage.haskell.org/package/UMM">UMM</a></td>
<td align="left">Haskell</td>
</tr>
</tbody>
</table>
<!-- [compare](https://www.openhub.net/p/_compare?project_0=Ledger&project_1=hledger&project_2=beancount) -->
<h3 id="related-tools">related tools</h3>
<ul>
<li><a href="http://hackage.haskell.org/package/hledger-diff">hledger-diff</a> report differing transactions between two journals</li>
<li><a href="http://hackage.haskell.org/package/hledger-interest">hledger-interest</a> generate *ledger interest transactions</li>
<li><a href="http://hackage.haskell.org/package/hledger-irr">hledger-irr</a> calculate an account's internal rate of return over time</li>
</ul>
<h5 id="data-import">data import</h5>
<ul>
<li><a href="https://launchpad.net/csv2ledger">icsvledger</a> CSV to journal converter</li>
<li><a href="https://gitlab.com/egh/ledger-autosync">ledger-autosync</a> convert OFX to journal, deduplication, bank download</li>
<li><a href="https://github.com/cantino/reckon">reckon</a> smart interactive/non-interactive CSV to journal converter</li>
</ul>
<h5 id="editor-support">editor support</h5>
<ul>
<li><a href="https://bitbucket.org/blais/beancount/src/1e21b27c0b0ecf2bf2e1a2cd5c3da3b1befc8152/src/elisp/beancount.el?at=default&amp;fileviewer=file-view-default">beancount-mode</a> for Emacs</li>
<li><a href="https://github.com/narendraj9/dotfiles/tree/master/.emacs.d/packages/rest/hledger-mode">hledger-mode</a> for Emacs</li>
<li><a href="http://ledger-cli.org/3.0/doc/ledger-mode.html">ledger-mode</a> for Emacs (also works for hledger, beancount etc.)</li>
<li><a href="https://github.com/nathangrigg/vim-beancount">vim-beancount</a> for VIM</li>
<li><a href="https://github.com/ledger/vim-ledger">vim-ledger</a> for VIM</li>
<li><a href="https://atom.io/packages/language-ledger">language-ledger</a> for Atom</li>
<li><a href="https://atom.io/packages/ledger">ledger</a> for Atom</li>
<li><a href="https://github.com/moeffju/sublime-ledger-syntax">sublime-ledger-syntax</a> for Sublime Text/TextMate</li>
<li><a href="https://github.com/lifepillar/Ledger.tmbundle">Ledger.tmbundle</a> for TextMate</li>
</ul>
<h5 id="time-tracking">time tracking</h5>
<ul>
<li><a href="https://github.com/jwiegley/org2tc">org2tc</a> org to timeclock converter</li>
<li><a href="http://taskwarrior.org">taskwarrior</a> todo list manager, some *ledger integration for time reporting</li>
<li><a href="https://github.com/MatthiasKauer/tim">tim</a> time tracking tool using hledger for reports</li>
</ul>
<h5 id="ui-console">UI, console</h5>
<ul>
<li><a href="https://github.com/hpdeifel/hledger-iadd">hledger-iadd</a> curses UI for data entry</li>
<li><a href="http://hackage.haskell.org/package/hledger-ui">hledger-ui</a> curses UI for browsing (<a href="https://asciinema.org/a/29665">demo</a>)</li>
</ul>
<h5 id="ui-gui">UI, GUI</h5>
<ul>
<li><a href="https://github.com/Rudd-O/ledgerhelpers">ledgerhelpers</a> GUI tools and python library front end for Ledger</li>
</ul>
<h5 id="ui-web">UI, web</h5>
<ul>
<li><a href="https://github.com/aumayr/beancount-web">fava</a> web UI for browsing beancount data</li>
<li><a href="https://github.com/simonmichael/hledger/tree/master/hledger-api">hledger-api</a> JSON API for *ledger data, can also serve static files</li>
<li><a href="http://hackage.haskell.org/package/hledger-web">hledger-web</a> web UI for browsing, data entry (<a href="http://demo.hledger.org">demo</a>)</li>
<li><a href="https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90">hledger-web on Sandstorm</a> free private web instances in a few clicks</li>
<li><a href="https://github.com/Ikke/ledger-dashboard">ledger-dashboard</a> web UI for browsing, data entry</li>
<li><a href="https://github.com/slashdotdash/node-ledger-web">ledger-web</a> web UI for browsing</li>
</ul>
</div>
<div class="five columns u-pull-right">
<h3 id="docs">docs</h3>
<ul>
<li><a href="http://ledger-cli.org/docs.html">Ledger manuals</a></li>
<li><a href="https://github.com/ledger/ledger/wiki">Ledger wiki</a></li>
<li><a href="http://hledger.org">hledger docs</a></li>
<li><a href="http://furius.ca/beancount/doc/index">Beancount docs</a></li>
<li><a href="http://hledger.org/more-docs.html#accounting">General accounting docs</a></li>
</ul>
<h3 id="online-books">online books</h3>
<ul>
<li><a href="https://github.com/rolfschr/GSWL-book/releases/latest">Getting Started With Ledger</a> 2016</li>
</ul>
<h3 id="presentations">presentations</h3>
<ul>
<li><a href="http://blog.loadingdata.nl/accounting-for-geeks/">Ledger CLI Accounting for Geeks</a> 2014</li>
<li><a href="http://matthewturland.com/slides/ledger-stats/">Hacking Your Finances for Fun and Profit</a> 2013</li>
<li><a href="http://www.adamsinfoserv.com/AISTWiki/pub/AIS/Presentations/Ledger.pdf">Ledger and Text based Accounting</a> 2009</li>
</ul>
<h3 id="videos">videos</h3>
<ul>
<li><a href="https://twit.tv/shows/floss-weekly/episodes/375">FLOSS Weekly 375: hledger</a> (<a href="https://www.youtube.com/watch?v=Xjl-wVJcYpE">youtube</a>, <a href="https://www.youtube.com/watch?v=qS2UcDV_lbs">3m overview</a>) 2016</li>
<li><a href="https://www.youtube.com/watch?v=MGu1Bw2USQo">Evolution of ledger</a> 2015</li>
<li><a href="https://www.youtube.com/watch?v=dEADGr9dqow">Evolution of hledger</a> 2015</li>
<li><a href="https://twit.tv/shows/floss-weekly/episodes/150">FLOSS Weekly 150: Ledger</a> (<a href="https://www.youtube.com/watch?v=TDqrrH-gTt0">youtube</a>) 2011</li>
</ul>
<h3 id="articles">articles</h3>
<ul>
<li><a href="http://goykhman.ca/gene/blog/2012/2012-09-23-an-alternative-to-quickbooks.html">An Alternative to QuickBooks</a> 2012</li>
<li><a href="http://lwn.net/Articles/501681/">The accounting quest: Ledger</a> 2012</li>
<li><a href="http://www.mygooglest.com/fni/ledger.html">Fabrice Niessen on Ledger, hledger, beancount</a> 2010</li>
<li><a href="http://archive09.linux.com/feature/58307">Ledger, the bran muffin of accounting tools</a> 2006</li>
</ul>
<h3 id="blog-posts">blog posts</h3>
<ul>
<li><a href="http://matthewturland.com/2014/03/29/ledger-basics-and-habits/">Matthew Turland: Ledger basics and habits</a> 2014</li>
<li><a href="http://joyful.com/blog/2013-10-20-what-is-hledger.html">Simon Michael: What is hledger ?</a> 2013</li>
<li><a href="http://joyful.com/blog/2013-10-19-more-on-ledger.html">Simon Michael: More on ledger</a> 2013</li>
<li><a href="http://joyful.com/blog/2013-10-18-introducing-hledger.html">Simon Michael: Introducing hledger!</a> 2013</li>
<li><a href="http://joeyh.name/blog/entry/hledger">Joey Hess: hledger</a> 2012</li>
<li><a href="http://betabug.ch/blogs/ch-athens/1221">Sascha Welter: Doing my own accounting</a> 2011</li>
<li><a href="http://www.softwarefreedom.org/blog/2011/sep/07/accounting-at-sflc/">Clint Adams: Accounting at SFLC</a> 2011</li>
<li><a href="http://blog.spang.cc/posts/hledger_rocks_my_world/">Christine Spang: [h]ledger rocks my world</a> 2010</li>
<li><a href="http://ro-che.blogspot.com/2010/02/hledger.html">Roman Cheplyaka: hledger</a> 2010</li>
</ul>
<h3 id="hacker-news">hacker news</h3>
<ul>
<li><a href="https://news.ycombinator.com/item?id=10510394">Ledger, a command-line accounting system</a> 2015</li>
<li><a href="https://news.ycombinator.com/item?id=8806056">Hledger Double-entry accounting from the Unix tools perspective (2012)</a> 2014</li>
<li><a href="https://news.ycombinator.com/item?id=7707262">Ledger, a powerful CLI accounting tool</a> 2014</li>
<li><a href="https://news.ycombinator.com/item?id=5233255">Command Line Accounting With Ledger and Reckon</a> 2013</li>
<li><a href="https://news.ycombinator.com/item?id=872244">Ledger: Command-line double-entry accounting</a> 2009</li>
</ul>
<h3 id="twitter">twitter</h3>
<ul>
<li><a href="https://twitter.com/LedgerTips">@LedgerTips</a></li>
<li><a href="https://twitter.com/hashtag/ledgercli">#ledgercli</a></li>
</ul>
<h3 id="common-tasks">common tasks</h3>
<h5 id="data-entry">data entry</h5>
<h5 id="reconciling">reconciling</h5>
<h5 id="reporting">reporting</h5>
<h5 id="forecasting">forecasting</h5>
<h5 id="budgetting">budgetting</h5>
<ul>
<li><a href="https://gist.github.com/simonmichael/a1addcb652da4e78b183">YNAB-ish envelope budgetting with hledger/ledger</a></li>
</ul>
<h5 id="shared-expenses">shared expenses</h5>
<h5 id="tax-reporting">tax reporting</h5>
<h5 id="time-tracking-1">time tracking</h5>
<ul>
<li><a href="https://github.com/anarcat/ledger-timetracking">Timetracking and billing with (h)ledger</a> 2016</li>
</ul>
<h5 id="non-profit-accounting">non-profit accounting</h5>
<ul>
<li><a href="https://github.com/conservancy/npo-ledger-cli/blob/master/npo-ledger-cli-tutorial.md">Non-Profit Accounting With Ledger CLI, A Tutorial</a> 2013</li>
</ul>
<h5 id="import-and-export">import and export</h5>
</div>
</div>
<div class="row" style="text-align:center;">
<hr>
<p>Send updates via the <a href="https://github.com/simonmichael/plaintextaccounting">github repo</a> or <a href="https://oasis.sandstorm.io/shared/UAYLwagGI0a2pIMg9Hhv74K04nbuxanXiS5ZtBV6NF-">etherpad</a></p>
</div>
</div>
<!-- End Document
-->
</body>
</html>