Перейти до основного вмісту

Глосарій Beancount та бухгалтерії у простому тексті

Прості визначення термінів Beancount та бухгалтерії у простому тексті: рахунки, проведення, база витрат, методи бронювання тощо.

Облік у текстовому форматі запозичує словник із подвійного запису та додає кілька власних слів, специфічних для Beancount. Цей глосарій визначає терміни, які ви зустрінете, читаючи цю документацію або власний файл книги, кожен із коротким прикладом, де це допомагає. Кожен запис має власне посилання, тож ви можете вказати колезі прямо на визначення.

Рахунок​

Рахунок — це іменований контейнер, що відстежує один потік вартості, записаний як ієрархія, розділена двокрапками, під одним із п'яти кореневих типів: Assets, Liabilities, Equity, Income або Expenses. Ієрархія — це вся організаційна структура ваших книг — Assets:US:BofA:Checking і Expenses:Food:Restaurant сортуються та згортаються автоматично. Кожен рахунок потрібно оголосити, перш ніж використовувати. Правила найменування дивіться в Синтаксис мови Beancount.

Начислений метод​

Облік за методом нарахування фіксує дохід тоді, коли він зароблений, а витрати — тоді, коли вони понесені, незалежно від того, коли фактично рухаються гроші. Облік за касовим методом робить навпаки: він визнає і те, і те лише тоді, коли гроші змінюють власника. Нарахування дає правдивішу картину результатів періоду, тому рахунок, який ви виставили в березні, належить березню, навіть якщо клієнт сплачує в травні.

Амортизація​

Амортизація розподіляє один великий платіж на періоди, які він фактично покриває, тож кожен місяць несе свою справедливу частку витрат. Річна страхова премія, сплачена в січні, є витратою всіх дванадцяти місяців, а не лише січня. У Beancount ви або пишете розподілені проведення вручну, або генеруєте їх за допомогою плагіна — дивіться Амортизація.

Балансове твердження​

Перевірка балансу — це директива balance, яка вказує, яким має бути баланс рахунку на початок вказаної дати, тож ваш банківський випис стає автоматичною перевіркою ваших книг. Якщо обчислений баланс відрізняється більше, ніж на допуск перевірки, Beancount гучно повідомляє про помилку із зазначенням очікуваної та фактичної сум. Цей допуск — одна одиниця останнього десяткового знака, який ви записали — 4.27 RGAGX приймає все від 4.26 до 4.28 — а ~ перед валютою задає власний допуск. Додавання однієї перевірки на рахунок на випис — найдешевший спосіб підтримувати довіру до книги.

2026-01-01 balance Assets:US:BofA:Checking   4,321.00 USD

Beancount​

Beancount — це система обліку з відкритим кодом і подвійним записом, книга якої є файлом у текстовому форматі, який ви редагуєте в будь-якому текстовому редакторі та перевіряєте інструментом командного рядка. Вона дає вам строгий, придатний для розбору синтаксис, мову запитів і вебінтерфейс, без бази даних чи пропрієтарного формату файлу. Оскільки книга є текстом, вона чудово живе в Git поряд із вашим кодом. Почніть із Вступу до Beancount.

Мова запитів Beancount​

Мова запитів Beancount, зазвичай скорочувана як BQL, — це схожа на SQL мова, яку ви використовуєте, щоб ставити запитання своїй книзі. Вона працює над розібраними директивами, а не над базою даних, тож SELECT account, sum(position) WHERE year = 2026 відповідає негайно з того самого файлу, який ви редагуєте. Повну граматику читайте в посібнику з мови запитів.

Метод бронювання​

