2015-05-17
- MAJOR CHANGES: Precision and tolerances in Beancount have been entirely
revamped. The logic used to compute tolerances on transaction balances
and
balance assertions is new. This previously discussed proposal:
http://furius.ca/beancount/doc/proposal-rounding
has been implemented. The new behaviour is documented here:
http://furius.ca/beancount/doc/tolerances
Here is a high-level summary of changes (see doc above for details):
* The tolerance used for transaction balances is inferred automatically
from
the amounts on the transactions themselves. When not possible, a
default
tolerance is looked up from values you can provide (as well as a
global
default).
* There is a new 'default_tolerances' option to provide tolerances to be
used used when it cannot be inferred automatically. You use it like
this:
option "default_tolerance" "*:0.005"
option "default_tolerance" "INR:0.5"
...
* The 'tolerance' option has been deprecated. It now has no effect.
* Balance assertions and Pad directives use a similar inference
mechanism,
where the tolerance is based on the precision of the expected number
in
the input.
* Rounding errors may be automatically posted to a special account (new
postings are inserted during parsing where necessary). This is
disabled by
default; you enable this by setting the new 'account_rounding' option
to
the account you want the rounding errors to be posted to:
option "account_rounding" "Equity:Rounding-Errors"
* These changes may cause some of your transactions to report as not
balancing, because the tolerances and now inferred automatically and
the
inferred tolerances may be smaller than the fixed value we used
previously. YOU NEED TO MAKE SUITABLE ADJUSTMENTS TO YOUR INPUT FILE.
However, because this might cause some minor disruption, I have
provided
an option to allow users to revert Beancount to its previous tolerance
behavior for a few months:
option "use_legacy_fixed_tolerances" "TRUE"
* There is a new EXPERIMENTAL feature which makes Beancount accept an
explicit tolerance value on balance assertions, like this:
YYYY-MM-DD balance <account> <number> ~ <tolerance> <currency>
For example,
2015-05-17 balance Assets:Vanguard 23.2134 ~ 0.002 RGAGX
By default, this feature is not enabled; this is being tested out and
it
might go away eventually. To enable it, add the following experiment
flag:
option "experiment_explicit_tolerances" "TRUE"
- The 'plugin' option has now been deprecated and will issue a warning if
you
use it. You must now use the 'plugin' directive instead.
- The parser now supports boolean types, with this syntax: TRUE, FALSE.
This
can be useful to set metadata fields.
- Postings that were inserted automatically have some metadata set on
them to
distinguish this fact ('__automatic__').
2015-05-12
- Allow currency names up to 24 characters (not 12). This is often
required
for people using financial options.
2015-05-11
- Added parsing of boolean types: TRUE, FALSE will produce values of
Python "True" and "False". This is useful to used as metadata values.
- Removed extraneous reference release in key_value_value in parser.
2015-05-03
- Added Equity to the list of accounts that count as proceeds for
beancount.plugins.sellgains plugin. This is so that old transactions
may use an unknown equity account and still pass the sellgains check.
2015-04-19
- Fixed a bug with the pad directive that did not look for account name
boundaries when looking at a parent account.
- In output of bean-doctor context, now print the residual amount.
--
---
You received this message because you are subscribed to the Google Groups
"Ledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.