[Recurring transactions](https://hledger.org/hledger.html#periodic-transactions) do not really form part of hledger or plaintextaccounting per se. The below code helps to understand how recurring budgets can be declared:
A price file can be created separately to manage asset prices and actual transactions in separate docs. To this effect, both files are required to be in the same folder and the main journal carries the following command:
```ad-code
~~~
include (filename).prices
~~~
```
Prices are inputed as follows:
```ad-code
~~~
P (date) (asset1) (asset2)(conversion value)
~~~
```
3.**Re-pricing Investment**
Re-pricing happens through the price file by simply adding a 'P' command with a new date in the .prices file.
4.**Selling an investment**
To respect the coherence of the Accounting Equation, sales will follow the same nomenclature as purchases, with an explicit declaration of realised p&l:
This flexibility enables to implement FIFO/LIFO as per prevailing fiscal rules.
 
#### Closing books
[[#^Top|TOP]]
In order to close books, revenues/expenses need to amount to 0 and only show Asset, Liability and Equity. The below is a growing mapping of revenues and expenses lines:
```ad-code
~~~
(Closing date)
revenues:Salary (outstanding balance) = 0
revenues:investment income (outstanding balance) = 0
revenues:capital gains (outstanding balance) = 0
equity:retained earnings -(resulting amount)
~~~
```
```ad-code
~~~
(Closing date)
expenses (outstanding balance) = 0
equity:running costs -(resulting amount)
~~~
```
 
#### Reports
[[#^Top|TOP]]
```ad-info
title: Documentation
Simple reports can be found [here](https://hledger.org/quickstart.html#run-reports)
```
**Income statement report**
```ad-command
~~~bash
hledger -f 'filename' is -Y (period argument) -3 (depth argument) -S (sorting by amount argument) -o (output file argument)
~~~
```
**Balance sheet report**
```ad-command
~~~bash
hledger -f 'filename' bs -Y (period argument) -V (optional price basis: end of year each year, local ccy; --value=end,(ccy) for forcing GBP/EUR) (optional --infer-value) -o (output file argument)
~~~
```
'bs' can be replaced by 'bse' to show the Equity block.