Метод бронювання — це правило, яке Beancount застосовує, коли зменшення має обрати, які наявні лоти списати. Beancount 3.2.3 приймає сім назв: STRICT (типовий, коли ви самі вказуєте лот), STRICT_WITH_SIZE, NONE, FIFO, LIFO, HIFO і AVERAGE. Задайте один на рахунок у його директиві open, або для всього файлу через option "booking_method". Шість із семи реалізовано: AVERAGE розбирається, але видає AVERAGE method is not supported тієї ж миті, коли має забронювати зменшення. Обраний метод змінює ваші реалізовані прирости капіталу, тож виберіть той, якого очікує ваша податкова юрисдикція, і тримайте його стабільним. Управління запасами проганяє всі сім над тими самими лотами й публікує книгу, яка зазнає невдачі за AVERAGE.

План рахунків​

План рахунків — це повний список рахунків, які використовує ваша книга, разом зі структурою, що їх організовує. У Beancount немає окремого файлу плану — набір директив open і є вашим планом рахунків. Добре спроєктувати його з самого початку заощаджує багато перейменувань згодом; дивіться Галузеві налаштування для відправних точок.

Директива close​

Директива close позначає дату, після якої рахунок більше не можна використовувати — так ви закриваєте банківський рахунок або погашений кредит, не видаляючи його історію. Минулі транзакції залишаються дійсними й доступними у звітах; відхиляються лише нові проведення. Закриття невикористаних рахунків зберігає звіти читабельними в міру старіння книги.

2026-03-31 close Assets:US:OldBank:Checking

Товар​

Товар — це будь-яка одиниця вартості, яку відстежує ваша книга — валюта, як-от USD, біржовий тікер, як-от AAPL, криптоактив, як-от BTC, або щось вигадане вами, як-от VACATION-DAYS. Beancount ніколи не конвертує між товарами за вашою спиною, тож сума завжди є числом у парі з товаром, у якому вона номінована. Необов'язкова директива commodity дозволяє прикріпити метадані, як-от назву чи клас активу.

Собівартість​

База витрат — це те, що ви фактично сплатили за актив, записане у валюті, якою ви платили, і збережене поряд з активом стільки, скільки ви ним володієте. Beancount записує її у фігурних дужках — 10 AAPL {150.00 USD} означає десять акцій, придбаних по 150 доларів кожна. Подвойте дужки, і число стане загальною сумою, а не ціною за одиницю, тож 10 AAPL {{1,500.00 USD}} записує той самий лот. Оскільки база подорожує разом із позицією, прирости капіталу випливають з арифметики, коли ви продаєте. Дивіться Управління запасами.

Директива​

Директива — це одна інструкція у файлі Beancount, зазвичай із датою, і саме з директив складається книга. Дванадцять видів мають дату: open, close, balance, price, note, document, pad, event, commodity, custom, query і сама транзакція. Кілька не мають дати й діють на файл, а не на день — option, include, plugin і пара pushtag/poptag. Beancount сортує ті, що мають дату, за датою перед обробкою, тож ви можете тримати їх у будь-якому порядку, який читається найкраще; та, що без дати, набуває чинності там, де вона написана.

Подвійний запис бухгалтерії​

Подвійний запис — це практика записувати кожну економічну подію як щонайменше два узгоджені записи, щоб їхні ваги завжди сумувалися до нуля. Гроші ніколи не створюються й не знищуються — вони лише переміщуються між рахунками, і саме тому ця техніка виявляє помилки, яких одностовпцевий список ніколи б не виявив. Вага — це власна сума проведення, або його собівартість чи ціна, переведені назад в одну валюту, тож два боки в різних товарах все одно взаємно знищуються. Beancount застосовує це правило строго: транзакція, проведення якої не балансуються, є помилкою, а не попередженням.

2026-03-02 * "Bank" "Buy euros"
  Assets:US:BofA:EUR       100.00 EUR @ 1.08 USD
  Assets:US:BofA:Checking -108.00 USD

Бюджетування конвертами​

Бюджетування за конвертами відкладає гроші на певну мету, перш ніж ви їх витратите, тож кожна категорія має власний ліміт замість того, щоб конкурувати за один спільний баланс. Назва походить від паперових конвертів, які люди колись наповнювали готівкою в день зарплати. У книзі в текстовому форматі ви моделюєте конверти через виділені рахунки або директиви бюджету — дивіться Бюджети.

