An accounting tool inspired by beancount and ledger
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
examples
src
tests Use fixed-point numbers Feb 2, 2019
.dir-locals.el Use new-build Jan 2, 2019
.ghcid
.gitignore
.stylish-haskell.yaml Improve parser exceptions Sep 10, 2018
.travis.yml Add GHC 8.6 Jan 6, 2019
ChangeLog.md
LICENSE Documentation Sep 30, 2018
README.md
README.org Use fixed-point numbers Feb 2, 2019
Setup.hs
beans.cabal Small changes Feb 11, 2019
brittany.yaml Reformat project Nov 24, 2018
cabal.project
default.nix
format.sh Merge Directives, Accounts and Restrictions modules Nov 21, 2018
index.html Introduce subparser & preprocessing of input Jan 27, 2019
index.org Use fixed-point numbers Feb 2, 2019
package.yaml
release.nix Fix nix build instructions Jan 7, 2019
shell.nix
stack.yaml

README.md

Build Status

beans - A Plain-Text Accounting Tool

beans is a plain text accounting tool in the tradition of ledger, hledger and beancount. Read the overview below, or check out the manual for details!

Track your net worth

Print a formatted balance sheet in USD:

beans balanceSheet -j examples/example.bean

Output:

|-------------+----------+-----------+--------------------+----------+-----------|
| Account     | Amount   | Commodity | Account            | Amount   | Commodity |
|-------------+----------+-----------+--------------------+----------+-----------|
| Assets      |    10.00 | AAPL      | Equity             | 19800.00 | USD       |
|             |     0.25 | BTC       |   OpeningBalance   | 15000.00 | USD       |
|             | 14600.00 | USD       |   RetainedEarnings |  4800.00 | USD       |
|   Checking  | 14600.00 | USD       |                    |          |           |
|   Portfolio |    10.00 | AAPL      |                    |          |           |
|   Wallet    |     0.25 | BTC       |                    |          |           |
|-------------+----------+-----------+--------------------+----------+-----------|
| Total       |    10.00 | AAPL      | Total              | 19800.00 | USD       |
|             |     0.25 | BTC       |                    |          |           |
|             | 14600.00 | USD       |                    |          |           |
|-------------+----------+-----------+--------------------+----------+-----------|

Convert arbitrary commodities and currencies

Convert all amounts to USD, using latest market prices:

beans balanceSheet -j examples/example.bean -m USD

Output:

|-------------+----------+-----------+--------------------+----------+-----------|
| Account     | Amount   | Commodity | Account            | Amount   | Commodity |
|-------------+----------+-----------+--------------------+----------+-----------|
| Assets      | 18409.50 | USD       | Equity             | 18409.50 | USD       |
|   Checking  | 14600.00 | USD       |   OpeningBalance   | 15000.00 | USD       |
|   Portfolio |  2220.00 | USD       |   RetainedEarnings |  4800.00 | USD       |
|   Wallet    |  1589.50 | USD       |   Valuation        | -1390.50 | USD       |
|-------------+----------+-----------+--------------------+----------+-----------|
| Total       | 18409.50 | USD       | Total              | 18409.50 | USD       |
|-------------+----------+-----------+--------------------+----------+-----------|

Convert all amounts to bitcoin, using latest market prices:

beans balanceSheet -j examples/example.bean -m BTC

Output:

|-------------+--------+-----------+--------------------+--------+-----------|
| Account     | Amount | Commodity | Account            | Amount | Commodity |
|-------------+--------+-----------+--------------------+--------+-----------|
| Assets      |   2.90 | BTC       | Equity             |   2.90 | BTC       |
|   Checking  |   2.30 | BTC       |   OpeningBalance   |   1.12 | BTC       |
|   Portfolio |   0.35 | BTC       |   RetainedEarnings |   0.45 | BTC       |
|   Wallet    |   0.25 | BTC       |   Valuation        |   1.32 | BTC       |
|-------------+--------+-----------+--------------------+--------+-----------|
| Total       |   2.90 | BTC       | Total              |   2.90 | BTC       |
|-------------+--------+-----------+--------------------+--------+-----------|

Use flexible rules to assign accounts automatically

Take a sample bank statement:

Datum von:;2017-05-23
Buchungsart:;Alle Buchungen
Konto:;CHXXXXXXXXXXXXXXXXXXX
Währung:;CHF
Buchungsdatum;Avisierungstext;Gutschrift;Lastschrift;Valuta;Saldo
2017-06-01;"Acme Corp";;-135.00;2017-06-01;

Disclaimer:
Dies ist kein durch PostFinance AG erstelltes Dokument. PostFinance AG ist nicht verantwortlich für den Inhalt.

Create a set of rules:

description =~ "Acme" && abs amount == 135.00 -> Expenses:Groceries
True -> Expenses:ToBeEditedManually

Import the statement and assign accounts to bookings:

beans import -i ch.postfinance -c examples/quick/example.rules -a Assets:Checking examples/quick/postfinance.csv

Output:

2017-06-01 * "Acme Corp"
  Assets:Checking -135.00 CHF
  Expenses:Groceries 135.00 CHF

Other features

  • flexible analysis and filtering
  • built-in set of importers (pull requests welcome)
  • written in Haskell

Check out the manual!

License

BSD-3