Нараховані витрати у Beancount: Практичний посібник (з прикладами журналу копіювання та вставки)
Нараховані витрати звучать абстрактно, доки не починає накопичуватись кінець місяця. Це фундамент правильного нарахувального обліку, який гарантує, що ваші фінансові звіти відображають економічну реальність, а не лише момент, коли гроші переходять у руки. Нижче – чітка інструкція, орієнтована на Beancount, що пояснює, що це, чому це важливо і як саме записувати, скасовувати та звітувати про них у вашому текстовому журналі.
TL;DR ⚡
- Нараховані витрати – це витрати, які ви понесли у цьому періоді, але ще не сплатили. Вони записуються як зобов’язання, доки гроші не вийдуть.
- У Beancount це просто: дебетуєте рахунок
Expenses:
і кредитуєте рахунокLiabilities:Accrued:
. Пізніше, коли сплачує те, знімаєте зобов’язання.- Для звітування можна побачити, що ви винні на певну дату, запустивши
bean-query
зCLOSE ON
іCLEAR
, щоб отримати чистий знімок балансу.
Що таке нараховані витрати?
Нараховані витрати – це витрати, які бізнес вже поніс, але ще не сплатив. Вони записуються в момент отримання послуги або виникнення витрати, навіть якщо рахунок ще не отримано або платіж ще не підлягає сплаті. Така практика відповідає принципу відповідності нарахувального обліку, який вимагає, щоб витрати відображалися в тому ж періоді, що й доходи, які вони допомогли отримати.
Типові приклади:
- Зарплата, яку працівники заробили до кінця місяця, але виплатять у наступному.
- Комунальні послуги (електрика, вода), якими ви користувалися в грудні, а рахунок отримаєте лише в січні.
- Відсотки за кредитом, які накопичились протягом місяця, але ще не були списані з вашого рахунку.
Записуючи ці витрати в момент їх виникнення, ви отримуєте набагато правдивіший образ фінансових результатів вашої компанії за цей період.
Як Beancount розглядає це (за 30 секунд)
Beancount – це система подвійного запису у вигляді простого тексту. Усе – це датована директива або транзакція у текстовому файлі. Система базується на п’яти базових типах рахунків: Assets, Liabilities, Equity, Income і Expenses.
Записи завжди впорядковані за датою. Важливо, що перевірки balance
виконуються до обробки транзакцій того ж дня. Це треба мати на увазі, коли розміщуєте перевірки та зворотні записи.
Нарешті, мова bean-query
пропонує потужний, схожий на SQL спосіб формування звітів. За допомогою операторів OPEN ON
, CLOSE ON
і CLEAR
можна створювати точні «станом на» вигляди фінансових звітів.
План рахунків (рекомендовано)
Чистий ієрархічний план рахунків – ваш найкращий друг. Для нарахованих витрат структура проста. Вам знадобиться:
- Рахунок витрат: напр.,
Expenses:Utilities
,Expenses:Payroll:Wages
- Відповідний рахунок зобов’язань: напр.,
Liabilities:Accrued:Utilities
,Liabilities:Accrued:Payroll
- Рахунок готівки/банку: напр.,
Assets:Bank:Checking
Beancount вимагає саме ці п’ять типів рахунків верхнього рівня. Організовані імена спрощують запити та звіти.
Основний шаблон (без плагінів, без магії)
Найпряміший спосіб обробки нарахувань у Beancount. Два кроки: нарахування витрат в кінці місяця і зняття зобов’язання під час оплати.
Крок 1: Нарахувати витрати в кінці місяця
Останнього дня періоду ви записуєте витрату і створюєте зобов’язання.
2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities
Крок 2: Зняти нарахування під час оплати
Коли надходить рахунок і ви його сплачуєте, ви не торкаєтеся рахунку витрат ще раз. Замість цього дебетуєте рахунок зобов’язань, щоб його очистити.
2025-03-05 * "Pay Feb electricity - City Power"
Liabilities:Accrued:Utilities 120.00 USD
Assets:Bank:Checking
Це найчистіший підхід для невеликих команд. Він правильно розміщує витрату у лютому і не дублює її у березні. Зауважте, що в Beancount залишення суми порожньою дозволяє системі автоматично збалансувати транзакцію.
Альтернатива: Зворотний запис у перший день
Якщо вам до вподоби класичний стиль «авто‑зворотного» обліку, можна розмістити протилежний запис у перший день наступного місяця, а потім звичайно записати рахунок постачальника.
Крок 1: Нарахувати в кінці місяця (як і раніше)
2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities
Крок 2: Зворотний запис у перший день наступного місяця
2025-03-01 * "Reverse Feb electricity accrual" #reversal
Liabilities:Accrued:Utilities 120.00 USD
Expenses:Utilities
Крок 3: Записати оплату як зазвичай
2025-03-05 * "City Power - February bill"
Expenses:Utilities 120.00 USD
Assets:Bank:Checking
Нотатка щодо перевірок: Пам’ятайте, що balance
перевіряються до транзакцій того ж дня. Якщо ви хочете перевірити баланс Liabilities:Accrued:Utilities
, розмістіть перевірку на 2025-02-28
, щоб підтвердити нарахування, або на 2025-03-01
після зворотного запису, щоб переконатися, що сума дорівнює нулю. Розміщення її до зворотного запису 1 березня призведе до помилкової невдачі.
Шість типових нарахувань (шаблони для копіювання) 📋
Готові приклади для поширених бізнес‑нарахувань.
1. Оренда, яка ще не виставлена в рахунок
2025-01-31 * "Accrue January rent" #accrual
Expenses:Rent 3000.00 USD
Liabilities:Accrued:Rent
2. Зарплата, яку зароблено, але не виплачено
2025-03-31 * "Accrue March wages" #accrual
Expenses:Payroll:Wages 8500.00 USD
Liabilities:Accrued:Payroll
3. Відпустка (PTO), яку зароблено
2025-03-31 * "Accrue PTO earned in March" #accrual
Expenses:Payroll:PTO 900.00 USD
Liabilities:Accrued:Payroll
4. Відсотки за кредитом
2025-02-29 * "Accrue monthly loan interest" #accrual
Expenses:Interest 210.00 USD
Liabilities:Accrued:Interest
5. Професійні послуги (аудит/юридичні)
2025-12-31 * "Accrue year-end audit fees" #accrual
Expenses:Professional:Audit 4200.00 USD
Liabilities:Accrued:Professional
6. Комунальні послуги, які використані, але ще не виставлені
2025-04-30 * "Accrue April utilities" #accrual
Expenses:Utilities 95.00 USD
Liabilities:Accrued:Utilities
Звітність: «Що я винен на певну дату?»
bean-query
– ваш інструмент для отримання відповідей. Ось як отримати правильний знімок балансу щодо нарахованих витрат.
Отримати всі залишки зобов’язань на кінець періоду
Цей запит поверне баланс кожного рахунку зобов’язань станом на 31 березня 2025.
bean-query main.beancount '
SELECT account, UNITS(SUM(position)) AS balance
FROM OPEN ON 2025-01-01 CLOSE ON 2025-04-01 CLEAR
WHERE account "^Liabilities:Accrued"
GROUP BY 1
ORDER BY 1;
'
OPEN ON
встановлю є початкові залишки на початок періоду.CLOSE ON
відсікає транзакції до вказаної дати (виключно). Тому використовуємо2025-04-01
, щоб отримати дані до і включно2025-03-31
.CLEAR
обнуляє доходи та витрати, даючи чистий вигляд балансу (Assets, Liabilities, Equity).
Переглянути реєстр усіх записів нарахувань
Якщо потрібно бачити «сирі» транзакції по рахункам зобов’язань:
bean-query main.beancount '
SELECT date, payee, narration, position
WHERE account "^Liabilities:Accrued"
ORDER BY date;
'
Отримати загальну суму всіх нарахувань
Для швидкого підсумку того, що ви винні:
bean-query main.beancount '
SELECT UNITS(SUM(position)) AS total_accruals
FROM OPEN ON 2025-01-01 CLOSE ON 2025-04-01 CLEAR
WHERE account "^Liabilities:Accrued";
'
Контроль та «підводні камені» у Beancount
- Таймінг перевірок балансу: Як вже згадувалося, перевірки виконуються на початку дня. Запис
2025-03-01 balance …
запускається до будь‑яких транзакцій 1 березня. Плануйте відповідно. - Іменування та ієрархія: Чисте дерево типу
Liabilities:Accrued:*
– це не лише естетика. Воно спрощує запити і робить звіти зрозумілими. - Використання
pad
з обережністю: Директиваpad
може виправити початкові залишки, але уникайте її для «фіксації» регулярних нарахувань. Явні записи залишають прозорий аудит‑трейл. - Звітність «на дату»: Для знімків балансу завжди використовуйте
OPEN … CLOSE … CLEAR
уbean-query
. Це запобігає «забрудненню» зобов’язань доходами та витратами.