Fava​

Fava — це вебінтерфейс для Beancount: графіки, балансові звіти, звіти про прибутки та збитки, редактор запитів і форма введення, що обслуговуються з вашого файлу книги. Він переважно призначений для читання й працює локально, тож він змінює те, як ви бачите свої книги, не змінюючи того, як ви їх записуєте. beancount.io розміщує керовану версію поряд із власними інструментами; посібник з функцій інтерфейсу описує, що там можна робити.

Інвентарь​

Інвентар — це сукупність позицій, які наразі утримує рахунок, кожна з власним товаром і, де це доречно, власною базою витрат і датою придбання. Брокерський рахунок, який тричі купував ту саму акцію, утримує три окремі лоти в одному інвентарі, а не одне змішане число. Збереження лотів окремими — це те, що робить точні розрахунки приросту можливими.

Журнал​

Журнал — це хронологічний список усього, що сталося у ваших книгах — необроблений потік транзакцій, у порядку дат, до будь-якого групування чи узагальнення. Це подання, яке ви переглядаєте, коли хочете відповісти на запитання «що я насправді зробив у березні?». Сторінка журналу у Fava зазвичай є найшвидшим місцем, щоб помітити неправильно категоризований запис.

Журнал (Ledger)​

Книга — це повний набір облікових записів для однієї сутності, що в Beancount означає ваш файл у текстовому форматі (плюс усе, що він включає). Це слово також слугує назвою всієї сукупності рахунків і назвою самого файлу. Оскільки це текст, книгу можна порівнювати через diff, переглядати, розгалужувати та зливати, як вихідний код.

Лот​

Лот — це одне конкретне придбання товару, ідентифіковане його базою витрат і датою придбання. Купівля того самого ETF у січні й знову в червні створює два лоти, і продаж згодом означає вибір того, який лот ви продаєте. Лоти — це причина, чому Beancount може обчислювати реалізовані прирости точно, а не наближено.

2026-06-15 * "Broker" "Buy VTI"
  Assets:US:Broker:VTI     5 VTI {260.00 USD, 2026-06-15}
  Assets:US:Broker:Cash            -1,300.00 USD

Описання​

Опис — це довільний текстовий опис того, для чого була транзакція, записаний як другий рядок у лапках у рядку транзакції. Він для людей: «Щомісячна оренда», «Продукти й побутові товари». Beancount його не розбирає, але саме його ви прочитаєте, коли запис уже не матиме сенсу через шість місяців.

Директива open​

Директива open оголошує рахунок, дату, з якої він стає придатним для використання, і, за бажанням, товари, які він може утримувати, та метод бронювання, який він використовує. Beancount вимагає, щоб кожен рахунок було відкрито до його першого проведення — саме це заважає друкарській помилці тихо створити цілком новий рахунок. Обмеження дозволених товарів перетворює ще один цілий клас помилок на помилки.

2026-01-01 open Assets:US:Broker:VTI   VTI   "FIFO"

Пад​

Директива pad каже Beancount вставити будь-яку суму, потрібну, щоб наступна перевірка балансу на рахунку вдалася, зараховуючи різницю на другий рахунок. Вона існує рівно для однієї роботи: відкрити книгу на середині життя, не реконструюючи роки історії. Паддінг поза цим початковим налаштуванням зазвичай означає, що справжню помилку замасковують.

Платіжник​

Отримувач — це той, з ким ви здійснили транзакцію, записаний як перший рядок у лапках у рядку транзакції. Підтримання отримувачів узгодженими — завжди "Whole Foods", ніколи іноді "WholeFoods" — це те, що змушує працювати звіти на основі отримувачів і автоматизовані імпортери. Beancount вважає отримувача необов'язковим; транзакція може нести лише опис.

Plain-text accounting​

