Updates default chart of accounts

Expands the default chart of accounts with a more
detailed hierarchical structure. This includes new
accounts for fixed assets, livestock, equity
contributions, and detailed expense categories.
The migration script only adds accounts that don't
already exist, ensuring a smooth update process.
This commit is contained in:
padreug 2025-11-07 22:24:23 +01:00
parent 6f62c52c68
commit 88aaf0e28e
3 changed files with 89 additions and 29 deletions

View file

@ -190,26 +190,51 @@ def migrate_account_name(old_name: str, account_type: AccountType) -> str:
# Default chart of accounts with hierarchical names
DEFAULT_HIERARCHICAL_ACCOUNTS = [
# Assets
("Assets:Cash", AccountType.ASSET, "Cash on hand"),
("Assets:Bank", AccountType.ASSET, "Bank account"),
("Assets:Lightning:Balance", AccountType.ASSET, "Lightning Network balance"),
("Assets:Bitcoin", AccountType.ASSET, "Bitcoin holdings"),
("Assets:Bitcoin:Lightning", AccountType.ASSET, "Lightning Network balance"),
("Assets:Bitcoin:OnChain", AccountType.ASSET, "On-chain Bitcoin wallet"),
("Assets:Cash", AccountType.ASSET, "Cash on hand"),
("Assets:FixedAssets:Equipment", AccountType.ASSET, "Equipment and machinery"),
("Assets:FixedAssets:FarmEquipment", AccountType.ASSET, "Farm equipment"),
("Assets:FixedAssets:Network", AccountType.ASSET, "Network infrastructure"),
("Assets:FixedAssets:ProductionFacility", AccountType.ASSET, "Production facilities"),
("Assets:Inventory", AccountType.ASSET, "Inventory and stock"),
("Assets:Livestock", AccountType.ASSET, "Livestock and animals"),
("Assets:Receivable", AccountType.ASSET, "Money owed to the Castle"),
("Assets:Tools", AccountType.ASSET, "Tools and hand equipment"),
# Liabilities
("Liabilities:Payable", AccountType.LIABILITY, "Money owed by the Castle"),
# Equity
("Equity:MemberEquity", AccountType.EQUITY, "Member contributions"),
("Equity:RetainedEarnings", AccountType.EQUITY, "Accumulated profits"),
("Equity", AccountType.EQUITY, "Owner's equity and member contributions"),
# Revenue (Income in Beancount terminology)
("Income:Accommodation", AccountType.REVENUE, "Revenue from stays"),
("Income:Accommodation:Guests", AccountType.REVENUE, "Revenue from guest accommodation"),
("Income:Service", AccountType.REVENUE, "Revenue from services"),
("Income:Other", AccountType.REVENUE, "Other revenue"),
# Expenses
("Expenses:Utilities", AccountType.EXPENSE, "Electricity, water, internet"),
("Expenses:Food:Supplies", AccountType.EXPENSE, "Food and supplies"),
("Expenses:Maintenance", AccountType.EXPENSE, "Repairs and maintenance"),
("Expenses:Other", AccountType.EXPENSE, "Miscellaneous expenses"),
("Expenses:Administrative", AccountType.EXPENSE, "Administrative expenses"),
("Expenses:Construction:Materials", AccountType.EXPENSE, "Construction materials"),
("Expenses:Furniture", AccountType.EXPENSE, "Furniture and furnishings"),
("Expenses:Garden", AccountType.EXPENSE, "Garden supplies and materials"),
("Expenses:Gas:Kitchen", AccountType.EXPENSE, "Kitchen gas"),
("Expenses:Gas:Vehicle", AccountType.EXPENSE, "Vehicle gas and fuel"),
("Expenses:Groceries", AccountType.EXPENSE, "Groceries and food"),
("Expenses:Hardware", AccountType.EXPENSE, "Hardware and tools"),
("Expenses:Housewares", AccountType.EXPENSE, "Housewares and household items"),
("Expenses:Insurance", AccountType.EXPENSE, "Insurance premiums"),
("Expenses:Kitchen", AccountType.EXPENSE, "Kitchen supplies and equipment"),
("Expenses:Maintenance:Car", AccountType.EXPENSE, "Car maintenance and repairs"),
("Expenses:Maintenance:Garden", AccountType.EXPENSE, "Garden maintenance"),
("Expenses:Maintenance:Property", AccountType.EXPENSE, "Property maintenance and repairs"),
("Expenses:Membership", AccountType.EXPENSE, "Membership fees"),
("Expenses:Supplies", AccountType.EXPENSE, "General supplies"),
("Expenses:Tools", AccountType.EXPENSE, "Tools and equipment"),
("Expenses:Utilities:Electric", AccountType.EXPENSE, "Electricity"),
("Expenses:Utilities:Internet", AccountType.EXPENSE, "Internet service"),
("Expenses:WebHosting:Domain", AccountType.EXPENSE, "Domain registration"),
("Expenses:WebHosting:Wix", AccountType.EXPENSE, "Wix hosting service"),
]