Перейти к основному содержимому

Шпаргалка по Beancount: синтаксис и директивы

Одностраничный справочник по синтаксису Beancount: типы счетов и знаки, товары, транзакции и проводки, баланс, метаданные, события, теги и опции.

Структура счетов​

Типы счетов и знаки​

Type          Sign    Example
------------------------------------------------
Assets        (+)     Assets:US:BofA:Checking
Liabilities   (-)     Liabilities:Credit:Amex
Income        (-)     Income:Salary:Gross
Expenses      (+)     Expenses:Food:Restaurant
Equity        (-)     Equity:Opening-Balances

Формат товаров​

Товары (commodities) — это символы в верхнем регистре: валюты, тикеры и пользовательские единицы. Это примеры именования, а не директивы:

Валюты:            USD, EUR, CAD, AUD
Инвестиции:        GOOG, AAPL, VTI
Криптовалюты:      BTC, ETH
Пользовательские:  HOURS, AIRMILES, HOME_MAYST

Синтаксис директив​

Управление счетами​

; Открытие счетов
2024-01-01 open Assets:Checking             ; Простой
2024-01-01 open Assets:Investing USD,GOOG   ; С ограничениями
 
; Закрытие счетов
2024-12-31 close Assets:Old:Account

Объявление товара​

2024-01-01 commodity VTSAX
    name: "Vanguard Total Stock Market Index"
    asset-class: "equity"

Запись транзакций​

; Базовая транзакция
2024-01-15 * "Grocery Store" "Weekly shopping"
    Assets:Checking     -100.00 USD
    Expenses:Food:Groceries
 
; С метаданными и тегами (#work — тег, ^invoice-123 — ссылка)
2024-01-15 * "Restaurant" "Business dinner" #work ^invoice-123
    id: "T-1234"
    receipt: "path/to/receipt.pdf"
    Expenses:Meals      80.00 USD
    Liabilities:Credit

Спецификации проводок​

Это строки проводок — каждая находится внутри транзакции с отступом под строкой даты:

; Базовая сумма
Assets:Cash              100.00 USD
 
; Учёт стоимости приобретения
Assets:Invest:VTSAX      10 VTSAX {100.00 USD}        ; Стоимость за единицу
Assets:Invest:VTSAX      10 VTSAX {{1000.00 USD}}     ; Общая стоимость
Assets:Invest:VTSAX      10 VTSAX {100.00 # 9.95 USD} ; За единицу плюс общая комиссия
 
; Указания цен
Assets:Forex            1000.00 USD @ 0.85 EUR        ; За единицу
Assets:Forex            1000.00 USD @@ 850.00 EUR     ; Общая цена
 
; Лоты с датой
Assets:Invest:VTSAX      10 VTSAX {100.00 USD, 2024-01-15}

Проверка остатков​

; Дополнение баланса: пополняет Assets:Checking до Equity:Opening-Balances
2024-01-01 pad Assets:Checking Equity:Opening-Balances
 
; Проверка баланса: проверяется на начало своей даты, поэтому указывайте дату после pad
2024-02-01 balance Assets:Checking  1000.00 USD

Отслеживание метаданных​

; Прикрепление заметки
2024-01-15 note Assets:Checking "Called bank about fee"
 
; Привязка документа
2024-01-15 document Assets:Checking "path/to/statement.pdf"
 
; Запись цены
2024-01-15 price VTSAX  100.00 USD

Для размещённых реестров Live Prices может автоматически предоставлять датированные цены оценки. Выберите поддерживаемые пары активов в средстве выбора, затем скопируйте include-директивы в свой реестр. Держите цены транзакций и стоимость приобретения явными.

Запись событий​

; Отслеживание местоположения
2024-01-15 event "location" "New York, USA"
 
; Изменения свойств
2024-01-15 event "address" "123 Main Street"

Управление тегами​

; Управление областью тега: #vacation применяется к каждой транзакции между pushtag и poptag
pushtag #vacation
2024-01-15 * "Hotel"
    Expenses:Travel:Lodging   200.00 USD
    Assets:Credit
poptag #vacation

Параметры конфигурации​

; Базовые настройки
option "title" "Personal Finance Ledger"
option "operating_currency" "USD"
 
; Именование счетов
option "name_assets" "Assets"
option "name_liabilities" "Liabilities"
option "name_income" "Income"
option "name_expenses" "Expenses"
option "name_equity" "Equity"
 
; Обработка документов
option "documents" "/path/to/docs"

Комментарии и организация​

; Однострочный комментарий
 
* Заголовок раздела
** Подраздел
; Далее идёт блок транзакций...
 
; Группировка счетов
; Активы
2024-01-15 ...
 
; Расходы
2024-01-16 ...

Этот справочник даёт полный обзор элементов синтаксиса Beancount с практическими примерами.

Источник: https://beancount.io/ru/docs/Basics/cheatsheet