lib: doc: periodic/auto rule cleanups

This commit is contained in:
Simon Michael 2018-06-08 18:05:27 -07:00
parent bc4286ee0f
commit 7a4c3eea65

View File

@ -915,33 +915,38 @@ Prior to hledger 1.0, legacy `account` and `end` spellings were also supported.
## Periodic transactions ## Periodic transactions
Periodic transaction rules (enabled by `--forecast` or `--budget`) describe recurring transactions. Periodic transaction rules describe transactions that recur.
They look like a transaction where the first line is a tilde (`~`) They allow you to generate future transactions for forecast reports, without writing them out in the journal (with `--forecast`).
followed by a [period expression](manual.html#period-expressions) They can also be used to define budget goals (with `balance --budget`).
(mnemonic: `~` is like a recurring sine wave):
A periodic transaction rule looks like a regular journal entry,
except the first line is a tilde (`~`) followed by a [period expression](manual.html#period-expressions)
(mnemonic: `~` looks like a repeating sine wave):
```journal ```journal
~ weekly ~ weekly
assets:bank:checking $400 ; paycheck assets:bank:checking $400 ; paycheck
income:acme inc income:acme inc
``` ```
Periodic transactions have a dual purpose: With the `--forecast` flag,
each periodic transaction rule generates future transactions recurring at the specified interval,
beginning the day after the latest recorded journal transaction (or today, if there are no transactions),
and ending 6 months from today (or at the report end date, if specified).
- With `--forecast`, Such generated transactions can be useful for forecasting balances in the future,
each periodic transaction rule generates future transactions, and experimenting with different scenarios, without having to write a lot of journal entries.
recurring at the specified interval, They can also help with data entry, by copying the output of `print --forecast`.
which can be seen in reports.
Forecast transactions begin the day after the latest recorded journal transaction (or today, if there are no transactions)
and end 6 months from today (or at the report end date, if specified).
- With `--budget` (supported by the balance command), With the `--budget` flag, currently supported by the balance command,
each periodic transaction rule declares recurring budget goals for the specified accounts, each periodic transaction rule declares recurring budget goals for the specified accounts.
which can be seen in [budget reports](/manual.html#budget-report).
Eg the example above declares the goal of receiving $400 from `income:acme inc` Eg the example above declares the goal of receiving $400 from `income:acme inc`
(and also, depositing $400 into `assets:bank:checking`) every week. (and also, the goal of depositing $400 into `assets:bank:checking`) every week.
Goals and actual performance can then be displayed in [budget reports](/manual.html#budget-report).
(Actually, you can generate one-off transactions too, Periodic transaction rules can generate one-off transactions too;
by writing a period expression with no report interval.) just write a period expression with no report interval.
In some cases this could be more useful than an ordinary explicit transaction
(eg forecast an estimated amount until the actual transaction is recorded, automatically deactivating the forecasted one).
For more details, see: For more details, see:
[balance: Budget report](manual.html#budget-report) [balance: Budget report](manual.html#budget-report)
@ -950,10 +955,12 @@ and
## Automated postings ## Automated postings
Automated postings (enabled by `--auto`) are postings added automatically by rule to certain transactions. Automated posting rules describe extra postings that should be added to certain transactions at report time,
An automated posting rule looks like a transaction where when the `--auto` flag is used.
the first line is an equal sign (`=`) followed by a [query](manual.html#queries)
(mnemonic: `=` tests for matching transactions, and also looks like posting lines): An automated posting rule looks like a regular journal entry,
except the first line is an equal sign (`=`) followed by a [query](manual.html#queries)
(mnemonic: `=` looks like posting lines):
```journal ```journal
= expenses:gifts = expenses:gifts
budget:gifts *-1 budget:gifts *-1