227 lines
13 KiB
HTML
227 lines
13 KiB
HTML
<!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">
|
||
|
||
<!-- 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="four columns">
|
||
<h3 id="accounting">accounting</h3>
|
||
<p><strong>accounting</strong> is tracking the flow of valuable commodities, such as money or time. It clarifies activity, priorities, obligations, opportunities. It can reduce stress and even be enjoyable.</p>
|
||
<p><strong>double-entry bookkeeping</strong> is a process for doing this reliably. For every movement of value (a <strong>transaction</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>accounts</strong>, classified as <strong>asset</strong> (owned), <strong>liability</strong> (owed) or <strong>equity</strong> (invested). Two more classifications track changes during some period: <strong>revenues</strong> (inflows) and <strong>expenses</strong> (outflows).</p>
|
||
<p>Transactions consist of <strong>debits</strong> (increases to asset or expense accounts, or decreases to liability or equity accounts) or <strong>credits</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>Ledger</strong> and the other <strong>Ledger-likes</strong> inspired by it are minimalist software tools for efficient double-entry 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>plain text</strong>.</p>
|
||
<p>We simplify debits and credits by using <strong>signed numbers</strong> instead - positive for inflows to an account, negative for outflows from an account.</p>
|
||
<p>We define arbitrary <strong>account hierarchy</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>command-line</strong> tools. This makes them efficient to use and very <strong>scriptable</strong> and flexible.</p>
|
||
<p>Ledger-likes also, at their core, tend towards <strong>functional operation</strong>: they read the input data without changing it, and output a report. This simplicity makes them easy to understand and rely on.</p>
|
||
</div>
|
||
<div class="three columns">
|
||
<h3 id="questions">questions ?</h3>
|
||
<p><strong>who is this for ?</strong><br />
|
||
Techies, power users, and do-it-yourself-ers, at least for now. If you need a rich GUI and lots of structure, you may prefer a more traditional GUI tool.</p>
|
||
<p><strong>what are the alternatives ?</strong><br />
|
||
GNUCash, Grisbi, KMyMoney or other FOSS tools, proprietary tools like Quicken/Quickbooks, online tools like Xero, spreadsheets, paper accounting.</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 -> 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&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&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&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="editing">editing</h5>
|
||
<ul>
|
||
<li><a href="http://ledger-cli.org/3.0/doc/ledger-mode.html">ledger-mode</a> for Emacs</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</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 and data entry</li>
|
||
<li><a href="https://github.com/Ikke/ledger-dashboard">ledger-dashboard</a> web UI for browsing</li>
|
||
<li><a href="https://github.com/slashdotdash/node-ledger-web">ledger-web</a> web UI for browsing</li>
|
||
<li>sandstorm.io web app hosting, eg for <a href="https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90">hledger-web</a></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="https://github.com/rolfschr/GSWL-book">"Getting Started With Ledger" book</a></li>
|
||
<li><a href="http://hledger.org">hledger docs</a>, <a href="http://hledger.org/more-docs.html">more docs</a></li>
|
||
<li><a href="http://furius.ca/beancount/doc/index">Beancount docs</a> <!-- - [Abandon wiki](https://github.com/hrj/abandon/wiki) --></li>
|
||
<li><a href="https://twitter.com/LedgerTips">@LedgerTips</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>
|
||
<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">on integrating timelog and journal</a></li>
|
||
</ul>
|
||
<h5 id="import-and-export">import and export</h5>
|
||
<h5 id="section"></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>
|