# beancount_ex v0.6.0 - Table of Contents > An idiomatic Elixir interface to Beancount that serves as the long-term behavioral oracle for a future native Elixir General Ledger. ## Pages - [beancount_ex](readme.md) - [Changelog](changelog.md) - [LICENSE](license.md) - Accounting - [Accounting guides](index.md) - [Getting started](getting_started-1.md) - [Accounting in context](in_context.md) - [Accounting cookbook](cookbook.md) - [Running reports](running_reports.md) - [Getting started](getting_started-2.md) - Library - [Library guides](library.md) - [Parsing](parsing-3.md) - [Rendering](rendering.md) - [Engines](engines.md) - [Querying](querying.md) - [Queries](queries.md) - [Reporting](reporting-4.md) - [Storage](storage.md) - [Golden Files](golden_files.md) - [Booking engine](booking.md) - [Reconciliation harness](reconciliation.md) - [Performance](performance.md) - [Property Testing](property_testing.md) - [Oracle Strategy](oracle_strategy.md) - Livebooks - [Getting started with beancount_ex](getting_started-5.md) - [Accounting cookbook (Livebook)](accounting.md) - [Parsing and validation](parsing-6.md) - [Reporting with beancount_ex and Explorer](reporting-7.md) ## Modules - [Beancount.CostSpec](Beancount.CostSpec.md): Beancount cost/lot specification for inventory postings. - [Beancount.Property.Diff](Beancount.Property.Diff.md): Structured difference between oracle and native engine results. - [Beancount.Value](Beancount.Value.md): Typed scalar values for `Beancount.Directives.Custom` and metadata. - [Beancount.Value.Account](Beancount.Value.Account.md): An account name for `custom` directive values. - [Beancount.Value.Amount](Beancount.Value.Amount.md): A commodity amount for `custom` directive values. - [Beancount.Value.Tag](Beancount.Value.Tag.md): A tag for `custom` directive values. - Public API - [Beancount](Beancount.md): Idiomatic Elixir interface to [Beancount](https://beancount.github.io/). - [Beancount.Compare](Beancount.Compare.md): Compare two engines on identical input within the v0.4 parity contract. - [Beancount.Parser](Beancount.Parser.md): Parse Beancount `.bean` text into typed directive structs. - [Beancount.Queries](Beancount.Queries.md): Ecto.Query-based queries against stored Beancount directives. - [Beancount.Storage](Beancount.Storage.md): Storage and import/export for Beancount directives via Ecto. - Directives - [Beancount.Directives.Balance](Beancount.Directives.Balance.md): The `balance` directive asserts an account balance at a date. - [Beancount.Directives.Close](Beancount.Directives.Close.md): The `close` directive marks an account as inactive. - [Beancount.Directives.Commodity](Beancount.Directives.Commodity.md): The `commodity` directive declares a currency or commodity. - [Beancount.Directives.Custom](Beancount.Directives.Custom.md): The `custom` directive is a generic, user-defined directive. - [Beancount.Directives.Document](Beancount.Directives.Document.md): The `document` directive links a file to an account at a date. - [Beancount.Directives.Event](Beancount.Directives.Event.md): The `event` directive tracks the value of a named variable over time. - [Beancount.Directives.Include](Beancount.Directives.Include.md): The `include` directive pulls another ledger file into the current one. - [Beancount.Directives.Note](Beancount.Directives.Note.md): The `note` directive attaches a dated comment to an account. - [Beancount.Directives.Open](Beancount.Directives.Open.md): The `open` directive declares the start of an account's life. - [Beancount.Directives.Option](Beancount.Directives.Option.md): The `option` directive sets file-wide Beancount configuration. - [Beancount.Directives.Pad](Beancount.Directives.Pad.md): The `pad` directive inserts an automatic balancing transaction before the next balance assertion on an account. - [Beancount.Directives.Plugin](Beancount.Directives.Plugin.md): The `plugin` directive loads a Beancount plugin module. - [Beancount.Directives.PopTag](Beancount.Directives.PopTag.md): The `poptag` directive pops a tag from Beancount's tag stack. - [Beancount.Directives.Posting](Beancount.Directives.Posting.md): A single posting (leg) of a `Beancount.Directives.Transaction`. - [Beancount.Directives.Price](Beancount.Directives.Price.md): The `price` directive records the price of a commodity in another currency. - [Beancount.Directives.PushTag](Beancount.Directives.PushTag.md): The `pushtag` directive pushes a tag onto Beancount's tag stack. - [Beancount.Directives.Query](Beancount.Directives.Query.md): The `query` directive stores a named BQL query in the ledger. - [Beancount.Directives.Transaction](Beancount.Directives.Transaction.md): The `transaction` directive records a balanced movement between accounts. - Engine - [Beancount.Checker](Beancount.Checker.md): Low-level wrapper around the `bean-check` command-line tool. - [Beancount.Engine](Beancount.Engine.md): Behaviour that every Beancount execution backend must implement. - [Beancount.Engine.CLI](Beancount.Engine.CLI.md): The default engine: a thin wrapper around the Beancount `bean-check` and `bean-query` CLI tools. - [Beancount.Engine.Elixir](Beancount.Engine.Elixir.md): Native Elixir engine: parse, render, booking-aware check, and canned reports. - [Beancount.Query](Beancount.Query.md): Low-level wrapper around the `bean-query` command-line tool. - Rendering - [Beancount.Directive](Beancount.Directive.md): Protocol implemented by every Beancount directive struct. - [Beancount.Renderer](Beancount.Renderer.md): Deterministic rendering of directive streams into Beancount text. - Reporting - [Beancount.Query.Result](Beancount.Query.Result.md): Neutral, engine-independent result of a BQL query. - [Beancount.Report](Beancount.Report.md): Higher-level reporting API built on top of `Beancount.query_text/2`. - Results - [Beancount.Normalizer](Beancount.Normalizer.md): Normalizes raw engine output into a stable, engine-independent structure. - [Beancount.Result](Beancount.Result.md): Normalized result of running a Beancount check. - Storage - [Beancount.Repo](Beancount.Repo.md): Ecto repository backing `Beancount.Storage` and `Beancount.Queries`. - [Beancount.Schemas](Beancount.Schemas.md): Ecto schemas for persisting Beancount directives. - [Beancount.Schemas.Balance](Beancount.Schemas.Balance.md): Persisted `balance` assertion (table `beancount_balances`). - [Beancount.Schemas.Close](Beancount.Schemas.Close.md): Persisted `close` directive (table `beancount_closes`). - [Beancount.Schemas.Commodity](Beancount.Schemas.Commodity.md): Persisted `commodity` directive (table `beancount_commodities`). - [Beancount.Schemas.CostSpec](Beancount.Schemas.CostSpec.md): Persisted cost/lot specification (embedded schema). - [Beancount.Schemas.Custom](Beancount.Schemas.Custom.md): Persisted `custom` directive (table `beancount_customs`). - [Beancount.Schemas.Document](Beancount.Schemas.Document.md): Persisted `document` directive (table `beancount_documents`). - [Beancount.Schemas.Event](Beancount.Schemas.Event.md): Persisted `event` directive (table `beancount_events`). - [Beancount.Schemas.Include](Beancount.Schemas.Include.md): Persisted `include` directive (table `beancount_includes`). - [Beancount.Schemas.Note](Beancount.Schemas.Note.md): Persisted `note` directive (table `beancount_notes`). - [Beancount.Schemas.Open](Beancount.Schemas.Open.md): Persisted `open` directive (table `beancount_opens`). - [Beancount.Schemas.Option](Beancount.Schemas.Option.md): Persisted `option` directive (table `beancount_options`). - [Beancount.Schemas.Pad](Beancount.Schemas.Pad.md): Persisted `pad` directive (table `beancount_pads`). - [Beancount.Schemas.Plugin](Beancount.Schemas.Plugin.md): Persisted `plugin` directive (table `beancount_plugins`). - [Beancount.Schemas.PopTag](Beancount.Schemas.PopTag.md): Persisted `poptag` directive (table `beancount_pop_tags`). - [Beancount.Schemas.Posting](Beancount.Schemas.Posting.md): Persisted transaction posting (embedded schema). - [Beancount.Schemas.Price](Beancount.Schemas.Price.md): Persisted `price` directive (table `beancount_prices`). - [Beancount.Schemas.PriceAnnotation](Beancount.Schemas.PriceAnnotation.md): Persisted posting price annotation (embedded schema). - [Beancount.Schemas.PushTag](Beancount.Schemas.PushTag.md): Persisted `pushtag` directive (table `beancount_push_tags`). - [Beancount.Schemas.Query](Beancount.Schemas.Query.md): Persisted `query` directive (table `beancount_queries`). - [Beancount.Schemas.Transaction](Beancount.Schemas.Transaction.md): Persisted `transaction` directive (table `beancount_transactions`). - Testing - [Beancount.Golden](Beancount.Golden.md): Helpers for golden-file regression testing. - [Beancount.Property](Beancount.Property.md): StreamData generators and helpers for property-based testing. - Exceptions - [Beancount.Checker.NotInstalledError](Beancount.Checker.NotInstalledError.md): Raised when the configured `bean-check` executable cannot be located. - [Beancount.Parser.Error](Beancount.Parser.Error.md): Structured parse error for Beancount input. - [Beancount.Query.NotInstalledError](Beancount.Query.NotInstalledError.md): Raised when the configured `bean-query` executable cannot be located. ## Mix Tasks - [mix beancount.golden.update](Mix.Tasks.Beancount.Golden.Update.md): Regenerate the golden fixtures under `test/fixtures/golden/`.