beancount-accounting

Beancount Accounting Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "beancount-accounting" with this command: npx skills add icealtria/skills/icealtria-skills-beancount-accounting

Beancount Accounting Skill

Beancount is a plain-text double-entry accounting system. This skill provides expertise for creating, editing, and querying beancount files.

Core Concepts

Double-Entry Accounting

Every transaction must balance to zero. Money flows between accounts:

  • Debits increase Assets/Expenses, decrease Liabilities/Income/Equity

  • Credits decrease Assets/Expenses, increase Liabilities/Income/Equity

Five Account Types

Type Purpose Normal Balance

Assets

What you own (bank accounts, investments) Positive

Liabilities

What you owe (credit cards, loans) Negative

Income

Money coming in (salary, interest) Negative

Expenses

Money going out (food, rent) Positive

Equity

Net worth, opening balances Negative

Account Naming

Use colon-separated hierarchical names starting with capital letters:

Type:Country:Institution:Account:SubAccount

Examples:

Assets:Checking:Centennial:Joint Liabilities:Card:Chase:Sapphire Expenses:Food:Groceries Income:Salary:Employer

Transaction Syntax

Basic Format

YYYY-MM-DD flag "Payee" "Narration" Account1 Amount Currency Account2 Amount Currency ; optional comment

Flags

  • Cleared/completed transaction

  • !

  • Pending/needs review

Examples

Simple expense:

2026-01-03 * "Starbucks" "Morning coffee" Expenses:Food:Coffee 5.75 USD Liabilities:Card:Chase:Sapphire

Paycheck with multiple postings:

2026-01-15 * "Employer" "Bi-weekly salary" Assets:Checking:Main 3500.00 USD Expenses:Taxes:Federal 800.00 USD Expenses:Taxes:State 200.00 USD Expenses:Insurance:Health 150.00 USD Income:Salary -4650.00 USD

Transfer between accounts:

2026-01-10 * "Transfer to savings" Assets:Savings:Ally 500.00 USD Assets:Checking:Main -500.00 USD

Amount Interpolation

One posting amount can be omitted - beancount calculates it:

2026-01-03 * "Grocery Store" "Weekly groceries" Expenses:Food:Groceries 125.43 USD Assets:Checking:Main ; Amount calculated as -125.43 USD

Essential Directives

open / close

Declare account lifecycle:

2026-01-01 open Assets:Checking:Main USD 2028-12-31 close Assets:Checking:Main

balance

Assert account balance at start of day (catches errors):

2026-01-31 balance Assets:Checking:Main 4583.84 USD

pad

Auto-generate balancing entry between two dates:

2026-01-01 pad Assets:Checking:Main Equity:Opening-Balances 2026-01-02 balance Assets:Checking:Main 4583.84 USD

include

Split files for organization:

include "2026-01.beancount" include "accounts.beancount"

option

Configure beancount behavior:

option "title" "Personal Finances" option "operating_currency" "USD"

Metadata and Tags

Metadata

Attach key-value pairs to directives or postings:

2026-01-03 * "Amazon" "Office supplies" order-id: "123-456-789" Expenses:Office 45.00 USD category: "equipment" Liabilities:Card:Chase

Tags and Links

Group related transactions:

2026-01-15 * "Hotel" "Conference lodging" #work-travel #conference-2026 Expenses:Travel:Lodging 299.00 USD Liabilities:Card:Chase

2026-02-01 * "Expense Report" "Reimbursement" ^conference-2026 Assets:Checking:Main 299.00 USD Income:Reimbursements

BQL Queries

Beancount Query Language (BQL) provides SQL-like queries. Run with bean-query :

bean-query finances/2026.beancount "SELECT account, sum(position) WHERE account ~ 'Expenses' GROUP BY 1"

Common Queries

Account balance:

SELECT account, sum(position) WHERE account ~ 'Assets:Checking' GROUP BY 1

Monthly expenses by category:

SELECT MONTH(date), account, sum(position) WHERE account ~ 'Expenses' AND year = 2026 GROUP BY 1, 2 ORDER BY 1, 2

Transactions for an account:

SELECT date, narration, payee, position, balance WHERE account = 'Assets:Checking:Centennial:Joint' ORDER BY date

Key BQL Functions

Function Purpose

SUM(position)

Aggregate amounts

YEAR(date) , MONTH(date)

Extract date parts

COST(position)

Get cost basis

account ~ 'pattern'

Regex match account

Working with Beancount Files

Reading Files

Before editing, read the beancount file to understand:

  • Existing account structure

  • Naming conventions used

  • Transaction patterns

  • Include file organization

Adding Transactions

  • Match existing account names exactly

  • Use consistent payee/narration style

  • Ensure transaction balances to zero

  • Add to chronologically appropriate location or include file

Validation

Run bean-check to validate syntax:

bean-check finances/2026.beancount

Common Patterns

Credit card payment:

2026-01-25 * "Chase" "Credit card payment" Liabilities:Card:Chase:Sapphire 500.00 USD Assets:Checking:Main -500.00 USD

Investment purchase with cost basis:

2026-01-20 * "Fidelity" "Buy index fund" Assets:Investments:Fidelity:FXAIX 10 FXAIX {150.00 USD} Assets:Investments:Fidelity:Cash -1500.00 USD

Mortgage payment breakdown:

2026-01-01 * "Rocket Mortgage" "Monthly mortgage" Liabilities:Loan:RocketMortgage 800.00 USD ; Principal Expenses:Housing:Interest 900.00 USD ; Interest Expenses:Housing:Escrow 300.00 USD ; Escrow Assets:Checking:Main -2000.00 USD

Best Practices

File Organization

  • Use include to split by month or category

  • Keep account definitions in main file

  • Add transactions to appropriate include files

Account Hierarchy

  • Be consistent with naming depth

  • Use specific subcategories for visibility

  • Group related accounts logically

Balance Assertions

  • Add monthly balance assertions for bank accounts

  • Reconcile against actual statements

  • Catches data entry errors early

Error Prevention

  • Always run bean-check after edits

  • Use balance assertions frequently

  • Keep transactions in chronological order

Additional Resources

Reference Files

For detailed syntax and patterns, consult:

  • references/syntax.md

  • Complete directive reference with all options

  • references/bql.md

  • Full BQL query language documentation

  • references/examples.md

  • Common transaction patterns and workflows

Command Line Tools

Command Purpose

bean-check file.beancount

Validate syntax

bean-query file.beancount "QUERY"

Run BQL query

bean-report file.beancount balances

Balance report

bean-web file.beancount

Web interface

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

beancount accounting

No summary provided by upstream source.

Repository SourceNeeds Review
General

nano-banana-2

Nano Banana 2 - Gemini 3.1 Flash Image Preview

Repository Source
42.8K153inferen-sh
General

qwen-image-2

Qwen-Image - Alibaba Image Generation

Repository Source
42.6K153inferen-sh
General

p-video

Pruna P-Video Generation

Repository Source
42.6K153inferen-sh