The query directive stores a named BQL query in the ledger.
See Query.
Beancount syntax
2026-01-01 query "monthly" "SELECT account, sum(position) GROUP BY account"General form: YYYY-MM-DD query "Name" "BQL"
Elixir struct
%Beancount.Directives.Query{
date: ~D[2026-01-01],
name: "monthly",
bql: "SELECT account, sum(position) GROUP BY account",
metadata: %{}
}Or use Beancount.query_directive/4:
Beancount.query_directive(~D[2026-01-01], "monthly",
"SELECT account, sum(position) GROUP BY account"
)Fields
date-Date.t()the query definition is recorded.name- unique identifier for the saved query.bql- Beancount Query Language string.metadata- optional map rendered below the directive.