hledger

#soft #hledger #money

Считаю, что если вы не ведете учет своих трат, значит вы не знаете, куда уходят ваши деньги. На протяжении нескольких лет веду учет своих денежных потоков. За эти несколько лет перепробовал различные решения, в результате в конце 2019 года перешел на использование hledger и с тех пор очень доволен.

hledger – это консольная утилита, которая работает с текстовыми файлами, в которых в определенном формате фиксируются все денежные (и не только денежные) операции. Формат описания довольно простой, но это не снижает его функциональности.

Используется формат записи двойных зачений. Все начинается с фиксации начальных остатков того, что нужно будет учитывать, и затем прописываются операции в виде: с какого счета ушло, на какой счет пришло.

Пример записи:

; $HOME/.hledger.journal (or $LEDGER_FILE)

2020-01-01 opening balances
    assets:checking         $1234
    equity

2020-03-15 client payment
    assets:checking         $2000
    income:consulting

2020-03-20 Sprouts
    expenses:food:groceries  $100
    assets:cash               $40
    assets:checking

Я использую деление операций по годам:

❯ l -1
tools/
2019.journal
2020.journal
2021.journal
budget.journal
main.journal
README.md

Все операции за определенный год в одноименном файле. Директория tools содержит в себе ряд скриптов, которые позволяют генерировать список организаций и список используемых категорий, которые используются в автодополнении в vim.

Скрипт элементарный:

#!/bin/bash
hledger accounts > hledger-accounts
hledger descriptions > hledger-descriptions

Файл main.journal содержит в себе описание основных настроек журнала, используемые сокращения и включение файлов по каждому году для формирования отчета. Приведу часть файла, без используемых сокращений:

;export LEDGER_FILE=~/.hledger/main.journal

; Аккаунты
account Активы        ; type:Asset
account Расходы       ; type:Expense
account Пассивы       ; type:Liability
account Собственные   ; type:Equity
account Доходы        ; type:Revenue

commodity RUB
  format 1 000,00 RUB
D 1000,00 RUB
commodity 1 000,00 $
commodity 1 000,00 EUR

include 2019.journal
include 2020.journal
include 2021.journal

Да, я обычно фиксирую все операции на русском языке и чтобы hledger корректно их воспринимал, необходимо указывать, что является названием аккаунта, что активом/пассивом. Так же видно, что я веду счета в трех валютах, рублях, долларах и евро. Файл содержит описание того, как отображаются соответствующие валюты.

Но фиксация операций это лишь малая часть дела, самое главное это отчеты, которые используются в дальнейшем планировании и бюджетировании. В основном я использую две команды для просмотра отчетов:

  1. текущий баланс по счетам
  2. категории трат по месяцам

Для просмотра текущего баланса используется команда:

hledger bs --no-elide
Balance Sheet 2020-03-20

             || 2020-03-20 
=============++============
 Assets      ||            
-------------++------------
 assets      ||      $3134 
   cash      ||        $40 
   checking  ||      $3094 
-------------++------------
             ||      $3134 
=============++============
 Liabilities ||            
-------------++------------
-------------++------------
             ||            
=============++============
 Net:        ||      $3134 

Пример взят с сайта, добавление флага --no-elide позволяет отображать все счета без сокращений.

Для просмотра отчета за определенный период:

hledger balance -M -p "2021-01.."

Для включения только расходов за период:

hledger balance -M -p "2021-01.." ^Расходы

Я не использую автоимпорты из банковских выписок, и предпочитаю вносить данные вручную примерно раз в неделю. Vim позволяет мне использовать автодополнение и автоматическое форматирование файла.

Так же предпочитаю отмечать каждую операцию значками ! и *, первый обозначает проведение операции без подтверждения. И второй значок означает подтверждение операции со стороны банка. То есть дальнейшие изменения по операции уже не предполагаются. Это позволяет точно проводить учет, внося изменения и корректируя с течением времени необходимые операции.

По прошествии нескольких лет баланс у меня сходиться до копейки. И я могу получить информацию по доходам/расходам за любой период времени, узнать, на что именно я тратил деньги и в какой день.

Подобные отчеты позволяют прогнозировать денежные потоки и планировать их распределение в будущем. На что я могу расчитывать и на что могу потратить, куда и сколько вложить для сбережений.

По установке в различных операционных системах можно узнать на официальном сайте: Download/install – heldger .

За эти несколько лет перепробовал большое число различных сервисов и утилит, но пока еще ни разу не сталкивался с чем либо, подобному hledger. Большое спасибо Simon Michael за замечательную программу!