Вступ до Beancount.io
Цей посібник узагальнює найкращі практики ведення обліку у вигляді звичайного тексту за допомогою потужного інструменту з відкритим кодом – Beancount. Він охоплює основні принципи, базовий та розширений синтаксис, практичні приклади для складних активів і стратегії довгострокового управління книгою обліку.
Частина 1: "Чому" - Основи Розумного Бухгалтерського Обліку
Перш ніж занурюватися в "як", важливо зрозуміти "чому". Ефективний бухгалтерський облік є основою управління особистими фінансами та необхідним кроком до фінансової ясності та свободи.
Вихід за межі Відстеження Витрат: Шлях до Фінансової Ясності
Прості програми для відстеження витрат показують, куди пішли ваші гроші. Надійна система обліку показує вам це та багато іншого: вона надає повну картину вашого фінансового стану, включаючи ваш власний капітал, грошовий потік і результати ваших інвестицій. Основна мета – спостережливість — отримання чіткого, заснованого на даних розуміння вашого фінансового життя, що дозволяє вам приймати обґрунтовані рішення, оцінювати ризики та працювати над довгостроковими цілями, такими як вихід на пенсію.
Чому Подвійний Запис? Сила Збалансованої Системи
На відміну від одинарного бухгалтерського обліку (простий перелік витрат), метод подвійного запису фіксує кожну транзакцію як потік вартості між принаймні двома рахунками. Його основним принципом є фундаментальне бухгалтерське рівняння:
Ця система гарантує, що ваші книги завжди збалансовані, що значно зменшує кількість помилок. Вона надає повну фінансову картину, створюючи важливі звіти, такі як Баланс (чим ви володієте і що винні) і Звіт про прибутки та збитки (що ви заробили та витратили).
Частина 2: Початок роботи з Beancount
Beancount – це потужний інструмент на основі Python для ведення обліку у вигляді звичайного тексту.
Ваш Перший Погляд з Fava на Beancount.io
Beancount.io надає потужне середовище, яке поєднує в собі механізм Beancount з мобільним додатком (iOS, Android) і веб-додатком - Fava, фантастичним веб-інтерфейсом для візуалізації вашої книги обліку. Встановлення не потрібне. Коли ви використовуєте платформу, ви безпосередньо взаємодієте з текстовим редактором для вашого файлу книги обліку (наприклад, main.bean) і бачите, як оновлюються звіти, згенеровані Fava, в режимі реального часу.
Fava бере звичайний текст, який ви пишете, і перетворює його на інтерактивні діаграми, фінансові звіти та списки транзакцій, які можна фільтрувати, надаючи вам чітке уявлення про ваші фінансові звіти.
П'ять Основних Типів Рахунків
Beancount використовує п'ять типів рахунків верхнього рівня, які формують структуру вашої книги обліку:
| Тип Рахунку | Опис | Типовий Баланс |
|---|---|---|
Assets | Те, чим ви володієте (готівка, банківські рахунки, інвестиції, нерухомість). | Позитивний |
Liabilities | Те, що ви винні (заборгованість за кредитною карткою, позики, іпотека). | Негативний |
Income | Звідки надходять гроші (зарплата, премії, відсотки). | Негативний |
Expenses | Куди йдуть гроші (їжа, оренда, подорожі, податки). | Позитивний |
Equity | Ваша чиста вартість; використовується для початкових залишків. | Негативний |
Рівняння Beancount
Beancount застосовує власну версію бухгалтерського рівняння, де сума всіх проводок у всій вашій книзі обліку дорівнює нулю:
Ось чом у, за домовленістю, рахунки Доходу, Зобов'язань і Власного капіталу мають від'ємні значення — вони є джерелами коштів, які збільшують ваші Активи та Витрати.
Частина 3: Мова Beancount - Основний Синтаксис
Усі записи в Beancount є директивами, які починаються з дати.
Визначення Рахунків (open) і Товарів
Перш ніж використовувати рахунок, ви повинні оголосити його за допомогою директиви open. Ви також можете вказати валюти або "товари", які він буде містити.
; YYYY-MM-DD open Account:Name [Commodity1, Commodity2, ...]
2020-01-01 open Assets:Bank:US:Chase:Checking USD
2020-01-01 open Liabilities:CreditCard:US:Discover USD
2020-01-01 open Expenses:Food:Groceries
2020-01-01 open Income:Salary:Google
Товари можуть бути реальними валютами (наприклад, USD, JPY) або будь-якою власною одиницею, яку ви визначите, наприклад, милі авіакомпанії (MILES_UA) або тікери акцій (HOOL).
Запис Вашої Першої Транзакції (*)
Транзакції є найпоширенішим записом. Вони починаються з дати, прапорця (* для повної транзакції або ! для неповної), необов'язкового одержувача платежу та опису. Кожен рядок, який іде далі (з відступом у два пробіли), є "проводкою" на рахунок.
; YYYY-MM-DD * "Payee" "Description"
; Account1 Amount Commodity
; Account2 -Amount Commodity
2024-07-28 * "Trader Joe's" "Щотижневі покупки"
Expenses:Food:Groceries 125.50 USD
Liabilities:CreditCard:US:Discover -125.50 USD
Для зручності, якщо транзакція має лише дві проводки, ви можете пропустити суму у другому рядку, і Beancount обчислить її автоматично.
2024-07-28 * "Trader Joe's" "Щотижневі покупки"
Expenses:Food:Groceries 125.50 USD
Liabilities:CreditCard:US:Discover
Балансування на Рівні Транзакцій: Що ще важливіше для щоденного використання, кожна окрема транзакція також має бути збалансована — сума всіх проводок в межах однієї транзакції має дорівнювати нулю. Якщо транзакція не збалансована, Beancount покаже таку помилку:

