hledger
time and money
hledger
list and journal
balance
budget
report
forecast
hledger
- plain text based
- command-line + web
- any resources
- multicurrency
- CSV import with rules
- Haskell :)
Record

Account classes
- Income
- Assets
- Expenses
Expenses
-
expenses:food
-
expenses:alcohol
-
expenses:games
-
expenses:games:video
-
expenses:games:tabletop
-
expenses:games:paintball
- ...
Balance
$ hledger balance
$-65 assets
$65 expenses
$30 food
$5 apples
$5 bananas
$20 doshirak
$35 games
$15 gog
$20 steam
--------------------
0
Freelancing
2017/10/30 Заказ на разработку сайта-визитки от Васи
(budget:вася:сайт-визитка:шапка) 1000
(budget:вася:сайт-визитка:мясо) 3000
2017/10/31 Счёт (001) - (сайт-визитка)
(budget:вася:сайт-визитка:шапка) -500 ; update project budget
(budget:вася:сайт-визитка:мясо) -1000
assets:receivable:вася:сайт-визитка:шапка 500
assets:receivable:вася:сайт-визитка:мясо 1000
revenues:вася
(liabilities:tax:federal) -150 ; note tax due, eg 15%
2017/11/15 Платёж по счёту 001
assets:receivable:вася:сайт-визитка:шапка -500
assets:receivable:вася:сайт-визитка:мясо -1000
assets:bank:checking
2018/4/15 Налоги за 2017
liabilities:tax:federal 5000
assets:bank:checking
Budgeting
~ monthly from 2018/01
Expenses:Food 500 USD
Expenses:Health 200 USD
Expenses:Home 2545 USD
Expenses:Transport 120 USD
Income:US -10700 USD
Assets:US
Budgeting
$ hledger balance -f example.hledger -f budget.journal\
--budget cur:USD -MB -b 2018-01 -e 2018-02
Balance changes in 2018/01/01:
|| 2013/01
==========================++====================================
<unbudgeted>:Expenses || 5980.60 USD
<unbudgeted>:Liabilities || 293.09 USD
Assets:US || 1893.32 USD [26% of 7335 USD]
Expenses:Food || 396.46 USD [79% of 500 USD]
Expenses:Health || 290.70 USD [145% of 200 USD]
Expenses:Home || 2544.98 USD [100% of 2545 USD]
Expenses:Transport || 120.00 USD [100% of 120 USD]
Income:US || -15119.10 USD [141% of -10700 USD]
--------------------------++------------------------------------
|| -3599.95 USD
Multiple currencies
2018/05/16 Закупил яблок для сидра
assets:debit card -2000.00 RUR
assets:food:apples 4 kg
2018/05/20 Перегнал сидр
assets:food:apples -4 kg
assets:food:sugar -2 kg
assets:food:cider 4 bottles
CSV import
### Tinkoff CSV import rules for hledger
# tinkoff.csv.rules
## Actual header
# "Дата операции";"Дата платежа";"Номер карты";"Статус";"Сумма операции";"Валюта операции";"Сумма платежа";"Валюта платежа";"Кэшбэк";"Категория";"MCC";"Описание";"Бонусы (включая кэшбэк)"
# skip header
skip 1
# name the fields
fields date, _, _, _, amount, _, _, _, _, category, _, desc, _
date-format %d.%m.%Y %T
description %category - %desc
account1 assets:tinkoff:main
CSV import
$ hledger -f tinkoff.csv print
using conversion rules file tinkoff.csv.rules
2012/03/22 DEPOSIT
income:unknown $-50.00
assets:bank:checking $50.00
2012/03/23 TRANSFER TO SAVINGS
assets:bank:savings $10.00
assets:bank:checking $-10.00
Time tracking
; 2018.timedot
2018/5/7
personal:email 20m
work:haskell .... ..
work:slack .
work:haskell .... .
personal:tea .
work:slack .
work:email ..
work:haskell ...
personal:lunch 1h15m
work:slack .
work:haskell .... ...
personal:tea .
work:slack .
work:haskell ..
Time budgeting
;;; Time budget for half a year
; time_budget.journal
~ every 6 months
time:spent -4320 ; 180*24
time:sleep 1440 ; 180*8
time:cooking 360 ; 180*2
time:transport 260 ; 5*26*2
time:work 1040 ; 5*26*8
time:free
~ every Monday
time:free -2 ; Fitness
time:spent
~ every Thursday
time:free -2 ; Fitness
time:spent
Time tracking
; example.timedot
### Встреча однокурсников
2018/03/19
time:free 3h
time:spent
# Очень важный проект
## Нужно сделать до мая
### Задача 1
2018/05/01
time:work 20h
time:spent
### Задача 2
2018/05/01
time:work 40h
time:spent
### Mission impossible
2018/04/01
time:work 1000h
time:spent
Time reporting
$ hledger -f example.timedot -f time_budget.journal bal\
--budget --forecast --cumulative -b 2018/02 -e 2018/06 -M
Budget performance in 2018/02/01-2018/05/31:
|| Feb Mar Apr May
================++====================================================================================================================
time:cooking || 0 [ 0% of 360] 0 [ 0% of 360] 0 [ 0% of 360] 0 [ 0% of 360]
time:free || 0 [ 0% of 1204.00] 3.00 [ 0% of 1186.00] 3.00 [ 0% of 1168.00] -15.00 [ -1% of 1150.00]
time:sleep || 0 [ 0% of 1440] 0 [ 0% of 1440] 0 [ 0% of 1440] 0 [ 0% of 1440]
time:spent || 0 [ 0% of -4304.00] 0 [ 0% of -4286.00] 0 [ 0% of -4268.00] 18.00 [ 0% of -4250.00]
time:transport || 0 [ 0% of 260] 0 [ 0% of 260] 0 [ 0% of 260] 0 [ 0% of 260]
time:work || 0 [ 0% of 1040] 0 [ 0% of 1040] 1000.00 [ 96% of 1040] 1060.00 [ 102% of 1040]
----------------++--------------------------------------------------------------------------------------------------------------------
|| 0 [ 0] 3.00 [ 0] 1003.00 [ 0] 1063.00 [ 0]
References
hledger
By Alexander Letov
hledger
Introduction to hledger tool and it's basic usage.
- 196