awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
beancount avatar

beancount/beancount

0
View on GitHub↗
5,291 stars·415 forks·Python·gpl-2.0·79 viewsbeancount.github.io↗

Beancount

Beancount is a plain-text double-entry accounting system. It enforces zero-sum transactions, organizes accounts into a hierarchical five-type tree, and verifies balances at specific dates using precision-derived tolerances. Transactions are recorded in plain-text files with a strict syntax that supports currency-specific rounding, automatic interpolation of missing amounts, and comprehensive metadata including tags, links, and payee annotations.

Beyond core bookkeeping, Beancount offers investment portfolio tracking with lot-based cost basis management, configurable booking strategies (FIFO, average cost, custom), and support for dividends, stock splits, and unrealized gain/loss reporting. A plugin system and Python API allow custom transformations and reports. Its SQL-like query language enables filtering, aggregation, and summary of transactions. Built-in features cover equity compensation, financial pool separation, and health care cost accrual with insurance limit tracking.

The tool includes automated bank statement import from CSV, OFX, and PDF sources with duplicate detection, caching, and customizable protocols. Shared expense management handles multi-party splitting, contributions, and settlement. Standard accounting reports—balance sheet, income statement, trial balance, journal registers—are generated alongside period reporting and hierarchical balance trees. A CLI provides utilities for validation, formatting, diagnostics, and sample data generation. A local web server serves interactive reports and a dashboard for browsing the ledger.