Обробка Багато валютних Транзакцій (@ і @@)
Beancount чудово підходить для багато валютного обліку.
- Використовуйте
@, щоб вказати ціну конвертації за одиницю. - Використовуйте
@@, щоб вказати загальну вартість конвертації.
; Купівля авіаквитка в EUR карткою USD
2024-08-01 * "Lufthansa" "Авіаквиток до Берліна"
Expenses:Travel:Flights 500.00 EUR @@ 545.00 USD ; 500 EUR коштували мені 545 USD в цілому
Liabilities:CreditCard:US:Discover -545.00 USD
Частина 4: Забезпечення Точності - Мистецтво Звірки
Ключовою практикою для підтримки точної книги обліку є регулярна звірка. Це передбачає порівняння залишків у вашій книзі обліку Beancount з офіційними виписками з ваших фінансових установ.
Автоматизація Перевірок за допомогою Тверджень Балансу (balance)
Директива balance є вашим основним інструментом для автоматизованих перевірок. Ви стверджуєте, що на певну дату рахунок мав певний залишок. Beancount видасть помилку, якщо обчислений залишок не збігається з вашим твердженням. Це неоціненно для швидкого виявлення помилок.
Примітка: Твердження балансу перевіряє стан рахунку на початку вказаного дня (до будь-яких транзакцій у цей день).
; З вашої щомісячної виписки з кредитної картки
2024-08-01 balance Liabilities:CreditCard:US:Discover -1432.78 USD
Посилання на Підтверджуючі Документи (document)
Ви можете посилатися на зовнішні файли, такі як банківські виписки або квитанції, створюючи контрольний слід. Fava робить ці посилання клікабельними.
2024-08-01 document Liabilities:CreditCard:US:Discover "statements/discover-2024-07.pdf"
Виправлення Помилок та Ініціалізація Залишків
Коли ви починаєте свою книгу обліку або знаходите розбіжність, яку не можете відстежити, вам потрібно внести коригування. Стандартною практикою є використання спеціального рахунку Equity.
; Ініціалізація готівкового рахунку при запуску вашої книги обліку
2020-01-01 * "Початковий Залишок" "Налаштування готівкового рахунку"
Assets:Cash:Wallet 200.00 USD
Equity:Opening-Balances -200.00 USD
Рахунок Equity:Opening-Balances містить суми, які надходять до вашої книги обліку з невідомих або зовнішніх джерел.
Для швидких виправлень, коли точна розбіжність не важлива, директива pad може автоматично скоригувати залишок рахунку, щоб відповідати наступному твердженню balance, зарезервувавши різницю на рахунок власного капіталу. Використовуйте це з обережністю, оскільки це може приховати більші проблеми. Явні коригування, як правило, безпечніші.