Beancount проти hledger: який інструмент текстового бухгалтерського обліку підходить саме вам?
Якщо ви вирішили керувати своїми фінансами за допомогою текстового обліку (plain-text accounting), ви вже зробили розумний вибір. Ваші фінансові дані зберігатимуться в людиночитаних файлах, які ви повністю контролюєте, відстежуються за допомогою системи контролю версій і вільні від залежності від конкретних постачальників програмного забезпечення. Але тепер постає наступне питання: який інструмент обрати?
Beancount та hledger — це два найпопулярніші інструменти текстового обліку (PTA) на сьогодні. Обидва мають відкритий вихідний код, активно підтримуються та здатні впоратися з усім: від особистих бюджетів до складних інвестиційних портфелів. Проте вони використовують принципово різні підходи до того, як ви записуєте, перевіряєте та аналізуєте свої фінансові дані.
Цей посібник розбирає ключові відмінності, щоб ви могли обрати той варіант, який відповідає вашому робочому процесу, рівню досвіду та потребам у відстеженні фінансів.
Основна філософія: Суворість проти гнучкості
Найбільша різниця між Beancount та hledger полягає не у функціях, а у підході.
Beancount — це суворий вчитель. Він припускає, що ви будете припускатися помилок при введенні даних, і створює «запобіжники», щоб виявити їх якомога раніше. Кожен рахунок повинен бути явно відкритий перед використанням. Кожна транзакція має балансувати в нуль. Валюти повинні відповідати суворому формату. Якщо щось виглядає неправильно, Beancount відмовиться обробляти ваш файл, доки ви це не виправите.
hledger — це поблажливий друг. Він використовує більш розслаблений синтаксис, дозволяє пропускати попереднє оголошення рахунків і навіть може самостійно виводити записи для балансування. Ви можете почати відстежувати фінанси з мінімальними налаштуваннями та поступово додавати структуру в міру зростання ваших потреб.
Жоден із підходів не є об'єктивно кращим. Якщо ви цінуєте можливість виявити помилки до того, як вони перетворяться на години налагодження, суворість Beancount є перевагою. Якщо ви хочете почати швидко і віддаєте перевагу гнучкості, поступливість hledger буде плюсом.
Синтаксис та формат даних
Обидва інструменти зберігають транзакції у текстових файлах, але правила синтаксису суттєво відрізняються.
Синтаксис Beancount
2026-03-15 * "Whole Foods" "Weekly groceries"
Expenses:Food:Groceries 85.42 USD
Liabilities:CreditCard:Visa
Ключові правила:
- Дати використовують формат ISO 8601 (
YYYY-MM-DD) - Валюти мають бути написані великими літерами (наприклад,
USD,EUR) — без символів на кшталт$або€ - Назви рахунків повинні складатися принаймні з двох компонентів, розділених двокрапкою (наприклад,
Expenses:Food) - Описи мають бути рядками в лапках
- Усі рахунки повинні бути явно відкриті за допомогою директиви
open
Синтаксис hledger
2026-03-15 Whole Foods | Weekly groceries
expenses:food:groceries $85.42
liabilities:creditcard:visa
Ключові правила:
- Більш гнучкі формати дат
- Дозволені символи валют, такі як
$та€ - Назви рахунків можуть бути написані малими літерами та бути більш довільними
- Описи не потребують лапок
- Немає потреби попередньо оголошувати рахунки
Підсумок: Суворіший синтаксис Beancount означає більше початкової роботи, але менше неоднозначностей. Розслаблений синтаксис hledger легший для старту, але вимагає більше дисципліни для підтримки узгодженості.
Цілісність та перевірка даних
Саме тут Beancount по-справжньому виділяється.
Підтвердження балансу (Balance Assertions)
Обидва інструменти підтримують підтвердження балансу — твердження, які перевіряють, чи відповідає ваш записаний баланс виписці з банку. Але працюють вони по-різному.
Beancount використовує датовані підтвердження балансу, які не залежать від порядку записів. Ви можете переставляти файли транзакцій як завгодно, і підтвердження все одно працюватимуть правильно. Підтвердження в hledger залежать від порядку у файлі, що означає, що переміщення транзакцій може їх порушити.
Відстеження активів (Inventory Tracking)
Для тих, хто відстежує інвестиції, це дуже важливо. Beancount забезпечує суворе ведення активів: ви не можете продати акції, які ніколи не купували, і він точно відстежує собівартість (cost basis). Це запобігає «витоку собівартості» — непомітній помилці, коли розрахунки приросту капіталу починають розходитися з реальністю.
hledger обробляє товари та лоти, але з меншим рівнем контролю. Він гнучкіший, що також означає більшу поблажливість до помилок, які можуть залишитися непоміченими до моменту подання податкової звітності.
Категорії рахунків
Beancount вимагає, щоб кожен рахунок належав до однієї з п'яти категорій: Активи (Assets), Зобов'язання (Liabilities), Доходи (Income), Витрати (Expenses) або Власний капітал (Equity). Це обмеження дозволяє йому автоматично створювати належні балансові звіти та звіти про п рибутки та збитки.
hledger дозволяє створювати довільні ієрархії рахунків без обов'язкових кореневих категорій. Це дає більше свободи, але означає, що вам потрібно вручну дотримуватися домовленостей, щоб отримувати змістовні фінансові звіти.
Інтерфейс користувача та звітність
Beancount + Fava
Визначною особливістю Beancount є Fava — відшліфований веб-інтерфейс, який забезпечує:
- Інтерактивні діаграми та графіки (тренди чистої вартості, розбивка витрат, доходи проти витрат)
- Деревоподібні візуалізації (treemaps) для категорій витрат
- Потужну фільтрацію за рахунком, тегом, періодом часу та отримувачем платежу
- Мову запитів для спеціальних звітів
- Вбудований редактор для ваших файлів леджера
Fava вважається найкращим інтерфейсом в екосистемі текстового обліку. Якщо ви візуал і хочете бачити дашборди та графіки, це вагомий аргумент на користь Beancount.
Інтерфейси hledger
hledger використовує підхід із кількома інтерфейсами:
- CLI: Багаті можливості звітування через командний рядок із десятками вбудованих команд (
balance,register,incomestatement,cashflowта інші) - hledger-ui: Термінальний інтерфейс для інтерактивного перегляду рахунків та транзакцій
- hledger-web: Простіший веб-інтерфейс для базового перегляду та введення даних
CLI в hledger потужніший «з коробки», ніж у Beancount. Якщо ви віддаєте перевагу роботі в терміналі та хочете отримувати швидкі звіти, які можна автоматизувати скриптами, hledger — чудовий вибір.