Features

  • Double-Entry Accounting Tools - Provides a plain-text double-entry accounting system that generates reports and balance checks from text files.
  • Double-Entry Bookkeeping Engines - Implements core double-entry bookkeeping logic with plain-text data structures.
  • Double-Entry Transaction Journals - Enforces a zero-sum constraint on every transaction, automatically interpolates missing amounts with currency-specific rounding.
  • Price Databases - Records daily commodity prices into a local database for historical valuation and reporting.
  • Financial Report Generators - A system that produces balance sheets, income statements, trial balances, and investment performance reports from ledger data.
  • Account Management - Ships account opening, closing, and currency commodity declaration for structured financial tracking.
  • Financial Account Categorization - Classifies accounts into five types for generating balance sheets and income statements.
  • Hierarchical Account Structures - Implements a hierarchical account tree with colon-separated names under five root categories for structured bookkeeping.
  • Account Naming Conventions - Provides colon-separated hierarchical naming for financial accounts to structure the ledger.
  • Balance Assertions with Tolerance - Verifies account balances by computing acceptable tolerance from the assertion’s numeric precision, ignoring small rounding leftovers.
  • Multi-Currency Ledger Management - Ledger uses any commodity as a unit of account and records exchange rates to track price history.
  • Posting Price Annotations - Ledger attaches prices to postings for commodity conversion or capital gains calculations.
  • Plain-Text Journal Workflows - Reads double-entry accounting data from plain-text journal files into an internal ledger structure.
  • Ledger File Validators - Ledger loads a file and runs syntax and balance checks, reporting errors to standard error.
  • Missing Amount Interpolations - Ledger omits one posting's amount and calculates it from the other postings.
  • Personal Finance Management - Tracks income, expenses, assets, and liabilities with hierarchical accounts and periodic reports.
  • Investment Portfolio Tracking - Tracks investment lots, cost basis, dividends, stock splits, and capital gains from a plain-text ledger.
  • Lot Tracking - Tracks each commodity acquisition as a separate lot with cost, date, and label, then matches reductions using configurable booking strategies.
  • Booking Strategies - Ledger applies FIFO, average cost, and custom lot-matching for multi-currency and date differences.
  • Plain-Text Portfolio Trackers - A tool for tracking cost basis, lots, capital gains, dividends, and stock splits using plain-text journal entries.
  • Bank Statement Ingestion - Downloads and converts bank statements into double-entry transactions automatically.
  • Cost Basis Trackers - Ledger enforces lot matching for cost basis to detect errors and calculate capital gains on sales.
  • Custom Query Language Compilers - Parses a custom query language into a syntax tree and compiles it to filter, aggregate, and report on the internal transaction database.
  • Double-Entry CSV Importers - Maps CSV columns to accounting fields and generates double-entry transactions automatically.
  • Financial File Importers - Fetches financial data files and matches them to importers for automatic transaction addition.
  • Local Web Servers - A local web server that serves interactive reports and dashboards for browsing and analyzing accounting data.
  • Display Formatting - Ledger displays monetary values with precision appropriate for each currency, adjustable through a display precision setting.
  • Currency-Specific Rounding Rules - Ledger rounds amounts, prices, and costs computed from balancing legs to a configurable number of decimals.
  • Plain-Text Accounting Parsers - Parses Unicode, time fields, tags, and sign flipping in plain-text accounting journal files.
  • Financial Performance Reports - Generates portfolio allocations, capital gains, and budget reports from the transaction journal.
  • Reconciliation Tools - Reconciles shared accounts and computes net amounts owed between contributors.
  • Detailed Posting Annotations - Captures cost basis, prices, dates, metadata, and tags for each transaction leg, enabling detailed financial records.
  • Custom Statement Parsers - Implements a custom protocol for parsing XML, PDF, and other sources into ledger statements.
  • Equity Award Lifecycles - Tracks the full lifecycle of equity awards from grant to share conversion.
  • Expense Trackers - Splits and settles shared expenses with automatic contribution tracking.
  • Financial Pools - Segregates accounts into separate pools such that each pool balances independently.
  • Plugin Filters - Applies custom Python scripts to filter, modify, or annotate transactions as they are loaded into the ledger.
  • Transaction Tag Filters - Assigns tags to transactions for filtered reports on specific sets like trips or projects.
  • Financial Statement Importers - Downloads and converts bank statements into ledger transactions with duplicate detection.
  • General Ledger Reporting - Clears and summarizes balances for a chosen time range to produce period-based reports.
  • Net Income Calculations - Summarizes income and expense changes over a period to show net profit or loss.
  • Market Price Fetching Tools - Ledger retrieves current market prices for currencies and securities from external sources using a CLI tool or custom scripts.
  • Stock Split Handlers - Ledger splits a position while preserving lot attributes like purchase date and user label.
  • Unrealized Gain/Loss Reports - Ledger computes market value of positions and displays unrealized gains or losses over time.
  • Accounting Invariants - Verifies that an account holds exactly the declared amount of a commodity at a given date.
  • Account Balance Queries - Sums all account balances to produce a snapshot at a specific point in time.
  • Currency Exchange Recording - Ledger records currency exchanges without a cost basis, distinguishing them from commodity purchases.
  • Python Plugin Integrations - Allows custom Python modules to transform, create, or delete accounting directives.
  • Custom Query Languages - Filters, sorts, and aggregates transactions using a SQL-like syntax for accounts, dates, and amounts.
  • Multi-Format Financial Importers - A framework for importing CSV, OFX, and other financial data into plain-text double-entry transactions with deduplication.
  • Accounting Ledger Viewers - Ledger serves an interactive web app for browsing and analyzing accounting data.
  • Accounting Directive Syntax - Defines a strict plain-text syntax for ledger directives to record transactions, accounts, and balances.
  • Scripted Data Analysis - Loads accounting directives into custom Python scripts for analysis beyond the built-in reports.
  • SQL Query Editors - Writes SQL-like queries to filter, aggregate, and summarize transaction postings.
  • Scripting APIs - Provides a Python API for loading, modifying, and saving ledger data with debugging tools.
  • Custom Logic Extensions - Extends accounting logic through a plugin system and Python API for custom transformations and reports.
  • Plugin Extensibility - Modifies accounting directives by adding, removing, or altering transactions via plugins.
  • Ledger Querying - Runs SQL-like queries interactively in a shell or executes single queries from the terminal.
  • Test Data Generators - Ledger generates years of realistic financial transactions for testing and tutorials.
  • Portfolio Return Computation - Ledger analyzes cash flows per investment, groups into portfolios, and produces performance reports.
  • Directive Enrichment Attachments - Attaches notes, documents, tags, links, and metadata to accounting directives for enrichment.
  • Precision Settings - Determines fractional digits per currency for aligned, rounded report output.
  • Plugin-Based Architectures - Injects custom Python modules at parse and processing stages to filter, modify, or create accounting directives.
  • Transaction Counterparty Annotations - Records transaction counterparty and description for context in financial reports.
  • Data Management Systems - Double-entry bookkeeping language for financial records.
  • Personal Finance - Plain text double-entry accounting system with web UI support.

