Configuration
ledger2beancount can use a configuration file. It will search for the config file in the following locations (taking the first file that is found):
.ledger2beancount.yaml
in the current working directoryledger2beancount.yaml
in the current working directory$XDG_CONFIG_HOME/ledger2beancount/config.yaml
(which is typically$HOME/.config/ledger2beancount/config.yaml
)
You can also pass an alternative config file via --config/-c
. The
file must end in .yml
or .yaml
.
While the configuration file is optional, you may have to define a number of variables for ledger2beancount to work correctly with your ledger files:
ledger_indent
sets the indentation level used in your ledger file (by default4
).date_format
has to be configured if you don't use the date formatYYYY-MM-DD
.decimal_comma
has to be set totrue
if you use commas as the decimal separator (for example,10,12 EUR
meaning 10 Euro and 12 cents).commodity_map
defines mappings from ledger to beancount commodities. You have to set this if you use commodity codes like€
or£
(to map them toEUR
andGBP
, respectively).
Additionally, these options are useful to configure beancount:
operating_currencies
: a list of the currencies you frequently use.beancount_header
: a file which is embedded at the beginning of the converted beancount file which can include beancountoption
statements,plugin
directives,query
information and more.
Other variables can be set to use various functionality offered by ledger2beancount. All variables are described below. Please read the user guide to learn how to use these variables to configure ledger2beancount for your needs.
Input options
The following options may be needed for ledger2beancount to interpret your ledger files correctly.
- date_format
-
The date format used in your ledger file (default:
%Y-%m-%d
). - date_format_no_year
-
The date format for dates without the year when ledger's
Y
/year
directive is used (default:%m-%d
). - ledger_indent
-
Sets the indentation level used in your ledger file (default:
4
). - decimal_comma
-
Parses amounts with the decimal comma (e.g.
10,00 EUR
). Set this option totrue
if you use option--decimal-comma
in ledger. - hledger
-
Tells ledger2beancount whether to attempt to parse hledger-specific features.
Other options
- beancount_indent
-
Sets the indentation level for the generated beancount file (default:
2
). - operating_currencies
-
A list of frequently used currencies. This is used by fava, the web UI for beancount.
- automatic_declarations
-
Emit account and commodity declarations. (Default:
true
)Note: the declarations done in ledger via
account
andcommodity
declarations are always converted. If this option istrue
, declarations are created for those which have not been explicitly declared in ledger but used. - account_open_date
-
The date used to open accounts (default:
1970-01-01
). - commodities_date
-
The date used to create commodities (default:
1970-01-01
). - beancount_header
-
Specifies a file which serves as a beancount "header", i.e. it's put at the beginning of the converted beancount file. You can use such a header to specify options for beancount, such as
option "title"
, defineplugin
directives or beancountquery
information. - ignore_marker
-
Specifies a marker that tells ledger2beancount to ignore a line if the marker is found.
- keep_marker
-
Specifies a marker that tells ledger2beancount to take a line from the input that is commented out, uncomment it and display it in the output.
- convert_virtual
-
Specifies whether virtual postings should be converted. If set to
true
, virtual postings in brackets will be made into real accounts. (Virtual postings in parentheses are always ignored, regardless of this option.) - account_map
-
Specifies a hash of account names to be mapped to other account names.
- account_regex
-
Specifies a hash of regular expressions to replace account names.
- commodity_map
-
Specifies a mapping of ledger commodities to beancount commodities.
- tag_map
-
Specifies a mapping of ledger tags to corresponding beancount tags.
- metadata_map
-
Specifies a mapping of ledger metadata keys to corresponding beancount keys.
- payee_tag
-
Specify a metadata tag (after the mapping done by
metadata_map
) used to set the payee. - payer_tag
-
Specify a metadata tag (after the mapping done by
metadata_map
) used to set the payee. - narration_tag
-
Specify a metadata tag (after the mapping done by
metadata_map
) used to set the narration. - payee_split
-
Specifies a list of regular expressions to split ledger's payee field into payee and narration. You have to use the named capture groups
payee
andnarration
. - payee_match
-
Specifies a list of regular expressions and corresponding payees. The whole ledger payee becomes the narration and the matched payee from the regular expression becomes the payee.
- postdate_tag
-
Specifies the metadata tag to be used to store posting dates. (Use the empty string if you don't want the metadata to be added to beancount.)
- auxdate_tag
-
Specifies the metadata tag to be used to store auxiliary dates (also known as effective dates; or
date2
in hledger). (Use the empty string if you don't want the metadata to be added to beancount.) - code_tag
-
Specifies the metadata tag to be used to store transaction codes. (Use the empty string if you don't want the metadata to be added to beancount.)
- link_match
-
Specifies a list of regular expressions that will cause a tag to be rendered as a link.
- link_tags
-
Specifies a list of metadata tags whose values should be converted to beancount links instead of metadata. Tags are case insensitive and values must not contain whitespace.
- currency_is_commodity
-
Specifies a list of commodities that should be treated as commodities rather than currencies even though they consist of 3 characters (which is usually a characteristic of a currency). Expects beancount commodities (i.e. after transformation and mapping).
- commodity_is_currency
-
Specifies a list of commodities that should be treated as currencies (in the sense that cost is not retained). Expects beancount commodities (i.e. after transformation and mapping).
- default_commodity
-
Specifies the commodity to be used if an amount without commodity is found.
- move_posting_tags
-
Tells ledger2beancount to move posting-level tags to the transaction itself to work around the lack of posting-level tags in beancount.