diff --git a/hledger/hledger_options.m4.md b/hledger/hledger_options.m4.md index e4e870c1e..f27e41b8f 100644 --- a/hledger/hledger_options.m4.md +++ b/hledger/hledger_options.m4.md @@ -598,63 +598,32 @@ $ hledger -f- print --value-at=2000-01-15 ``` -### Reports supporting --value-at +### Effect of --value-at on reports -Currently all report/--value-at combinations are expected to do the -right thing, or at least a reasonable thing. -Though, some of these combinations might not make sense. -The table below shows the current status as far as we know it. -("print", "register", "balance" mean all commands of those general -types, "-M" means any report interval, "Y" means supported): - -| Report type | `--value-at` `transaction`  | `--value-at` `period`  | `--value-at` `DATE`/`now`  | -|-----------------------|:--------------------------------:|:---------------------------:|:-------------------------------:| -| print | Y | Y | Y | -| register | Y | Y | Y | -| register -M | Y | Y | Y | -| register -H | Y | Y | Y | -| balance | Y | Y | Y | -| balance -MTA | Y | Y | Y | -| balance -MH | *not yet* | *not yet* | *not yet* | -| balance --budget | ? | ? | ? | - -If you find problems (useless reports, misbehaving reports, or errors -being reported), please report them (with reproducible examples) eg at +There are many possible combinations of --value-at and hledger's various reports. +Below is what we currently (aim to) do in each case. +You're not expected to remember all this - probably only a few of these will be useful in practice - +but when troubleshooting a report, look here. +If you find problems - useless reports, misbehaving reports, or error +messages being printed - please report them (with reproducible examples) eg at [#329](https://github.com/simonmichael/hledger/issues/329). -Some more notes specific to the report types: - -#### print --value-at - -Posting amounts are converted to value, but balance assertion/balance assignment amounts are not. - -#### register --value-at - - register --value-at - transaction: convert each posting to value at posting date ; with -H, convert starting balance to value at day before report start - period: convert each posting to value at report end ; with -H, convert starting balance to value at day before report start - date: convert each posting to value at date ; with -H, convert starting balance to value at date - - register -M --value-at - transaction: convert each summary posting to value at posting date ; with -H, convert starting balance to value at day before report start - period: convert each summary posting to value at period end ; with -H, convert starting balance to value at day before report start - date: convert each summary posting to value at date ; with -H, convert starting balance to value at date - -"Day before report start" is a bit arbitrary. - -In all cases, the running total/average is calculated from the above numbers. - -#### balance --value-at - - balance --value-at - transaction: convert each posting to value before summing - period: convert totals to value at period end - date: convert totals to value at date - - balance -M --value-at - transaction: convert each posting to value before calculating table cell amounts - period: convert each table cell amount (balance change or ending balance) to its value at period end - date: convert each table cell amount to its value at date +| Report type | `--value-at` `transaction`  | `--value-at` `period`  | `--value-at` `DATE`/`now`  | +|------------------------------------------|-----------------------------------------------------------|--------------------------------------------------------------|-------------------------------------------| +|
**print** | | | | +| posting amounts | value at posting date | value at report end | value at DATE | +| balance assertions/assignments | show unvalued | show unvalued | show unvalued | +|
**register** | | | | +| starting balance with -H | value at day before report start | value at day before report start | value at DATE | +| posting amounts | value at posting date | value at report end | value at DATE | +| posting amounts, multiperiod | value each posting at posting date then summarise | value each summary posting at period end | value each summary posting at DATE | +|
**balance (bs, cf, is..)** | | | | +| starting balances with -H | sum of values of previous postings at their posting dates | value at day before report start of sum of previous postings | value at DATE of sum of previous postings | +| balances, simple balance report | sum of values of each posting at posting date | value at period end of sum of postings | value at DATE of sum of postings | +| balances, multiperiod report | sum of values of each posting at posting date | value at period end of sum of postings | value at DATE of sum of postings | +| column totals | sum/average of the displayed balances | value at period end of sum of postings | value at DATE of sum of postings | +| row totals/averages, grand total/average | sum/average of the displayed balances | value at period end of sum/average of postings | value at DATE of sum/average of postings | +| budget amounts in --budget reports | ? | ? | ? | ## Combining -B and -V