Accounting
For business and household account we use hledger,
using helper scripts from git://source.jones.dk/ledger
to handle data stored across a hierarchy of ledger files.
FIXME: Include helper scripts as csv2hledger and shledger
Essentials
Track money earned and spent,
and compute profit (e.g. for reporting income tax).
Income
Save invoice entries grouped e.g. by customer
to path //income/.ledger:
$EDITOR data/2016/income/kp.ledger
git add data/2016/income/kp.ledger
git commit -m "Income 2016 from KP."
Use payment due date as date2.
Expenses
Save expense entries grouped e.g. by provider
to path //expenses/.ledger:
$EDITOR data/2016/expenses/bahn.ledger
git add data/2016/expenses/bahn.ledger
git commit -m "Expenses 2016 to Bahn."
Validation
Bank
save bank transactions as e.g. CSV files
to path //assets/.csv:
recode latin1/crlf..utf8 data/2016/assets/12345678901.csv
git add data/2016/assets/12345678901.csv
git commit -m "Bank transactions 2016."
Convert to hledger format:
mycsv2ledger data/2016/assets/12345678901.csv
git add data/2016/assets/12345678901.ledger
git commit -m "Bank transactions 2016, hledger format."
Payments
Compare income with bank transactions of payments,
checking that last column is zero at end of each day:
myhledger register assets:receivable -p "in 2016" --date2
Edit paid invoices:
Adjust date2 to be the date moeny was received
(i.e. "effective date" at bank).
Private
Verify transactions registered as private:
myhledger reg assets:advances --date2 -p "in 2016"
Add filter for non-private bank transactions
to path //assets/.csv.local.rules
or globally to path /.rules.
Reports
Income tax
myhledger is -Bp 2016
Profit is the inverse of the "total" at bottom
(an income statement is oriented towards expenses).
Sales tax
Outgoing tax
(inverse of lower right corner value):
myhledger reg tax:sales -w 80 -Bp "from 2016 to 2016-07"
Incoming tax
(lower right corner value):
myhledger reg tax:expenses -w 80 -Bp "from 2016 to 2016-07"
Payee-handled EU tax
(inverse of lower right corner value):
myhledger reg income:sales:eu -w 80 -Bp "from 2016 to 2016-07"