Облік у текстовому форматі — це практика ведення ваших книг у читабельному текстовому файлі під контролем версій, що обробляється інструментами командного рядка з відкритим кодом. Він обмінює інтерфейс «вкажи й натисни» на довговічність, можливість аудиту та автоматизацію: ваші дані переживають будь-якого постачальника, кожна зміна є доступним для перегляду diff, і будь-який скрипт може їх читати. Beancount, Ledger і hledger — три найвідоміші реалізації.

Плагін​

Плагін — це модуль Python, який Beancount завантажує під час обробки вашого файлу, дозволяючи йому додавати, перетворювати або перевіряти директиви, перш ніж будуються звіти. Плагіни — це те, як реалізуються прогнозування, графіки амортизації та власні перевірки без зміни основної мови. Ви вмикаєте його окремим рядком plugin вгорі вашої книги, ніколи через option — option "plugin" "…" відхиляється з Option 'plugin' may not be set. Посібник Плагін прогнозування проходить через реальний приклад.

Постинг​

Проведення — це один бік транзакції: рахунок, сума і, за бажанням, собівартість або ціна. Те, що має сумуватися до нуля в межах транзакції, — це не необроблені суми, а їхні ваги: звичайна сума важить сама себе, 10 FUND @ 38.46 USD важить 384.60 USD, а 10 FUND {384.61 USD} важить 3,846.10 USD, бо одинарні дужки містять собівартість однієї одиниці. Щонайбільше одне проведення може залишити свою суму порожньою, і тоді Beancount обчислює балансувальну цифру за вас. Повні правила ваг дивіться в Точність і допуски.

Директива price​

Директива price записує обмінний курс між двома товарами на дату — так Beancount конвертує актив у його ринкову вартість у звітах. Директива price — це чисті довідкові дані: вона не рухає жодних грошей і не належить жодній транзакції. Не плутайте її з ціною @, написаною всередині проведення, яка є арифметикою — вона дає 10 FUND @ 38.46 USD вагу 384.60 USD і тим самим вирішує, чи балансується транзакція. Без директив price портфель усе ще балансується за собівартістю, але його не можна оцінити за ринком.

2026-06-30 price VTI   271.40 USD

Живі ціни надають керовані директиви price для підтримуваних активів у розміщених книгах. Ваша власна ціна перемагає для тієї самої дати й пари, включно з оберненою парою. Керована ціна на пізнішу дату все одно може застосовуватися до пізнішої оцінки.

Реконциляція​

Звірка — це акт доведення того, що ваші книги узгоджуються із зовнішнім записом, як-от банківським чи брокерським виписом. В обліку в текстовому форматі вона значною мірою механічна: додайте перевірку балансу на кожну дату випису й дозвольте інструменту сказати вам, чи збігаються числа. Книга, яка щомісяця чисто звіряється, — це та, з якої ви можете подавати податки без страху.

Теги и лінки​

Теги та посилання — це дві мітки, які ви прикріплюєте до транзакцій, щоб групувати їх поза ієрархією рахунків: тег із # позначає тему, як-от #trip-japan, а посилання з ^ пов'язує споріднені записи, як-от ^invoice-2026-014, разом. Теги відповідають на запитання «покажи мені все в цій категорії»; посилання відповідають на «покажи мені записи, що належать до цієї однієї події». Обидва можна фільтрувати у Fava та запитувати в BQL — дивіться Фільтрування та пошук.

Транзакція​

Транзакція — це датована економічна подія разом із проведеннями, що її записують, і це директива, яку ви писатимете найчастіше. Вона несе позначку (* для підтвердженої, ! для такої, що потребує перегляду), необов'язкового отримувача, опис і два або більше проведень, ваги яких сумуються до нуля. Усе інше у файлі Beancount існує, щоб оголошувати, перевіряти або анотувати транзакції.

2026-02-14 * "Blue Bottle" "Coffee with Dana"
  Expenses:Food:Coffee      9.50 USD
  Assets:US:BofA:Checking  -9.50 USD

Усе ще застрягли на якомусь слові? Центр довідки індексує кожен посібник на цьому сайті, а Шпаргалка ставить синтаксис кожної директиви поруч.

Джерело: https://beancount.io/uk/docs/glossary