Star history

Star history chart for beancount/beancountStar history chart for beancount/beancount

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Beancount

These projects share indexed features with Beancount. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • simonmichael/hledgersimonmichael avatar

    simonmichael/hledger

    4,059View on GitHub↗

    hledger is a plain text accounting tool and double-entry ledger manager that stores financial transactions in human-readable text files. It functions as a financial reporting engine for generating balance sheets and income statements, and as a multi-currency investment tracker for managing commodity lots and capital gains. The project distinguishes itself by providing multi-interface data access, allowing users to interact with their financial data via a command line interface, a terminal user interface, and a web server. It features a market-price valuation system to calculate the current va

    Haskellaccountingcommand-line-toolconsole-application
    View on GitHub↗4,059
  • gnucash/gnucashGnucash avatar

    Gnucash/gnucash

    4,096View on GitHub↗

    GnuCash is a double-entry accounting software designed for personal and small-business financial management. It tracks assets, liabilities, income, and expenses using a bookkeeping system that ensures financial accuracy. The platform functions as a multi-currency bookkeeping system and a SQL-based financial ledger, persisting accounting data in relational databases or XML files. The system is distinguished by its extensibility as a Python-scriptable accounting tool, providing Python bindings and a REPL for automating tasks and creating custom reports. It also serves as an investment portfolio

    C
    View on GitHub↗4,096
  • ledger/ledgerledger avatar

    ledger/ledger

    5,849View on GitHub↗
    C++accountingcommand-line-toolledger
    View on GitHub↗5,849
  • arrobalytics/django-ledgerarrobalytics avatar

    arrobalytics/django-ledger

    1,355View on GitHub↗

    Django-ledger is a double-entry accounting framework built for the Django web environment. It provides a relational ledger system that enforces strict balancing rules for all financial transactions, ensuring data integrity through atomic batch processing and hierarchical account organization. The platform is designed for multi-tenant financial management, allowing for the isolation of data and reporting across multiple distinct business entities within a single installation. It distinguishes itself by integrating commercial document lifecycles—such as invoices, bills, and purchase orders—dire

    Pythonaccountingbookkeepingcashmanagement
    View on GitHub↗1,355
Compare all 30 related projects→

Frequently asked questions

What does beancount/beancount do?

Beancount is a plain-text double-entry accounting system. It enforces zero-sum transactions, organizes accounts into a hierarchical five-type tree, and verifies balances at specific dates using precision-derived tolerances. Transactions are recorded in plain-text files with a strict syntax that supports currency-specific rounding, automatic interpolation of missing amounts, and comprehensive metadata including tags, links, and payee annotations.

What are the main features of beancount/beancount?

The main features of beancount/beancount are: Double-Entry Accounting Tools, Double-Entry Bookkeeping Engines, Double-Entry Transaction Journals, Price Databases, Financial Report Generators, Account Management, Financial Account Categorization, Hierarchical Account Structures.

Which projects share features with beancount/beancount?

Projects with overlapping indexed features include: simonmichael/hledger — hledger is a plain text accounting tool and double-entry ledger manager that stores financial transactions in… gnucash/gnucash — GnuCash is a double-entry accounting software designed for personal and small-business financial management. It tracks… ledger/ledger. arrobalytics/django-ledger — Django-ledger is a double-entry accounting framework built for the Django web environment. It provides a relational… securo-finance/securo — Securo is a self-hosted personal finance management platform designed to provide users with complete control over… akaunting/akaunting — Akaunting is a modular business enterprise resource planning system and self-hosted accounting software. It provides a…